决策图如何将检查结果转化为批准、审核或拒绝

Charles Archibong, 联合创始人
验证完成后,工作流的决策图会收集结果,遍历一组封闭的字段,最终确定批准、审核或拒绝。该结果决定了客户的处理方式,而不会修改验证过程中发现的内容。

要点
- 检查报告事实;决策图将这些事实转化为批准、审核或拒绝。
- 结果决定了客户的态度,但绝不会改变验证本身的结果。
- 字段关闭失败:缺少值会导致比较失败,因此请使用 exists 测试是否存在。
- 每次运行都固定到它开始时的工作流程版本,因此重新发布永远不会改变正在进行中的决策。
工作流程分两个阶段决定结果。首先,检查程序运行并报告事实:文件已阅读,政府记录匹配,自拍照与记录照片的匹配度为 71 分,监视名单屏幕发现可能匹配项。然后,工作流程的决策图读取这些事实,沿着您绘制的分支进行操作,最终决定批准、审核或拒绝。检查程序本身并不决定某人是否被录用,而是由决策图决定。
将这些阶段分开是关键所在。事实保持不变且可审计,而解释这些事实的政策则集中在一处,您可以通过重新发布来更改它。本文解释了运行是如何运作的。 Toden 工作流程以及如何设计一个图表,将正确的案例发送给合适的人。
验证完成后会发生什么?
当验证达到终止状态时,引擎会启动一次运行。根据决策文档 (在新标签页中打开),一次运行会执行以下四项操作:
收集数据:验证结果、客户实体和关联身份、任何筛选结果以及设备智能信号。
从起始节点开始遍历图,评估每个分支并执行每个操作。
到达终端状态节点,该节点决定结果。
记录其行进路径、轨迹,并发送
workflow.run.completed网络钩子。
每次验证都只有一次运行,并且运行是幂等的,因此重试或重新处理的验证永远不会被判定两次。
四种类型的节点
节点 | 它的作用 |
|---|---|
分支 | 评估条件并跟踪其 |
行动 | 副作用:标记运行,发送 |
等待 | 保持运行直到 AML 筛选,或者企业的关键人员,解决,直到超时为止。 |
地位 | 终端。将结果设置为 |
您可以将图构建为简单的有序规则列表,也可以在高级画布上构建。规则列表适用于大多数入职策略,这些策略通常是一系列“如果发生这种情况,则出现那种结果”的语句,并在最后设置一个默认值。
分支可以读取什么
条件读取一个封闭的字段命名空间,这些字段按事实来源分组:
verification.*检查结果,例如status,reasonCode,assuranceLevel(chip,gov_db或者document),facialMatch,facialConfidence,facialMatchSource,age和documentExpired。entity.*和identity.*:客户的风险等级和处置,以及关联身份的信任状态。screening.*:是否有任何监视列表屏幕匹配,是否确认匹配,每种屏幕类型的状态,以及最高匹配得分。device.*和ip.*设备智能,例如有多少其他人使用过同一设备以及 IP 是否属于数据中心。email.*和phone.*:联系方式验证结果。business.*和keyPeople.*对企业进行核实,并对其关键人员进行尽职调查。questionnaire.<key>:流程中任何问卷的答案。
操作员是eq,neq,gt,gte,lt,lte,in,nin,contains和exists结合all,any和not。
编写条件时,有两条规则决定了规则的编写方式。首先,如果命名空间中不存在某个字段,发布时该字段会被拒绝,因此拼写错误会立即显现,而不是默默地导致规则永远无法匹配。其次,空值会导致比较失败。如果因为没有运行比较而导致验证结果不可信,verification.facialConfidence gte 80是假的,不是真的。当缺失值很重要时,要明确地用以下方式进行测试:exists。
结果会改变什么,又不会改变什么。
状态节点设定实体的处置状态,即对个人或企业的合规性决定:
结果 | 实体处置 |
|---|---|
|
|
|
|
|
|
它绝不会推翻验证自身的结果。验证失败后,结果仍然会显示为失败。checkStatus即使你的图表显示如此,而且第一条也显示如此。status系统会记录审批过程。这样,审计人员之后就能看到例外情况以及该例外情况被覆盖的事实。
您的后端会收到结果。workflow.run.completed,以及在verification.status_updated和source: "workflow"每当判定结果改变验证状态时,如何处理,例如授予访问权限或冻结账户,都由你的代码决定。
消费贷款机构的图表示例
假设一家贷款机构正在尼日利亚开展个人客户准入流程,该流程如下: AML 筛查。其政策以有序规则列表的形式写成,可能如下所示:
等待筛选完成,直至超时。
如果
screening.confirmed确实,下降。如果
screening.anyMatch如果属实,请立案,然后进行审查。如果
verification.status不是VERIFIED,衰退。如果
device.matchedEntities如果是 2 个或更多,则进行审核。如果
verification.facialMatchSource是document,审查。如果
verification.assuranceLevel是chip或者gov_db,批准。否则,请复习。
该命令体现了相关政策。首先进行背景审查,因为即使文件完美无缺,如果申请人已被列入监视名单,也应拒绝其申请。设备审查规则优先于审批,因为即使个人身份无可挑剔,其他几位申请人使用的手机也值得审查。第六条规则的存在是因为,仅与文件上打印的照片进行比对的自拍照,其证据效力弱于与政府记录或经核实的芯片照片进行比对。
现在让三位申请人完成测试:
申请人 | 事实 | 决定性规则 | 结果 |
|---|---|---|---|
一个: BVN 屏幕清洁,记录照片匹配 |
| 7 | 批准 |
B:护照,可能 PEP 屏幕上的匹配 |
| 3 | 案件已立案,进行审查 |
C: NIN 自拍不匹配 |
| 4 | 衰退 |
申请人 C 说明了为什么图表读取的是事实而不是替换事实。如果您的政策是将自拍不匹配的情况发送给审核,请将规则 4 更改为路由verification.reasonCode eq selfie_mismatch在正式拒绝之前需要进行审核。审核员查看照片后批准,并出具验证文件。approved和checkStatus: "failed"这两个说法都正确。
Toden 船舶模板,例如 KYC 加 AML 筛选和风险分级入职流程,都基于预先绘制好的决策图。这只是一个合理的初稿,并非未经审阅就应发布的政策。
发布前值得了解的行为
运行会被固定。运行会使用其开始时的工作流版本和图表快照。重新发布更严格的图表不会改变正在进行中的决策,这一点至关重要,因为运行可能需要等待企业董事数天才能完成。
筛选流程仅等待第一个回复。筛选等待将持续到第一个问题得到解决为止。后续的重新筛选将通过持续监控来处理,而不是重新决定是否批准。
人的决策优先于图表。审核人的决定优先于工作流程的决定。如果团队成员在运行仍在等待期间做出决定,则该决定有效,工作流程之后的判定不会改变状态。
发动机故障并不等同于性能下降。 workflow.run.failed这意味着发动机无法完成运行。应将其视为需要调查的事故,绝不能将其视为对客户的拒收。
操作会产生副作用。创建案例或发送 Webhook 并不会结束运行。流程图会一直运行,直到到达状态节点,因此请确保每条路径都到达状态节点。
绘制第一张图表的检查清单
在制定任何方案之前,包括默认方案,先用简单的句子写出政策。
先设置硬性限制(已确认的观察名单匹配项),最后设置审批。
对于每次检查失败,决定是拒绝还是提交复审,并将此记录为规则。
使用
exists凡是缺失值都应该有意义的地方。对需要调查人员而非仅仅是审查人员介入的案件立案。
在发布到生产环境之前,请使用已发布的测试 ID 在沙箱中测试每个路径。
储存
workflowVersion记录每个结果,以便之后可以显示客户遵循了哪些规则。
参考来源



