订单状态预构建组件

订单状态预构建组件会检查客户的身份验证级别,然后向经过身份验证的客户提供有关用户最近或过往订单的信息。此组件使用 Retail 身份验证预构建组件对用户进行身份验证。该组件还使用生成器进行调用后摘要。

限制

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

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

示例对话框

以下示例对话框演示了此预构建组件处理的常见场景。这些示例对话框演示了使用电话调用组件时的行为,该行为会在对话开始时触发“默认欢迎意图”和第一个代理响应。

近期订单

最终用户拨打未注册的号码;代理对用户进行身份验证,然后提供有关订单中货物的详细信息。用户确认希望系统向其注册的手机号码发送短信(其中包含更多详细信息)。

用户输入 代理响应
代理使用 Retail 身份验证预构建组件对用户进行身份验证
好的,John。您是要咨询您最近在 2023 年 11 月 10 日下午 06:00 向 John Doe 下的订单,其中包含灯具、衬衫和另外 10 件商品吗?
您的订单有 2 批发货,将在 2024 年 1 月 15 日之前送达。

想要详细了解这些运单吗?
运单 1 包含牛仔裤、皮带和另外 2 件商品正在运送途中,将在 2024 年 1 月 12 日之前送达。

发货 2 包含灯具、衬衫和另外 6 件商品,已于 2023 年 11 月 12 日送达。

您是否希望接收短信,了解详细的商品信息?
我们已向您发送短信,其中包含可跟踪所有货运状态的链接。您好!感谢您致电我们。

订单重复

最终用户之前已经过身份验证。用户请求有关订单的信息,并提供订单的最后五位数。代理会识别该用户下达的多个订单共用最后五位数,因此它会确认用户想要听取哪个订单的状态,并向用户提供订单状态。

用户输入 代理响应
好的,Amber。您是要咨询您最近在 2023 年 11 月 10 日下午 6:00 下的 Amber Doe 订单,其中包含灯具、衬衫和其他 2 件商品吗?
您能否提供要跟踪的订单 ID 的后 5 位数字?
12355
我们得到的订单 ID 的最后五位数是 12355,对吗?
是的,没错
太好了,订单 ID 已收集完毕。
根据我们的记录,我们发现了 2 个尾号相同的订单,即 5 位数字 12355。您要找哪个订单?

订单号 1 的下单时间是 2023 年 11 月 10 日下午 6:00,或者订单号 2 的下单时间是 2023 年 11 月 9 日晚上 08:00?

如要选择第 1 笔订单,请先说 1,然后选择第 2 笔订单,例如 2。否则,请说“否”。
订购一
您的订单有 2 批发货,将在 2024 年 1 月 15 日之前送达。

想要详细了解这些运单吗?
第 1 件包含牛仔裤的运单正在运送途中,将在 2024 年 1 月 15 日之前送达。

发货 2 号(内含灯、衬衫和另外 1 件商品)已被取消。

要通过短信接收关于商品的更多详细信息吗?
不,就这样
您好!感谢您致电我们。

命名惯例

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

特征 形式 示例
[组件名称] 订单状态
Webhook 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_deliveryed 指定 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. 选择 Build 标签页。
  5. 部分中,点击导入的组件。
  6. 点击网页部分中的初始页。
  7. 点击初始页中的 true 路由。
  8. 在“路由”窗口中,根据需要修改参数预设值。
  9. 点击保存

输出参数

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

参数名称 说明 输出格式
phone_number 用户的本地手机号码(不含国家/地区代码),用于识别用户。 字符串
all_recent_order_id 此参数会列出与已验证用户相关联的订单 ID,并按订单展示位置日期降序排序。数组的第一个元素表示最新顺序。如果用户没有订单,则此参数的值为 null 列表(字符串)
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. 使用描述 Dialogflow 外部服务的配置来配置所提供的灵活 webhook,请参阅网络钩子设置。

网络钩子设置

为了使用此组件,您需要配置所包含的灵活 webhook,以从外部服务中检索所需信息。

Authentication

如果您之前未配置身份验证所需的外部服务,则需要对其进行配置,以便为此组件启用用户身份验证。如需查看详细说明,请参阅零售身份验证网络钩子设置

获取订单详情

该组件使用 prebuilt_components_order_status:get_order_details 网络钩子来检索指定订单的订单详情。

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 指明此订单是否启用了通知。 boolean
return_eligibility_date 订单中每件商品的退货期限列表,采用 YYYY-MM-DD 格式。 列表(字符串)
order_customer_billing_name 订单的客户结算姓名的名字。 字符串
order_latest_delivery_date 订单内各商品的所有预计送达日期最晚送达日期,采用 YYYY-MM-DD 格式。 字符串
order_shipment_multiple 指明订单是否包含多个运单。 boolean
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" 列表(字符串)

如需为此组件配置“获取订单详情”网络钩子,请展开查看相关说明。

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

获取重复订单

当多个订单号的最后五位数相同时,该组件会使用 prebuilt_components_retail_services:get_duplicate_order 网络钩子检索详细信息。

API 请求参数

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

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

API 响应参数

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

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

若要为此组件配置“获取重复订单”网络钩子,请展开查看相关说明。

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

发送短信

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

API 请求参数

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

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

如需为此组件配置“发送短信”网络钩子,请展开查看相关说明。

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

启用通知

该组件使用 prebuilt_components_order_status:enable_notification 网络钩子来为用户注册的手机号码启用通知。

API 请求参数

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

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

如需为此组件配置“启用通知”网络钩子,请展开查看相关说明。

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

完成

现在,您的代理及其 webhook 应该已设置完毕,可以进行测试了。