# 搭建验证工作流

Source: https://help.didit.me/zh/workflows/build-a-verification-workflow
Updated: 2026-10-12

工作流是一个人要完成的一系列检查，以及每个结果对应的处理方式。这里介绍如何搭建、发布工作流，以及如何避免让它行为异常的常见错误。

工作流是**按应用**存在的，所以先确认你在正确的应用中。
标准流程用简单模式搭建，需要分支逻辑就用高级模式，然后要**发布**，草稿是不生效的。
会话会保留它开始时使用的版本，所以修改只影响新会话。

[Video: 无代码搭建 KYC 验证工作流 - Didit Academy](https://www.youtube.com/watch?v=7-nJ3JE20i4)

[Video: 手机验证：通过 SMS、WhatsApp、Viber 和 Telegram 发送 OTP - Didit Academy](https://www.youtube.com/watch?v=mybuK4SbU6o)

[Video: 邮箱验证：OTP 验证码、一次性邮箱和已泄露邮箱 - Didit Academy](https://www.youtube.com/watch?v=4zUl0o9bS0o)

**工作流**定义了一个人要经过哪些检查，例如证件文件、活体检测、人脸比对、AML 等，以及每个结果对应的处理方式。
每一次验证会话都是针对某个工作流运行的。

## 在哪里搭建

打开**身份验证 → 工作流 → 新建工作流**。选择个人 KYC 或企业 KYB、简单或高级模式以及模板，再点击**创建草稿**。确认应用和 Live 或 Sandbox 环境；行菜单可将工作流复制到另一个应用。

![Didit 控制台中的工作流列表](https://help.didit.me/screenshots/workflows-list-light.webp)

*工作流的作用范围限定在你当前所在的应用内。*

## 两种搭建方式

[Video: 简单版与高级版工作流构建器 - Didit Academy](https://www.youtube.com/watch?v=X6KBx-S_uvQ)

1. **简单模式**

   选择一个模板，**KYC**、**自适应年龄验证**、**生物识别再认证**或**地址验证**，然后开关你需要的检查项（活体检测、人脸比对、AML、NFC、手机、邮箱等）。
   这是搭建标准流程最快的方式。

2. **高级模式**

   使用可视化图形构建器添加条件分支：按国家、证件类型、年龄或某项检查的结果对用户分流，把不同结果导向不同路径。
   当你需要"按顺序运行这些检查"之外的逻辑时使用它。

3. **发布**

   已发布的版本为只读。通过**编辑工作流**创建新草稿并发布。**版本历史**可恢复旧版本。进行中的会话继续使用开始时的版本。

## 银行与位置核验

应用已启用相关功能时，可在工作流中添加**银行核验**或**位置核验**。银行设置包括连接、身份匹配、风险信号、结果和采集数据；支持的国家及金融数据取决于提供商和已启用的能力。位置设置控制精度、数据时效、允许区域，以及拒绝授权、位置不可用或规则不匹配时的处理方式。在会话的**银行**或**位置**区域查看返回的证据。看到设置选项并不代表所有提供商或客户端均支持该检查。

## 顺序比看起来更重要

因为一个被配置为拒绝的步骤会**中止整个工作流**，步骤的顺序既决定了用户的体验，也决定了你要付出的费用。
把一个便宜的风险检查放在昂贵检查组合的前面，可以在你为昂贵部分付费之前先过滤掉流量。

完整内容参见[决策规则与阈值](https://help.didit.me/zh/workflows/decision-rules)，这是本文之后应该读的下一篇文章，因为工作流的步骤只是它行为的一半。

## 可添加的每个模块

| 类别 | 模块 |
|---|---|
| 证件 | 身份证件验证、NFC、Document AI、地址证明 |
| 生物识别 | 被动活体检测、主动活体检测、人脸比对 1:1、人脸检索、生物识别认证、年龄估算 |
| 联系方式 | 手机验证、邮箱验证 |
| 数据 | 数据库验证、问卷 |
| 风险 | AML 筛查、持续 AML 监控、设备与 IP 分析 |

每启用一个模块，都会增加一次完成会话的费用，而你的每月套餐额度会支付这些费用（在免费套餐上，它不能支付手机验证）。
在批量开启多个模块之前，请先参见[哪些属于计费检查](https://help.didit.me/zh/billing-credits/what-counts-as-billable)。

## 查找你的工作流 ID

每个工作流都有唯一的 ID，会显示在控制台的**工作流**页面上。
如果你要通过 API 创建会话，就会用到它，参见[集成方式](https://help.didit.me/zh/integration/integration-options)。

## 控制检查失败时的处理方式

默认情况下，检查失败会拒绝该会话，用户最终会被告知验证未通过，你可以在会话详情中看到具体是哪项检查失败以及原因。
在**高级模式**中，你可以自行为每种结果设置路由：发送到**已拒绝**，或发送到**审核中**让团队成员做最终判断。

关于每种结果具体是什么样子，参见[每种会话状态的含义](https://help.didit.me/zh/verification-sessions/session-statuses)；如果你想让用户只重做失败的那一步，参见[让用户重新进行验证](https://help.didit.me/zh/verification-sessions/retry-a-verification)。

## 让工作流行为异常的常见原因

按实际发生的先后顺序：

1. **你编辑的是另一个工作流，或者是另一个应用下的副本。** 核对工作流 ID 是否与你的会话实际使用的一致。
2. **草稿从未被发布过。** 已保存的草稿不是正式版本。
3. **你用的是一个旧会话在测试。** 会话会保留创建时的配置。请创建一个新会话。
4. **允许了某种证件类型，但没有选择任何子类型**，这会匹配不到任何内容，而不是匹配所有内容。参见[支持的证件与国家](https://help.didit.me/zh/documents-coverage/supported-documents-and-countries)。
5. **前面的某个步骤拒绝并中止了流程**，导致你正在测试的步骤根本没有运行。
6. **复制的工作流没有完全带过所有内容。** 复制工作流后，请检查你关心的步骤和规则，而不要假设复制是完整无误的。

> **Note:** **问卷**检查的国家代码列表覆盖了绝大多数国家。
> 如果你需要的代码没有出现，请联系支持团队，而不要假设它不受支持。

## 在真实用户看到之前先测试

通过应用名称下的切换器进入 **Sandbox**，创建并使用测试 API 密钥。所有检查都被模拟，不收费，你可以指定结果。

[在沙盒中测试](https://help.didit.me/zh/getting-started/sandbox-and-testing)

## 下一步

- 设置每种结果对应的处理方式：[决策规则与阈值](https://help.didit.me/zh/workflows/decision-rules)
- 让流程匹配你的品牌：[自定义品牌和验证体验](https://help.didit.me/zh/workflows/customize-branding-and-experience)
- 无代码启动会话，或通过 API 自动化：[集成方式](https://help.didit.me/zh/integration/integration-options)
- 完整技术参考：[工作流](https://docs.didit.me/console/workflows)
