技術設計文件範本

技術設計文件 (TDD) 描述了系統的詳情。這些文件是規劃自訂虛擬客服專員整合的重要部分。本頁指導您建立自訂虛擬客服專員整合的 TDD。

本 TDD 範本中的每一部分都包含關於該部分預期內容的範例或補充資訊。在可能的情況下,範例與範例文字虛擬客服專員整合相關。

使用本 TDD 指南和範例整合作為規劃自己自訂整合的起點。但是,因為它們是作為範例提供的,所以 TDD 和範例代理隧道都不是針對特定環境設計的。您建立的 TDD 和代理隧道必須考慮到您的組織獨特的網路架構和需求。您可能需要增加或刪除一些部分,以符合您的環境需求。

概覽

本技術設計文件描述了 [您的虛擬客服專員]NICE CXone 的自訂整合。該整合包括以下必須在本文件中描述的元件:

  • 架構,包括代理隧道/閘道中介軟體。
  • CXone 配置要求,包括技能、聯絡點和通道。
  • 虛擬客服專員中心 和自訂虛擬客服專員整合的終點 (Custom Exchange Endpoint)。
  • Studio 指令碼,包括 Snippet 代碼。
  • 驗證要求。
  • 虛擬客服專員配置、終點,訊息來源的詳情。
  • Digital Experience 富媒體內容 JSON 模式。
  • 請求和回應結構描述配對。
  • [您的架構和整合特有的其他元件]

架構概述

待做清單:建立整合的概覽圖。包括環境中所有參與處理互動的元件。這包括代理隧道、虛擬客服專員、授權伺服器等等。包括概述說明。如果您需要更詳細地顯示某些部分,請建立附加圖。

範例

這是 ACD 聊天通道上的文字虛擬客服專員整合範例。因為這是整合範例,有些內容與真實整合不同:

這是一個不需要任何授權的簡單整合。

CXone 配置

待做清單:列出通道Closed 聯絡人與客服專員或機器人互動的方式。 通道可以是語音、電郵、聊天、社交媒體等等。技能Closed 用於基於客服專員技能、能力和知識的互動的自動化傳遞聯絡點Closed 呼入聯絡人用來發起互動的入口點,如電話號碼或電郵地址。,活動,以及任何其他相關 CXone 配置設定。如果您的整合使用Digital Experience(數位) 通道,請包含Digital Experience通道和所需的數位技能或路由佇列Closed 系統使用路由佇列以確定將案例路由給哪些客服專員。 您的系統管理員會建立路由佇列,以便將某些案例路由至具該類型案例專業知識的客服專員。有關更多資訊,請參閱「資源」頁面上的 CXone 配置要求

範例

  • 通道ACD聊天。
  • 技能:聊天技能稱為 IBChat_CEESample
  • 聯絡點:呼叫聯絡點為IBChat_CEESample
  • 活動CEESample

通道要求

因為這是整合範例,所以不需要聊天設定檔。然而,在真實整合中,此部分會規定聊天設定檔的要求。聊天設定檔定義了聊天視窗的外觀。本部分還將列出網站上聊天氣泡所在的頁面,以及任何其他相關要求。

虛擬客服專員中心 配置

待做清單:列出虛擬客服專員的 Webhook URL 和要求與請求一起傳送的虛擬客服專員的任何參數。如果確定您需要不同逾時,請把其新增到此部分。「實作」頁面中描述了 虛擬客服專員中心 中的 Custom Exchange Endpoint 完整配置過程。

範例

  • Webhook URLhttps://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • 終點參數:非必需
  • 自訂標頭(僅整合版本 2.0.0 和 3.0.0):非必需
  • 逾時:無需變更
  • 授權標頭:非必需
  • OAuth 配置:非必需
    • OAuth URL:不適用
    • OAuth 請求參數:不適用
    • OAuth 標頭:不適用

注意在整合版本 1.0.0 中,動態驗證必須在指令碼中配置,而不是在 虛擬客服專員中心 中進行。

Studio 指令碼

待做清單:新增您為自訂虛擬客服專員整合設計的指令碼的螢幕擷取畫面,並附上解釋。根據需要包括變數的描述、Snippet 代碼和其他詳情。有關更多資訊,請參閱指令碼指南和要求

聊天指令碼範例

這與樣本整合中使用的指令碼相同。您可以將其用作您自己指令碼的基礎。還提供了語音 數位 虛擬客服專員的指令碼範例。

下載此指令碼

此指令碼以 Snippet 動作開始,該動作建立了虛擬客服專員整合所需的幾個動態資料物件:

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

第一個 Textbot Exchange 動作設定了虛擬客服專員的意圖Closed 聯絡人所說/所輸入內容背後的含義或目的;聯絡要傳達或實現什麼以回應為歡迎意圖。當虛擬客服專員回覆時,它會填入 botSessionStatecustomPayload 物件並使用 .asjson() 函數將它們轉換為 JSON。

第一個 Textbot Exchange 行動有三個分支:

  • Error:錯誤分支處理錯誤並向聯絡人提供適當的訊息。
  • Return Control to Script:當虛擬客服專員發出訊號表示對話完成或需要將聯絡轉移到真人客服專員時,就會跳轉此分支。
  • Prompt and Collect Next Response:此分支繼續對話,如下所述。

指令碼傳遞從虛擬客服專員(botsessionStatecustomPayloadFromBotintentInfonextPrompt物件中)接收的資料。Askcaller 動作提示與虛擬客服專員的回應聯絡 (nextPrompt)。此行動有四個分支:

  • Error
  • Return Control to Script
  • Caller Responded
  • Default

所有分支都進入第二個 Textbot Exchange 動作,將適當的資訊傳送給虛擬客服專員,包括聯絡在 RES 變數中的下一個請求。此 Textbot Exchange 具有與指令碼中動作的第一個執行個體相同的分支。

服務終點授權

待做清單:確定虛擬客服專員服務的授權要求。如果需要授權,請完成 TDD 中的這一部分。建立可展示適用於您環境的授權要求的圖。包括授權請求所需的詳情。這可能包括

  • 授權的類型(標頭或權杖)。
  • 所有需要標頭的鍵值對。如果使用的是 Custom Exchange 版本 1.0.0,您僅需要標頭的值。
  • 如果您使用標頭或授權 如果您使用權杖,虛擬客服專員服務的任何配置要求。
  • 授權伺服器的 URL,如果使用的是權杖。
  • OAuth 請求正文和標頭需要的鍵值對。
  • 如果您需要或想要自訂其他的 OAuth 設定,請指定這些變更。您可以變更標頭名稱、標頭值首碼和權杖到期時間。

有關更多資訊,請參閱「資源」頁面上的「授權」部分

非授權(公共)服務終點的範例

樣本整合不需要授權。下圖顯示了公共服務終點外觀的範例。

在此範例中,請求來自 虛擬客服專員中心。它首先與 API 閘道互動,然後是虛擬客服專員服務。

授權服務終點範例

當虛擬客服專員服務需要授權來接收請求時,您必須在每個請求中傳送授權標頭。您還可以使用動態驗證,其需要授權伺服器(權杖提供者)。使用標頭的整合的架構外觀與上一部分中的公共服務終點的範例類似。下圖顯示了動態驗證實作的範例。

在此範例中,當指令碼開始時,會向授權伺服器發出一個 REST 請求,其提供一個權杖。權杖會被一起傳送到 Custom Exchange Endpoint。只要權杖有效,就可以向虛擬客服專員服務傳送請求。

代理隧道

待做清單:確定代理隧道的詳情,包括:

  • 您的代理隧道將如何被託管。
  • 代理隧道的開發語言,以及任何需要的應用程式、相依性、SDK、擴展包等等。
  • 代理隧道容錯移轉策略。

範例

代理隧道託管

代理隧道範例將被託管到設定文字虛擬客服專員整合範例的人員的本地機器上。

語言

代理隧道將以 C# 開發。它將需要 VS Code 編輯器和 .NET SDK。

容錯移轉策略

因為這是整合範例,所以不需要容錯移轉策略。

虛擬客服專員用例 — 代理到虛擬客服專員終點的配對

待做清單:建立一個詳細的序列圖,說明在互動過程中每個點使用的回應和請求。記錄 CXone 中的請求和回應結構描述以及自訂整合所需的虛擬客服專員服務。本部分中的範例僅顯示 CXone 的結構描述。有關更多資訊,請參閱「資源」頁面上的「代理隧道」部分「序列圖」部分

範例

序列圖和以下內容是基於發佈時可用的 Swagger 的範例。自訂虛擬客服專員整合始終使用公開的 Swagger 一個正方形,箭頭從中心指向外。 中記錄的結構描述。Custom Exchange Endpoint 結構描述可能會定期更新。關於對自訂整合影響的更多資訊,請參閱「資源」頁面

請求和回應結構描述

此頁面包括請求的結構描述,作為記錄結構描述的範例。關於自訂虛擬客服專員整合結構描述的詳細解釋,請參閱「結構描述」頁面

請求 - ExternalIntegrationBotExchangeRequest

參數

類型

描述

virtualAgentId 字串

虛擬客服專員中心 中指定的 Custom Exchange Endpoint 配置應用程式的名稱。此名稱標識了應用程式叫用的虛擬客服專員。

botConfig 物件 本文件的其他部分將 討論botConfig 中定義的參數。
userInput 字串 從指令碼被指派到的聯絡點Closed 呼入聯絡人用來發起互動的入口點,如電話號碼或電郵地址。接收的來自使用者的文字輸入。
userInputType 列舉 指令碼提供的使用者輸入類型。
executionInfo ActionExecutionInfo 在指令碼中執行動作的遙測資料Closed 在 Studio 指令碼內執行一個流程,如收集客戶資料、播放訊息或音樂,或將聯絡人路由至客服專員。
systemTelemetryData SystemTelemetryData 可用於偵錯的資料。包含有關 CXone 基礎結構的資訊。
base64wavFile 字串 包含 Base 64 進制編碼的 WAV 檔案,其中包含請求的標頭和使用者 話語Closed 聯絡人所說或所輸入的內容。音訊。
botSessionState 物件 可用於從虛擬客服專員處接收的往返會話資訊變數。
customPayload 物件 可用於從 Studio 指令碼的上下文中傳送額外的變數和參數。
mediaType 字串 表示正在運行的指令碼的媒體類型。

請求 - ActionExecutionInfo

參數

類型

描述

contactID 整數 互動的唯一識別碼。
busNo 整數 租戶Closed 用於管理 CXone 環境的技術支援、計費和全域設定的高級組織分組 的唯一識別碼。
requestId 整數

迭代數,用於確定特定互動中的每個請求。

 

actionType 字串 向 custom exchange endpoint 發出請求的動作類型。
actionId 整數 指令碼中動作Closed 在 Studio 指令碼內執行一個流程,如收集客戶資料、播放訊息或音樂,或將聯絡人路由至客服專員。的唯一標識。動作 ID 是基於動作被新增到指令碼中的順序。
scriptName 字串 指令碼的名稱。

請求 - SystemTelemetryData

參數

類型

描述

consumerProccessHost 字串 調用 API 的應用程式的主機名。
consumerProcessName 字串 API 調用者的進程或應用程式名稱。例如,EsnMediaServer.exe
consumerProcessVersion 字串 關於調用 API 的應用程式的任何版本資訊。
inContactClusterAlias 字串 如果適用且可用,請提供 NICE CXone 叢集的別名,例如 C7M33
inContactScriptEngineHost 字串 如果適用且可用,提供 NICE CXone 指令碼引擎主機名稱,例如 lax-c4cor01aoa-c32cor01
consumerMetaData 物件 關於 API 消費者的任意和可擴展資料。

用於 電子通道 的富媒體內容

如果您為 Digital Experience (數位) 通道設定了自訂虛擬客服專員整合,您可以選擇在訊息中支援富媒體內容。富媒體內容包括清單選取器、圖像、時間選取器等內容。

待做清單:配置數位指令碼以傳送富媒體內容。確定您要支援哪些富媒體,並將內容的結構描述新增到 TDD 的這一部分。

範例

樣本整合未使用 Digital Experience 通道。但是,以下範例是 數位 聊天通道上快速回覆的 JSON 結構描述:

"messageContent": {
"type": "PLUGIN",
"payload": {
	"elements": [
	 {
		"id": "Ukm0hRAiA",
		"type": "QUICK_REPLIES",
		"elements": [
				{
					"id": "Akm0hRAiX",
					"type": "TEXT",
					"text": "This is some text"
				},
				{
					"id": "Nkm0hRAiE",
					"type": "BUTTON",
					"text": "Button 1",
					"postback": "click-on-button-1"
				},
				{
				
					"id": "TkGJ6CAiN",
					"type": "BUTTON",
					"text": "Button 2",
					"postback": "click-on-button-2"
				},
				{
					"id": "EyCyTRCi4",
					"type": "BUTTON",
					"text": "Button 3",
					"postback": "click-on-button-3"
				}
			 ]
			}
		]
 	}
}