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

零售身份验证 预构建组件会收集 用户的信息,以将用户验证到所需的身份验证级别。 此组件涵盖零售行业常见但不专有的身份验证要求。此组件使用 电话号码收集 预构建组件来收集和验证用户详细信息。

身份验证级别

不同的预构建组件需要多个级别的身份验证,级别越高,验证用户身份所需的用户信息就越多。零售身份验证组件允许用户验证到身份验证级别表中所述的 Level 0 (ANI 匹配) 或 Level 1(基本)。

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

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

支持的用户类型

零售身份验证组件为注册了手机号码和电子邮件地址的用户提供支持。

限制

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

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

对话示例

以下对话示例展示了此预构建组件处理的常见场景。这些对话示例展示了使用电话服务调用组件时的行为,该行为会在对话开始时触发默认欢迎意图和第一个智能体回答。

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

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

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

Level 1 身份验证成功:OTP

用户使用无法识别的手机号码拨打电话。组件会收集用户的注册手机号码,然后向用户选择的渠道发送 OTP 并要求用户确认。用户能够提供有效的 OTP,并成功验证到 Level 1。

用户输入 智能体回答
我们找不到与此手机号码关联的账号。请向我们提供注册手机号码。
智能体使用电话号码收集预构建组件收集电话号码
太棒了,我们已完成电话号码收集。

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

命名规则

此预构建组件使用以下命名规则:

功能 格式 示例
流 [组件名称] 零售身份验证
组件专用意图 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. 点击页面 部分中的起始页。
  7. 点击起始页中的 true 路由。
  8. 在“路由”窗口中,根据需要修改参数预设 值。
  9. 点击保存 。

输出参数

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

参数名称 说明 输出格式
auth_level 表示最终用户的当前身份验证级别。 整数
all_recent_order_id 此参数列出了与经过身份验证的用户相关联的订单 ID,并按订单下达日期降序排序。数组的第一个元素表示最近的订单。如果用户没有订单,此参数的值为 null。 列表(字符串)
phone_number 用户的本地手机号码(不含国家/地区代码),用于标识用户。 字符串
email 注册到账号的电子邮件地址。 字符串
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. 使用描述外部服务的配置来配置提供的 灵活网络钩子,请参阅下面的网络钩子 设置。

网络钩子设置

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

验证用户详细信息

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

API 请求参数

以下参数由组件提供,作为 API 请求的输入。

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

API 响应参数

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

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

如需为此组件配置“验证用户详细信息”网络钩子,请展开即可查看说明。

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

发送 OTP

组件使用 prebuilt_components_retail_authentication:send_otp 网络钩子向最终用户选择的注册渠道发送动态密码 (OTP)。

API 请求参数

以下参数由组件提供,作为 API 请求的输入。

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

API 响应参数

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

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

如需为此组件配置“发送 OTP”网络钩子,请展开即可查看说明。

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

完成

您的代理及其网络钩子现在应已设置完毕,可以进行测试了。