VoiceBot Exchange

整合自助虛擬客服Closed 代替真人客服專員處理客戶互動的軟體應用程式。與語音指令碼。這個動作在指令碼中的迴圈中使用。指令碼必須包含至少兩個 VoiceBot Exchange 動作。您的虛擬客服必須支援此動作。

Voicebot Exchange 動作適用於複雜的虛擬客服,或者當您需要自訂虛擬客服在不同輪次中的行為時。其逐輪次監控聯絡人和虛擬客服之間的對話。將每一段話語Closed 聯絡人所說或所輸入的內容。傳送給虛擬客服。虛擬客服分析話語中的意圖Closed 聯絡人所說/所輸入內容背後的含義或目的;聯絡要傳達或實現什麼和上下文,然後決定使用哪種回應。該動作將虛擬客服專員的回應傳遞給聯絡人。對話完成後,此動作將繼續執行指令碼。

這是用於語音虛擬客服專員的首選動作。如果您要配置干預或無輸入,則還需要額外的指令碼。如果您使用 SIPClosed 用於傳送訊號和控制多媒體通訊工作階段(例如語音和視訊呼叫)的協議。 後端通道連接,則必須使用Voicebot Conversation動作。

點擊兩下此動作開啟 虛擬客服專員中心,您可以在其中管理所有的虛擬客服。

Dependencies

  • 迴圈中指令碼必須包含至少兩個連接的 VoiceBot Exchange 動作。
  • 要使用這個動作,您的虛擬客服必須支援定制逐輪次對話。
  • 對話回合的定義:

    1. 將聯絡人話語傳送到虛擬客服。
    2. 虛擬客服處理話語並定義任何自訂工作負載資訊。
    3. 將答案傳回至聯絡人。
    4. 要採取的任何其他動作(例如資料庫或外部 API 調用),而此等動作將在 nextPromptBehaviors 屬性決定。您還可以配置在互動完成或轉駁至真人客服專員時要退出的對話迴圈。
  • 若您給 Google Dialogflow ESGoogle Dialogflow CX 虛擬客服包含自訂工作負載,請遵循自訂工作負載最佳做法和準則。在本頁面提供 CXES 的準則。

Supported Script Types

The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it.

電話

Comparison of Similar Actions

以下動作有類似的功能,但有一些關鍵區別:

  • Textbot Conversation: This action is only suitable for very simple virtual agents.It doesn't allow for customization of the virtual agent's behavior from turn to turn.It's not currently supported in CXone.
  • Textbot Exchange:此action用於更複雜的虛擬客服互動。允許您包含交換參數,並自訂聯絡人和虛擬客服之間對話的各個方面。
  • Voicebot Conversation:此action僅適用於非常簡單的虛擬客服。其不允許自訂虛擬客服在不同輪次中的行為。若要使用 SIP 後端通道連接,且虛擬客服專員支援該連接,則必須使用 Voicebot Conversation
  • Voicebot Exchange:此action用於更複雜的虛擬客服互動。允許您包含交換參數,並自訂聯絡人和虛擬客服之間對話的各個方面。

Supported Virtual Agents

此動作支援以下虛擬客服專員:

您必須先在 虛擬客服專員中心 中新增並配置虛擬客服專員,然後才可將該虛擬客服機器人指派給此動作。您只需要為您使用的每個虛擬客服專員提供一個應用程式。您可以在您的指令碼中將同一個應用程式指派給多個虛擬客服專員動作。有關配置詳細資訊,請參閱所使用之虛擬客服提供者的說明頁。

Input Properties

這些屬性定義了動作執行時使用的資料。

此動作的一個或多個屬性需要使用 自訂代碼Snippet 動作。

屬性

描述

Caption

輸入在指令碼中唯一標識此操作的短語。標題出現在指令碼畫布上的動作圖示下。The default is the action name.

virtualAgentID 虛擬客服專員中心 中選擇的虛擬客服專員名稱。當您將虛擬客服應用程式分配給虛擬客服專員中心中的Studio動作時,它將自動填充此屬性。該名稱是在虛擬客服專員中心應用的Virtual Agent (Bot) Name欄位中使用的名稱。
customPayload

只有在需要向虛擬客服傳遞自訂工作負載資料時才配置此屬性。自訂工作負載物件從Studio指令碼中填充。您可以用其從 CRMClosed 管理聯絡人、銷售資訊、支援詳情和案例歷史的第三方系統。 傳遞聯絡人姓名等資訊,以便在歡迎訊息中使用。

輸入 JSON 物件的名稱,該物件將資料從指令碼傳遞給虛擬客服。您必須在一個 Snippet 動作中定義自訂的工作負載物件。該物件必須在 snippet 中或在customPayload屬性中轉換為 JSON。

對特定虛擬客服提供商的要求:

如果您需要處理虛擬客服返回給指令碼的資料,請不要使用此屬性。而是使用 customPayloadVarName (out) 變數代替。

nextPromptSequence

從虛擬客服專員收到的回應,將為聯絡人播放。使用 nextPromptSequenceVarName (out) 中指定的變數和 asJSON() 函數配置此屬性。您還可以在Snippet動作中將 nextPromptSequenceVarName (out)中的內容 轉換為 JSON 格式,並使用儲存 JSON 格式的變數配置此屬性。

nextPromptBehaviors

指定對話中下一個提示的配置和行為。使用Snippet action定義您想要查看的行為,並遵循預設的下一個提示行為下一個提示行為 snippet 範例。此範例描述了可用於配置舒適雜音、DTMF 收集以及允許聯絡人在播放音訊時講話(打斷)的屬性。

nextPromptBehavior屬性配置為您在 snippet 代碼中使用的物件的名稱。這將把設定傳遞給此屬性及其動作。例如,使用下一個提示行為 snippet 範例,您將為此屬性輸入 {nextPromptBehaviorsOutjson} 只有在使用此動作啟用文字虛擬客服處理語音互動時,才需要配置此屬性。

botSessionState

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

此屬性必須正確配置,才能使您的虛擬客服正常運行。關於如何配置的更多資訊,可在機器人會話狀態 Snippet 説明頁面上找到。

automatedIntent

按名稱輸入虛擬客服要回應的特定意圖,而不是讓虛擬客服解釋收集的使用者輸入。此類的一個常見用例是讓虛擬客服顯示最初歡迎訊息。Welcome是初始問候的標準字串。

Output Properties

這些屬性包含變數,用於儲存執行動作後返回的資料。當動作完成後,它們可供參考和使用。

屬性

描述

nextPromptBehaviorsVarName (out)

定義在下一個對話回合提示使用者的行為。

nextPromptSequenceVarName (out)

保留來自虛擬客服的回應,並將其傳遞給nextPromptSequence屬性。

customPayloadVarName (out)

將自訂 JSON 資料從虛擬客服傳回到指令碼。如果您希望指令碼處理虛擬客服提供的資料,請使用此變數。可能包含履行資料。

如果要向虛擬客服提供資料,請使用 customPayload 屬性。

errorDetailsVarName (out)

提示錯誤意圖序列;可能會導致轉移至真人客服專員。

intentInfoVarName (out)

保留來自虛擬客服詳細資料的變數,表明目前使用者的意圖。

botSessionStateVarName (out)

保留變數,指令碼在其中存儲由虛擬客服提供者傳送的機器人會話狀態識別碼。變數的內容被傳遞給botSessionState屬性。

此屬性必須正確配置,才能使您的虛擬客服正常運行。關於如何配置的更多資訊可在機器人會話狀態 Snippet 説明頁面上找到。

Result Branch Conditions

結果分支條件允許您在指令碼中建立分支,以處理執行動作時的不同結果。

條件

描述

Default 指令碼未能滿足需要它採用其中一個分支的條件時採用的路徑。如果沒有定義動作的其他分支,也會採用該路徑。
OnPromptAndCollectNextResponse

虛擬客服確定互動應繼續進行,並準備好接收更多來自聯絡的人工輸入時採用的路徑。提示對話的下一個回合。

OnError 出現意外問題(例如,連接不良、文法錯誤等)時採用的路徑。_ERR變數應填上針對問題的簡要說明。
OnReturnControlToScript Path taken if the virtual agent indicated that the conversation finished and gives control back to the Studio script to transfer or end the call. There may be fulfillment data to be processed in the customPayload result.
OnDTMFBreakout

滿足指令碼中的 DTMFClosed 使用者點擊或輕點電話鍵盤上的某個鍵而產生的訊號音。 規則時採用的路徑。

OnUserInputTimeout

當使用者在提示行為 snippet 中指定的時間內沒有回應時,所採用的路徑(無論是預設Next Prompt Behavior snippet。

對於 Google Dialogflow,您可以在 虛擬客服專員中心 Dialogflow 應用程式中配置您希望發生的事件。對於 Dialogflow ES,可配置 Timeout Event 欄位。對於 Dialogflow CX,可配置 Timeout Event Handler。若未配置事件,則預設為使用在 Dialogflow 中配置的預設遞補意圖。

若有需要,可配置此分支,以在指令碼中的不同點使用不同的事件

OnUserInputNotUnderstood

當虛擬客服專員不理解聯絡人的回應或聯絡人逾時時採用的路徑。

Required SNIPPET Action Code

此動作的一個或多個屬性需要使用以下自訂代碼的 Snippet action

Best Practices for Custom Payload with Google Dialogflow CX

When using this action with Google Dialogflow CX follow these best practices for integrating custom payloads:

  • DialogflowCX 並不像 DialogflowES 那樣使用上下文將資料傳遞給Dialogflow意圖Closed 聯絡人所說/所輸入內容背後的含義或目的;聯絡要傳達或實現什麼
  • 您可以使用 JSON 鍵值對將自訂資料傳遞給 Dialogflow CX。在指令碼的 Snippet action動作中,建立動態 customPayload 物件並向其新增鍵值對。例如:

    DYNAMIC customPayload
    customPayload.ani = ani
    customPayload.contactID = contactId
    customPayload.masterContactId = masterId
    customPayloadJSON = "{customPayload.asJSON()}"	
  • 在您的指令碼中的 ExchangeConversation 動作中,使用變數配置 customPayload 屬性,變數在其值中使用 asJSON() 函數。可以在customPayload物件中找到此變數。
  • 使用 QueryParametersPayload 屬性將 customPayload JSON 傳遞給虛擬客服專員。有關 Google Dialogflow CX 請參見有關 QueryParameters 一個箭頭從中心指向右上角的正方形。Google 文件。
  • 透過 QueryParameters 傳遞的資料由 Dialogflow CX 中的 webhook 接收。您可以在 Dialogflow CX 控制台中編寫代碼以處理傳遞的資料。
  • 不要在 customPayload 物件中嵌套物件。嵌套的物件以文字字串的形式傳送。
  • 要從您的 DialogflowCX 虛擬客服將自訂資料傳遞回指令碼,請使用 DialogflowCX 控制台中的 自訂工作負載欄位。確保您是在您使用CXone的虛擬客服的控制台中。使用指令碼中的 voicechat Studio 動作的 customPayloadVarName (out) 變數將其配對到您的指令碼。例如,您可以使用這個設定下一個提示行為
  • 使用 customPayload 設定的參數只能在外部 webhook 中使用。如果您想設定參數以便在外部 webhook 之外使用,請使用 session_params 欄位在 Snippet 動作中設定它們。例如:

    {
    	"session_params":
    	{ 
    		"name": "Winnie Le Pooh"
    		"job": "Food critic"
    		"location": "Hundred Acre Wood"
    	}
    }

    使用以下文法存取 DialogflowCX 客服專員意圖中的工作階段參數:

    $session.params.name = Winnie Le Pooh

    $session.params.job = Food critic

    $session.params.location = 100 Acre Wood

    工作階段參數僅用於 DialogflowCX 虛擬客服。為了實現與 DialogflowES 中類似的結果,請使用上下文。

  • 語音上下文提示可與 speechContexts參數中的自訂工作負載一起傳遞。speechContexts.phrases 的值必須是您要給出的提示的Google類別權杖 一個箭頭從中心指向右上角的正方形。。權杖必須與連絡人的語言和地區相符合。例如:

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		
  • 要配置當聯絡人說話停頓時,虛擬客服需等待多長時間,可在 Next Prompt BehaviorsDefault Next Prompt Behaviors Snippet動作中新增 maxPostEnergySilenceMS 參數

Best Practices for Custom Payload with Google Dialogflow ES

When using this action with Google Dialogflow ES, follow these best practices for integrating custom payloads:

  • CustomPayload 用於為意圖Closed 聯絡人所說/所輸入內容背後的含義或目的;聯絡要傳達或實現什麼傳遞上下文。上下文幫助虛擬客服理解使用者的意圖。上下文並非必需,但可幫助虛擬客服配對話語Closed 聯絡人所說或所輸入的內容。與意圖。
  • 在指令碼的 Snippet 動作中,建立customPayload物件,它遵循 REST Resource:  projects.agent.sessions.contextGoogle Dialogflow ES 文件 表示連結到外部網站的圖示中的格式。Studio 線上說明提供了有關動態資料物件的其他資訊。
  • 您還可以在沒有上下文的情況下使用 customPayload 傳遞自訂資料。為此,請將標準 JSON 鍵值對包括在動態資料物件中。
  • 語音上下文是在 speech_contact 參數的自訂工作負載中傳遞。您可以在 Studio 追蹤和應用程式紀錄中查看此參數的內容。
  • customPayload動態物件作為虛擬客服參數以 JSON 形式傳遞,如範例指令碼中所示。
  • 語音上下文提示可與 speechContexts參數中的自訂工作負載一起傳遞。speechContexts.phrases 的值必須是您要給出的提示的Google類別權杖 一個箭頭從中心指向右上角的正方形。。權杖必須與連絡人的語言和地區相符合。例如:

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		

Tips and Tricks

如果無法聽到 虛擬客服專員中心 和虛擬客服之間的語音音訊,請檢查指令碼追蹤以查看是否有文字記錄。如果有,則需要調整 Google Dialogflow 虛擬客服。

Script Example

此範例不是一個完整的指令碼。使用此動作時需要額外的指令碼編寫工作。

VoiceBot Exchange actions must be used in a loop. This means that you must use at least two in a script. The first action initiates the call to the virtual agent's API and must be preceded by the Default Next Prompt Behavior Snippet action. The first action is the Welcome Default, which begins the first scripted loop, or one conversational 'turn'.

An example of a script that uses the VoicebotExchange action.

Download this script.

Example Script for CustomPayload with Google Dialogflow ES

此範例不是一個完整的指令碼。使用此動作時需要額外的指令碼編寫工作。

此指令碼是如何整合自訂工作負載與Google Dialogflow ES虛擬客服的範例。此指令碼使用 Voicebot Exchange 動作,但如果使用 TEXTBOT EXCHaNGE 動作,它也能正常工作。

範例指令碼,說明如何使用 Google Dialogflow CX 處理自訂工作負載。

下載此指令碼

Example Script for Alternate Timeout Events

此範例不是一個完整的指令碼。使用此動作時需要額外的指令碼編寫工作。

您可以在腳本中的不同位置使用不同的逾時事件。例如,您可能在 UserInputTimeout 屬性第一次和第二次被觸發時使用不同的逾時事件。此範例指令碼展示了一種可實現此目的的方法。

在此指令碼中, Snippet 動作用於建立逾時計數器並使計數遞增。第二次逾時後,Snippet 動作將用於設定另一個逾時事件。替代逾時事件透過 automatedIntent 屬性從 Snippet 動作傳遞到 voicebot 動作。

下載此指令碼