订单状态预构建组件

订单状态预构建组件会检查客户的身份验证级别,然后向已通过身份验证的客户提供有关用户最新或过往订单的信息。此组件使用零售店身份验证预构建组件对用户进行身份验证。该组件还使用生成器进行调用后汇总。

限制

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

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

对话框示例

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

近期订单

最终用户使用未注册的号码拨打电话;客服人员对用户进行身份验证,然后提供有关订单中运输的详细信息。用户确认希望系统向其注册的手机号码发送包含更多详细信息的短信。

用户输入 客服人员回复
代理使用零售店身份验证预构建组件对用户进行身份验证
好的,John。您是想咨询 John Doe 于 2023 年 11 月 10 日晚上 6:00 下单的最新订单吗?该订单包含灯具、衬衫和其他 10 件商品。
您的订单包含 2 个配送项,将于 2024 年 1 月 15 日之前送达。

您想详细了解这些配送项吗?
订单 1(内含牛仔裤、皮带和其他 2 件商品)正在运输中,预计会在 2024 年 1 月 12 日送达。

订单 2(内含灯、衬衫和其他 6 件商品)已于 2023 年 11 月 12 日送达。

您是否希望收到短信,了解有关商品的更多详情?
我们已向您发送一条短信,其中包含一个链接,可用于跟踪所有配送的状态。感谢您与我们联系。

重复订单

最终用户之前已通过身份验证。用户请求有关订单的信息,并提供订单的最后五位数字。客服人员发现,此用户下单的多个订单的最后五位数相同,因此确认用户想了解哪个订单的状态,并向用户提供订单状态。

用户输入 客服人员回复
好的,Amber。您是想咨询 Amber Doe 在 2023 年 11 月 10 日下午 6:00 下单的最新订单吗?订单包含灯、衬衫和其他 2 件商品。
能否请您提供要跟踪的订单 ID 的后 5 位数字?
12355
我们收到的订单 ID 的最后 5 位数字是 12355,对吗?
是的,没错
太棒了,我们已收集订单 ID。
根据我们的记录,我们发现了 2 个以相同的 5 位数字 12355 结尾的订单。您要查找哪个订单?

是 2023 年 11 月 10 日下午 6:00 下单的订单 1,还是 2023 年 11 月 9 日晚上 8:00 下单的订单 2?

如要选择订单 1,请说 1,如要选择订单 2,请说 2。否则,请说“否”。
订购一台
您的订单包含 2 个配送项,将于 2024 年 1 月 15 日之前送达。

您想详细了解这些配送项吗?
包含牛仔裤的配送 1 正在运输中,预计会在 2024 年 1 月 15 日之前送达。

包含灯、衬衫和 1 件其他商品的配送 2 已取消。

您是否希望收到短信,了解有关商品的更多详情?
不用了,就这样吧
感谢您与我们联系。

命名规则

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

功能 格式 示例
流程 [组件名称] 订单状态
网络钩子 prebuilt_components_[component_name]:[webhook_action] prebuilt_components_order_status:get_order_details

输入参数

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

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

参数名称 说明 输入格式
$session.params.phone_number (可选)用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$session.params.all_recent_order_id (可选)此参数列出了与已通过身份验证的用户关联的订单 ID,按下单日期降序排序。数组的第一个元素代表最近的订单。如果用户没有订单,此参数的值为 null 列表(字符串)
$session.params.email (可选)用于注册账号的电子邮件地址。 字符串
$session.params.user_first_name (可选)用户的名字,用于问候用户并确认账号的所有权。 字符串
$flow.max_shipment 指定一次向用户显示的配送信息数量。默认值为 2 整数
$flow.tracking_status_delivered 指定 webhook 返回的值,用于指示订单已送达的状态。默认值为 "delivered" 字符串
$flow.tracking_status_cancelled 指定 webhook 返回的值,用于指示订单已取消。默认值为 "cancelled" 字符串
$flow.tracking_status_returned 指定 webhook 返回的值,用于指示已退货的订单状态。默认值为 "returned" 字符串
$flow.tracking_status_partially_returned 指定 webhook 返回的值,表示部分退货的订单状态。默认值为 "partially returned" 字符串
$flow.max_retry_alternate_profile 指定通过未注册的手机号码或备用个人资料请求订单状态时允许的重试次数。默认值为 3 整数
$flow.max_retry_order_number 指定提供订单号时允许的重试次数。默认值为 3 整数
$flow.max_retry_another_order_id 指定在提供无效订单号后允许的重试次数。默认值为 3 整数

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

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

输出参数

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

参数名称 说明 输出格式
phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
all_recent_order_id 此参数列出了与已通过身份验证的用户关联的订单 ID,按订单下单日期降序排序。数组的第一个元素代表最近的订单。如果用户没有订单,此参数的值为 null 列表(字符串)
电子邮件 用于注册账号的电子邮件地址。 字符串
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,以从外部服务检索所需信息。

身份验证

如果您之前未配置身份验证所需的外部服务,则需要配置这些服务,以便为此组件启用用户身份验证。如需了解详细说明,请参阅零售店身份验证 Webhook 设置

获取最近购买商品的

该组件使用 prebuilt_components_order_status:get_order_details Webhook 检索指定订单的订单详情。

API 请求参数

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

参数名称 说明 输入格式
$flow.order_id 要检索详细信息的订单 ID。 字符串

API 响应参数

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

参数名称 说明 输出格式
order_date 下单日期,采用 YYYY-MM-DD 格式。 字符串
order_time 下单时间,采用 HH:MM 格式。 字符串
order_status 指示订单的状态。示例值包括 "pending""processing""in-transit""on-hold""cancelled""delivered""returned""partially returned" 字符串
order_product_name 订单中的商品名称列表。 列表(字符串)
order_product_quantity 订单中每件商品的订购数量总和。 整数
order_product_count 订单中的唯一商品数量。 整数
order_status_notification 指明是否为此订单启用了通知。 布尔值
return_eligibility_date 订单中每件商品的退货截止日期列表,格式为 YYYY-MM-DD 列表(字符串)
order_customer_billing_name 订单客户结算名称的名字。 字符串
order_latest_delivery_date 订单中所有配送项的所有预计送达日期中的最新送达日期,格式为 YYYY-MM-DD 字符串
order_shipment_multiple 指示订单是否包含多个配送。 布尔值
order_shipment_count 订单中的配送数量。 整数
order_shipment_product_count 订单中每个配送中的商品总数。 列表(整数)
order_shipment_product_name 订单中每个配送中的商品名称列表。 列表(字符串)
order_estimated_delivery_date 订单中每笔发货的预计送达日期列表,格式为 YYYY-MM-DD 列表(字符串)
order_shipment_status 列出订单中每个配送项的状态。示例值包括 "pending""processing""in-transit""on-hold""cancelled""delivered""returned""partially returned" 列表(字符串)

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

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

获取重复订单

该组件使用 prebuilt_components_retail_services:get_duplicate_order Webhook 检索详细信息,以便在多个订单号的最后五位数字相同时区分订单。

API 请求参数

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

参数名称 说明 输入格式
$flow.duplicate_order_id 包含用户一个或多个订单共享的订单号最后五位数的列表。 列表(字符串)

API 响应参数

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

参数名称 说明 输出格式
all_order_date 重复订单的订单日期列表,其中包含指定的最后 5 位数(格式为 YYYY-MM-DD)。此数组中的每个元素都与 all_order_time 数组中的同一元素相对应。 布尔值
all_order_time 重复订单的订单时间列表,其中包含指定的最后 5 位数(采用 HH:MM 格式)。此数组中的每个元素都与 all_order_date 数组中的同一元素相对应。 数字

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

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

发送短信

该组件使用 prebuilt_components_order_status:send_sms webhook 通过短信将订单详情发送到指定的手机号码。

API 请求参数

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

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$flow.order_id 要发送订单详细信息的订单 ID。 字符串

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

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

启用通知

该组件使用 prebuilt_components_order_status:enable_notification webhook 为用户的已注册手机号码启用通知。

API 请求参数

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

参数名称 说明 输入格式
$session.params.phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
$flow.order_notification 指明是否应为用户启用通知。 布尔值

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

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

完成

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