安排预约预构建组件

借助“安排预约”预构建组件,新客户和现有客户可以预约服务。此组件使用自定义版本的“出生日期”集合预构建组件来收集预约日期,并使用“电话号码”集合“邮政编码”集合预构建组件来收集有关用户和预约地点的信息。

预约原因和类型

此组件支持多种预约原因类别,并根据用户选择的原因提供不同类型的预约。

预约原因 可用的预约类型
贷款 线下、线上、手机
抵押贷款 线下、线上、手机
财富管理 线下、线上、手机
信用卡 虚拟、手机
其他 电话

您可以通过修改 prebuilt_components_arrange_appt_reason 自定义实体来自定义预约类别。您可以通过修改每种预约类型的输入参数来配置每个类别的可用预约类型。

限制

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

  • 此组件不会加密任何数据。

对话框示例

以下示例对话框演示了此预构建组件处理的常见场景。示例对话框演示了通过电话调用组件时的行为,这会触发默认欢迎 intent 并在对话开始时发出第一个客服人员回复。

现有用户预约线下预约

代理会识别用户之前是否已通过身份验证成为现有用户。用户提供预约原因,并选择预约面对面预约。客服人员确认用户想去离其注册地址最近的分店,并确认用户的首选日期和时间是否可用。客服人员确认时间和地点,并成功预约。

用户输入 客服人员回复
在安排预约之前,我们会问您几个问题。您能告诉我们预约的原因吗?
我想与某位客服人员讨论财富管理
您想通过手机、视频通话或在我们的某个分店进行面对面预约吗?
我想亲自前往
好的,您想在位于 1600 Amphitheatre Pkwy, Mountain View, CA 94043 的分店预约服务吗?
请提供您首选的预约日期。请说出您首选的月份,然后是日期,最后是年份。请注意,我们的分店的营业时间为:周一至周五上午 9 点至下午 5 点,周六上午 9 点至下午 1 点。
客服人员使用出生日期收集预构建组件收集用户的首选预约日期
太棒了,我们已收集您的首选日期。

请提供您的首选时间段。
上午 10 点
您选择了上午 10:00。如要继续使用所选的预约时间,请回答“是”。
我们将于 2023 年 9 月 23 日上午 10:00 在银行的地址(1600 Amphitheatre Pkwy, Mountain View, CA 94043)安排预约。对吗?
好的,我们已为您预约。您的确认号码为 818452。您要预约其他服务吗?
不用了,就这样吧
感谢您与我们联系。祝您生活愉快!

新客户预约多个预约

代理会发现用户之前未经过身份验证,并收集用户的电话号码。用户请求预约虚拟会议,以便讨论贷款事宜。用户的首选日期和时间不可用,因此客服人员向用户提供可用的空档。用户选择一个空闲的时间空档,系统成功安排预约。用户确认想要预约第二次服务,客服人员成功安排了第二次服务。

用户输入 客服人员回复
客服人员使用电话号码收集预构建组件收集用户的电话号码
太棒了,我们已收集电话号码。

在预约服务之前,我们会问您几个问题。您能告诉我们预约的原因吗?
我想申请贷款
您想通过手机、视频通话或在我们的某个分店进行面对面预约吗?
可以通过线上预约
请提供您首选的预约日期。请说出您首选的月份,然后是日期,最后是年份。请注意,我们的分店的营业时间为:周一至周五上午 9 点至下午 5 点,周六上午 9 点至下午 1 点。
客服人员使用出生日期收集预构建组件收集用户的首选预约日期
太棒了,我们已收集您的首选日期。

请提供您的首选时间段。
3:00 对我来说很合适
您已选择下午 3:00。如要继续使用所选的预约时间,请说“是”。
我们将于 2023 年 10 月 3 日下午 3:00 为您安排与我们的顾问的预约。对吗?
好的
好的,我们已为您预约。您的确认号码为 754731。

您是否要重新预约?
是的
在安排预约之前,我们会问您几个问题。您能告诉我们预约的原因吗?
我需要预约信用卡服务
您是否想与我们的某个分店客服代表预约手机或视频通话?
电话
请提供您首选的预约日期。请说出您首选的月份,然后是日期,最后是年份。请注意,我们的分店的营业时间为:周一至周五上午 9 点至下午 5 点,周六上午 9 点至下午 1 点。
客服人员使用出生日期收集预构建组件收集用户的首选预约日期
太棒了,我们已收集您的首选日期。

请提供您的首选时间段。
上午 8 点可以吗?
您选择了上午 8:00。如需继续使用所选的预约时间,请回答“是”。
抱歉,所选的时间空档不可用。我们可以在 2023 年 10 月 6 日上午 11:30、中午 12:30、下午 1:30 和下午 3:00 为您提供支持。您想更改时间空档还是改在其他日期预约?
好的,那就 1:30
您已选择下午 1:30。如要继续使用所选的预约时间,请说“是”。
我们将于 2023 年 10 月 6 日下午 1:30 为您安排与我们的顾问的预约。对吗?
没错
好的,我们已为您预约。您的确认号码为 714637。

您想再预约一次吗?
不用了,就这样吧
感谢您与我们联系。祝您生活愉快!

命名规则

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

功能 格式 示例
流程 [组件名称] 安排预约
特定于组件的 intent prebuilt_components_[component_name]_[intent_name] prebuilt_components_arrange_appt_change_date_slot
实体类型 prebuilt_components_[component_name]_[entity_type] prebuilt_components_arrange_appt_reason
网络钩子 prebuilt_components_[component_name]:[webhook_action] prebuilt_components_arrange_appointment:submit_appointment

输入参数

输入参数是用于配置组件特定行为的参数。流程中一个或多个条件将使用这些参数来确定组件的行为方式。必须在组件的开始页面上设置流程级范围的参数,如下所述。会话级范围的参数可以通过调用流程或在此组件的首页上设置。

此预构建组件接受以下输入参数:

参数名称 说明 输入格式
$session.params.phone_number (可选)客户用于身份验证的已注册手机号码。 字符串
$session.params.auth_level (可选)表示调用方的身份验证级别 整数
$flow.all_appointment_type 指定适用于所有类型预约的预约原因列表。默认值为 ["loans", "wealth"] 列表(字符串)
$flow.video_phone_appointment_type 指定适用于所有类型预约的预约原因列表。默认值为 ["cards"] 列表(字符串)
$flow.appointment_services 指定不需要提供分店位置且系统不会从用户处收集分店位置信息的预约类型列表。默认值为 ["video", "phone"] 列表(字符串)
$flow.working_hours 指定分店的营业时间,例如 "Monday to Friday: 9 AM to 5 PM, Saturday: 9 AM to 1 PM" 字符串
$session.params.arrange_appointment_max_days 指定预约可在当前日期后的多少天内完成。默认情况下,此值为 90,表示预约日期不得晚于当前日期后的 90 天。此参数在首页 true 路线中设置。 整数
flow.max_retry_count 指定从用户收集信息时允许的重试次数。默认值为 3 整数

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

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

输出参数

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

参数名称 说明 输出格式
phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
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_arrange_appointment:get_account Webhook 获取所提供手机号码的账号详细信息(如果存在已注册的账号)。

API 请求参数

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

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

API 响应参数

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

参数名称 说明 输出格式
account_count 与注册的手机号码关联的账号数量。 整数
cards_count 与注册的手机号码关联的卡数量。 整数
loans_count 与注册的手机号码关联的贷款数量。 整数
mortgage_count 与注册手机号码关联的抵押贷款数量。 整数
branch_code 与注册的手机号码关联的分店代码,用于标识唯一的分店位置。 字符串

如需为此组件配置“获取账号”Webhook,请展开相应部分查看相关说明。

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

获取分支

该组件使用 prebuilt_components_arrange_appointment:get_branch Webhook 在指定分支代码的情况下检索分支位置的相关信息。

API 请求参数

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

参数名称 说明 输入格式
$flow.branch_code 用于标识唯一分店位置的分店代码。 字符串

API 响应参数

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

参数名称 说明 输出格式
branch_address 分行地址。 字符串

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

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

可用的分支

该组件使用 prebuilt_components_arrange_appointment:available_branch Webhook 来根据邮政编码获取最近的分店位置。

API 请求参数

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

参数名称 说明 输入格式
$flow.zip_code 最终用户提供的邮政编码。 字符串

API 响应参数

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

参数名称 说明 输出格式
branch_address 分行地址。 字符串

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

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

获取可用槽

该组件使用 prebuilt_components_arrange_appointment:get_available_slots webhook 检查用户首选日期和预约类型的可用时间空档。

API 请求参数

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

参数名称 说明 输入格式
$flow.preferred_date 最终用户提供的首选预约日期,采用“YYYY-MM-DD”格式。 字符串
$flow.appointment_type 预约的预约类型 字符串
$flow.branch_code 用于标识最终用户选择的唯一分店位置的分店代码。 字符串

API 响应参数

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

参数名称 说明 输出格式
available_slots 指定日期的可用预约时间列表,采用“HH:MM XM”格式,例如 ["09:00 AM", "2:30 PM"]。如果没有可用的槽位,此参数为空列表 [] 列表(字符串)

如需为此组件配置“获取空闲时段”Webhook,请展开相应部分查看相关说明。

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

提交预约

该组件使用 prebuilt_components_arrange_appointment:submit_appointment webhook 为用户选择的日期、时间、分店、预约原因和预约类型安排预约。

API 请求参数

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

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$flow.preferred_date 最终用户提供的首选预约日期,采用“YYYY-MM-DD”格式。 字符串
$flow.preferred_slot 最终用户提供的首选预约时间,采用“HH:MM XM”格式。 字符串
$flow.appointment_reason 预约的预约原因 字符串
$flow.appointment_type 预约的预约类型 字符串
$flow.branch_code 用于标识最终用户选择的唯一分店位置的分店代码。 字符串

API 响应参数

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

参数名称 说明 输出格式
request_number 预约的请求编号。 整数

如需为此组件配置“提交预约”Webhook,请展开相应部分查看相关说明。

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

完成

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