機器人會話狀態 Snippet

此 snippet 用於具有 botSessionState 屬性的動作,如Textbot ExchangeVoicebot Exchange(從此處開始,這兩個動作均簡稱為 Exchange)。必須正確配置botSessionState屬性,以使您的虛擬客服Closed 代替真人客服專員處理客戶互動的軟體應用程式。能按預期工作。

虛擬客服提供者為聯絡人和虛擬客服專員之間的每次對話都會分配一個唯一的識別碼。該識別碼可以防止每一次對話都建立一個新的會話。提供者在對話開始時建立識別碼,並將其與第一個回應一起傳遞給指令碼。指令碼將儲存 Exchange 動作botSessionStateVarName (out)屬性命名的變數中的識別碼。然後它將識別碼傳遞給botSessionState屬性。

必須正確設定您的指令碼,以使用機器人會話狀態識別碼。在您使用 Exchange動作時,指令碼中至少需要有兩個該動作的實例。Exchange動作中的botSessionState 屬性必須以不同方式配置:

  • 第一個 Exchange 動作位於指令碼開頭的 Begin 動作後面。在這個動作的實例中,botSessionState 屬性必須留空。botSessionStateVarName (out) 屬性必須配置您希望指令碼儲存識別碼的變數名稱。
  • 第二個Exchange 動作位於指令碼的後面。在這個動作的實例中,botSessionState 屬性必須配置 botSessionState 中使用的變數。該變數必須含有 JSON 格式機器人會話狀態識別碼。botSessionStateVarName (out) 屬性必須配置您希望指令碼儲存識別碼的變數名稱。若您的指令碼有三個或更多的 Exchange 動作,除了第一個動作,其他動作都應該這樣配置。

所有虛擬代理都需要這種配置。

將機器人會話狀態識別字碼轉換為 JSON 格式

botSessionStateVarName (out) 屬性中使用的變數內容必須被轉換成 JSON 格式,並傳遞到您的指令碼中第二個 Exchange 動作的 botSessionState屬性。要做到此點,可以在 Snippet 動作中包含代碼,或者可以直接配置該屬性。這兩種方法都可以接受。然而,在 Snippet 中建立一個變數來保存轉換後的物件的好處是,這樣會更容易看到轉換在哪裡發生。

使用 Snippet 動作

  1. 使用變數的名稱配置 Exchange 動作的 botSessionStateVarName (out) 屬性來保留工作階段狀態識別碼。例如:botSessionState
  2. 將以下行新增到指令碼中位於 Exchange 動作之前的 Snippet

    ASSIGN botSessionStateOut = botSessionStateOut.asJSON()

    使用在指令碼中使用的變數的名稱。

  3. Exchange 動作中使用在 ASSIGN 陳述式中使用的變數名稱配置 botSessionState 屬性。例如:botSessionStateOut

在屬性中轉換

如果您在botSessionState屬性中轉換變數,可使用 botSessionStateVarName (out) 變數與 asJSON() 功能。例如:

  • botSessionStateVarName (out)botSessionState
  • botSessionState: botSessionState.asJSON()