零售店身份验证预构建组件会从用户收集信息,以便对用户进行所需级别的身份验证。本部分涵盖了常见但不通用的身份验证要求 是零售业独有的此组件使用电话号码收集预构建组件来收集和验证用户详细信息。
身份验证级别
不同的预构建版本需要多个级别的身份验证 这些组件的级别较高,需要更多用户信息进行身份验证 用户。通过零售身份验证组件,用户可以进行身份验证, 级别 0(ANI 匹配)或级别 1(基本),如“身份验证级别”表所述。
身份验证级别 | 使用要求 |
---|---|
级别 0:ANI 匹配 | 用户通过拨打电话或提供与注册账号对应的电话号码进行身份验证。 用户可以使用“问候语”预构建组件进行身份验证,以达到第 0 级。 |
第 1 级:基本 | 通过验证发送到其电子邮件地址或手机号码的动态密码 (OTP) 代码,对用户进行身份验证。 |
支持的用户类型
零售身份验证组件支持使用已注册 手机号码和电子邮件地址
限制
除了 常见的预构建组件限制, 此预构建组件具有以下限制:
- 动态密码只会发送到用户之前注册的手机号码或电子邮件地址。该组件不会使用动态密码来验证通过未注册在其账号中的备用电话号码致电的客户。当用户通过备用手机号码拨打电话时,系统会询问安全问题 用于对调用方进行身份验证。
- 此组件不会加密任何数据。
示例对话框
以下示例对话框演示了此预构建组件处理的常见场景。示例对话框演示了组件 使用电话进行调用,这会触发“默认欢迎 intent”和第一个 在对话开始时让客服人员回应你。
0 级身份验证成功:ANI 匹配
用户通过已注册到现有账号的手机号码致电,并确认其 并且已成功通过级别 0 的身份验证。
用户输入 | 客服人员回复 |
---|---|
您好!您拨打的号码已与 John 的账号相关联。您是要咨询他人的订单吗?如果是,请说“是”,否则请说“否”。 | |
否 | |
谢谢,John。您已被成功识别。 |
1 级身份验证成功:动态密码
用户使用无法识别的电话号码拨打电话。该组件会收集用户的已注册电话号码,然后发送动态密码并要求用户确认发送到用户所选渠道的动态密码。用户能够提供有效的 OTP,并成功通过第 1 级身份验证。
用户输入 | 客服人员回复 |
---|---|
我们找不到与我们相关联的此电话号码。请向我们提供注册的手机号码。 | |
客服人员使用电话号码收集预构建组件收集电话号码 | |
太好了,电话号码的收集已完成。 为了安全起见,我们需要验证您的身份,因此将向您发送验证码。您更希望通过手机还是电子邮件接收验证码? |
|
电话 | |
确认一下,您是否希望在手机上接收动态密码?请说“是”或“否”。 | |
是 | |
我们已向尾号为 0000 的注册电话号码发送了一组验证码。这可能需要几秒钟的时间。您可以确认一下代码吗? | |
123457 | |
谢谢,John。您已被成功识别。 |
命名规则
此预构建组件使用以下命名惯例:
特征 | 格式 | 示例 |
---|---|---|
流程 | [组件名称] | Retail 身份验证 |
组件专用 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 请求的输入提供给 API 请求。
参数名称 | 说明 | 输入格式 |
---|---|---|
$session.params.phone_number | 用户的本地电话号码(不含国家/地区代码),用于识别用户。 | 字符串 |
API 响应参数
以下参数是从 API 响应中提取的,供组件使用。
参数名称 | 说明 | 输出格式 |
---|---|---|
电子邮件 | 用于注册账号的电子邮件地址。 | 字符串 |
all_recent_order_id | 与已验证身份的用户关联的订单 ID 的列表,按订单下单日期降序排序。数组的第一个元素代表最近的订单。如果用户没有订单,此参数的值为 null 。 |
列表(字符串) |
user_first_name | 用户的名字,用于问候用户并确认账号的所有权。 | 字符串 |
如需为此组件配置“验证用户详细信息”Webhook,请展开相应部分查看说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择预构建_components_retail_authentication:verify_user_details 网络钩子。
- 将 Conversational Agents (Dialogflow CX) Webhook 网址 字段中的网址替换为服务的端点 在下拉菜单中选择适当的方法。
- 查看并更新请求正文,为您的网络钩子构成正确的请求格式。
- 查看并更新响应配置,以从您的 webhook 响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
发送动态密码
prebuilt_components_retail_authentication:send_otp
webhook 用于
向已注册的频道发送动态密码 (OTP)
由最终用户选择的设备
API 请求参数
该组件会将以下参数作为 API 请求的输入提供给 API 请求。
参数名称 | 说明 | 输入格式 |
---|---|---|
$session.params.phone_number | 用户的本地电话号码(不含国家/地区代码),用于识别用户。 | 字符串 |
$flow.channel | 用户选择用来接收动态密码的频道。有效值由 prebuilt_components_channel_email_phone 自定义实体定义。默认情况下,系统支持 email 和 phone 。 |
字符串 |
API 响应参数
以下参数是从 API 响应中提取的,供组件使用。
参数名称 | 说明 | 输出格式 |
---|---|---|
generated_otp | 使用所选渠道生成并发送给用户的动态密码值。 | 字符串 |
如需为此组件配置“发送 OTP”Webhook,请展开相应部分查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击 Webhook。
- 选择 prebuilt_components_retail_authentication:send_otp webhook。
- 将“对话式客服 (Dialogflow CX)”Webhook 网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择适当的方法。
- 查看并更新请求正文,为您的网络钩子构成正确的请求格式。
- 查看并更新响应配置,以从您的 webhook 响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
完成
您的客服人员及其网络钩子现在应该已设置完毕,可以进行测试了。