訂單狀態預先建構元件

訂單狀態預先建構元件會檢查顧客的驗證層級,然後向已驗證的顧客提供使用者最近或過去的訂單資訊。這個元件會使用零售驗證預先建構的元件來驗證使用者。這個元件也會使用生成器,在通話後產生摘要。

限制

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

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

對話方塊範例

下列範例對話方塊展示了這個預先建構元件處理的常見情境。範例對話會說明透過電話呼叫元件時的行為,這會在對話開始時觸發預設歡迎意圖和第一個代理程式回應。

近期訂單

使用者從未註冊的號碼撥打電話;服務專員驗證使用者身分,然後提供訂單中貨件的詳細資訊。使用者確認要將簡訊傳送至註冊電話號碼,並提供其他詳細資料。

使用者輸入內容 代理回覆
Agent 會使用零售驗證預先建構的元件驗證使用者
好的,John。你是否要詢問張大明於 2023 年 11 月 10 日下午 6:00 下訂的最新訂單,內含燈具、襯衫和其他 10 項商品?
你的訂單包含 2 筆出貨,預計於 2024 年 1 月 15 日送達。

想進一步瞭解這些出貨嗎?
包含牛仔褲、皮帶和其他 2 項商品的第 1 批貨件正在運送中,預計於 2024 年 1 月 12 日送達。

包含燈具、襯衫和其他 6 項商品的第 2 批貨件已於 2023 年 11 月 12 日送達。

如要透過簡訊接收商品詳細資訊,請回覆「是」。
我們已透過簡訊傳送連結給你,方便你追蹤所有出貨的狀態。感謝你的來電。

重複訂單

使用者先前已通過驗證。使用者要求提供訂單資訊,並提供訂單的最後五位數。服務專員發現使用者有多筆訂單的末五碼相同,因此確認使用者想查詢哪筆訂單的狀態,並提供訂單狀態。

使用者輸入內容 代理回覆
好的,Amber。你是否要詢問 Amber Doe 最近的訂單 (包含燈具、襯衫和其他 2 項商品),該訂單於 2023 年 11 月 10 日下午 6:00 下訂?
請提供要追蹤的訂單 ID 末 5 碼。
12355
我們收到的訂單 ID 末五碼是 12355,是否正確?
沒錯
很好,我們已收集完畢訂單 ID。
根據記錄,我們找到 2 筆訂單的末 5 碼都是 12355。你要找哪筆訂單?

是 2023 年 11 月 10 日下午 6 點下訂的訂單 1,還是 2023 年 11 月 9 日晚上 8 點下訂的訂單 2?

如要選取訂單 1,請說出「1」;如要選取訂單 2,請說出「2」。否則請說「否」。
訂單一
你的訂單包含 2 筆出貨,預計於 2024 年 1 月 15 日送達。

想進一步瞭解這些出貨嗎?
含有牛仔褲的貨件 1 正在運送中,預計於 2024 年 1 月 15 日送達。

含有燈具、襯衫和 1 項其他商品的貨件 2 已取消。

如要透過簡訊接收商品詳細資訊,請回覆「是」。
沒有,就這樣
感謝你的來電。

命名慣例

這個預先建構的元件採用下列命名慣例:

功能 格式 範例
心流狀態 [元件名稱] Order Status
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_delivered 指定網路鉤子傳回的值,表示訂單已送達。預設值為 "delivered" 字串
$flow.tracking_status_cancelled 指定網路鉤子傳回的值,表示訂單狀態為取消。預設值為 "cancelled" 字串
$flow.tracking_status_returned 指定網路鉤子傳回的值,指出退貨訂單狀態。預設值為 "returned" 字串
$flow.tracking_status_partially_returned 指定網路鉤子傳回的值,表示訂單部分退貨狀態。預設值為 "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. 在「Route」視窗中,視需要編輯「Parameter Presets」值。
  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 內建事件」。
字串

基本設定

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

  1. 匯入預先建構的元件
  2. 設定提供的彈性 Webhook,並使用描述外部服務的設定,請參閱「Webhook 設定」。

設定 Webhook

如要使用這個元件,您必須設定內含的彈性 Webhook,從外部服務擷取所需資訊。

驗證

如果您先前未設定驗證所需的外部服務,則必須設定這些服務,才能為這個元件啟用使用者驗證。如需詳細操作說明,請參閱「零售驗證 Webhook 設定」。

提供符合條件的訂單詳細資料:

元件會使用 prebuilt_components_order_status:get_order_details Webhook 擷取指定訂單的詳細資料。

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 指出是否已啟用這項訂單的通知。 布林值
return_eligibility_date 清單,列出訂單中各項產品的退貨期限,格式為 YYYY-MM-DD 清單 (字串)
order_customer_billing_name 訂單帳單名稱中客戶的名字。 字串
order_latest_delivery_date 訂單中所有出貨商品的預計送達日期中,最晚的日期,格式為 YYYY-MM-DD 字串
order_shipment_multiple 指出訂單是否包含多筆出貨資訊。 布林值
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" 清單 (字串)

如要為這個元件設定「取得訂單詳細資料」Webhook,請展開查看操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhooks」
  6. 選取 prebuilt_components_order_status:get_order_details 網路鉤子。
  7. 將 Dialogflow CX「Webhook URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」
  8. 查看並更新要求主體,為 Webhook 建立正確的要求格式。
  9. 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
  10. 視需要檢查並更新「驗證」設定。
  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 陣列中的相同元素。 布林值
all_order_time 重複訂單的訂購時間清單,格式為 HH:MM,並指定最後五碼。這個陣列中的每個元素,都對應至 all_order_date 陣列中的相同元素。 數字

如要為這個元件設定「取得重複訂單」Webhook,請展開查看操作說明。

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

傳送簡訊

元件會使用 prebuilt_components_order_status:send_sms webhook,透過簡訊將訂單詳細資料傳送至指定電話號碼。

API 要求參數

元件會提供下列參數,做為 API 要求的輸入內容。

參數名稱 說明 輸入格式
$session.params.phone_number 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 字串
$flow.order_id 要傳送訂單詳細資料的訂單 ID。 字串

如要為這個元件設定「傳送簡訊」Webhook,請展開查看操作說明。

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

啟用通知

這個元件會使用 prebuilt_components_order_status:enable_notification webhook,為使用者註冊的電話號碼啟用通知。

API 要求參數

元件會提供下列參數,做為 API 要求的輸入內容。

參數名稱 說明 輸入格式
$session.params.phone_number 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 字串
$flow.order_notification 指出是否應為使用者啟用通知。 布林值

如要為這個元件設定「啟用通知」Webhook,請展開查看操作說明。

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

完成

代理程式和 Webhook 現在應已設定完成,可供測試。