取消訂購預先建構的元件

取消訂單的預先建構元件會檢查使用者的驗證層級。使用者通過驗證後,元件就會提供使用者最近或過去的訂單相關資訊。使用者可以選擇取消整筆訂單,或取消訂單中的特定商品。這個元件會使用預先建構的零售驗證元件驗證使用者。這個元件也會使用產生器,用於通話後的摘要。

限制

除了常見的預先建構元件限制外,這個預先建構元件還有以下限制:

  • 這個元件不會加密任何資料。

對話方塊範例

以下對話方塊範例說明這個預先建構元件處理的常見情境。以下對話方塊範例說明使用電話服務呼叫元件時的行為,這會在對話開始時觸發「Default Welcome」意圖,並由服務專員提供第一個回應。

取消最近訂單中的單一產品

使用者先前已完成驗證。服務專員會確認應取消最近訂單中的哪些商品。服務專員會確認原始付款方式,並向使用者確認取消細節。

使用者輸入內容 服務專員回應
你是否想詢問結尾為 12978 的最新訂單 (含 5 個水瓶和 1 件 T 恤),該訂單是在 2023 年 11 月 9 日晚上 8 點下單的?
我們發現你的訂單中含有部分符合資格的產品。請告訴我們要取消哪項產品。
產品 1:Google 水壺、產品 2:Google 上衣。

請說出或輸入要選取的商品編號,或說出「next」來顯示更多產品。
下一個
我們在記錄中找不到其他項目。請從共用清單中選擇。
產品 1:Google 水壺,產品 2:Google 上衣。

請說出或輸入要選取的商品編號,或是說出「next」來顯示更多產品。
1
請確認你想取消 Google 水瓶的訂單。對嗎?
我們發現你所選產品的可用數量為 5 個。請指定要取消的產品數量。
4
請說明取消訂單的原因。你可以說:「我改變主意了」、「我不需要了」、「我想購買其他商品」、「延遲送達」、「誤買了」、「想變更付款方式」或其他原因。
我想購買其他商品
感謝你告知我們。

你是否要取消其他產品?
如果是使用電子錢包進行的購物交易,退款會存入電子錢包或商店消費金帳戶。退款最晚會在 3 到 5 個工作天內入帳。請注意,退款金額不含運費和處理費用。

取消整筆訂單

使用者先前已完成驗證。服務專員會確認使用者想取消特定訂單,然後收集取消原因。服務專員會檢查原始付款方式,並與使用者確認取消細節。

使用者輸入內容 服務專員回應
你打電話來是想詢問最近的訂單號碼嗎?末五碼為 12345,訂購日期為 2023 年 11 月 10 日下午 6 點,訂購了 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 在多個訂單共用相同的末五碼時,指定提供完整訂單號碼時允許的重試次數。預設值為 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" 字串

如要設定此元件的輸入參數,請展開操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取所需的代理程式。
  4. 選取「Build」分頁標籤。
  5. 在「流程」部分中,按一下匯入的元件。
  6. 按一下「網頁」部分中的「首頁」。
  7. 按一下「Start」頁面中的「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 錯誤。請參閱「webhook.error 內建事件」。

webhook_not_found:無法連上 webhook 網址。請參閱 webhook.error.not-found 內建事件
字串

發電機

這個元件會使用產生器,啟用對話的特定部分。

摘要

Summarization 產生器可用於產生通話後摘要,說明元件處理的對話。

基本設定

如要設定這個預先建構的元件,請按照下列步驟操作:

  1. 匯入預先建構的元件
  2. 請使用描述外部服務的設定,設定提供的彈性 webhook,請參閱 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,請展開操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取所需的代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhook」
  6. 選取 prebuilt_components_cancel_order:get_order_details webhook。
  7. 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」
  8. 查看並更新要求主體,為 webhook 建立適當的要求格式。
  9. 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
  10. 視需要查看並更新驗證設定。
  11. 按一下 [儲存]

取得重複訂單的詳細資料

當多個訂單號碼的末五碼相同時,元件會使用 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,請展開操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取所需的代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhook」
  6. 選取 prebuilt_components_retail_services:get_duplicate_order_details webhook。
  7. 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」
  8. 查看並更新要求主體,為 webhook 建立適當的要求格式。
  9. 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
  10. 視需要查看並更新驗證設定。
  11. 按一下 [儲存]

取消後的詳細資料

元件會使用 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。 字串

如要為此元件設定「Post cancellation details」webhook,請展開操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取所需的代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhook」
  6. 選取 prebuilt_components_cancel_order:post_cancellation_details webhook。
  7. 將 Conversational Agents (Dialogflow CX) Webhook 網址欄位中的網址,替換為要整合的服務端點。在下拉式選單中選取適當的「方法」
  8. 查看並更新要求主體,為 webhook 建立適當的要求格式。
  9. 查看並更新回應設定,從 webhook 回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
  10. 視需要查看並更新驗證設定。
  11. 按一下 [儲存]

完成

代理程式和相關的 webhook 應已設定完成,可以開始測試。