取消订单预构建组件会检查用户的身份验证级别。用户通过身份验证后,该组件会提供有关用户最近或过去订单的信息。然后,用户可以选择取消整个订单或取消订单中的特定商品。此组件使用零售身份验证预构建组件对用户进行身份验证。该组件还使用生成器进行通话后总结。
限制
除了常见的预构建组件限制之外,此预构建组件还具有以下限制:
- 此组件不会加密任何数据。
对话示例
以下示例对话展示了此预构建组件处理的常见场景。示例对话演示了使用电话服务调用组件时的行为,这会在对话开始时触发默认欢迎 intent 和第一个代理响应。
取消近期订单中的单个商品
最终用户之前已通过身份验证。客服人员确认应取消最近一笔订单中的哪些商品。客服人员会检查原始付款方式,并与用户确认取消详情。
| 用户输入 | 智能体回答 |
|---|---|
| 您致电是为了咨询您最近的订单吗?该订单编号以 12978 结尾,包含 5 个水瓶和 1 件 T 恤,下单时间为 2023 年 11 月 9 日晚上 8 点。 | |
| 是 | |
| 我们在您的订单中发现了一些符合条件的商品。请告诉我们您想取消哪件商品。 商品 1:Google 水壶,商品 2:Google T 恤。 请说出或输入您要选择的商品的编号,或说“下一个”以显示更多商品。 |
|
| 下一页 | |
| 我们在记录中未找到任何其他商品。请从分享的列表中选择。 商品 1:Google 水瓶,商品 2:Google T 恤。 请说出或输入您要选择的商品编号,或说“下一个”以显示更多商品。 |
|
| 1 | |
| 为了验证,您想取消 Google 水瓶。是这样吗? | |
| 是 | |
| 可以看到,您所选商品的可用数量为 5。请指定您要取消的商品数量。 | |
| 4 | |
| 请说明取消原因。您可以说:改变主意了、不再需要、我想购买其他商品、延迟送货、误购、想更改支付方式,或说其他原因。 | |
| 我想购买其他商品 | |
| 感谢您告知我们。 您想取消其他产品吗? |
|
| 否 | |
| 对于使用钱包进行的购买交易,退款会发放到钱包或商店抵用金账号。退款需要 3 到 5 个工作日才能显示在您的账户中。请注意,退款金额不包括运费和手续费。 |
取消整个订单
最终用户之前已通过身份验证。智能体确认用户想要取消特定订单,然后收集取消原因。客服人员会检查原支付方式,并与用户确认取消详情。
| 用户输入 | 智能体回答 |
|---|---|
| 您致电是为了咨询您最近的订单吗?该订单的尾号为 12345,包含 1 件衬衫,下单时间为 2023 年 11 月 10 日下午 6:00。 | |
| 否 | |
| 您要取消其他订单吗? | |
| 是 | |
| 能否请您提供要跟踪的订单 ID 的后 5 位数字? | |
| 12346 | |
| 我们获得的订单 ID 的最后五位数字是 12346,对吗? | |
| 是 | |
| 太好了,我们已收集完订单 ID。 您是否要取消整个订单? |
|
| 是 | |
| 请说明取消原因。您可以说:改变主意了、不再需要、我想购买其他商品、延迟送货、误购、想更改支付方式,或说其他原因。 | |
| 不再需要 | |
| 感谢您告知我们。 您的取消请求已生成。 |
命名规则
此预构建组件使用以下命名惯例:
| 功能 | 格式 | 示例 |
|---|---|---|
| Flow | [Component Name] | 取消订单 |
| 实体类型 | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_product_cancel_reason |
| 网络钩子 | 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 | 指定在多个订单的后五位数字相同时,允许用户提供完整订单号的重试次数。默认值为 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 Webhook 返回的 order_payment_mode 字段的值,该值表示货到付款 (COD) 支付方式。默认值为 "COD"。 |
字符串 |
| $flow.order_payment_mode_store_credit | 指定 get_order_details Webhook 返回的 order_payment_mode 字段的值,该值表示商店抵用金支付方式。默认值为 "store_credit"。 |
字符串 |
如需为此组件配置输入参数,请展开以查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择构建标签页。
- 在流部分中点击导入的组件。
- 点击页面部分中的“Start Page”。
- 点击“Start Page”中的 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 错误。请参阅 webhook.error 内置事件。webhook_not_found:网络钩子网址无法访问。请参阅 webhook.error.not-found 内置事件。 |
字符串 |
生成器
此组件使用生成器来启用对话的特定部分。
摘要
Summarization 生成器用于生成通话后摘要,以描述组件处理的对话。
基本设置
如需设置此预构建组件,请执行以下操作:
- 导入预构建组件。
- 使用描述外部服务的配置来配置提供的灵活 webhook,请参阅 Webhook 设置。
Webhook 设置
如需使用此组件,您需要配置随附的灵活网络钩子,以便从外部服务中检索所需信息。
身份验证
如果您之前未配置身份验证所需的外部服务,则需要配置这些服务,以便为此组件启用用户身份验证。如需查看详细说明,请参阅零售身份验证 webhook 设置。
获取最近购买商品的
组件使用 prebuilt_components_cancel_order:get_order_details webhook 检索指定订单的订单详情。
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 | 订单中可取消商品的数量列表。 | 列表(字符串) |
如需为此组件配置“获取订单详情”Webhook,请展开查看说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击 Webhooks。
- 选择 prebuilt_components_cancel_order:get_order_details webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法。
- 查看并更新请求正文,为您的 webhook 形成正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称来访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
获取重复订单详情
当多个订单号的后五位数字相同时,组件会使用 prebuilt_components_retail_services:get_duplicate_order_details webhook 检索详细信息,以区分订单。
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 数组中的相同元素相对应。 |
列表(字符串) |
如需为此组件配置“获取重复订单详情”Webhook,请展开查看说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击 Webhooks。
- 选择 prebuilt_components_retail_services:get_duplicate_order_details webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法。
- 查看并更新请求正文,为您的 webhook 形成正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称来访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
取消订阅后的详细信息
该组件使用 prebuilt_components_cancel_order:post_cancellation_details webhook 提交取消请求。
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。 | 字符串 |
如需为此组件配置“取消后详情”Webhook,请展开查看说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击 Webhooks。
- 选择 prebuilt_components_cancel_order:post_cancellation_details webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为您要集成的服务的端点。在下拉菜单中选择适当的方法。
- 查看并更新请求正文,为您的 webhook 形成正确的请求格式。
- 查看并更新响应配置,以从 webhook 的响应中提取特定字段。请勿修改参数名称,因为组件需要这些名称来访问返回的字段值。
- 根据需要查看并更新身份验证设置。
- 点击保存。
完成
您的代理及其 webhook 现在应该已设置完毕,可以进行测试了。