取消订单预构建组件会检查用户的身份验证级别。用户通过身份验证后,该组件会提供有关用户最近或过往订单的信息。然后,用户可以选择取消整个订单或取消订单中的特定商品。此组件使用 Retail 身份验证预构建组件对用户进行身份验证。该组件还使用生成器进行调用后摘要。
限制
除了常见的预构建组件限制之外,此预构建组件还具有以下限制:
- 此组件不会对任何数据进行加密。
示例对话框
以下示例对话框演示了此预构建组件处理的常见场景。这些示例对话框演示了使用电话调用组件时的行为,该行为会在对话开始时触发“默认欢迎意图”和第一个代理响应。
取消最近订单中的单件商品
最终用户之前已经过身份验证。代理会确认应取消最近一次订单中的哪些商品。代理会检查原始付款方式,并向用户确认取消详情。
用户输入 | 代理响应 |
---|---|
您是否来电咨询的是您最近在 2023 年 11 月 9 日晚上 8:00 下的订单(尾号为 12978),其中包含 5 个水瓶和 1 件 T 恤? | |
是 | |
我们在您的订单中找到了一些符合条件的商品。请告诉我们您想取消的商品。 商品 1:Google 水瓶;商品 2:Google T 恤。 请说出或输入您要选择的商品的商品编号,或者说“下一步”以显示更多商品。 |
|
下一个 | |
我们在记录中未找到任何其他内容。请从共享列表中进行选择。 产品 1:Google 水壶,产品 2:Google T 恤。 请说出或输入您要选择的商品的商品编号,或者说“下一步”以显示更多商品。 |
|
1 | |
为了进行验证,您有意向取消 Google 水壶。是这样吗? | |
是 | |
我们可以看到,您选择的商品的可售数量为 5。请指定要取消的商品数量。 | |
4 | |
请说明取消原因。你可以这样说:“我改变主意了、不再需要了、我想再买一件商品、延迟送达、不小心买了东西、想更改付款方式,或者说其他人。 | |
我想再买一件商品 | |
感谢您告知我们。 要取消其他产品吗? |
|
无 | |
使用电子钱包购物时,退款会存入电子钱包或商店抵用金帐号。退款需要 3 到 5 个工作日才能显示在您的账号中。请注意,退款金额不包括运费和手续费。 |
取消整个订单
最终用户之前已经过身份验证。代理确认用户要取消特定订单,然后收集取消原因。代理会检查原始付款方式,并向用户确认取消详情。
用户输入 | 代理响应 |
---|---|
您是否来电是为了咨询您最近的尾号为 12345 的订单,其中包含 2023 年 11 月 10 日下午 06:00 下的 1 件衬衫? | |
无 | |
要取消其他订单吗? | |
是 | |
您能否提供要跟踪的订单 ID 的后 5 位数字? | |
12346 | |
我们得到的订单 ID 的最后五位数是 12346,对吗? | |
是 | |
太好了,我们已完成订单 ID 的收集。 要取消整个订单吗? |
|
是 | |
请说明取消原因。你可以这样说:“我改变主意了、不再需要了、我想再买一件商品、延迟送达、不小心买了东西、想更改付款方式,或者说其他人。 | |
不再需要 | |
感谢您通知我们。 您的取消请求已生成。 |
命名惯例
此预构建组件使用以下命名惯例:
特征 | 形式 | 示例 |
---|---|---|
流 | [组件名称] | 取消订单 |
实体类型 | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_product_cancel_reason |
Webhook | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_cancel_order:post_cancellation_details |
输入参数
输入参数是用于配置组件某些行为的参数。流中的一个或多个条件将使用这些参数来确定组件的行为方式。流范围的参数必须在组件的初始页上设置。会话级范围的参数可以通过调用流程设置,也可以在此组件的初始页上设置。
此预构建组件接受以下输入参数:
参数名称 | 说明 | 输入格式 |
---|---|---|
$session.params.phone_number | (可选)用于识别用户的用户本地手机号码(不含国家/地区代码)。 | 字符串 |
$session.params.all_recent_order_id | (可选)此参数会列出与已验证用户相关联的订单 ID,并按订单展示位置日期降序排序。数组的第一个元素表示最新顺序。如果用户没有订单,则此参数的值为 null 。 |
列表(字符串) |
$session.params.email | (可选)注册帐号时使用的电子邮件地址。 | 字符串 |
$session.params.user_first_name | (可选)用户的名字,用于问候和确认对帐号的所有权。 | 字符串 |
此预构建组件允许以下可选参数配置组件的行为,包括重试。
参数名称 | 说明 | 形式 |
---|---|---|
$flow.max_retry_another_account_counter | 指定选择是否继续使用备用账号时允许的重试次数。默认值为 2 。 |
整数 |
$flow.max_retry_order_number | 指定提供订单号的最后五位数时允许的重试次数。默认值为 2 。 |
整数 |
$flow.max_retry_another_order | 指定在找不到订单 ID 或订单不符合取消条件的情况下,选择其他订单时允许的重试次数。默认值为 2 。 |
整数 |
$flow.max_retry_select_order_number | 指定在有多个订单具有相同的最后 5 位数字的情况下,提供完整订单号时允许的重试次数。默认值为 2 。 |
整数 |
$flow.max_product_display_counter | 指定在单个轮流中展示的商品数量上限。默认值为 2 。 |
整数 |
$flow.max_product_display | 指定在整个对话中展示的商品数量上限。默认值为 9 。 |
整数 |
$flow.max_retry_product_number_counter | 指定选择要取消的产品时允许的重试次数上限。默认值为 2 。 |
整数 |
$flow.max_product_cancel_confirm_counter | 指定确认所选商品时允许的重试次数上限。默认值为 2 。 |
整数 |
$flow.max_retry_select_quantity | 指定选择要取消的产品数量时允许的最大重试次数。默认值为 2 。 |
整数 |
$flow.order_product_cancel_reason_others | 指定 prebuilt_components_product_cancel_reason 实体的值,指明用户已选择“其他”取消原因。默认值为 "others" 。 |
字符串 |
$flow.max_retry_cancel_reason | 指定确认取消原因时允许的重试次数。默认值为 2 。 |
整数 |
$flow.order_payment_mode_COD | 指定 get_order_details 网络钩子返回的 order_payment_mode 字段的值,用于指明货到付款 (COD) 付款方式。默认值为 "COD" 。 |
字符串 |
$flow.order_payment_mode_store_credit | 指定 get_order_details 网络钩子返回的 order_payment_mode 字段的值,该值表示商店抵用金付款方式。默认值为 "store_credit" 。 |
字符串 |
如需配置此组件的输入参数,请展开查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择 Build 标签页。
- 在流部分中,点击导入的组件。
- 点击网页部分中的初始页。
- 点击初始页中的 true 路由。
- 在“路由”窗口中,根据需要修改参数预设值。
- 点击保存。
输出参数
输出参数是退出组件后将保持有效的会话参数。这些参数包含该组件收集的重要信息。此预构建组件提供了以下输出参数的值:
参数名称 | 说明 | 输出格式 |
---|---|---|
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 事件。 |
字符串 |
生成器
此组件使用生成器来实现对话的特定部分。
总结
Summarization
生成器用于生成调用后摘要,用于描述该组件处理的对话。
基本设置
如需设置此预构建组件,请执行以下操作:
- 导入预构建组件。
- 使用描述 Dialogflow 外部服务的配置来配置所提供的灵活 webhook,请参阅网络钩子设置。
网络钩子设置
为了使用此组件,您需要配置所包含的灵活 webhook,以从外部服务中检索所需信息。
Authentication
如果您之前未配置身份验证所需的外部服务,则需要对其进行配置,以便为此组件启用用户身份验证。如需查看详细说明,请参阅零售身份验证网络钩子设置。
获取订单详情
该组件使用 prebuilt_components_cancel_order:get_order_details
网络钩子来检索指定订单的订单详情。
API 请求参数
以下参数由组件提供,作为 API 请求的输入。
参数名称 | 说明 | 输入格式 |
---|---|---|
$flow.order_id | 要为其检索详细信息的订单 ID。 | 字符串 |
API 响应参数
以下参数是从 API 响应中提取的,供组件使用。
参数名称 | 说明 | 输出格式 |
---|---|---|
order_date | 下单日期,采用 YYYY-MM-DD 格式。 |
字符串 |
order_time | 下单时间,采用 HH:MM 格式。 |
字符串 |
order_product_count | 订单中唯一商品的数量。 | 整数 |
order_payment_mode | 表示下单时使用的付款方式。 | 字符串 |
cancelable_product_id | 订单中可取消产品的产品 ID 列表。 | 列表(字符串) |
cancelable_product_name | 订单中可取消商品的商品名称列表。 | 列表(字符串) |
cancelable_product_brand_name | 订单中可取消商品的品牌名称列表。 | 列表(字符串) |
cancelable_product_quantity | 订单中可取消商品的数量列表。 | 列表(字符串) |
如需为此组件配置“获取订单详情”网络钩子,请展开查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 preview_components_cancel_order:get_order_details webhook。
- 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法。
- 查看并更新请求正文,为网络钩子构建正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 查看并视需要更新 Authentication 设置。
- 点击保存。
获取重复的订单详情
当多个订单号的最后五位数相同时,该组件会使用 prebuilt_components_retail_services:get_duplicate_order_details
网络钩子检索详细信息。
API 请求参数
以下参数由组件提供,作为 API 请求的输入。
参数名称 | 说明 | 输入格式 |
---|---|---|
$flow.duplicate_order_id | 包含用户的一个或多个订单之间共享的订单号的最后五位数的列表。 | 列表(字符串) |
API 响应参数
以下参数是从 API 响应中提取的,供组件使用。
参数名称 | 说明 | 输出格式 |
---|---|---|
all_order_date | 重复订单的订单日期列表,其中最后五位数(采用 YYYY-MM-DD 格式)。此数组中的每个元素都对应于 all_order_time 数组中的同一元素。 |
列表(字符串) |
all_order_time | 重复订单的订单时间列表,其后五位数字为 HH:MM ,格式为。此数组中的每个元素都对应于 all_order_date 数组中的同一元素。 |
列表(字符串) |
若要为此组件配置“获取重复订单详情”网络钩子,请展开查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择预构建_组件_retail_services:get_duplicate_order_details webhook。
- 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法。
- 查看并更新请求正文,为网络钩子构建正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 查看并视需要更新 Authentication 设置。
- 点击保存。
帖子取消详情
该组件使用 prebuilt_components_cancel_order:post_cancellation_details
网络钩子来提交取消请求。
API 请求参数
以下参数由组件提供,作为 API 请求的输入。
参数名称 | 说明 | 输入格式 |
---|---|---|
$session.params.phone_number | 用户的本地手机号码(不含国家/地区代码),用于识别用户。 | 字符串 |
$flow.order_id | 要为其提交工单的订单 ID。 | 字符串 |
$flow.cancel_product_id_list | 用户要取消的商品 ID 列表。 | 列表(字符串) |
$flow.cancel_product_quantity_list | 用户要取消的商品数量列表,与 $flow.cancel_product_id_list 中的每个元素相对应。 |
列表(字符串) |
$flow.cancel_reason_list | 每个已取消商品的取消原因列表,与 $flow.cancel_product_id_list 中的每个元素相对应。 |
列表(字符串) |
$flow.order_refund_mode | 退款的付款方式。有效值由 prebuilt_components_cancel_mode_of_refund 实体定义。 |
字符串 |
API 响应参数
以下参数是从 API 响应中提取的,供组件使用。
参数名称 | 说明 | 输出格式 |
---|---|---|
order_cancellation_ticket_id | 已提交的取消请求对应的工单 ID。 | 字符串 |
如需为此组件配置“取消发布详情”网络钩子,请展开查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 preview_components_cancel_order:post_cancellation_details 网络钩子。
- 将 Dialogflow 网络钩子网址字段中的网址替换为您要集成的服务的端点。从下拉菜单中选择合适的方法。
- 查看并更新请求正文,为网络钩子构建正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称才能访问返回的字段值。
- 查看并视需要更新 Authentication 设置。
- 点击保存。
完成
现在,您的代理及其 webhook 应该已设置完毕,可以进行测试了。