零售店身份验证预构建组件

零售店身份验证预构建组件会从用户收集信息,以便对用户进行所需级别的身份验证。此组件涵盖零售行业常见的身份验证要求,但不局限于此行业。此组件使用电话号码收集预构建组件来收集和验证用户详细信息。

身份验证级别

不同的预构建组件需要多级身份验证,级别越高,需要提供的用户信息就越多。借助零售店身份验证组件,用户可以进行第 0 级(ANI 匹配)或第 1 级(基本)身份验证,如“身份验证级别”表所述。

身份验证级别 使用要求
级别 0:ANI 匹配 用户通过拨打电话或提供与注册账号对应的手机号码来进行身份验证。

用户可以使用“问候语”预构建组件进行身份验证,以达到第 0 级。
第 1 级:基本 通过验证发送到用户电子邮件地址或手机号码的动态密码 (OTP) 代码来对用户进行身份验证。

支持的用户类型

零售店身份验证组件可为拥有已注册的手机号码和电子邮件的用户提供支持。

限制

除了常见的预构建组件限制之外,此预构建组件还存在以下限制:

  • 动态密码只会发送到用户之前注册的手机号码或电子邮件地址。该组件不会使用动态密码来对通过未注册在其账号中的备用手机号码致电的客户进行身份验证。当用户使用备用手机号码拨打电话时,系统会使用安全问题来验证来电者。
  • 此组件不会加密任何数据。

对话框示例

以下示例对话框演示了此预构建组件处理的常见场景。示例对话框演示了使用电话功能调用组件时的行为,该功能会在对话开始时触发默认欢迎 intent 和第一个客服人员响应。

第 0 级身份验证成功:ANI 匹配

用户使用已注册到现有账号的手机号码拨打电话,确认其账号,并成功通过第 0 级身份验证。

用户输入 客服人员回复
您好!您拨打的号码已与 John 的账号相关联。您是咨询他人的订单吗?如果是,请说“是”,否则请说“否”。
谢谢,John。我们已成功识别您的身份。

第 1 级身份验证成功:动态密码

用户使用无法识别的手机号码拨打电话。该组件会收集用户的已注册手机号码,然后发送动态密码并要求用户确认发送到用户所选渠道的动态密码。用户能够提供有效的 OTP,并成功通过第 1 级身份验证。

用户输入 客服人员回复
我们找不到与我们相关联的此手机号码。请向我们提供注册的手机号码。
客服人员使用电话号码收集预构建组件收集电话号码
太棒了,我们已收集电话号码。

出于安全考虑,我们需要验证您的身份,因此会向您发送一个验证码。您希望通过手机还是电子邮件接收验证码?
电话
确认一下,您想在手机上接收动态密码吗?请说“是”或“否”。
我们已向尾号为 0000 的注册手机号码发送了一组验证码。这可能需要几秒钟的时间。您可以确认一下代码吗?
123457
谢谢,John。我们已成功识别您的身份。

命名规则

此预构建组件使用以下命名惯例:

功能 格式 示例
流程 [组件名称] 零售店身份验证
特定于组件的 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 定义最终用户将进行身份验证的身份验证级别。有效值为 01 整数
$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 整数

如需为此组件配置输入参数,请展开相应部分查看说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择构建标签页。
  5. 点击部分中的导入的组件。
  6. 点击页面部分中的“首页”。
  7. 点击“开始”页面中的 true 路线。
  8. 在“路线”窗口中,根据需要修改参数预设值。
  9. 点击保存

输出参数

输出参数是会话参数,会在退出组件后保持有效状态。这些参数包含组件收集的重要信息。此预构建组件会为以下输出参数提供值:

参数名称 说明 输出格式
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 内置事件
字符串

基本设置

如需设置此预构建组件,请执行以下操作:

  1. 导入预构建组件
  2. 使用描述外部服务的配置配置提供的灵活的 Webhook,请参阅下文中的 Webhook 设置。

网络钩子设置

如需使用此组件,您需要配置随附的灵活的 Webhook,以从外部服务检索所需信息。

验证用户详细信息

该组件使用 prebuilt_components_retail_authentication:verify_user_details webhook 根据提供的电话号码提取用户账号详细信息。

API 请求参数

该组件会将以下参数作为 API 请求的输入提供给 API 请求。

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串

API 响应参数

系统会从 API 响应中提取以下参数,以供组件使用。

参数名称 说明 输出格式
电子邮件 用于注册账号的电子邮件地址。 字符串
all_recent_order_id 与已验证身份的用户关联的订单 ID 的列表,按订单下单日期降序排序。数组的第一个元素代表最近的订单。如果用户没有订单,此参数的值为 null 列表(字符串)
user_first_name 用户的名字,用于问候用户并确认账号的所有权。 字符串

如需为此组件配置“验证用户详细信息”Webhook,请展开相应部分查看说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子
  6. 选择 prebuilt_components_retail_authentication:verify_user_details webhook。
  7. 将“对话式 AI 助理 (Dialogflow CX)”的 Webhook 网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法
  8. 查看并更新请求正文,为您的网络钩子构成正确的请求格式。
  9. 查看并更新响应配置,以从您的 webhook 响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
  10. 根据需要查看并更新身份验证设置。
  11. 点击保存

发送动态密码

该组件使用 prebuilt_components_retail_authentication:send_otp Webhook 将动态密码 (OTP) 发送到最终用户选择的已注册渠道。

API 请求参数

该组件会将以下参数作为 API 请求的输入提供给 API 请求。

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$flow.channel 用户选择用于接收 OTP 的渠道。有效值由 prebuilt_components_channel_email_phone 自定义实体定义。默认情况下,支持 emailphone 字符串

API 响应参数

系统会从 API 响应中提取以下参数,以供组件使用。

参数名称 说明 输出格式
generated_otp 系统使用所选渠道生成并发送给用户的 OTP 的值。 字符串

如需为此组件配置“发送 OTP”Webhook,请展开相应部分查看相关说明。

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子
  6. 选择 prebuilt_components_retail_authentication:send_otp webhook。
  7. 将“对话式 AI 助理 (Dialogflow CX)”的 Webhook 网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法
  8. 查看并更新请求正文,为您的网络钩子构成正确的请求格式。
  9. 查看并更新响应配置,以从您的 webhook 响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
  10. 根据需要查看并更新身份验证设置。
  11. 点击保存

完成

您的客服人员及其网络钩子现在应该已设置完毕,可以进行测试了。