機器人會話狀態 Snippet
本説明頁面上的資訊同時適用於 Studio 和 Desktop Studio。
當使用具有 屬性的動作時,指令碼中需要機器人會話狀態botSessionState片段。 這包括Textbot Exchange和Voicebot Exchange等操作(從這裡開始,這兩個操作都簡稱為Exchange)。 必須正確配置botSessionState屬性,以使您的虛擬客服 代替真人客服專員處理客戶互動的軟體應用程式。能按預期工作。 為此,您必須在腳本中創建此代碼段並正確配置操作,如以下部分所示。
您的指令碼絕不應寫入此屬性或其變數。 必須正確
除非您使用 Google Dialogflow CX,否則此 snippet 是必需的,您可以在 自訂工作負載 nippet 中設置自定義對話 ID該 ID 與 Bot 會話狀態 代碼段具有相同的目的。 將聯絡人從一個CX 實例Dialogflow轉移到另一個 CX 實例時,將使用自訂對話 ID。 如果您不使用任一 ID,則會為對話中的每一輪次生成一個新的工作階段 ID,您的虛擬客服將不會維護對話的上下文。 如果發生這種情況,不會生成任何錯誤,但系統將無法按預期運行。
指令碼設定
在您使用 Exchange動作時,指令碼中至少需要有兩個該動作的實例。 每個Exchange動作中的botSessionState 屬性必須以不同方式配置:
- Exchange 動作的第一個執行個體直接位於指令碼開頭的 Begin 動作後面。 配置如下:
- botSessionState:此處必須為空。
- botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。
- 第二個Exchange 動作位於指令碼的後面。 配置如下:
- botSessionState:使用在Exchange動作的第一個執行個體中botSessionStateVarName (out)中使用的變數進行配置。 該變數必須存儲 JSON 格式機器人會話狀態識別碼。
- botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。
- Exchange動作的第三個及任何後續執行個體是可選的。 如果您的指令碼包含這些執行個體,請依下列方式配置:
- botSessionState:使用在Exchange動作的上一個執行個體中botSessionStateVarName (out)中使用的變數進行配置。 該變數必須存儲 JSON 格式機器人會話狀態識別碼。 機器人會話狀態識別碼通常不會在輪次之間改變。 但是,萬一發生變更,應該配置動作以擷取變更。
- botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。
所有虛擬代理都需要這種配置。
驗證 botSessionState 屬性是否正確設定
您可以使用指令碼追踪來確認此屬性是否正確設定。
- 對虛擬客服專員和聯絡人之間的互動執行指令碼追踪。 您可以使用連續追蹤或擷取特定 ANI 或DNIS的追蹤(僅適用於語音互動)。
- 在追踪視窗中,點擊與第一個 Virtual Agent Hub 動作(Voicebot Exchange 或 Textbot Exchange)對應的行。
- 在變數清單中,選中 botSessionState 變數。 其值必須為 null(空)。
- 在追踪視窗中,點擊追踪中第一個 Virtual Agent Hub 動作後的下一行。
- 請注意 botSessionState 變數的值。
- 在追踪視窗中,點擊追踪中與任何後續 Virtual Agent Hub 動作對應的行。
- 檢查 botSessionState 變數的值。 必須與第 5 步中的相同。
將機器人會話狀態識別字碼轉換為 JSON 格式
在 botSessionStateVarName (out) 屬性中使用的變數內容必須被轉換成 JSON 格式,並傳遞到您的指令碼中第二個 Exchange 動作的 botSessionState屬性。 要做到此點,可以在 Snippet 動作中包含代碼,或者可以直接配置該屬性。 這兩種方法都可以接受。 然而,在 Snippet 中建立一個變數來保存轉換後的物件的好處是,這樣會更容易看到轉換在哪裡發生。
使用 Snippet 動作
- 使用變數的名稱配置 Exchange 動作的 botSessionStateVarName (out) 屬性來保留工作階段狀態識別碼。 例如,botSessionState。
-
將以下行新增到指令碼中位於 Exchange 動作之前的 Snippet:
ASSIGN botSessionStateOut = botSessionStateOut.asJSON()
使用在指令碼中使用的變數的名稱。
- 在 Exchange 動作中使用在 ASSIGN 陳述式中使用的變數名稱配置 botSessionState 屬性。 例如,botSessionStateOut。
在屬性中轉換
如果您在botSessionState屬性中轉換變數,可使用 botSessionStateVarName (out) 變數與 asJSON() 功能。 範例:
- botSessionStateVarName (out): botSessionState
- botSessionState: botSessionState.asJSON()
將聯絡人從一個虛擬客服轉移到另一個
要設定虛擬客服之間的聯絡轉移,您需要正確設定機器人會話狀態 ID。 每個虛擬客服都必須有自己唯一的機器人會話狀態ID。 這有助於單個虛擬客服維護他們參與的對話的上下文。
-
虛擬客服專員 1:按照本頁前面所述設置機器人會話狀態變數。
- 虛擬客服專員 2:以相同的方式進行設置,在botSessionStateVarName (out)中使用不同的變數來保存機器人會話狀態 ID。 確保在第一次調用此虛擬客服專員時,botSessionState屬性為空。 對話中的第一個回合將唯一的機器人會話狀態ID返回給botSessionStateVarName (out)中的變數。
- 所有後續虛擬代理:設置與虛擬代理 2 相同,使用唯一變數作為機器人會話狀態 ID。
此方法適用於所有受支援的虛擬客服專員提供者,除非您要在兩個虛擬客服Google Dialogflow CX之間轉移。 在這種情況下,需要不同的方法。