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

零售身份验证预构建组件会收集信息,以便将客户身份验证到所需的身份验证级别。此预构建组件涵盖了零售业常见但并非独有的身份验证要求。它使用手机号码收集预构建组件来收集和验证客户的手机详细信息。

身份验证级别

不同的预构建组件需要多级身份验证,级别越高,需要的用户信息越多。零售身份验证组件可让用户进行 0 级(ANI 匹配)或 1 级(基本)身份验证,如下表所述。

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

用户可以使用问候语预构建组件进行 0 级身份验证。
第 1 级:基本 系统会向用户的邮箱或手机号码发送动态密码 (OTP) 验证码,用户通过验证该验证码来完成身份验证。

支持的用户类型

零售身份验证组件支持拥有已注册手机号码和邮箱的用户。

限制

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

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

对话示例

这些示例对话展示了预构建组件处理的常见场景。它们显示了使用电话服务调用组件时的行为,这会在对话开始时触发默认欢迎 intent 和第一个代理响应。

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

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

用户输入 智能体回答
您好,您拨打的号码与 John 的账号关联。您是在咨询他人的订单吗?如果是,请说“是”,否则请说“否”。
否
谢谢 John。您已成功通过身份验证。

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

  1. 用户通过无法识别的手机号码拨打电话。
  2. 该组件会收集用户注册的手机号码,然后发送动态密码并要求用户确认发送到其所选渠道的动态密码。
  3. 用户提供有效的动态密码,并成功通过第 1 级身份验证。
用户输入 智能体回答
我们找不到与我们关联的这个手机号码。请向我们提供注册的手机号码。
代理使用电话号码收集预构建组件收集电话号码。
太好了,我们已收集到电话号码。

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

命名规则

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

功能 格式 示例
Flow [Component Name] 零售身份验证
组件特定 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。 整数

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

  1. 打开 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择构建标签页。
  5. 在流部分中点击导入的组件。
  6. 点击页面部分中的“Start Page”。
  7. 点击“Start Page”中的 true 路由。
  8. 在“Route”(路线)窗口中,根据需要修改参数预设值。
  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 错误。请参阅 webhook.error 内置事件。

webhook_not_found:网络钩子网址无法访问。请参阅 webhook.error.not-found 内置事件。
字符串

基本设置

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

  1. 导入预构建组件。
  2. 使用描述外部服务的配置来配置提供的灵活 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,请展开以查看说明。

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

发送动态密码

该组件使用 prebuilt_components_retail_authentication:send_otp webhook 向用户选择的已注册渠道发送动态密码 (OTP)。

API 请求参数

该组件提供以下参数作为 API 请求的输入:

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

API 响应参数

该组件会从 API 响应中提取以下参数:

参数名称 说明 输出格式
generated_otp 通过所选渠道生成并发送给用户的动态密码的值。 字符串

如需为此组件配置“发送动态密码”Webhook,请展开查看相关说明。

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

完成

此预构建组件及其 webhook 现已设置完毕,可以进行测试。