機器人會話狀態 Snippet

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

botSessionState必須在配置屬性時使用變數,該變數存儲聯絡人與虛擬客服專員之間對話的唯一識別碼。 這是由虛擬客服專員提供者自動指定。 識別碼可防止在對話的每個輪次都建立新的會話,並協助虛擬客服專員在輪次之間保持上下文一致。

提供者在對話開始時建立識別碼,並將其與第一個回應一起傳遞給指令碼。 指令碼將儲存 的此動作的botSessionStateVarName (out)屬性中命名的變數中的識別碼。 最後,指令碼會將前一輪的botSessionStateVarName (out)屬性的識別碼傳遞給botSessionState屬性。

您的指令碼絕不應寫入此屬性或其變數。 必須正確設定您的指令碼,以使用機器人會話狀態識別碼。

指令碼設定

在您使用 Exchange動作時,指令碼中至少需要有兩個該動作的實例。 每個Exchange動作中的botSessionState 屬性必須以不同方式配置:

  • Exchange 動作的第一個執行個體直接位於指令碼開頭的 Begin 動作後面。 配置如下:
    • botSessionState:此處必須為空。
    • botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。
  • 第二個Exchange 動作位於指令碼的後面。 配置如下:
    • botSessionState:使用在Exchange動作的第一個執行個體中botSessionStateVarName (out)中使用的變數進行配置。 該變數必須存儲 JSON 格式機器人會話狀態識別碼
    • botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。
  • Exchange動作的第三個及任何後續執行個體是可選的。 如果您的指令碼包含這些執行個體,請依下列方式配置: 
    • botSessionState:使用在Exchange動作的上一個執行個體中botSessionStateVarName (out)中使用的變數進行配置。 該變數必須存儲 JSON 格式機器人會話狀態識別碼。 機器人會話狀態識別碼通常不會在輪次之間改變。 但是,萬一發生變更,應該配置動作以擷取變更。
    • botSessionStateVarName (out):屬性必須以您希望指令碼儲存識別碼的變數名稱來配置。

所有虛擬客服專員都需要這種配置。

將機器人會話狀態識別字碼轉換為 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()