取消訂單預先建構的元件會檢查使用者的驗證等級。使用者通過驗證後,元件會提供使用者最近或過往訂單的相關資訊。使用者可以選擇取消整筆訂單,或取消訂單中的特定商品。這個元件會使用零售驗證預先建構的元件來驗證使用者。這個元件也會使用生成器,在通話後產生摘要。
限制
除了常見的預先建構元件限制外,這個預先建構元件還有下列限制:
- 這個元件不會加密任何資料。
對話方塊範例
下列範例對話方塊展示了這個預先建構元件處理的常見情境。範例對話會說明透過電話呼叫元件時的行為,這會在對話開始時觸發預設歡迎意圖和第一個代理程式回應。
取消最近訂單中的單一產品
使用者先前已通過驗證。服務專員會確認要取消最近一筆訂單中的哪些商品。服務專員會檢查原始付款方式,並向使用者確認取消詳細資料。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 你是否要詢問最近一筆訂單 (訂單編號結尾為 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 點下訂? | |
| 否 | |
| 要取消其他訂單嗎? | |
| 是 | |
| 請提供要追蹤的訂單 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"。 |
字串 |
| $flow.order_payment_mode_store_credit | 指定 get_order_details webhook 傳回的 order_payment_mode 欄位值,指出商店消費金付款方式。預設值為 "store_credit"。 |
字串 |
如要設定這個元件的輸入參數,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「Build」(建構) 分頁標籤。
- 在「流程」部分中,按一下匯入的元件。
- 按一下「頁面」部分中的「開始頁面」。
- 在「開始頁面」中,按一下「true」路徑。
- 在「Route」視窗中,視需要編輯「Parameter Presets」值。
- 按一下「儲存」。
輸出參數
輸出參數是工作階段參數,在結束元件後仍會保持啟用狀態。這些參數包含元件收集的重要資訊。這個預先建構的元件會提供下列輸出參數的值:
| 參數名稱 | 說明 | 輸出格式 |
|---|---|---|
| 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 生成器用於生成通話後摘要,說明元件處理的對話。
基本設定
如要設定這個預先建構的元件,請按照下列步驟操作:
- 匯入預先建構的元件。
- 設定提供的彈性 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,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_cancel_order:get_order_details 網頁掛鉤。
- 將 Dialogflow CX「Webhook URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 Webhook 建立正確的要求格式。
- 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要檢查並更新「驗證」設定。
- 按一下「儲存」。
取得重複訂單詳細資料
如果多個訂單號碼的末五碼相同,元件會使用 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 陣列中的相同元素。 |
清單 (字串) |
如要為這個元件設定「取得重複訂單詳細資料」Webhook,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_retail_services:get_duplicate_order_details 網頁掛鉤。
- 將 Dialogflow CX「Webhook URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 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 URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 Webhook 建立正確的要求格式。
- 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要檢查並更新「驗證」設定。
- 按一下「儲存」。
完成
代理程式和 Webhook 現在應已設定完成,可供測試。