訂單狀態預先建構元件

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

限制

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

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

對話範例

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

近期訂單

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

使用者輸入內容 代理回覆
服務專員使用零售驗證預先建構的元件驗證使用者
好的,John。你是否要詢問 John Doe 最近的訂單?該訂單包含燈具、襯衫和其他 10 項商品,於 2023 年 11 月 10 日下午 6:00 下訂。
是
你的訂單包含 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 已取消。

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

命名慣例

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

功能 格式 範例
Flow [元件名稱] 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」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  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」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  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」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  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」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  8. 查看並更新要求主體,為 Webhook 建立正確的要求格式。
  9. 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件必須使用這些名稱才能存取傳回的欄位值。
  10. 視需要檢查並更新「驗證」設定。
  11. 按一下「儲存」。

完成

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