零售身份验证预建组件会收集用户的信息,以将用户身份验证到所需的身份验证级别。 此组件涵盖了零售行业常见但并非独有的身份验证要求。此组件使用电话号码收集预构建组件来收集和验证用户详细信息。
身份验证级别
不同的预构建组件需要多个级别的身份验证,级别越高,需要提供的用户信息就越多,才能对用户进行身份验证。零售身份验证组件允许用户按照“身份验证级别”表中的说明,对级别 0(ANI 匹配)或级别 1(基本)进行身份验证。
| 身份验证级别 | 要求 |
|---|---|
| 级别 0:ANI 匹配 | 用户通过拨打电话或提供与注册账号对应的手机号码进行身份验证。 用户可以使用问候预建组件将身份验证级别设为 0。 |
| 级别 1:基本 | 通过验证发送到用户电子邮件地址或手机号码的动态密码 (OTP) 代码来对用户进行身份验证。 |
支持的用户类型
零售身份验证组件为已注册手机号码和电子邮件地址的用户提供支持。
限制
除了常见的预构建组件限制之外,此预构建组件还存在以下限制:
- 动态密码只会发送到之前已向用户注册的手机号码或电子邮件地址。该组件不会使用 OTP 来验证通过未注册到客户账号的备用手机号码拨打的客户。 当用户使用备用手机号码来电时,系统会使用安全问题来验证来电者的身份。
- 此组件不会加密任何数据。
对话示例
以下示例对话展示了此预构建组件处理的常见场景。示例对话展示了使用电话调用组件时的行为,这会在对话开始时触发默认欢迎意图和第一个代理响应。
级别 0 身份验证成功:ANI 匹配
用户使用已注册现有账号的手机号码来电,确认其账号,并成功通过 0 级身份验证。
| 用户输入 | 智能体回答 |
|---|---|
| 您好,您拨打的号码与 John 的账号相关联。您是否要咨询他人的订单?如果情况确实如此,请说“是”,否则请说“否”。 | |
| 否 | |
| 谢谢 John。您已成功通过身份验证。 |
第 1 级身份验证成功:动态密码
用户使用无法识别的手机号码来电。该组件会收集用户注册的手机号码,然后发送动态密码并要求用户确认该动态密码是否已发送到用户选择的渠道。用户能够提供有效的 OTP,并且成功通过了 1 级身份验证。
| 用户输入 | 智能体回答 |
|---|---|
| 我们找不到与此手机号码相关联的账号。请向我们提供注册手机号码。 | |
| 代理使用电话号码收集预构建组件收集电话号码 | |
| 太棒了,我们已完成电话号码收集。 出于安全考虑,我们需要验证您的身份,因此会向您发送验证码。您希望通过手机还是电子邮件接收验证码? |
|
| 电话 | |
| 确认一下,您是否希望在手机上接收动态密码?请说“是”或“否”。 | |
| 是 | |
| 我们已向您注册的尾号为 0000 的手机号码发送验证码。这可能需要几秒钟的时间。您能否确认一下此代码? | |
| 123457 | |
| 谢谢 John。您已成功通过身份验证。 |
命名规则
此预构建组件使用以下命名惯例:
| 功能 | 格式 | 示例 |
|---|---|---|
| Flow | [组件名称] | 零售身份验证 |
| 特定于组件的 intent | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_retail_authentication_incorrect_phone_number |
| 实体类型 | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_channel_email_phone |
| 网络钩子 | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_retail_authentication:verify_user_details |
输入参数
输入参数是用于配置组件某些行为的参数。流程中的一个或多个条件将使用这些参数来确定组件应如何运行。必须在组件的起始页上设置流程范围的参数,如下所述。会话范围的参数可以通过调用流程设置,也可以在此组件的起始页面上设置。
此预构建组件接受以下输入参数:
| 参数名称 | 说明 | 输入格式 |
|---|---|---|
| $session.params.auth_level_req | 定义最终用户将通过的身份验证级别。有效值为 0 或 1。 |
整数 |
| $session.params.auth_level | (可选)表示最终用户的当前身份验证级别。 | 整数 |
| $session.params.phone_number | (可选)最终用户的手机号码。如果未提供此参数,该组件将从最终用户处收集手机号码。 | 字符串 |
| $flow.max_retry_phone_number | 指定在收集用户电话号码时允许的重试次数。默认值为 3。 |
整数 |
| $flow.max_retry_otp | 指定在收集动态密码 (OTP) 时允许的重试次数。默认值为 3。 |
整数 |
| $flow.max_retry_otp_not_received | 指定在未收到一次性密码 (OTP) 时允许的重试次数。默认值为 1。 |
整数 |
| $flow.max_retry_otp_confirm_channel | 指定在收集用于接收动态密码 (OTP) 的渠道时允许的重试次数。默认值为 3。 |
整数 |
如需配置此组件的输入参数,请展开即可查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择构建标签页。
- 点击流部分中导入的组件。
- 点击页面部分中的“起始页”。
- 点击起始页中的 true 路线。
- 在“路线”窗口中,根据需要修改参数预设值。
- 点击保存。
输出参数
输出参数是会话参数,在退出组件后仍会保持有效。这些参数包含组件收集的重要信息。此预构建组件可为以下输出参数提供值:
| 参数名称 | 说明 | 输出格式 |
|---|---|---|
| auth_level | 表示最终用户的当前身份验证级别。 | 整数 |
| all_recent_order_id | 此参数列出了与已通过身份验证的用户相关联的订单 ID,并按订单放置日期降序排序。数组的第一个元素表示最近的订单。如果用户没有订单,此形参的值为 null。 |
列表(字符串) |
| phone_number | 用户的本地手机号码(不含国家/地区代码),用于标识用户。 | 字符串 |
| 电子邮件 | 与账号关联的电子邮件地址。 | 字符串 |
| user_first_name | 用户的名字,用于问候用户并确认账号的所有权。 | 字符串 |
| transfer_reason | 此参数用于指明流程退出(如果未成功)的原因。返回值包括:agent:最终用户在对话期间的某个时间点请求人工客服。denial_of_information:最终用户拒绝分享组件请求的信息。max_no_input:对话达到无输入事件的最大重试次数。请参阅无输入内置事件。max_no_match:对话已达到无匹配事件的最大重试次数。请参阅内置的“不匹配”事件。webhook_error:发生了网络钩子错误。请参阅 webhook.error 内置事件。webhook_not_found:无法访问网络钩子网址。请参阅webhook.error.not-found 内置事件。 |
字符串 |
基本设置
如需设置此预建组件,请执行以下操作:
- 导入预构建组件。
- 配置所提供的灵活的 Webhook,并提供描述外部服务的配置,请参阅下文中的“Webhook 设置”。
网络钩子设置
如需使用此组件,您需要配置随附的灵活的 Webhook,以便从外部服务检索所需的信息。
验证用户详细信息
组件使用 prebuilt_components_retail_authentication:verify_user_details Webhook 根据提供的电话号码提取用户账号详细信息。
API 请求参数
以下参数由组件提供,作为 API 请求的输入。
| 参数名称 | 说明 | 输入格式 |
|---|---|---|
| $session.params.phone_number | 用户的本地手机号码(不含国家/地区代码),用于标识用户。 | 字符串 |
API 响应参数
以下参数会从 API 响应中提取,供组件使用。
| 参数名称 | 说明 | 输出格式 |
|---|---|---|
| 电子邮件 | 与账号关联的电子邮件地址。 | 字符串 |
| all_recent_order_id | 与已通过身份验证的用户关联的订单 ID 的列表,按订单放置日期降序排序。数组的第一个元素表示最近的订单。如果用户没有订单,此形参的值为 null。 |
列表(字符串) |
| user_first_name | 用户的名字,用于问候用户并确认账号的所有权。 | 字符串 |
如需为此组件配置“验证用户详细信息”Webhook,请展开即可查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 prebuilt_components_retail_authentication:verify_user_details webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法。
- 检查并更新请求正文,以形成适合您网络钩子的正确请求格式。
- 查看并更新响应配置,以从 Webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
发送动态密码
该组件使用 prebuilt_components_retail_authentication:send_otp Webhook 向最终用户选择的已注册渠道发送动态密码 (OTP)。
API 请求参数
以下参数由组件提供,作为 API 请求的输入。
| 参数名称 | 说明 | 输入格式 |
|---|---|---|
| $session.params.phone_number | 用户的本地手机号码(不含国家/地区代码),用于标识用户。 | 字符串 |
| $flow.channel | 用户选择接收 OTP 的渠道。有效值由 prebuilt_components_channel_email_phone 自定义实体定义。默认情况下,支持 email 和 phone。 |
字符串 |
API 响应参数
以下参数会从 API 响应中提取,供组件使用。
| 参数名称 | 说明 | 输出格式 |
|---|---|---|
| generated_otp | 生成并使用所选渠道发送给用户的一次性密码的值。 | 字符串 |
如需为此组件配置“发送 OTP”Webhook,请展开本部分以查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 prebuilt_components_retail_authentication:send_otp webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法。
- 检查并更新请求正文,以形成适合您网络钩子的正确请求格式。
- 查看并更新响应配置,以从 Webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
完成
您的代理及其 webhook 现在应已设置完毕,可以进行测试了。