您的贷款审批数据模板
您的贷款审批数据模板
- 建议收集的属性
- 需要追踪的关键活动
- 数据提取指南
贷款发放属性
| 名称 | 描述 | ||
|---|---|---|---|
| 开始时间 EventTime | 指示特定活动或事件开始的时间戳。 | ||
| 描述 开始时间或 event timestamp 记录了活动发生的准确日期和时间。此时间顺序 data 对于正确排列 event 并重建现实发生的流程至关重要。 此 timestamp 是所有基于时间的分析的基础。它用于计算活动之间的周期时间、识别等待时间和延迟,并衡量整体 case 持续时间。准确的 timestamp 对于绩效监控和瓶颈分析至关重要。 为何重要 此 timestamp 提供了 event 的时间顺序,这对于计算周期时间和持续时间等所有绩效指标至关重要。 获取方式 这可以衍生自系统生成的 timestamp,如相关记录上的“CreatedDate”,或者是字段历史记录中特定字段更改的 timestamp。 示例 2023-10-26T10:00:00Z2023-10-26T14:30:00Z2023-10-27T09:15:00Z | |||
| 活动 ActivityName | 贷款审批流程中发生的具体业务步骤或 event 的名称。 | ||
| 描述 此属性代表贷款申请生命周期中的单个任务或里程碑,如“已执行初始审查”或“信贷审批已完成”。这些活动构成了流程图中的节点,其顺序定义了流程流。 分析这些活动的顺序、频率和持续时间有助于识别常见的流程路径、偏差和瓶颈。这对于理解正在执行的工作内容和顺序至关重要,是所有 Process Mining 分析的基础。 为何重要 此属性定义了流程的步骤,支持对流程流进行可视化和分析,这是 Process Mining 的核心。 获取方式 这通常衍生自 nCino 中 Loan 对象的“阶段”或“状态”字段的更改,或者是来自相关的任务或事件记录。 示例 贷款申请已创建信贷审批已开始已作出贷款决策资金已拨付 | |||
| 贷款申请 ID LoanApplicationId | 分配给每个贷款申请的唯一标识符,作为追踪整个发放流程的主键。 | ||
| 描述 贷款申请 ID(Loan Application ID)在整个生命周期内唯一标识每一笔贷款请求。它是对所有相关活动和 data 进行分组的核心实体,支持对特定贷款的审批过程进行完整追踪。 在 Process Mining 中,此 ID 被用作 Case ID。从提交到最终决策的每个 event 都链接回该标识符。这使得能够重建每个申请的端到端流程,对于周期时间分析、变体分析和瓶颈识别至关重要。 为何重要 这是连接所有流程步骤的核心案例 ID(Case ID),使得分析每个贷款申请的端到端旅程成为可能。 获取方式 这通常是 nCino 中 Loan 对象的主键,通常引用为 示例 LA-2023-00123LA-2023-00456LA-2024-00789 | |||
| 最后数据更新 LastDataUpdateTimestamp | 指示源系统数据上次刷新时间的时间戳。 | ||
| 描述 此属性记录从源系统最后一次提取 data 的日期和时间。它为所分析数据的时效性提供了背景。 在仪表板(dashboard)和报表中,此信息对于用户了解分析的时效性至关重要。它有助于管理预期,并确保决策是基于已知时间范围的底层 data 做出的。 为何重要 提供关于数据新鲜度的关键背景信息,确保用户了解流程分析的即时性。 获取方式 此 timestamp 由数据提取工具或 ETL 流程在拉取 data 时生成。 示例 2024-05-21T02:00:00Z2024-05-22T02:00:00Z2024-05-23T02:00:00Z | |||
| 源系统 SourceSystemName | 提取数据的特定系统名称。 | ||
| 描述 此属性标识 event data 来源的应用程序。对于此流程,通常为“nCino”。 虽然当所有 data 都来自一个系统时这似乎是多余的,但对于数据治理至关重要,并且在整合来自多个系统(例如独立的信用评分引擎或文档管理平台)的数据时变得至关重要。它确保了数据来源的清晰性。 为何重要 标识 data 来源,这对于 data 治理、排障以及合并来自多个系统的 data 至关重要。 获取方式 这是一个静态值“nCino”,在数据提取和转换过程中应用。 示例 nCinonCino-ProdnCino-UAT | |||
| 决策结果 DecisionOutcome | 对贷款申请做出的最终决策,如已批准、已拒绝或已撤回。 | ||
| 描述 此属性捕获“贷款决策已生成”活动的结果。它是一个关键的案例级属性,定义了已完成贷款申请流程的最终状态。 此属性对于基于结果的分析至关重要。它允许比较导致不同结果的流程流,例如,分析已批准申请与被拒绝申请的常见路径。它也是计算关键指标(如贷款拒绝率)的基础。 为何重要 允许根据最终业务结果对流程进行筛选和对比,这对于识别哪些流程模式会导致成功或失败至关重要。 获取方式 通常在流程结束后,于 Loan 对象的“状态”或“阶段”字段中找到。具体取值取决于系统配置。 示例 已批准已否决申请人已撤回 | |||
| 分配部门 AssignedDepartment | 在特定阶段负责贷款申请的部门或团队。 | ||
| 描述 此属性指示拥有该活动的职能组,如“Origination”(受理)、“Underwriting”(信贷审批)或“Closing”(结案)。这可以衍生自指派用户的个人资料或贷款记录上的专用字段。 从部门视角分析流程对于理解跨职能协作至关重要。它有助于衡量部门之间的交接时间,识别由跨部门流转引起的延迟,并提供组织内工作执行位置的高层级视图。 为何重要 对于分析部门间的交接、衡量团队绩效以及识别跨部门瓶颈至关重要。 获取方式 此信息可以衍生自指派用户的 User 记录上的 Department(部门)字段,或者 Loan 对象上的自定义“团队”或“队列”分配字段。 示例 贷款发放信贷审批信用风险结项中 | |||
| 申请渠道 ApplicationChannel | 贷款申请提交的渠道,如线上、网点或经纪人。 | ||
| 描述 此属性标识贷款申请的提交来源。不同渠道的 data 完整程度和客户互动水平可能不同,这可能会影响后续流程流。 按渠道分析流程有助于评估渠道效率。例如,可以比较通过线上提交的申请与在网点提交的申请的周期时间和返工率。这些洞察可以为关于渠道投资和特定来源流程优化的战略决策提供依据。 为何重要 有助于对比不同提交渠道的效率、速度和质量,指引战略改进和投资方向。 获取方式 这通常存储在 Loan 对象的一个下拉列表字段中,通常命名为“渠道”或“来源”。 示例 在线门户Branch经纪人网络移动应用 | |||
| 结束时间 EventEndTime | 指示活动或事件完成的时间戳。 | ||
| 描述 结束时间(End Time)标志着一项活动的完成。活动开始时间与结束时间之间的差值代表其处理时间。 此属性对于区分处理时间(主动工作)和等待时间(活动之间的空闲时间)至关重要。分析处理时间有助于识别哪些具体步骤最耗时,而一项活动的结束时间与下一项活动的开始时间之间的间隙则揭示了交接延迟。 为何重要 能够计算精确的活动处理时间,这是区分实际工作时间与空闲等待时间的关键。 获取方式 这可以衍生自系统生成的 timestamp,如相关记录上的“LastModifiedDate”,或者是字段历史记录中后续字段更改的 timestamp。 示例 2023-10-26T11:30:00Z2023-10-26T17:00:00Z2023-10-27T11:45:00Z | |||
| 被分配用户 AssignedUser | 负责执行该活动的个人,如贷款专员或核保人员。 | ||
| 描述 此属性标识执行特定任务或在给定阶段分配给贷款申请的个人员工。在 nCino 中通常作为记录“所有者”进行追踪。 按用户分析 data 有助于了解工作负载分配、个人绩效和资源利用率。它可以突出显示负担过重的员工或团队,并识别表现优异者,这对于资源管理和培训非常有价值。 为何重要 这支持对工作负载分布、团队绩效和资源分配进行分析,有助于识别与特定用户或团队相关的瓶颈。 获取方式 通常来自 Loan 对象或相关 Task 对象上的“OwnerId”字段,可以与 User 对象连接以获取用户姓名。 示例 Alice SmithBob JohnsonCharlie Brown | |||
| 贷款产品类型 LoanProductType | 申请的特定贷款产品类型,如房贷、车贷或个人贷款。 | ||
| 描述 此属性根据所提供的金融产品对贷款申请进行分类。不同的贷款产品通常具有明显的流程差异、周期时间和风险特征。 按“贷款产品类型”对流程分析进行细分对于进行有意义的比较至关重要。它有助于了解不同产品如何影响流程效率,并允许创建定制化的仪表板(dashboard),例如跟踪抵押贷款与汽车贷款的放款吞吐量。这确保了在正确的业务背景下评估绩效。 为何重要 使流程分析能够按业务背景进行切片,揭示不同产品如何影响流程效率、时长和路径。 获取方式 这通常存储在 nCino Loan 对象 (LLC_Loan__c) 的“产品”或“贷款类型”字段中。 示例 常规抵押贷款新车贷款无抵押个人贷款 | |||
| 贷款金额 LoanAmount | 申请人请求的贷款金额。 | ||
| 描述 此属性代表申请的贷款本金金额。贷款金额会显著影响审批流程的复杂性和时长,较大或较复杂的贷款通常需要额外的审查或步骤。 在分析中,贷款金额是一个强大的细分工具。它支持调查高价值贷款是否处理时间更长、返工率更高或遵循不同的流程路径。它对于财务报告和了解正在处理的贷款组合价值也是基础性的。 为何重要 提供关键的财务背景,并支持分段分析,以查看贷款金额是否与流程复杂程度、持续时间或结果相关。 获取方式 位于贷款对象的一个货币字段中,通常命名为“Amount” ( 示例 250000.0035000.00750000.00 | |||
| SLA 状态 SlaState | 一个计算出的状态,用于指示某个活动或 case 是否符合其服务水平协议 (SLA)。 | ||
| 描述 此属性提供 SLA 检查的结果,通常针对特定阶段(如核保)。它将实际周期时间与预定义的 SLA 目标进行比较,并分配“达成”或“逾期”等状态。 此属性对于对照业务承诺进行绩效监控至关重要。它直接支持“核保 SLA 达成率”仪表板(dashboard)和 KPI,提供清晰且即时的合规信号。它支持钻取分析逾期申请的特征,以了解延迟的根本原因。 为何重要 提供绩效与目标对比的清晰分类结果,便于监控 SLA 合规情况并分析违约原因。 获取方式 这是在数据转换层中,通过将流程段的实际持续时间(如信贷审批周期时间)与“UnderwritingSlaTarget”属性进行比较来计算的。 示例 已达成已超期 | |||
| 信用评分 CreditScore | 进行信用检查时申请人的信用评分。 | ||
| 描述 此属性保存了在“信用检查已完成”活动期间从征信机构返回的数字信用评分。它是核保和决策过程中的关键因素。 在 Process Mining 中,信用评分可用于分析评分与流程行为之间是否存在相关性。例如,信用评分较低的申请是否需要更多的手动步骤、在核保中耗时更长,或者拒绝率更高?这可以为基于风险的流程变体提供宝贵的洞察。 为何重要 允许分析信用分这一关键决策因素如何与流程路径、时长和结果相关联。 获取方式 此类 data 通常存储在链接到主 Loan 对象的“信用报告”或“财务信息”相关对象的专用字段中。 示例 720650810 | |||
| 信贷审批 SLA 目标 UnderwritingSlaTarget | 完成信贷审批阶段的目标时长(以小时或天为单位)。 | ||
| 描述 此属性定义了流程中信贷审批环节的预期服务级别协议(SLA)。它作为衡量实际绩效的基准。 此目标用于计算 SLA 达成率。通过将实际的信贷审批周期时间与此目标进行比较,申请可以被标记为“达成”或“逾期”。这对于“信贷审批 SLA 达成率”仪表板(dashboard)及相关 KPI 至关重要。 为何重要 提供衡量服务级别协议绩效所需的基准,从而实现 SLA 达成率的监控。 获取方式 此值可以存储在 Loan 对象上,也可以基于“贷款产品类型”或“贷款金额”等属性通过业务规则衍生得出。 示例 48 小时72 小时5 个工作日 | |||
| 拒绝原因 DeclineReason | 贷款申请被拒绝时提供的具体原因。 | ||
| 描述 当贷款的“决策结果”为“已拒绝”时,此属性提供了关于原因的更多细节。原因可能包括信用评分较低、收入不足或证明文件不全。 分析拒绝原因对于业务改进至关重要。它可以揭示一些趋势,指出授信标准、产品市场匹配度或申请流程本身存在的问题。这些洞察可以帮助企业完善战略并提高获批率。 为何重要 提供贷款申请被拒的根本原因,支持通过分析识别趋势并改进授信标准或申请流程。 获取方式 通常存储在 Loan 对象的一个下拉列表字段中,该字段在贷款进入“已拒绝”状态时变为必填项。 示例 信用评分低债务收入比过高申请资料不全抵押物不足 | |||
| 是否已自动化 IsAutomated | 一个布尔标志,指示活动是由系统自动执行还是由人工执行。 | ||
| 描述 此标志区分了人为驱动的任务和自动化的系统 event。例如,信用检查可能是一个自动化活动,而核保决策通常是手动的。 识别自动化步骤对于自动化发现和分析至关重要。它允许衡量自动化对周期时间和效率的影响,并有助于识别最适合未来自动化计划的手动活动。 为何重要 区分系统活动和人工活动,这是衡量自动化影响和识别新自动化机会的基础。 获取方式 这通常基于与该 event 关联的用户来衍生。如果用户是“System”或“Integration”用户,则该标志设为 true。 示例 truefalse | |||
| 是否返工 IsRework | 一个计算出的标记,用于识别单个 case 中重复或循环的活动。 | ||
| 描述 如果同一贷款申请的某项活动(如“要求提供支持文件”)发生多次,则此布尔属性设置为 true。它识别出返工实例,这通常是流程低效的根源。 分析返工是 Process Mining 的核心用例。“是否返工”(IsRework)标志支持对返工实例进行轻松过滤和量化。它为“贷款申请返工分析”等仪表板提供支持,并用于计算返工率等 KPI,突出显示流程步骤在第一次尝试时失败的区域。 为何重要 通过标记重复工作来突出流程中的低效环节,支持针对性分析以理解并减少成本高昂的循环。 获取方式 此属性在数据转换期间通过使用窗口函数来计算,以检查对于给定的案例 ID(Case ID),是否已经发生过相同的活动。 示例 truefalse | |||
| 案例持续时间 CaseDuration | 一笔贷款从第一个活动开始到最后一个活动结束的总耗时。 | ||
| 描述 此计算指标衡量每个贷款申请的端到端周期时间。它代表一个案例(case)在流程中处于活动状态的总时间。 案例持续时间(Case Duration)是衡量整体流程效率的主要关键绩效指标。它在仪表板(dashboard)中用于可视化周期时间的分布、识别运行时间过长的案例并跟踪随时间变化的绩效趋势。分析与较长案例持续时间相关的因素是许多 Process Mining 项目的关键目标。 为何重要 代表整体端到端周期时间,是衡量整体流程健康状况和客户体验的关键 KPI。 获取方式 这是通过计算每个贷款申请 ID(LoanApplicationId)的最大与最小 EventTime 之间的差值来得出的。 示例 2592000 秒1209600 秒4320000 秒 | |||
| 活动处理时间 ActivityProcessingTime | 活动实际花费的计算时长。 | ||
| 描述 此指标代表从活动开始时间到结束时间所经过的时间。它衡量了给定流程步骤的“接触时间”或主动工作期。 此计算属性对于绩效分析至关重要。它有助于将主动工作时间与空闲或等待时间区分开来,使分析师能够精准找出哪些特定任务最耗时,而不是仅识别步骤之间的长时间延迟。它是资源产能规划和效率改进的关键输入。 为何重要 衡量每个步骤的实际工作时长,有助于识别最耗时的任务,并将其与等待时间区分开来。 获取方式 这是通过计算每个活动的“EventEndTime”与“EventTime”(StartTime)之间的差值来得出的。 示例 3600 秒14400 秒86400 秒 | |||
贷款发放活动
| 活动 | 描述 | ||
|---|---|---|---|
| 信贷审批已完成 | 此活动表示核保人员已完成审查并给出了建议。当贷款阶段从“Underwriting”推进到后续阶段(如“已批准”、“已拒绝”或“待决策”)时捕获。 | ||
| 为何重要 此里程碑标志着信贷审批阶段的结束。“核保开始”与此 event 之间的时间跨度是衡量核保效率和识别瓶颈的关键 KPI。 获取方式 根据贷款的“阶段”字段 (LLC_BI__Stage__c) 从“承销中”变更为其他值时的 timestamp 来推断。这依赖于字段历史追踪。 捕获 捕获贷款“阶段”字段从“承销中”更新为后续状态时的 timestamp。 事件类型 inferred | |||
| 信贷审批已开始 | 标志着信贷审批阶段(Underwriting)的正式开始,此时核保人员开始主动评估贷款申请。通常通过将贷款的主阶段或状态字段更改为“Underwriting”来记录。 | ||
| 为何重要 这是一个关键里程碑,开启了流程中最耗资源的阶段之一。它是衡量信贷审批周期时间和 SLA 达成率的起点。 获取方式 根据贷款的“阶段”字段变更为“承销中”时的 timestamp 记录来推断。这要求在贷款对象的“阶段”字段上启用 Salesforce 字段历史追踪。 捕获 捕获贷款“阶段”字段 (LLC_BI__Stage__c) 更新为“承销中”时的 timestamp。 事件类型 inferred | |||
| 已作出贷款决策 | 代表对贷款申请做出的最终正式决策,如“已批准”或“已拒绝”。此 event 在正式设置贷款状态以反映最终结果时记录。 | ||
| 为何重要 这是一个区分评估阶段与结案阶段的重要里程碑。分析从信贷审批完成到做出此决策的时间,可以突出委员会审查或最终签核中潜在的延迟。 获取方式 根据贷款对象上状态或阶段字段更新为终态(如“已批准”或“已拒绝”)来推断。字段历史追踪可提供精确的 timestamp。 捕获 捕获设置贷款最终决策状态的字段更新 timestamp。 事件类型 inferred | |||
| 贷款已拒绝 | 此活动代表流程的非成功终点,即贷款申请被正式拒绝。当贷款阶段或状态设为“Declined”时捕获。 | ||
| 为何重要 这是一个关键的失败终点 event。分析导致此结果的路径有助于识别被拒原因,以及改进申请质量或授信标准的潜在领域。 获取方式 根据贷款对象上最终阶段变更为“已拒绝”来推断。timestamp 是通过“阶段”字段的字段历史追踪捕获的。 捕获 捕获贷款“阶段”字段 (LLC_BI__Stage__c) 更新为“已拒绝”时的 timestamp。 事件类型 inferred | |||
| 贷款申请已创建 | 此活动标志着在 nCino 系统中创建了新的贷款申请记录。它是贷款审批流程的正式开始,通常在用户第一次保存新的 Loan 记录时捕获。 | ||
| 为何重要 这是流程的主要起始 event。分析从该活动到其他活动的时间,对于衡量整体周期时间及识别初始处理延迟至关重要。 获取方式 这是一个明确的 event,从 nCino 所基于的 Salesforce 平台中主 Loan 对象 (Loan__c) 的创建 timestamp 中捕获。 捕获 使用来自 Loan__c Salesforce 对象的“CreatedDate”字段。 事件类型 explicit | |||
| 资金已拨付 | 此活动标志着贷款审批流程的圆满完成,资金已划拨给申请人。通常在贷款阶段移动到“Booked”或“Complete”时捕获。 | ||
| 为何重要 这是流程的主要成功终点 event。衡量到此活动的总时间可提供端到端周期时间,这是衡量流程整体绩效的关键 KPI。 获取方式 根据贷款对象上最终阶段变更为“已入账”等最终成功状态来推断。timestamp 来源于字段历史追踪。 捕获 捕获贷款“阶段”字段 (LLC_BI__Stage__c) 更新为“已入账”时的 timestamp。 事件类型 inferred | |||
| 初步审查已执行 | 代表贷款专员或处理人员完成了对申请及其初始 data 的首次正式审查。通常通过贷款状态或阶段字段的更改来记录,表明已通过初始录入阶段。 | ||
| 为何重要 衡量到达此活动所需的时间,有助于评估受理流程(Intake Process)的初始响应能力和效率。这是在开始更多耗费资源的活动之前的关键步骤。 获取方式 可能根据贷款的“阶段”或自定义“状态”字段变更为“初步审查完成”或“等待文件”等值时的 timestamp 记录来推断。这要求在贷款对象上启用字段历史追踪。 捕获 识别贷款阶段字段更新为表示审查完成时的 timestamp。 事件类型 inferred | |||
| 已完成信用审核 | 此活动表示已运行信用检查且结果在系统中可用。通常在信用报告附加到贷款记录或特定的“信用检查”阶段标记为完成时捕获。 | ||
| 为何重要 信用检查是信贷审批的关键前置条件。该步骤的完成延迟可能成为整个流程的重大瓶颈。 获取方式 这可以是一个来自信用报告集成的明确 event,也可以从贷款阶段更新中推断出来。检查 Loan 或相关对象上指示信用调取日期或完成状态的字段。 捕获 使用贷款阶段更新为“信用检查完成”的 timestamp,或相关信用报告记录的创建日期。 事件类型 inferred | |||
| 已执行风险评估 | 代表贷款正式风险评估或评级的完成。这通常是信贷审批阶段的一个独立步骤,在填写或更新风险评级字段时记录。 | ||
| 为何重要 此活动提供了对核保决策过程的洞见。分析此步骤耗费的时间可以揭示风险评估中的复杂程度。 获取方式 可以根据贷款对象上风险相关字段(如“风险等级”或“风险评级”字段)的填充日期或最后修改日期来推断。 捕获 当填写或更改“风险评级”字段时,使用来自字段历史跟踪的 timestamp。 事件类型 inferred | |||
| 支持性文件已收到 | 标志着申请人提交的所需文件已收到并上传到系统中。通常在 Document Manager(文档管理器)中的文件占位符状态更新为“已收到”或“完成”时记录。 | ||
| 为何重要 此活动结束了一个常见的等待期。“要求文件”与“收到文件”之间的时间通常凸显了外部依赖项和沟通效率问题。 获取方式 根据 nCino 文档管理器中文档要求记录的状态变更来推断。状态更新的 timestamp 即为 event 时间。 捕获 识别文档要求状态更新为“已收到”或“已完成”时的 timestamp。 事件类型 inferred | |||
| 申请已撤回 | 代表流程的另一种终点,即申请人在做出最终决策前撤回申请。这通过将贷款阶段设置为“Withdrawn”来记录。 | ||
| 为何重要 此结束 event 提供了关于客户流失的见解。分析申请撤回的时间和原因可以突出流程时长、沟通或竞争力方面的问题。 获取方式 根据贷款对象上最终阶段变更为“已撤回”来推断。在“阶段”字段上进行的字段历史追踪可提供 event timestamp。 捕获 捕获贷款“阶段”字段 (LLC_BI__Stage__c) 更新为“已撤回”时的 timestamp。 事件类型 inferred | |||
| 要求提供支持性文件 | 当贷款专员正式向申请人请求补充文件时发生此 event。在 nCino 中,这通常通过文档管理功能进行管理,即为所需文档创建清单项或占位符。 | ||
| 为何重要 追踪此活动对于分析返工和延迟至关重要。单笔贷款出现多次该活动表明初始申请不完整,导致流程循环并延长了周期时间。 获取方式 可以是来自 nCino 文档管理器中创建的与贷款相关的记录的明确 event,也可以根据贷款本身的状态变更来推断。 捕获 捕获链接到贷款的文档管理器中记录(例如 docman__Document_Manager_Requirement__c)的创建日期。 事件类型 explicit | |||
| 贷款协议已签署 | 代表申请人签署最终贷款协议,这是放款前的关键步骤。通常通过电子签名集成或在纸质文件退回后手动更新状态来记录。 | ||
| 为何重要 此活动是放款的重要前提,也是结案过程中的关键里程碑。此阶段的延迟将直接影响放款时间。 获取方式 可以是来自电子签名平台 API 更新 nCino 状态的明确 event,也可以根据手动更新为“文档已签署”的状态来推断。 捕获 使用来自电子签名集成 Webhook 或手动状态更新的 timestamp。 事件类型 explicit | |||
| 贷款报盘已接受 | 标志着申请人正式接受贷款报价。这可以由贷款专员手动更新状态字段,或通过电子签名集成自动更新记录。 | ||
| 为何重要 这是一个由客户驱动的关键里程碑。此处的长时间延迟可能表明报价条款或接受流程存在问题,为改进提供了机会。 获取方式 通常从 Loan 对象上手动更新到“报价已接受”或“结案”等阶段推断得出。电子签名集成可以使其成为一个明确的、自动化的 event。 捕获 捕获状态或阶段字段更新为“已接受”时的 timestamp。 事件类型 inferred | |||
| 贷款报盘已生成 | 此活动发生在为已批准的申请生成正式贷款报价或承诺函时。通常通过创建特定文档或指示报价已就绪的状态更新来捕获。 | ||
| 为何重要 审批后生成报价所需的时间会影响客户体验。此活动有助于监控文档生成和预关单步骤的效率。 获取方式 可以是来自与 nCino 集成的文档生成引擎的明确 event,也可以根据状态更改为“已生成报盘”或“等待客户接受”来推断。 捕获 使用生成的贷款报价文档或相关内容版本记录的创建日期。 事件类型 explicit | |||
提取指南
步骤
- 前提条件:启用字段历史追踪:在创建任何报表之前,Salesforce 管理员必须在 nCino 贷款对象 (LLC_BI__Loan__c) 上启用“字段历史追踪”。追踪代表流程里程碑的关键字段,如阶段 (LLC_BI__Stage__c)、状态 (LLC_BI__Status__c)、风险评级(您的风险评级字段)以及任何用于标记事件(如“信用检查已完成”)的自定义字段。
- 创建自定义报表类型:进入设置 -> 功能设置 -> 分析 -> 报表和仪表板 -> 报表类型。创建一个新的自定义报表类型。主对象选择贷款 (LLC_BI__Loan__c),关联对象 (B) 选择贷款历史。这将每笔贷款与其历史字段变更联系起来,是构建 event 日志的关键。
- 创建“贷款历史”报表:前往报表选项卡,使用上一步创建的“带有字段历史的贷款”自定义报表类型新建报表。此报表将捕获大部分基于字段变更的活动。
- 为报表添加列:在报表中添加以下列。这些列对应所需和推荐的属性:贷款名称 (对应 LoanApplicationId)、字段/事件 (Event)、旧值、新值、编辑日期 (对应 EventTime)、编辑者 (对应 AssignedUser)、贷款产品 (对应 LoanProductType)、金额 (对应 LoanAmount)、[您的渠道字段] (对应 ApplicationChannel) 以及其他相关的贷款属性。
- 筛选“贷款历史”报表:将“显示范围”筛选器设置为“所有贷款”。将日期筛选器设置为贷款对象的“创建日期”,选择所需范围(例如:过去 6 个月)。在“字段/事件”列上添加筛选器,仅包含您启用追踪的特定字段(如“阶段”、“状态”)。
- 创建“贷款创建”报表:直接基于贷款 (LLC_BI__Loan__c) 对象创建第二个较简单的报表。此报表的唯一目的是捕获“贷款申请已创建” event。包含以下列:贷款名称 (LoanApplicationId)、创建日期 (EventTime)、创建者 (AssignedUser) 以及其他相关贷款属性。
- 导出报表:运行这两个报表。对于较小的 data 量,您可以直接从 Salesforce 界面导出为 CSV 文件。对于较大的数据集,请使用 Salesforce Data Loader。使用 Data Loader 时,您需要在系统中找到这些报表并使用 Data Loader 的导出功能,该功能通过 API 调用高效提取 data。
- 合并与转换数据:导出的 data 还不是完整的 event 日志。您必须合并这两个文件并进行转换。使用电子表格工具(如 Excel 的 Power Query)或脚本语言(如 Python)执行以下操作: a. 从“贷款创建”报表中,为“贷款申请已创建”活动创建行,使用贷款的创建日期作为 EventTime。 b. 从“贷款历史”报表中,创建一个新的“ActivityName”列。使用条件逻辑(如 CASE 语句)将字段变更映射到查询部分所述的活动名称。 c. 将结果合并为一个文件。
- 定稿列名:重命名列并调整格式以符合 ProcessMind 架构:LoanApplicationId、ActivityName、EventTime、AssignedUser 等。添加一个值为“nCino”的静态“SourceSystemName”列,以及一个包含当前日期和时间的“LastDataUpdateTimestamp”列。
- 上传至 ProcessMind:将最终转换的文件保存为 CSV 并上传至 ProcessMind。
配置
- Salesforce 权限:提取 data 的用户需要对贷款 (LLC_BI__Loan__c) 对象及其历史记录具有“读取”权限,并拥有运行和导出报表的权限。访问 Salesforce Data Loader 需要“API 已启用”权限。
- 字段历史追踪:这是最关键的前提条件。如果未针对贷款对象上的必要字段启用此功能,则无法提取历史活动。请注意,每个对象可追踪的字段数量有限。
- 报表筛选器:务必按特定的日期范围(例如:过去 6 个月内创建的贷款)筛选报表,以保持 data 量在可控范围内。此外,将历史报表筛选为仅包含代表特定流程活动(如:阶段、状态)的字段变更也至关重要。
- nCino 配置:用于识别活动的值(例如:名为“Underwriting”或“Booked”的阶段)取决于您组织的 nCino 配置。您必须调整转换逻辑以匹配您系统的专业术语。
- Data Loader:对于超过几千条贷款记录的提取,强烈建议使用 Salesforce Data Loader,以避免浏览器超时并高效处理大批量 data。您需要安装此客户端应用并拥有 API 访问凭据。
- 关联对象:某些活动(特别是与文档管理或契约相关的活动)可能存储在关联的 nCino 对象中。此处介绍的主要方法侧重于主贷款对象。完整的提取可能需要针对 Document Manager Placeholder (LLC_BI__Document_Manager_Placeholder__c) 等对象创建额外的报表并合并结果。
a 查询示例 config
/*
This is a configuration and transformation guide, not a single executable query.
The process involves creating two reports in Salesforce, exporting them, and then transforming the data.
*/
-- Step 1: Configuration for Report 1: 'Loan Creation Report'
-- Report Type: Loans (LLC_BI__Loan__c)
-- Columns:
-- LLC_BI__Loan__c.Name (renamed to LoanApplicationId)
-- LLC_BI__Loan__c.CreatedDate (used for EventTime)
-- LLC_BI__Loan__c.CreatedById (user lookup, for AssignedUser)
-- LLC_BI__Loan__c.LLC_BI__Product_Package__c (for LoanProductType)
-- LLC_BI__Loan__c.LLC_BI__Amount__c (for LoanAmount)
-- LLC_BI__Loan__c.LLC_BI__Stage__a (for initial state)
-- [Other required attributes]
-- Filter:
-- CreatedDate >= [Your Start Date] AND CreatedDate <= [Your End Date]
-- Step 2: Configuration for Report 2: 'Loan History Report'
-- Report Type: Loans with Loan History (Custom Report Type)
-- Columns:
-- LLC_BI__Loan__c.Name (renamed to LoanApplicationId)
-- LoanHistory.Field (maps to 'Field/Event')
-- LoanHistory.OldValue
-- LoanHistory.NewValue
-- LoanHistory.CreatedDate (renamed to EventTime)
-- LoanHistory.CreatedById (user lookup, for AssignedUser)
-- [Other required attributes from the parent Loan object]
-- Filter:
-- Loan:CreatedDate >= [Your Start Date] AND Loan:CreatedDate <= [Your End Date]
-- AND LoanHistory.Field IN ('Stage', 'Status', '[Your Risk Rating Field]', '[Your Credit Check Field]')
-- Step 3: Post-Export Transformation Logic (to be applied with Python, Excel, etc.)
-- This logic transforms the raw report data into a final event log.
SELECT
LoanApplicationId,
'Loan Application Created' AS ActivityName,
EventTime,
AssignedUser,
LoanProductType,
LoanAmount,
-- ... other attributes
FROM [Exported Loan Creation Report]
UNION ALL
SELECT
LoanApplicationId,
CASE
WHEN Field = 'Stage' AND NewValue = 'Initial Review' THEN 'Initial Review Performed'
WHEN Field = 'Stage' AND NewValue = 'Underwriting' THEN 'Underwriting Commenced'
WHEN Field = 'Stage' AND OldValue = 'Underwriting' THEN 'Underwriting Completed'
WHEN Field = 'Stage' AND NewValue = 'Booked' THEN 'Funds Disbursed'
WHEN Field = 'Stage' AND NewValue = 'Declined' THEN 'Loan Declined'
WHEN Field = 'Stage' AND NewValue = 'Withdrawn' THEN 'Application Withdrawn'
WHEN Field = '[Your Risk Rating Field]' AND OldValue IS NULL THEN 'Risk Assessment Performed'
WHEN Field = '[Your Credit Check Field]' AND NewValue = 'Complete' THEN 'Credit Check Completed'
WHEN Field = 'Status' AND NewValue = 'Approved' THEN 'Loan Decision Rendered'
WHEN Field = 'Status' AND NewValue = 'Offer Generated' THEN 'Loan Offer Generated'
WHEN Field = 'Status' AND NewValue = 'Offer Accepted' THEN 'Loan Offer Accepted'
WHEN Field = 'Status' AND NewValue = 'Agreement Signed' THEN 'Loan Agreement Signed'
-- Note: Document activities are difficult to track this way and may require a separate report.
-- These are placeholders assuming a status field is used.
WHEN Field = 'Status' AND NewValue = 'Docs Requested' THEN 'Supporting Documents Requested'
WHEN Field = 'Status' AND NewValue = 'Docs Received' THEN 'Supporting Documents Received'
END AS ActivityName,
EventTime,
AssignedUser,
-- ... other attributes can be joined from the Loan Creation Report by LoanApplicationId
[LoanProductType],
[LoanAmount]
FROM [Exported Loan History Report]
WHERE ActivityName IS NOT NULL; -- Filter out unmapped field changes 步骤
- 前提条件:确保您拥有具有 API 访问权限的 Salesforce 用户账号,并对 nCino 贷款 (LLC_BI__Loan__c)、账户 (Account) 及相关的历史 (History) 对象拥有读取权限。此外,还需要能够访问 SOQL 执行工具,如 Salesforce Workbench、开发人员控制台 (Developer Console) 或其他连接的应用程序。
- 访问 SOQL 工具:登录您首选的 Salesforce data 访问工具。如果使用 Salesforce Workbench,请导航至该站点,选择您的环境,接受条款并使用 Salesforce 凭据登录。
- 选择 SOQL 查询:在 Workbench 中,进入“Queries”选项卡并选择“SOQL Query”。如果是开发人员控制台,请点击底部的“Query Editor”选项卡。
- 准备查询语句:复制本文档“查询”部分提供的完整 SOQL 查询语句。
- 配置占位符:在执行之前,您必须修改查询中的占位符。将
'YYYY-MM-DDTHH:MM:SSZ'替换为您提取周期所需的开始和结束日期。检查阶段和状态名称(如'[Underwriting Stage Name]'),并将其更新为与您的 nCino 环境中配置的精确值一致。 - 执行查询:将配置好的查询语句粘贴到查询编辑器窗口中。
- 处理大数据集:如果查询超时或达到 Salesforce 调控器限制,您需要分批执行。缩小日期范围(例如:一次提取一个月)并在之后合并结果。
- 查看结果:执行后,工具将以表格形式显示结果。验证
LoanApplicationId、ActivityName和EventTime列是否按预期填充。 - 导出数据:使用工具的导出功能保存结果。在 Workbench 中,选择“Bulk CSV”作为“View As”选项,然后点击“Query”按钮,系统将生成一个 CSV 文件。
- 定稿上传:打开导出的 CSV 文件。确保列标题符合 Process Mining 工具的要求。现在,该文件已准备就绪,可以作为 event 日志上传到 ProcessMind。
配置
- Salesforce API 访问权限:您的 Salesforce 用户配置文件必须具备“API 已启用”权限,才能使用 Workbench 等工具。
- 对象权限:您至少需要对以下 Salesforce 对象具有读取权限:LLC_BI__Loan__c、LLC_BI__Loan__cHistory、Account 以及 User。
- 字段历史追踪:必须在 Salesforce 设置中为贷款对象的关键字段(特别是 LLC_BI__Stage__c 和 LLC_BI__Status__c)启用“字段历史追踪”。否则,大部分活动将无法被捕获。
- 日期范围:查询包含开始和结束日期占位符(
'YYYY-MM-DDTHH:MM:SSZ')。对于初步分析,建议选择 3 到 6 个月的时间段,以平衡 data 数量与洞察深度。对于高 data 量的环境,可考虑先从较短的时间段开始。 - 阶段与状态名称:查询使用了
'[Underwriting Stage Name]'和'[Declined Stage Name]'等占位符。您必须咨询您的 nCino 系统管理员,获取贷款发放流程中使用的阶段和状态的准确 API 名称,并据此更新查询语句。
a 查询示例 sql
SELECT
Loan.Name AS LoanApplicationId,
'Loan Application Created' AS ActivityName,
Loan.CreatedDate AS EventTime,
Loan.LastModifiedDate AS EventEndTime,
Loan.Owner.Name AS AssignedUser,
Loan.LLC_BI__lookupKey__c AS AssignedDepartment, -- Or another relevant department field
Loan.LLC_BI__Status__c AS DecisionOutcome,
Loan.LLC_BI__Product_Line__c AS LoanProductType,
Loan.LLC_BI__Amount__c AS LoanAmount,
Loan.LLC_BI__Application_Channel__c AS ApplicationChannel, -- Placeholder for custom channel field
'nCino' AS SourceSystemName,
SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__c Loan
WHERE Loan.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND Loan.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Initial Review Performed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Initial Review Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Supporting Documents Requested' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Document Collection Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Supporting Documents Received' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.OldValue = '[Document Collection Stage Name]' AND h.NewValue != '[Document Collection Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Credit Check Completed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Credit Check Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SZZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Underwriting Commenced' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Underwriting Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Risk Assessment Performed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Risk_Rating__c' AND h.NewValue != NULL
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Underwriting Completed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.OldValue = '[Underwriting Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Decision Rendered' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue IN ('[Approved Stage Name]', '[Declined Stage Name]')
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Offer Generated' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Offer Generated Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Offer Accepted' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Offer Accepted Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Agreement Signed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Closing Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Funds Disbursed' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Booked Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Loan Declined' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Declined Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ
UNION ALL
SELECT
Parent.Name AS LoanApplicationId,
'Application Withdrawn' AS ActivityName,
h.CreatedDate AS EventTime,
NULL AS EventEndTime,
h.CreatedBy.Name AS AssignedUser,
Parent.LLC_BI__lookupKey__c AS AssignedDepartment,
Parent.LLC_BI__Status__c AS DecisionOutcome,
Parent.LLC_BI__Product_Line__c AS LoanProductType,
Parent.LLC_BI__Amount__c AS LoanAmount,
Parent.LLC_BI__Application_Channel__c AS ApplicationChannel,
'nCino' AS SourceSystemName,
Parent.SystemModstamp AS LastDataUpdateTimestamp
FROM LLC_BI__Loan__cHistory h
WHERE h.Field = 'LLC_BI__Stage__c' AND h.NewValue = '[Withdrawn Stage Name]'
AND h.CreatedDate >= YYYY-MM-DDTHH:MM:SSZ AND h.CreatedDate <= YYYY-MM-DDTHH:MM:SSZ