如果公司使用的 CRM 目前並非 CCAI Platform 的標準整合項目,則可透過自訂 CRM 解決方案,運用 Contact Center AI Platform (CCAI Platform) 入口網站。使用自製或任何非標準 CRM 時,可採用自訂 CRM 設定。
服務專員可處理來電和即時通訊,主管則可透過 CCAI Platform 入口網站監控及提取報表。通話或即時通訊工作階段的所有詳細資料,都會儲存在工作階段中繼資料檔案中。這個檔案可包含 20 多個資料點,包括工作階段資訊、轉接、處理時間長度、參與者、診斷資訊等。工作階段中繼資料檔案可經過剖析,用於工作階段後分析和追蹤。
工作階段中繼資料和消費者上傳的媒體檔案會推送至外部儲存空間服務,服務專員則可在工作階段期間,直接在服務專員轉接器中查看消費者上傳的媒體檔案。
自訂 CRM 解決方案是由下列元件組合而成。部分元件可能不適用於您的設定:
為每個通話和即時通訊工作階段產生工作階段中繼資料檔案
將中繼資料和媒體檔案推送至外部儲存空間服務
一般 API 整合
自訂查詢網址
透過電子郵件更新 CRM 記錄
從代理轉接器查詢帳戶或案件
必要條件
如要使用自訂 CRM 功能,必須先設定外部儲存空間。詳情請參閱「自訂 CRM 解決方案的外部儲存空間」。
工作階段中繼資料
工作階段中繼資料檔案包含工作階段的詳細資訊。這封電子郵件會在課程結束 15 分鐘後寄出。詳情請參閱「工作階段中繼資料檔案」。
自訂 CRM 互動和整合方法
| Generic API | 自訂網址 | |
|---|---|---|
| 帳戶查詢 | 是 | 是 |
| 案件查詢 | 是 | |
| 案件更新 | 是 | 否 |
Generic API
一般 API 整合方法可讓您使用自訂 CRM 的 API,與 CCAI Platform 建立雙向連線。這種方法與現成的 CRM 整合體驗相同,可流暢完成。服務專員不必採取任何行動,即可為通話或即時通訊工作階段建立 CRM 記錄,具體取決於專屬 API 設定。可順暢查詢及更新記錄。
自訂網址
「自訂連結」選項可讓服務專員利用為每個工作階段建立的自訂連結,與客戶關係管理系統互動。與標準 CRM 整合和一般 API 體驗不同,服務專員必須採取行動,才能建立 CRM 記錄。在某些情況下,這可能只是從工作階段啟動含有自訂連結的分頁,而在其他情況下,服務專員可能需要手動建立記錄。
自訂查詢網址詳細資料與設定
網址的基本功能是執行 CRM 查詢,但視 CRM 而定,系統可能會根據自訂網址內容觸發更複雜的程序。自訂 CRM 的網址可使用包含工作階段資訊的變數進行設定,並可在工作階段期間透過代理程式轉接器存取。存取網址後,系統會觸發自訂 CRM 執行查詢。服務專員可透過這項 CRM 查詢功能,在進行中的通話或即時通訊工作階段使用「票證彈出式視窗」。自訂連結程序完全仰賴自訂 CRM 處理這類連結的能力,並在必要時修改或重寫連結。
除非您也使用列出的電子郵件更新方法,否則外部儲存的工作階段中繼資料、通話錄音和其他檔案,不會與 CRM 記錄連結。
在這種設定下,服務專員會登入 CCAI Platform 入口網站,並在不同的分頁登入 CRM。通話和即時通訊會在 CCAI Platform 分頁中處理,客服單詳細資料則會在 CRM 分頁中存取。
如要讓這項設定生效,請按照下列步驟操作:
服務專員必須在瀏覽器中登入客戶關係管理系統
服務專員必須在瀏覽器中登入 CCAI Platform 入口網站
必須預先設定自訂查詢網址
客戶關係管理系統必須處理自訂網址,才能顯示相關客戶關係管理記錄
自訂查詢網址行為
CCAI Platform 只會在網址中加入非空白的參數。
工作階段結束後,CCAI 平台不會將含有 ANI/UID/電子郵件地址的生成網址,儲存在 CCAI 平台資料庫中。
自訂查詢網址設定
由於專屬 ID 和 CRM 功能與行為各不相同,您必須建立 2 個不同的網址,一個用於 IVR/PSTN/簡訊工作階段,另一個用於網頁和行動 SDK 工作階段。IVR/PSTN/SMS 工作階段會使用 ANI 做為專屬 ID,而網頁和行動 SDK 則可能使用 CUID 和電子郵件。
您可以使用下列變數設定查詢網址:
| 變數 | 值 |
|---|---|
{CUSTOMER_PHONE_NUMBER} |
使用者的電話號碼 |
{ANI} |
使用者的電話號碼。保留以確保回溯相容性。 |
{CUID} |
自訂使用者 ID |
{EMAIL} |
使用者電子郵件 |
{MENU_PATH} |
完整的佇列選單路徑。 例如「訂單/訂單確認/訂單資訊」。 |
{MENU_ID} |
選單 ID |
{CHANNEL} |
工作階段管道。可能的值包括:
|
{TYPE} |
工作階段類型。 通話可能的值:
即時通訊可能的值:
|
{SUPPORT_PHONE_NUMBER} |
使用者撥打的支援中心電話號碼。 |
{OUTBOUND_NUMBER} |
服務專員用於外撥通話的電話號碼。 |
{SESSION_ID} |
工作階段 ID。可能的值包括:
|
{CUSTOM_AGENT_ID} |
user 物件中的選用代理 ID 欄位。必須等到工作階段建立並指派代理後,才能取得代理 ID。因此,請將執行個體設為延遲建立通話或即時通訊記錄,以便有時間定義這個變數。如要延遲建立通話或即時通訊記錄,請依序前往
「設定>
作業管理」>「CRM 記錄建立詳細資料」。詳情請參閱「CRM 記錄建立詳細資料」。 |
CCAI 平台入口網站設定
使用具備管理員角色的帳戶,登入 CCAI Platform 入口網站。
依序前往「設定」>「開發人員設定」。
在「CRM」部分,選取「自訂 CRM」。
在「CRM 查詢」下方,輸入自訂網址。
選取要在 CRM 要求中使用的電話號碼格式。
按一下 [儲存變更]。
如果您尚未設定外部儲存空間服務,請先完成設定。詳情請參閱「外部儲存空間」。
透過電子郵件更新 CRM 記錄
在自訂查詢網址等設定中,工作階段完成後,必須在 CRM 中更新工作階段中繼資料。有了這項功能,CCAI Platform 就能自動透過電子郵件傳送工作階段資料。工作階段結束約 15 分鐘後,系統會將電子郵件傳送至設定的位置,並使用電子郵件內容更新 CRM 中的記錄。這項功能可以全域設定,也可以針對個別佇列設定。收到電子郵件後,CRM 可能會設定為更新或建立工作階段的新 CRM 記錄。
電子郵件詳細資料
包含:
Subject line
主體,包含 JSON 語法的工作階段中繼資料
TXT 格式的附件,內含即時通訊轉錄稿 (如適用)
CCAI 平台會在工作階段結束後等待 15 分鐘,然後傳送電子郵件。
只有在工作階段順利完成時,系統才會傳送電子郵件。如果工作階段失敗或遭到放棄,系統就不會傳送這項事件。
全域設定
使用具備管理員角色的帳戶,登入 CCAI Platform 入口網站。
依序前往「設定」>「開發人員設定」。
在「CRM」部分,確認已選取「自訂 CRM」。
啟用「透過電子郵件傳送工作階段結果」。
輸入要接收電子郵件的電子郵件地址。
按一下 [儲存變更]。
各佇列的設定
使用具備管理員角色的帳戶,登入 CCAI Platform 入口網站。
依序前往「設定」>「佇列」,然後選取任一子佇列。
啟用「透過電子郵件傳送工作階段結果」。
輸入要接收電子郵件的電子郵件地址。

按一下「儲存自訂 CRM 設定」。
設定繼承和覆寫
| 設定 | 行為 |
|---|---|
| 全域 = 未啟用 佇列 = 未啟用 |
不傳送所有佇列。 |
| 全域 = 未啟用 佇列 = 已啟用 |
佇列設定 (即開啟/關閉狀態) 會覆寫全域設定。 電子郵件會從指定佇列傳送至佇列設定中定義的電子郵件地址。 |
| 全域 = 已啟用 佇列 = 未啟用 |
佇列設定 (電子郵件地址、開啟/關閉狀態) 會沿用全域設定。 電子郵件會從指定佇列傳送至全域設定中定義的電子郵件地址。 |
| 全域 = 已啟用 佇列 = 已啟用 |
佇列設定 (電子郵件地址) 會覆寫全域設定。 電子郵件會從指定佇列傳送至佇列設定中定義的電子郵件地址。 如果電子郵件地址為空白,系統就不會傳送電子郵件。 |
服務專員體驗
查詢 CRM 記錄
使用已指派代理角色
開啟通話或即時通訊轉接器。
使用「在新瀏覽器視窗中開啟」按鈕觸發查詢。
點選「複製連結」按鈕,將查詢網址複製到剪貼簿。

自訂 CRM 解決方案的外部儲存空間
自訂解決方案的外部儲存空間可讓您使用外部儲存空間服務,儲存及擷取 CCAI Platform 工作階段中繼資料、通話錄音、即時通訊轉錄稿,以及消費者上傳的媒體檔案。這些檔案儲存在客戶關係管理系統以外的位置。
如要設定外部儲存空間,您必須具備:
有效的 CCAI Platform 帳戶,並指派管理員和服務專員角色,以便進行設定和測試
外部儲存服務
資料夾結構
系統會在資料夾路徑的外部儲存空間中,整理下列資料夾結構:
ujet-chat-transcripts
ujet-media
ujet-metadata
ujet-voice-recordings
ujet-voicemails
檔案格式和命名慣例
下列檔案類型可推送至外部儲存空間服務。檔案在傳輸過程中會使用 HTTPS 加密:
| 檔案 | 名稱 |
|---|---|
| 電話錄音 | - call-{id}.mp3 - call-{id}.wav |
| 媒體檔案 | - call-{id}-photo-{photo-id}.jpg - call-{id}-video-{video-id}.mp4 - chat-{id}-photo-{photo-id}.jpg - chat-{id}-video-{video-id}.mp4 |
| 即時通訊轉錄稿 | - chat-{id}.txt |
| 工作階段中繼資料 | - call-{id}.json - chat-{id}.json |
服務專員和主管體驗
在通話或即時通訊期間,消費者使用智慧動作上傳的相片和影片會顯示在服務專員轉接器中。
如果您使用自訂網址 CRM 互動,並搭配工作階段中繼資料檔案電子郵件更新方法,服務專員和監督員就能使用外部伺服器存取工作階段資訊。
設定外部儲存空間服務
請按照下列步驟設定外部儲存空間:
使用具備管理員角色的帳戶登入 CCAI Platform 入口網站。
依序前往「設定」>「開發人員設定」。
在「Developer Settings」頁面中,前往「External Storage」部分。
將切換鈕設為「開啟」,啟用 CRM 伺服器以外的資訊儲存空間,然後選取要儲存的檔案類型。
在「Server Setup」(伺服器設定) 部分,選取儲存空間類型並完成設定步驟:SFTP 伺服器、Google Cloud bucket。
安全檔案傳輸通訊協定伺服器
輸入 SFTP 主機 (網址或 IP 位址)。
輸入通訊埠編號。
輸入 SFTP 登入使用者 ID。
如果 SFTP 伺服器需要密碼才能驗證,請在「Password」(密碼) 欄位中輸入密碼。
如果 SFTP 伺服器需要私密金鑰才能驗證,請勾選「SSH Private Key」(SSH 私密金鑰) 核取方塊。
輸入 (複製並貼上) SSH 私密金鑰。
輸入私密金鑰通關密語。如要將工作階段資訊儲存在 SFTP 伺服器的特定資料夾中,請勾選「Folder Path」(資料夾路徑) 核取方塊,然後輸入 SFTP 資料夾路徑。
按一下 [儲存變更]。
Cloud Storage
輸入目的地 Google Cloud 值區名稱。
輸入 Google Cloud 用戶端 ID。
輸入 Google Cloud 「Client Secret」(用戶端密鑰)。
如要將工作階段資訊儲存在 Google Cloud bucket 的特定資料夾中,請勾選「Folder Path」(資料夾路徑) 核取方塊,然後輸入Google Cloud 資料夾路徑。
按一下「連結並儲存」。
測試外部儲存空間設定
如果客戶關係管理系統已有標準整合功能:
登入客戶關係管理系統。
使用已指派代理角色的 CCAI Platform 憑證,在 CRM 中登入 CCAI Platform。
撥打電話或發起即時通訊。系統會顯示與工作階段相關聯的 CRM 記錄。
工作階段結束後,轉錄稿檔案應會在幾秒內上傳。
直接前往外部伺服器儲存空間資料夾,確認檔案是否存在。
將工作階段檔案傳送至 CRM
啟用外部儲存空間後,CRM 儲存空間和外部儲存空間網址開發人員設定可讓您傳送工作階段檔案,並決定要使用哪個來源在服務專員轉接器中顯示檔案。
如要查看這些設定,請依序前往「設定」>「開發人員設定」>「外部儲存空間」,啟用外部儲存空間。將「Enable information storage outside CRM servers」切換為「On」。
CRM 儲存空間
依序前往「Settings」>「Developer Settings」>「External Storage」>「CRM Storage」。
勾選「Also send session files to the CRM」(同時將工作階段檔案傳送至 CRM) 旁的方塊,將通話錄音或即時通訊轉錄稿等工作階段檔案,傳送至 CRM 和設定的外部儲存空間。
按一下 [儲存變更]。
如果勾選這個核取方塊,錄音檔會同時儲存在 CRM 和外部儲存空間。
外部儲存空間網址
外部儲存空間網址會用於兩個地方:
代理轉接器。
報表:在報表和「設定」、「通話」、「已完成」等選單中顯示媒體網址。
依序前往「Settings」>「Developer Settings」>「External Storage」>「External Storage URLs」
選取來源「CRM 網址」或「外部儲存空間網址」,在服務專員轉接器中顯示檔案。
按一下 [儲存變更]。
CRM 儲存空間
如果未勾選 CRM 儲存空間的核取方塊,錄音檔只會儲存在外部儲存空間,並使用 CRM 連結。
如果勾選這個核取方塊,錄音檔會同時儲存在 CRM 和外部儲存空間。
外部儲存空間網址
網址會用於兩個地方:
一個是在 CCAI 平台轉接器中顯示媒體。外部儲存空間或客戶關係管理系統。
另一個則在報表中。我們會在報表和「設定」、「通話」、「已完成」等選單中顯示媒體網址。
在 CCAI 平台入口網站中顯示自訂 CRM
使用自訂 CRM 整合功能搭配自建 CRM 時,您可以在 CCAI Platform 入口網站的專屬頁面載入 CRM。啟用後,CCAI Platform 入口網站中的「CRM」分頁會載入並顯示自訂 CRM 頁面。如要設定,請依序前往「Developer Settings」>「CRM」。
這項功能可讓服務專員使用 CCAI Platform 通話和即時通訊轉接器處理即時支援工作階段,同時在自訂 CRM 中工作。包括查看自動彈出的帳戶和記錄詳細資料,以及從行動應用程式或消費者傳入的工作階段特定檔案和資料,這些操作都可在 CCAI Platform 入口網站完成。
設定自訂 CRM 頁面
如要設定自訂 CRM 頁面,請按照下列步驟操作:
在 CCAI Platform 入口網站中,依序點選「Settings」(設定) >「Developer Settings」(開發人員設定)。如果找不到「設定」選單,請按一下「選單」圖示 。
在「CRM」窗格中,按一下「Custom CRM」。
將「Display CRM in CCAI Platform portal」(在 CCAI 平台入口網站中顯示 CRM) 切換鈕撥到「開啟」位置。
在「Display URL」(顯示網址) 下方,輸入自訂 CRM 頁面的網址,然後按一下「Save」(儲存)。
開啟自訂網址彈出式視窗
如果系統找不到聯絡人,請使用「開啟自訂網址」,顯示自訂網址畫面彈出式視窗。使用臨時帳戶 ID 建立 CRM 記錄,並根據佇列層級設定觸發含有參數的自訂連結。
為個別佇列啟用彈出式視窗
依序前往「設定」>「佇列」>「IVR」,然後點選要編輯的佇列。
前往面板中的「開啟自訂網址」。
輸入網址,即可顯示彈出式畫面。
在網址中加入變數參數 {ACCOUNT_ID} 和 {PHONE_NUMBER}。
並提供範例。
- 按一下 [儲存]。
自訂客戶關係管理系統一般 API 整合
一般 API 整合方法可讓您使用 CRM 的 API,與 CCAI Platform 建立雙向連線。這種流暢的方法與現成的 CRM 整合體驗相同。
服務專員不必採取任何行動,系統就會為通話或即時通訊工作階段建立 CRM 記錄。視 API 設定而定,這項功能可讓您順暢查詢及更新記錄。
術語
字詞 |
說明 |
帳戶 |
用於參照 CRM 中的帳戶/聯絡人/客戶/待開發客戶實體。您的客戶關係管理系統可能對這個實體有其他名稱。 帳戶包含記錄。 |
記錄 |
用於參照 CRM 中的案件/票證/對話/事件實體。您的客戶關係管理系統可能對這個實體有其他名稱。 記錄屬於帳戶。 |
註解 |
用於參照客戶關係管理系統中的「註解/附註」實體。您的客戶關係管理系統可能對這個實體有其他名稱。 留言屬於記錄。 |
API 設定
本節概述自訂 CRM API 設定專屬的設定。
驗證方式
CCAI Platform 支援三種 CRM 驗證方式:
基本驗證:設定驗證憑證,包括使用者名稱和密碼。
自訂標頭:設定自訂標頭鍵/值組合:「Field Key」(欄位索引鍵) 和「Field Value」(欄位值)。您可以視需要輸入多組。
OAuth:CCAI Platform 支援業界標準的授權通訊協定 OAuth 2.0。如需啟用「Include the Redirect URL as part of the Authorization URL and Token URL」(將重新導向網址納入授權網址和權杖網址) 選項,請指定 OAuth 資訊。
設定下列值:
授權網址 (必填)
權杖網址 (必填)
用戶端 ID (必填)
用戶端密鑰 (必要)
範圍
狀態
存取類型
電話號碼格式
選取要在 CRM 要求中使用的電話號碼格式:
自動:建立:+1 222 333 4444,搜尋:*222*333*4444
E.164:+12223334444
美國當地:2223334444
美國當地標準:(111) 222-3333
國際:+1 222 333 4444
API 要求逾時
使用下拉式選單,將「API Request Timeout」(API 要求逾時) 設為 1 到 10 秒。這項逾時設定會套用至您設定的所有端點。
CRM 查詢網址
指定查詢網址,將代理程式指向目前的帳戶和記錄。
在瀏覽器中開啟帳戶或記錄頁面時,請輸入 CRM 中顯示的查詢網址。
您也可以搭配網頁 SDK 和行動 SDK 使用客戶關係管理查詢網址。您可以設定 SDK,讓系統查詢 CRM 帳戶和記錄資訊,並顯示在服務專員轉接器中。如需 CRM 查詢網址的完整清單,請參閱「要求網址參數」。
帳戶查詢網址
使用 {ACCOUNT_ID} 變數插入實際帳戶 ID。
範例:
https://www.example.com/contact/{ACCOUNT_ID}
記錄查詢網址
使用 {RECORD_ID} 變數插入實際記錄 ID。
範例:
https://www.example.com/record/{RECORD_ID}
API 端點
這是 Generic API 最重要的設定。
如要讓服務專員使用帳戶查詢功能,您必須設定「Find an account」(尋找帳戶) 和「Create an account」(建立帳戶) 端點。
此外,您也可以設定「Find a record」(尋找記錄) 和「Create a record」(建立記錄) 端點,讓代理能查詢或建立記錄。您必須先完成上一步的帳戶設定,才能執行這項操作。
最後,如果輸入 Update a record、Upload a file 和 Comment 端點,系統就會啟用記錄更新功能。您必須先完成上一個步驟的記錄設定,才能執行這項操作。
端點設定
進行下列設定:
要求網址:API 端點網址。
選擇要求方法:POST、GET、PUT 或 PATCH。
指定要求參數。您可以使用 CCAI Platform 定義的變數傳遞必要資訊 (請參閱下表)。此外,您也可以輸入純文字或數字做為參數值。您可以視需要新增多個參數。
如果端點是 POST/PUT/PATCH,CCAI Platform 會提供更精細的控制項,用於控管要求的建構方式。從「資源」或「容器」中選擇「要求資料格式」。指定要求 JSON 的格式。
Property 模型類別的執行個體。這表示 CCAI 平台從參數建構要求主體時,要求物件是基本屬性對應。
容器。這表示要傳送的要求物件資料必須巢狀結構化。從「Map」或「Array」中選擇「Container Type」。輸入容器名稱。從參數建構要求主體時,系統會使用這個名稱做為父項物件名稱。
範例:Map: { container_name : { ...parameters } }
範例:陣列:{container_name : [ { ...parameters } ] }
輸入回應資料位置。用於在 JSON 回應中找出目標回應物件。
要求網址參數
| 參數 | 變數 | 註解 |
|---|---|---|
| 代理 ID | {AGENT_ID} |
內部代理 ID。 |
| 代理自訂 ID | {AGENT_CUSTOM_ID} |
使用者個人資料中的選填欄位。 |
| 代理電子郵件地址 | {AGENT_EMAIL} |
回覆代理的電子郵件地址 (如適用)。 |
| 使用者名稱 | {NAME} |
|
| 使用者名字 | {FIRST_NAME} |
拍攝於 Name |
| 使用者姓氏 | {LAST_NAME} |
取自 Name,如果缺少,則預設為 --。 |
| 外部 ID | {UJET_ID} |
CCAI 平台使用者 ID |
| 電子郵件 | {EMAIL} |
|
| 通話類型/工作階段類型 | {SESSION_TYPE} |
|
| 使用者電話號碼 | {PHONE_NUMBER} |
使用設定選項設定格式 |
| 通話 ID | {Call_ID} |
CCAI 平台通話 ID。 |
| Chat ID | {Chat_ID} |
CCAI 平台即時通訊 ID。 |
| 語言 | {LANG} |
|
| 自訂 UID | {CUSTOM_USER_ID} |
行動裝置:位於電子郵件左側。例如,test.user3@test.co 的 test.user3 |
| 帳戶 ID | {ACCOUNT_ID} |
呼叫「尋找/建立聯絡人」端點後找到。 |
| 記錄 ID | {RECORD_ID} |
呼叫「尋找/建立記錄」端點後找到。 |
| 工作階段 ID | {SESSION_ID} |
CCAI 平台工作階段 ID |
| 選單路徑 | {MENU_PATH} |
|
| 去電電話號碼 | {OUTBOUND_PHONE_NUMBER} |
使用設定選項設定格式 |
| 佇列名稱 | {QUEUE_NAME} |
|
| 佇列 ID | {QUEUE_ID} |
內部佇列 ID。 |
| SDK 名稱 | {SDK_NAME} |
Web SDK 或 Mobile SDK 中指出的使用者名稱。 |
| SDK 電子郵件 | {SDK_EMAIL} | Web SDK 或 Mobile SDK 中註明的使用者電子郵件地址。 |
| SDK Phone | {SDK_PHONE} | Web SDK 或 Mobile SDK 中指出的使用者電話號碼。 |
| SDK ID | {SDK_IDENTIFIER} |
識別網頁或行動 SDK 使用者或帳戶。請勿在這個屬性中加入 PII。建立帳戶時,要求中必須包含這個 ID。 |
| SmartAction 工作階段 ID | {SMART_ACTION_SESSION_ID} |
|
| SmartAction:驗證 | (即將推出) | |
| SmartAction:文字輸入 | (即將推出) | |
| 評分 | {RATING} |
只有在使用者留下評論時才會顯示 |
| 意見回饋訊息 | {FEEDBACK} |
只有在使用者留下評論時才會顯示 |
| 通話時間長度 | {CALL_DURATION} |
格式為 mm:ss |
| 保留時間 | {HOLD_TIME} |
格式為 mm:ss |
| 等待時間 | {WAIT_TIME} |
格式為 mm:ss |
| 通話後處理時間長度 | (即將推出) | |
| 裝置類型 | {DEVICE_TYPE} |
|
| 中斷連線者 | {DISCONNECTED_BY} |
|
| 管道 | {CHANNEL} |
|
| 記錄主旨 | {TICKET_SUBJECT} |
做為記錄標題 |
| 記錄說明 | {TICKET_DESCRIPTION} |
|
| 記錄說明 HTML | {TICKET_DESCRIPTION_HTML} |
與說明相同,但採用 HTML 格式 |
| 註解內文 | {COMMENT_BODY} |
僅適用於新增評論的情況 (儲存評分、結束通話/即時通訊、通話/即時通訊開始) |
| 檔案資料 | {FILE_DATA} |
僅適用於上傳檔案端點,但包含 base64 或多部分表單的資料。 |
要求網址參數函式
我們提供函式,協助您處理動態 CCAI Platform 變數。這些函式只能在端點設定的「Request Parameter」(要求參數) 部分使用。
函式建立的結果值會是字串。如果函式未傳回任何值,系統會在執行前,從要求的參數清單中移除該參數。
| 函式 | 函式語法 | 說明 |
|---|---|---|
| 預設值 | =DEFAULT_VALUE(val1, val2) |
除非為空值或空白,否則值會使用 val1,並預設為 val2。 |
串連 Or | =CONCAT_OR(val1, val2,
val3) | 使用 or 串連多個值。範例:'val1 or val2 or val3' |
串連 And | =CONCAT_AND(val1, val2,
val3) | 使用 and 串連多個值。範例:'val1 and val2 and val3' |
範例
以下是使用要求網址參數函式的範例。
預設
以下範例在 Create a Record Endpoint 中使用 DEFAULT_VALUE。代理設定的鍵和值會使用預設函式,在代理電子郵件值為空時提供備用值。建立記錄時,服務專員電子郵件地址可能空白,原因包括:客戶在指派的服務專員接聽來電前結束 IVR 通話,或是在即時通訊中,系統會在服務專員回覆前建立記錄。這樣一來,必要參數可能會預設為安全值,直到後續更新或在放棄呼叫時設定。

串連
以下範例在 Find an Account by Query 端點中使用 CONCAT_OR。這個範例是 Zoho CRM 專用,但說明瞭 CONCAT_OR 的使用方式。CONCAT_AND 遵循相同規則,但會使用 and 而非 or 連接值。請參考下列案例,瞭解執行時端點中的值,以及做為要求參數傳遞的結果值。

| 金鑰存在 | 結果值 |
|---|---|
ACCOUNT_ID |
(Id:equals:<uuid>) |
ACCOUNT_ID、EMAIL |
(Id:equals:<uuid>)或(Email:equals:kim@example) |
PHONE_NUMBER、EMAIL |
(Phone:equals:+12223334444)或(Email:equals:kim@example) |
API 帳戶
API 帳戶端點支援與客戶關係管理 (CRM) 系統中的帳戶整合。
如果呼叫端點時傳回 400 錯誤,系統會重試。傳回其他錯誤的呼叫不會重試。重試作業會持續一週,並以指數遞減方式減少。如要瞭解 API 流程,請參閱「自訂客戶關係管理一般 API:流程」。
透過查詢端點尋找帳戶 (舊稱「尋找帳戶端點」)
這個端點用於依電話號碼、電子郵件或內部 CRM ID 尋找帳戶。這是用於尋找帳戶的預設端點。
回應範例:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
依 ID 端點尋找帳戶
這個端點用於依 ID 尋找帳戶。一般來說,這個 ID 會是網址的一部分。網址驗證也會考量網址是否未以 ID 構成,如果是,就不會使用這個端點。這項作業會遵循 REST 標準。如果查詢失敗並傳回 404,系統會接著依查詢尋找。
回應範例:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
建立帳戶端點
如果找不到帳戶,系統會使用這個端點建立帳戶。大多數 CRM 都要求記錄必須附加到帳戶。為建立統一流程,我們對所有 CRM 實施這項規定。
API 記錄
API 記錄端點可與 CRM 中的記錄或案件整合。
透過查詢尋找記錄 (原稱「尋找記錄端點」)
這個端點用於依條件尋找記錄。一般來說,這項功能可用於尋找與帳戶相關聯的記錄。如果 CCAI 平台設為重複使用現有記錄,就會使用找到的記錄。這是用於尋找記錄的預設端點。
回應範例:
{
"id": 456,
"subject": "Record title",
"status": "open", // enumerated status open/closed, or 1,2,3
"contactId": 123, // contact attached to ticket
"phone": "11234567890", // contact phone
}
建立記錄端點
這個端點用於建立記錄。如果「Find a record」(尋找記錄) 要求找不到記錄,或 CCAI 平台設為不重複使用現有記錄,系統就會建立新記錄。
要求示例:
{
"id": 123,
"subject": "Record title",
"description": "A longer description of the record, can be formatted in html",
"phone": "11234567890", // can be saved in multiple formats
"contactId": 123,
"sourceType": "PHONE", // PHONE/CHAT
"menu": "queue1",
"direction": "outgoing",
"rating": 5, // 1-5 scale
"feedback": "the agent was great!" // description of rating
}
更新記錄端點
這個端點用於更新記錄。更新記錄的標題和說明。這個端點也可以根據 CCAI 平台事件更新記錄,例如儲存 CSAT 評分、通話或即時通訊結束事件、所選佇列、驗證使用者等。
上傳檔案端點
這個端點用於上傳附件。
選擇上傳端點的「Type」(類型)
Base64 編碼表單
多部分表單
選取要附加的檔案
電話錄音
即時通訊轉錄稿
語音留言
相簿
影片
工作階段中繼資料檔案
在「ID」和「附件網址」中選擇「附件類型」。指定回應 JSON 的格式。
ID
附件 ID:在 JSON 回應中輸入附件 ID 參數的位置。這會以 {ATTACHMENT_ID} 的形式,提供給附件建構工具網址。
Attachment Builder 網址。輸入網址,下載檔案附件。RECORD_ID 和 ATTACHMENT_ID 是可用的變數。
例如:
https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}Attachment URL
輸入檔案下載網址的 JSON 回應參數位置。
如要讓 CCAI Platform 在上傳檔案時在記錄中留下註解,請勾選「Add comment to CRM record」(在 CRM 記錄中新增註解) 核取方塊。系統會根據 Comment 端點的文字格式設定,顯示這些留言。
以下是使用 POST/PUT/PATCH 的多部分表單範例:
{
"file": <file data>
"id": 123, // optional, this can also just be part of the URL;
// for example https://example-customer.com/upload/record/{RECORD_ID}
}
回應範例:
範例 A:有下載網址
{
"id": 123,
"url": "https://some-hosted-url.com"
}
範例 B
在這種情況下,下載網址不存在,但有使用這個 ID 的下載附件端點。例如:https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}。
{
"id": 123
}
留言端點
這個端點用於在記錄中新增註解。如果已設定端點,CCAI 平台會將註解新增至含有下列事件的記錄:
開始通話或即時通訊
通話或即時通訊結束
顧客滿意度評分和評論
自訂資料套件
轉移留言
處置代碼和附註
問卷調查常見問答
選擇留言的文字格式。如果勾選「Convert text to HTML」(將文字轉換為 HTML) 核取方塊,文字會採用 HTML 格式,否則會採用純文字格式。
要求範例 POST/PUT/PATCH:
{
"comment": "Some text",
// string can also be formatted on CCAI Platform side as HTML).
"id": 123,
// optional, this can also just be part of the URL;
// for example https://example-customer.com/comment/record/{RECORD_ID}
}
自訂客戶關係管理一般 API:流程
CCAI 平台的自訂 CRM (一般 API) 整合功能會以一組流程的形式運作。通話、即時通訊或語音留言開始時,平台會執行設定的帳戶和記錄步驟,在客戶關係管理系統中尋找或建立帳戶和記錄 (例如票證或案件)。在互動期間和互動後,也會執行留言、更新記錄和上傳檔案等動作。下列流程圖顯示每個步驟的執行時機,以及執行步驟前必須完成的設定。
流程執行時
這些流程會在互動的不同時間點執行。互動期間會執行帳戶和記錄步驟。互動結束後,系統會上傳錄音、轉錄稿和語音留言,以及留言、更新記錄和其他工作階段後動作。互動期間分享的相片、影片、文件和音訊等附件,會在上傳後在其中一個流程執行之前:
- 觸發動作的事件已發生,例如有檔案可上傳,或通話、即時通訊或語音留言已結束。
- 您已在自訂 CRM 設定中啟用相關動作。例如,已啟用檔案類型上傳功能,或已設定 API 註解或 API 更新端點。
- 對於寫入 CRM 的任何內容 (上傳至記錄、張貼留言或更新記錄),系統會設定必要的端點,並為工作階段建立記錄。如果記錄尚未建立,平台會保留動作,並在記錄存在後自動執行。
將檔案上傳至外部儲存空間時,不需要建立記錄。記錄規定適用於客戶關係管理寫入作業。
在某些設定中,帳戶會做為工作階段記錄:如果略過記錄建立,並將工作階段資料推送至 CRM 帳戶,則會使用帳戶層級的註解、上傳和更新端點,而非記錄層級的端點。在圖表中,「記錄」包含啟用該設定時做為工作階段記錄的帳戶。
如要瞭解帳戶、記錄和工作階段後排序、重試時間和錯誤行為,請參閱「自訂客戶關係管理 (一般 API) 中的錯誤處理、重試和呼叫排序」。
流程圖
在這些流程圖中,有三個結果會重複出現:
| 結果 | 說明 |
|---|---|
| 已略過 | 這項動作已透過設定關閉,因此不會傳送任何內容。 |
| 保留 | 動作已設定,但會等到記錄存在後才自動執行。 |
| 設定不完整 | 缺少必要的端點,因此無法執行動作。 |
基本流程
互動會先執行帳戶步驟,接著執行記錄步驟,然後執行任何工作階段後動作。只有在設定好步驟的設定和端點後,步驟才會執行。上傳至外部儲存空間時,不需有記錄;其他工作階段後動作則會寫入 CRM,並等待記錄建立。這份總覽顯示的是工作階段後的路徑;在互動期間共用的檔案,只要可用,就會遵循上傳檔案流程。

尋找或建立帳戶
平台會根據提供的 ID、電話號碼、電子郵件或設定的比對方法查詢帳戶。如果找不到帳戶,且已啟用帳戶建立功能,系統會建立帳戶,或在沒有識別詳細資料時建立匿名帳戶。找到或建立的帳戶會連結至工作階段。

尋找或建立記錄
啟用記錄模式後,如果工作階段的現有記錄仍可使用,平台會重複使用該記錄,否則會建立新記錄。記錄 ID 可能隨要求提供,或來自已與互動相關聯的記錄。如果要求中提供記錄 ID,平台也會新增註解,說明是重複使用該記錄,還是建立新記錄。

更新記錄
記錄存在後,平台會傳送根據設定範本建立的更新要求。如果更新端點設為預留位置值,系統會略過更新。

課後行動
工作階段結束後,系統可以執行多項獨立動作,每項動作都由各自的事件觸發:通話、即時通訊或電子郵件結束;提交評分;回答問卷調查;或工作階段結束後,錄音、轉錄稿或語音留言可供使用。檔案上傳作業會遵循上傳檔案流程;留言和更新動作會寫入 CRM,並等待記錄存在。

註解
完成、評分、問卷調查或檔案上傳動作,都可以發布留言。這項作業需要 API 註解端點和現有記錄,並會等到記錄存在後再執行。系統會根據你的留言設定,以 HTML 或純文字格式發布留言。

上傳檔案流程
外部儲存空間是依檔案類型啟用。如果為某個檔案類型啟用這項功能,該檔案會儲存至外部儲存空間,否則會儲存至 CRM。您也可以透過另一項設定,將檔案傳送至外部儲存空間,然後上傳至 CRM。只有在記錄存在時,系統才會寫入 CRM (檔案附件或註解)。

代理轉接器
自訂 CRM 提供一般方法,可將轉接器 (UI 小工具) 整合至 CRM 系統。CRM 系統必須能夠處理轉接程式在系統中的啟用和觸發方式。
如要整合使用者介面轉接器,通常需要 CRM 軟體或應用程式。我們已為多個 CRM 軟體提供這項功能,例如 Salesforce、Kustomer、Zendesk 等。
iFrame
您可以使用 iframe 代碼,將代理轉接器完美整合至 CRM 或其他工具。如要進一步瞭解 HTML iframe 代碼,請參閱 HTML iframe 代碼。
不過,CRM 必須處理向使用者顯示轉接程式的方式。例如,它可能包含 UI 按鈕,可顯示及隱藏轉接器。此外,轉接器可設計為可拖曳,讓代理在畫面上視需要重新調整位置。以下範例說明網址格式。
通話接聽工具:
https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom
Chat 轉接程式:
https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom
iframe 範本
通話接聽工具:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>
Chat 轉接程式:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>
嵌入轉接程式時,請注意下列事項:
allow為必要屬性,通話轉接器使用 WebRTC,需要microphone;camera和geolocation則用於分享螢幕畫面和位置感知功能。如果未將權限委派給 iframe,瀏覽器會自動封鎖權限,導致代理無法接聽來電。每個 iframe 嵌入一個轉接程式。每個轉接器都會維持自己的即時連線,因此通話和即時通訊轉接器是兩個獨立的 iframe,會分別發布事件。
轉接程式會根據上層視窗位於不同來源,偵測到自身已嵌入。從自己的網域 (而非 CCAI 平台租戶網域) 提供主機頁面。
網址參數
網址參數可用於向軟體提供額外資訊,例如互動類型 (通話或即時通訊)、互動來源 (自訂) 和其他相關詳細資料。
如果清單中沒有租戶 CRM 設定,則「From」參數一律必須設為「Custom」。
類型
- 撥打電話
- 即時通訊
寄件者
- 自訂 (必須與租戶 CRM 設定相符)。如果使用清單以外的客戶關係管理系統,則一律須為 custom。如果沒有設定客戶關係管理系統,可以略過這個參數。
代理轉接程式中的事件
代理轉接器會發布事件,CRM 系統可連結這些事件,然後處理 CRM 的更新。為此,CRM 必須監聽來自父項視窗的貼文,並讀取貼文資料。並根據資料觸發動作,例如為特定工作階段 ID 開啟票證分頁。
通話和即時通訊轉接器都有特定事件,可用來強化 CRM 功能。
呼叫轉接程式
- 發起新通話
- 消費者加入
- 開始遮蓋通話內容
- 通話內容遮蓋作業已結束
- 結束通話
Chat 轉接程式
- 發起新對話
- 進行中的即時通訊
- Chat 內送訊息
- Chat 傳出訊息
- 表單已傳送
- 已填妥表單
- 結束即時通訊
- 已關閉的對話
兩種轉接程式
- 代理登入
- 分享螢幕畫面工作階段已開始
- 分享螢幕畫面工作階段遠端控制權已變更
- 分享螢幕畫面工作階段已變更為全螢幕
- 分享螢幕畫面工作階段已結束
- 轉移
- 已新增派對
- 代理連線至工作階段
- 服務專員登出
- 已新增 Agent Assist
- 虛擬工作助理已加入
- 虛擬工作助理已離開
- 已收到虛擬工作助理工作階段變數
- 彈出 CRM 記錄
- 開啟第三方頁面
訊息格式
每個事件都會透過瀏覽器的 window.postMessage() API,從轉接程式 iframe 傳送至其直接父項視窗 (window.parent)。父項視窗會以 MessageEvent 的形式接收事件。
這類訊息具有以下特性:
event.data是 JSON 字串,而非物件。請務必先呼叫JSON.parse(event.data),再讀取該值。由於網頁上的其他指令碼也可能使用postMessage()搭配非 JSON 酬載,因此請將剖析作業包裝在try/catch中。剖析後的物件只有兩個頂層鍵:
{ "type": "<event type>", "data": { ... } }type是「事件類型」中列出的其中一個字串。data包含「事件資料」一節所述的事件欄位。所有事件專屬欄位都位於data內,絕不會位於頂層。系統會略過空白欄位。發布前,轉接程式會移除
data中值為null、undefined或空字串的所有欄位。請將每個欄位視為可能不存在,且不要依賴具有null值的鍵。轉接程式會以
*為目標來源發布訊息,因此訊息會傳送至嵌入 iframe 的任何網頁。轉接程式「不會」限制事件接收對象。事件監聽器應根據租用戶的主機 (例如https://tenant.loc.ccaiplatform.com) 檢查event.origin,並忽略來自其他來源的訊息,這樣同一頁面上的其他 iframe 就無法假冒轉接程式事件。type值會區分大小寫,且大小寫不一致。大多數為Title_Case(New_Call、End_Chat);少數為小寫 (call_redaction_started、call_redaction_ended、agent_assist_added) 或駝峰式大小寫 (openThirdPartyPage)。請與本文件中的確切字串進行比較。只有在嵌入轉接程式 (其父項視窗為不同視窗) 時,系統才會發布事件。如果轉接器是以頂層頁面開啟,則不會發布任何內容。
以下範例顯示套用這些規則的最小監聽器:
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
window.addEventListener('message', (event) => {
if (event.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(event.data)
} catch (e) {
// Not an agent adapter event; another script on the page posted it.
return
}
const { type, data = {} } = message
switch (type) {
case 'New_Call':
// data.call_id, data.agent_id, data.queue_id, ...
break
case 'New_Chat':
// data.chat_id, data.agent_id, data.queue_id, ...
break
case 'CRM_Record_Pop':
// data.recordUrl
break
default:
// Ignore event types you don't handle; new types may be added over time.
break
}
}, false)
傳送給代理轉接器的訊息
通訊大多是單向 (轉接器到主機),但主機頁面可以使用 postMessage() 向通話轉接器傳送一小組指令。這些訊息是具有下列結構定義的一般物件 (非 JSON 字串):
iframe.contentWindow.postMessage({
channel: '<channel name>',
eventType: '<event type>'
}, ADAPTER_ORIGIN)
api:redaction 管道支援下列指令。用於暫停和繼續錄音,以便從代管頁面遮蓋通話內容。
eventType |
說明 |
|---|---|
start_call_redaction |
暫停錄製進行中的通話,即可開始遮蓋。 |
stop_call_redaction |
恢復錄製通話內容,即可停止遮蓋。 |
注意事項:
只有在租戶啟用通話遮蓋功能,且有進行中的通話時,系統才會執行指令。否則,轉接程式會記錄訊息已遭忽略,且不執行任何動作。
轉接程式會根據指令,將相符的
call_redaction_started或call_redaction_ended事件傳回主機,以便您確認錄製狀態是否確實變更。請一律將租戶來源做為第二個引數傳遞至
postMessage(),而非*,這樣一來,如果 iframe 導向其他頁面,指令就不會傳送至該頁面。自訂 CRM 轉接程式仍接受具有
redact_call:start和redact_call:stop事件類型的舊版crm:authority管道,以提供回溯相容性,但新的整合應使用api:redaction。
詳情請參閱「通話內容遮蓋」。
事件資料
call_id:這是使用 IVR (互動式語音回應) 的語音來電 ID。chat_id:這是訊息來電 (網頁或行動即時通訊) 的 ID。cobrowse_session_id:這是分享螢幕畫面工作階段的 ID。您可以在通話或即時通訊工作階段中,發起分享螢幕畫面工作階段。session_type:這是工作階段類型,例如語音、即時通訊或訊息。va_data_parameters:佇列中設定的所有變數,會傳送至虛擬服務專員。只有涉及虛擬服務專員的事件才需要提供這項資訊。選填。session_variable:虛擬服務專員在酬載中傳送至 CCAI 平台的所有變數。選填。custom_sip_headers:啟用這項設定後,POST 事件記錄中會顯示來電 SIP 通話的自訂 SIP 標頭。只有在使用自訂 SIP 標頭時,才需要提供這項資訊。選填。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料」。選填。
代理 ID
agent_id:這是代理程式的 ID。from_agent_id:將通話或即時通訊從某個服務專員轉接給其他服務專員時,用於指出原始服務專員。to_agent_id:將通話或即時通訊從某個服務專員轉接給另一位服務專員時,用於指出目的地服務專員。agent_custom_id:如果使用者個人資料中已輸入代理 ID,則為該 ID。選填。from_agent_custom_id:將通話或即時通訊從某個服務專員轉接給其他服務專員時,用於指出原始服務專員。to_agent_custom_id:將通話或即時通訊從某個服務專員轉接給其他服務專員時,用於指定目標服務專員。agent_email:這是代理的電子郵件地址。from_agent_email:將通話或即時通訊從一個服務專員轉接給另一個服務專員時,用於指出原始服務專員。to_agent_email:將通話或即時通訊從某個服務專員轉接給其他服務專員時,用於指出目的地服務專員。
虛擬服務專員 ID
virtual_agent_id:指派給特定虛擬服務專員的 ID 號碼。
佇列 ID
queue_id:這是 CCAI 平台佇列的 ID,只有在通話源自佇列時才會存在。from_queue_id:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於表示來源佇列。to_queue_id:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於指出目的地佇列。queue_path:這是 CCAI 平台佇列的路徑,只有在通話源自佇列時才會存在。from_queue_path:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於表示來源佇列。to_queue_path:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於指出目的地佇列。
Campaign ID
campaign_id:CCAI 平台廣告活動 ID。只有在呼叫類型為廣告活動呼叫時,才會包含這些欄。campaign_name:CCAI 平台廣告活動名稱。只有在呼叫類型為廣告活動呼叫時,才會包含這些欄。
訊息
message:事件,表示收到新的消費者訊息,以及訊息內容。
課程類型
session_type:CCAI 平台工作階段類型。cobrowse_session_remote_control:表示要求的遠端控制分享螢幕畫面工作階段狀態。值:off、requested、rejected、on。cobrowse_session_full_device:表示完整裝置分享螢幕畫面工作階段的狀態。值:off、requested、rejected、on。
參與者
type:參與者類型 -end_user;agent;(來自 /api/v1/calls 或 /api/v1/chats 回應的 participants.type)。cobrowse_session_requested_by:表示發起分享螢幕畫面的使用者。可能的值為agent或end_user。cobrowse_session_ended_by:指出誰結束了分享螢幕畫面工作階段。可能的值為agent、end_user或api。end_user_id:/api/v1/calls或/api/v1/chats回應的participants.end_user_id。只有在 type 為end_user時,才會顯示這個欄位。
互動/工作階段類型
通話類型
- 語音來電:標準 PSTN 通話。
- 語音來電 (使用行動裝置的 IVR):從 Mobile SDK 撥打的備用 PSTN 電話。
- 語音來電 (行動裝置):消費者使用已安裝的行動 SDK 撥打。
- 語音回撥 (網頁):從 Web SDK 發起。
- 語音來電 (API):使用 API 發起。
- 語音排定 (行動裝置):使用已安裝的行動 SDK 排定。
- 語音排程 (網頁):使用已安裝的網頁 SDK 排定。
- 語音外撥:由服務專員撥號發起。
- 語音外撥 (API):使用 API 發起。
- 語音廣告活動:使用外撥撥號器 (廣告活動) 啟動。
即時通訊類型
- 訊息 (WhatsApp):使用 WhatsApp 發起。
- 傳入訊息 (簡訊)
- 傳送簡訊
- 傳送外寄訊息 (使用 API 傳送簡訊)
- 訊息 (網頁):使用已安裝的 Web SDK 發起。
- 訊息 (行動裝置):使用已安裝的 Mobile SDK 啟動。
通話或即時通訊類型
- 分享螢幕畫面工作階段:由服務專員或使用者在通話或即時通訊期間發起。
事件類型
以下是代理轉接程式發布的事件類型。type 欄是訊息 type 欄位中顯示的確切字串,區分大小寫。
| 事件 | type |
介面卡 |
|---|---|---|
| 服務專員登入 | Agent_Login |
兩者並用 |
| 新通話 | New_Call |
撥打電話 |
| 消費者加入 | Consumer_Joined |
撥打電話 |
| 結束通話 | End_Call |
撥打電話 |
| 開始遮蓋通話 | call_redaction_started |
撥打電話 |
| 通話遮蓋功能已結束 | call_redaction_ended |
撥打電話 |
| 新對話 | New_Chat |
即時通訊 |
| 結束對話 | End_Chat |
即時通訊 |
| 進行中的即時通訊 | Active_Chat |
即時通訊 |
| Chat 內送訊息 | Chat_Inbound_Message |
即時通訊 |
| Chat 傳出訊息 | Chat_Outbound_Message |
即時通訊 |
| 表單已傳送 | Form_Sent |
即時通訊 |
| 已填妥表單 | Form_Completed |
即時通訊 |
| 已關閉的對話 | Dismissed_Chat |
即時通訊 |
| 分享螢幕畫面工作階段已開始 | Cobrowse_Session_Started |
兩者並用 |
| 分享螢幕畫面工作階段遠端控制權已變更 | Cobrowse_Session_Remote_Control_Changed |
兩者並用 |
| 分享螢幕畫面工作階段全裝置變更 | Cobrowse_Session_Full_Device_Changed |
兩者並用 |
| 分享螢幕畫面工作階段已結束 | Cobrowse_Session_Ended |
兩者並用 |
| 轉移 | Transfer_Call、Transfer_Chat |
兩者並用 |
| 已新增派對 | Party_Added |
兩者並用 |
| 代理連線至工作階段 | Agent_Joined_Call、Agent_Joined_Chat |
兩者並用 |
| 代理登出 | Agent_Logout |
兩者並用 |
| 已新增 Agent Assist | agent_assist_added |
兩者並用 |
| 虛擬 Task Assistant 已加入 | Task_VA_Joined |
兩者並用 |
| 虛擬工作助理已離開 | Task_VA_Left |
兩者並用 |
| 已收到虛擬任務協助工作階段變數 | Task_VA_Variables_Received |
兩者並用 |
| CRM 記錄彈出式視窗 | CRM_Record_Pop |
兩者並用 |
| 開啟第三方頁面 | openThirdPartyPage |
撥打電話 |
事件監聽器應忽略無法辨識的 type 值。日後可能會新增事件類型,轉接器也會發布訊息給其他 CCAI Platform 介面 (例如託管於 CCAI Platform 代理桌面時),這些介面不屬於這份合約。
代理登入
服務專員登入轉接工具時,就會發生服務專員登入事件。
以下是 Agent_Login 事件範例:
{
"type": "Agent_Login",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
}
}
以下是事件資料欄位的說明:
agent_id:代理 ID選用:
agent_custom_id:服務專員的自訂 ID (如果在服務專員的設定檔中輸入)。agent_email:與代理帳戶相關聯的電子郵件地址。
新來電
當服務專員接聽來電時,就會發生新的通話事件。這項事件包含通話開始時間、處理通話的服務專員,以及通話來源等資訊。
以下是 New_Call 事件範例:
{
"type": "New_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
以下是事件資料欄位的說明:
agent_id:代理 IDagent_custom_id:代理的自訂 ID (如果在代理的設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果來電來自佇列,就會包含這個欄位。選填。campaign_id:廣告活動 ID。廣告活動呼叫會包含這個欄位。選填。campaign_name:廣告活動名稱。廣告活動呼叫會包含這個欄位。選填。call_id:通話 IDsession_type:工作階段類型virtual_agent_id:虛擬服務專員 ID。涉及虛擬服務專員的事件會包含這個欄位。選填。va_data_parameters:在佇列中設定要傳送至虛擬服務專員的變數。這個欄位適用於涉及虛擬服務專員的事件。選填。session_variable:從虛擬服務專員傳送至 CCAI 平台的所有變數。選填。custom_sip_headers:啟用後,POST 事件記錄中會顯示來電 SIP 通話的自訂對話啟動協定 (SIP) 標頭。如果使用自訂 SIP 標頭,就會顯示這個欄位。選填。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料」。選填。
消費者加入
當消費者記錄解析完成,且包含清單廣告活動管理員 (LCM) 鍵時,廣告活動 (外撥撥號器) 通話會發生消費者加入事件。這樣一來,主辦頁面就能在其餘通話資料送達前,先在自己的系統中查詢撥號聯絡人。只有在廣告活動通話的聯絡人具有 LCM 金鑰時,系統才會發布這項事件。
以下是 Consumer_Joined 事件範例:
{
"type": "Consumer_Joined",
"data": {
"lcmKey": "acqueon:12345",
"custom_sip_headers": {
"X-Account-Id": "A-100"
},
"va_data_parameters": {
"param1": "one"
},
"session_variable": {
"key_one": "value"
}
}
}
以下是事件資料欄位的說明:
lcmKey:撥號聯絡人的清單廣告活動管理員金鑰custom_sip_headers:通話中的自訂 SIP 標頭。如果使用自訂 SIP 標頭,就會包含這個欄位。選填。va_data_parameters:在佇列中設定要傳送至虛擬代理的變數。選填。session_variable:從虛擬服務專員傳送至 Contact Center AI 平台的變數。選填。
開始遮蓋通話內容
通話遮蓋作業開始且未錄音時,就會發生通話遮蓋作業開始事件。事件資料包含處理通話的服務專員 ID 和通話 ID。
請注意,這個事件的 type 為小寫:call_redaction_started。
agent_id:處理通話的服務專員 IDcall_id:通話 ID
以下是「通話遮蓋作業已開始」事件的範例:
{
"type": "call_redaction_started",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
通話遮蓋功能已停止
通話遮蓋停止事件會在通話遮蓋結束且錄音恢復時發生。這項事件包含處理通話的服務專員 ID 和 call ID。
請注意,這個事件的 type 為小寫:call_redaction_ended。
agent_id:處理通話的服務專員IDcall_id:通話的ID
以下是通話遮蓋停止事件資料的範例:
{
"type": "call_redaction_ended",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
結束通話
通話結束時,就會發生通話結束事件。這項事件包含通話結束時間、處理通話的服務專員,以及通話來源等資訊。
以下是 End_Call 事件範例:
{
"type": "End_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
以下是事件資料欄位的說明:
agent_id:代理 IDagent_custom_id:代理的自訂 ID (如果在代理的設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果來電來自佇列,就會包含這個欄位。選填。campaign_id:廣告活動 ID。廣告活動呼叫會包含這個欄位。選填。campaign_name:廣告活動名稱。廣告活動呼叫會包含這個欄位。選填。call_id:通話 IDsession_type:工作階段類型virtual_agent_id:虛擬服務專員 ID。涉及虛擬服務專員的事件會包含這個欄位。選填。va_data_parameters:在佇列中設定要傳送至虛擬服務專員的變數。這個欄位適用於涉及虛擬服務專員的事件。選填。session_variable:從虛擬服務專員傳送至 Contact Center AI 平台的所有變數。選填。custom_sip_headers:啟用後,POST 事件記錄中會顯示來電 SIP 通話的自訂對話啟動協定 (SIP) 標頭。如果使用自訂 SIP 標頭,就會顯示這個欄位。選填。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
發起新對話
當服務專員接聽即時通訊工作階段時,系統會建立新的即時通訊事件。這個事件會指出即時通訊的開始時間,並包含處理即時通訊的服務專員、即時通訊來源等資訊。
以下是 New_chat 事件範例:
{
"type": "New_Chat",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
以下是事件資料欄位的說明:
chat_id:對話 IDsession_type:工作階段類型agent_id:代理 IDagent_custom_id:代理的自訂 ID (如果在代理的設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址。queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果通話來自佇列,就會顯示這個欄位。選填。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
結束即時通訊
即時通訊工作階段結束時,就會發生結束即時通訊事件。這項事件會指出即時通訊結束的時間,並包含處理即時通訊的服務專員、即時通訊來源等資訊。
以下是 End_Chat 事件範例:
{
"type": "End_Chat",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": null,
"queue_path": null,
"agent_custom_id": null
}
}
以下是事件資料欄位的說明:
chat_id:對話 ID。session_type:工作階段類型。agent_id:代理 ID。agent_custom_id:代理的自訂 ID (如果在代理設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址。queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果來電來自佇列,就會包含這個欄位。選填。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
活躍的聊天室
當服務專員在即時通訊轉接器中切換至即時通訊分頁時,就會發生「啟用即時通訊」事件。
以下是 Active_Chat 事件範例:
{
"type": "Active_Chat",
"data": {
"chat_id": 73521,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
以下是事件資料欄位的說明:
chat_id:對話 IDsession_type:工作階段類型agent_id:代理 IDagent_custom_id:如果在代理的設定檔中輸入了自訂 ID,則為該 ID。選填。agent_email:與代理帳戶相關聯的電子郵件地址。queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果來電來自佇列,就會包含這個欄位。選填。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
Chat 內送訊息
「即時通訊傳入訊息」事件表示收到新的顧客訊息。其中包含訊息內容。
系統會針對即時通訊傳入訊息事件,回報下列欄位的資料:
chat_id:用於識別對話工作階段session_type:表示正在建立的工作階段類型,例如透過網路即時通訊傳入的訊息agent_id:識別處理即時通訊工作階段的代理agent_custom_id:只有在代理設定檔包含自訂 ID 時,才會顯示這個欄位。選填。agent_email:處理即時通訊工作階段的服務專員電子郵件地址。只有在即時通訊源自佇列時,才會包含這個欄位。選填。queue_id:即時通訊工作階段來源佇列的 ID。只有在即時通訊源自佇列時,才會包含這個欄位。queue_path:即時通訊工作階段來源佇列的路徑。只有在即時通訊源自佇列時,才會包含這個欄位。message:表示收到新消費者訊息的事件,以及訊息內容custom_data_secured:允許傳輸受保護的 SDK 自訂資料。選填。custom_data_not_secured:允許傳輸不安全的 SDK 自訂資料。選填。
以下是 Chat_Inbound_Message 事件範例:
{
"type": "Chat_Inbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Can you help me with my order tracking number?"
}
}
Chat 外寄訊息
收到新的消費者訊息時,系統會觸發即時通訊傳出訊息事件。其中包含訊息內容。
系統會回報「即時通訊外寄訊息」事件下列欄位的資料:
chat_id:用於識別對話工作階段session_type:表示正在建立的工作階段類型,例如透過網路即時通訊傳入的訊息agent_id:識別處理即時通訊工作階段的代理agent_custom_id:只有在服務專員的設定檔有自訂 ID 時,才會包含這個欄位。選填。agent_email:處理即時通訊工作階段的服務專員電子郵件地址。只有在即時通訊源自佇列時,才會包含這個欄位。選填。queue_id:即時通訊工作階段來源佇列的 ID。只有在即時通訊源自佇列時,才會包含這個欄位。queue_path:即時通訊工作階段來源佇列的路徑。只有在即時通訊源自佇列時,才會包含這個欄位。message:事件表示收到新的消費者訊息,以及訊息內容custom_data_secured:允許傳輸受保護的 SDK 自訂資料。選填。custom_data_not_secured:允許傳輸不安全的 SDK 自訂資料。選填。
以下是 Chat_Outbound_Message 事件範例:
{
"type": "Chat_Outbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Please give me a moment to look up your account information"
}
}
表單已傳送
在即時通訊工作階段中,系統將表單傳送給消費者時,就會發生表單傳送事件。當即時通訊收到對應的系統訊息時,即時通訊轉接程式會發布這兩項事件。
以下是 Form_Sent 事件範例:
{
"type": "Form_Sent",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853575000
}
}
以下是事件資料欄位的說明:
chat_id:對話 IDsession_type:工作階段類型agent_id:代理 IDagent_custom_id:代理的自訂 ID (如果在代理設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址end_user_id:對話中消費者的 ID。選填。form_external_id:已傳送表單的外部 ID。選填。form_name:已傳送表單的名稱。選填。form_type:傳送的表單類型。選填。queue_id:即時通訊來源佇列的 ID。如果即時通訊源自佇列,就會顯示這個欄位。選填。queue_path:即時通訊來源佇列的路徑。如果即時通訊源自佇列,就會顯示這個欄位。選填。queue_language_id:佇列的語言。選填。timestamp:事件發布時間,以 Unix 紀元起算,單位為毫秒va_data_parameters:在佇列中設定要傳送至虛擬代理的變數。選填。session_variable:從虛擬服務專員傳送至 Contact Center AI 平台的所有變數。選填。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料」。選填。
已填妥表單
消費者提交即時通訊期間傳送的表單時,就會發生表單填寫完成事件。事件資料的欄位與表單傳送事件相同。
以下是 Form_Completed 事件範例:
{
"type": "Form_Completed",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853601000
}
}
已關閉的對話
當服務專員關閉即時通訊轉接器中的即時通訊分頁時,就會發生已關閉即時通訊事件。
以下是 Dismissed_Chat 事件範例:
{
"type":"Dismissed_Chat",
"data":{"chat_id":73522,
"session_type":"Messaging Inbound (Web Chat)",
"agent_id":1,
"agent_email":"ariel@example.com"
}
}
以下是事件資料欄位的說明:
chat_id:對話 IDsession_type:工作階段類型agent_id:代理 IDagent_custom_id:代理的自訂 ID (如果在代理設定檔中輸入)。選填。agent_email:與代理帳戶相關聯的電子郵件地址queue_id:通話來源佇列的 ID。如果通話源自佇列,就會包含這個欄位。選填。queue_path:呼叫來源佇列的路徑。如果來電來自佇列,就會包含這個欄位。選填。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
分享螢幕畫面工作階段已開始
當服務專員或使用者啟動分享螢幕畫面工作階段時,系統會觸發「Screen Share session started」事件。你可以在通話或即時通訊期間,發起分享螢幕畫面工作階段。詳情請參閱「分享螢幕畫面」。
以下是分享螢幕畫面工作階段啟動事件的 JSON 物件範例:
{
"type": "Cobrowse_Session_Started",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_requested_by": "agent",
"cobrowse_session_remote_control": "off",
"cobrowse_session_full_device": "off"
}
}
以下是事件資料欄位的說明:
agent_id:代理 ID。call_id:IVR (互動式語音應答) 管道上來電的 ID。如果分享螢幕畫面工作階段是在通話期間啟動,就會包含這個欄位。chat_id:網頁或行動管道上傳入即時通訊的 ID。如果分享螢幕畫面工作階段是在即時通訊期間啟動,就會包含這個欄位。cobrowse_session_id:分享螢幕畫面工作階段的 ID。cobrowse_session_requested_by:指出誰發起分享螢幕畫面工作階段。值為agent和end-user。cobrowse_session_remote_control:表示遠端控制分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。cobrowse_session_full_device:表示完整裝置分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
分享螢幕畫面工作階段遠端控制權已變更
當遠端控制分享螢幕畫面工作階段的狀態變更時,就會發生分享螢幕畫面工作階段遠端控制變更事件。這個事件會指出遠端控制分享螢幕畫面工作階段的狀態。詳情請參閱「 分享螢幕畫面」。
以下是 Cobrowse_Session_Remote_Control_Changed 事件的 JSON 物件範例:
{
"type": "Cobrowse_Session_Remote_Control_Changed",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_remote_control": "requested"
}
}
以下是事件資料欄位的說明:
agent_id:代理 ID。call_id:IVR (互動式語音應答) 管道上來電的 ID。如果分享螢幕畫面工作階段是在通話期間啟動,就會包含這個欄位。chat_id:網頁或行動管道上傳入即時通訊的 ID。如果螢幕分享工作階段是在即時通訊期間啟動,就會包含這個欄位。cobrowse_session_id:分享螢幕畫面工作階段的 ID。cobrowse_session_remote_control:表示遠端控制分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
分享螢幕畫面工作階段已變更為全螢幕
當全裝置分享螢幕畫面工作階段的狀態變更時,就會發生全裝置分享螢幕畫面工作階段變更事件。這個事件會指出完整裝置分享螢幕畫面工作階段的狀態。詳情請參閱「分享螢幕畫面」。
以下是 Cobrowse_Session_Full_Device_Changed 事件範例:
{
"type": "Cobrowse_Session_Full_Device_Changed",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_full_device": "rejected"
}
}
以下是事件資料欄位的說明:
agent_id:代理 ID。call_id:IVR (互動式語音應答) 管道上來電的 ID。如果分享螢幕畫面工作階段是在通話期間啟動,就會包含這個欄位。chat_id:網頁或行動管道上傳入即時通訊的 ID。如果分享螢幕畫面工作階段是在即時通訊期間啟動,就會包含這個欄位。Cobrowse_session_id:分享螢幕畫面工作階段的 ID。Cobrowse_session_full_device:表示完整裝置分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
分享螢幕畫面工作階段已結束
當服務專員、使用者或 API 結束分享螢幕畫面工作階段時,就會發生分享螢幕畫面工作階段結束事件。詳情請參閱「設定螢幕分享」。
以下是 Cobrowse_Session_Ended 事件範例:
{
"type": "Cobrowse_Session_Ended",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_requested_by": "end_user",
"cobrowse_session_ended_by": "agent",
"cobrowse_session_remote_control": "on",
"cobrowse_session_full_device": "rejected"
}
}
以下是事件資料欄位的說明:
agent_id:代理 ID。call_id:IVR (互動式語音應答) 管道上來電的 ID。如果分享螢幕畫面工作階段是在通話期間啟動,就會包含這個欄位。chat_id:網頁或行動 管道上傳入即時通訊的 ID。如果分享螢幕畫面工作階段是在即時通訊期間啟動,就會包含這個欄位。cobrowse_session_id:分享螢幕畫面工作階段的 ID。cobrowse_session_ended_by:表示結束分享螢幕畫面工作階段的使用者。值為agent、end-user和api。cobrowse_session_remote_control:表示遠端控制分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。cobrowse_session_full_device:表示完整裝置分享螢幕畫面工作階段的狀態。值為on、rejected、requested和off。custom_data_secured:包含伺服器中已簽署的自訂資料。選填。custom_data_not_secured:包含網頁中未簽署的自訂資料。詳情請參閱「Chat 未簽署的自訂資料 (選用)」。選填。
轉移
轉接事件會在轉接通話或即時通訊時發生。這可以指熱轉接或冷轉接。
下列事件欄位是轉移事件的一部分。
chat_id或call_id:識別通話或即時通訊工作階段session_type:表示正在建立的工作階段類型,例如透過網路即時通訊傳入的訊息campaign_id:廣告活動 ID。只有在來電類型為廣告活動來電時,才會顯示這個欄位。選填。campaign_name:廣告活動名稱。只有在呼叫類型為廣告活動呼叫時,才會顯示這個欄位。選填。from_agent_id:將通話或即時通訊從某個服務專員轉接給另一位時,用於指出原始服務專員from_agent_custom_id:將通話或即時通訊從一個服務專員轉接至另一個服務專員時,用於指出原始服務專員。選填。from_agent_email:將通話或即時通訊從某個服務專員轉接給其他服務專員時,用於指出原始服務專員to_agent_id:將通話或即時通訊從某個服務專員轉接給另一位服務專員時,用於指出目標服務專員to_agent_custom_id:將通話或即時通訊從一個代理轉送至另一個代理時,用於指出目的地代理。選填。to_agent_email:將通話或即時通訊從某個服務專員轉接給另一位服務專員時,用於指出目標服務專員from_queue_id:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於表示原始佇列from_queue_path:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於表示原始佇列to_queue_id:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於表示目的地佇列to_queue_path:將通話或即時通訊從一個佇列轉送至另一個佇列時,用於指出目的地佇列virtual_agent_id:指派給虛擬服務專員的 ID。選填。va_data_parameters:佇列中設定的所有變數,會傳送至虛擬服務專員。只有涉及虛擬服務專員的事件才需要這個屬性。選填。(
session_variable:虛擬服務專員在酬載中傳送至 CCAI 平台的所有變數。選填。custom_sip_headers:啟用後,來電 SIP 通話的自訂 SIP 標頭會顯示在 POST 事件記錄中。只有在使用自訂 SIP 標頭時,才需要提供這項資訊。選填。custom_data_secured:允許傳輸受保護的 SDK 自訂資料。選填。custom_data_not_secured:允許傳輸不安全的 SDK 自訂資料。選填。
以下是轉移事件範例:
{
"type": "Transfer_Chat",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"from_agent_id": 1,
"from_agent_custom_id": "007",
"from_agent_email": "Ira@example.com",
"to_agent_id" : 5
"to_agent_custom_id": "100"
"to_agent_email" : "ariel@example.com"
"from_queue_id": 8469,
"from_queue_path": "Developers / Ariel",
"to_queue_id" : 1234,
"to_queue_path" : "Schemes / Auric"
}
}
已新增派對
「新增參與者」事件是指任何轉移。可以是通話或即時通訊轉接。
「party added」事件包含下列資料:
chat_id或call_id:識別通話或即時通訊工作階段session_type:表示正在建立的工作階段類型,例如透過網路即時通訊傳入的訊息agent_custom_id:只有在代理設定檔包含自訂 ID 時,才會顯示這個欄位。選填。agent_email:處理通話或即時通訊工作階段的服務專員電子郵件地址。queue_id:即時通訊工作階段來源佇列的 ID。只有在即時通訊源自佇列時,才會包含這個欄位。選填。queue_path:即時通訊工作階段來源佇列的路徑。只有在即時通訊源自佇列時,才會包含這個欄位。選填。campaign_id:廣告活動 ID。只有在來電類型為廣告活動來電時,才會包含這個欄位。選填。campaign_name:廣告活動名稱。只有在來電類型為廣告活動來電時,才會包含這個欄位。選填。type:參與者類型,例如 end_user 或 agent。這個欄位會做為/api/v1/calls或/api/v1/chats回應的 participants.type 傳回end_user_id:end_user_id。這個欄位會做為/api/v1/calls或/api/v1/chats回應的一部分傳回。只有在使用者通話或即時通訊從一個服務專員轉接至另一個服務專員時,這個欄位才會顯示,用來指出目的地服務專員。選填。virtual_agent_id:指派給虛擬服務專員的 ID。選填。va_data_parameters:佇列中設定的所有變數,會傳送至虛擬服務專員。只有涉及虛擬服務專員的事件才需要這個屬性。選填。session_variable:虛擬服務專員在酬載中傳送至 CCAI 平台的所有變數。選填。custom_sip_headers:啟用這項功能後,POST 事件記錄中會顯示來電 SIP 的自訂 SIP 標頭。只有在使用自訂 SIP 標頭時,才需要提供這項資訊。選填。custom_data_secured:允許傳輸受保護的 SDK 自訂資料。選填。custom_data_not_secured:允許傳輸不安全的 SDK 自訂資料。選填。
以下是 Party_Added 事件範例。
{
"type": "Party_Added",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"type" : "agent"
}
}
服務專員連線至工作階段
當代理連線至工作階段時,就會發生代理連線至工作階段事件。事件分為兩種。類型取決於互動是通話還是即時通訊。
下列事件欄位是代理連線至工作階段事件的一部分。
agent_id:識別處理通話或即時通訊工作階段的服務專員。agent_email:處理通話或即時通訊工作階段的服務專員電子郵件地址。agent_custom_id:只有在代理設定檔包含自訂 ID 時,才會顯示這個欄位。選填。chat_id或call_id:用於識別通話或即時通訊工作階段。virtual_agent_id:指派給特定虛擬服務專員的 ID。選填。campaign_id:廣告活動 ID。只有在通話類型為廣告活動來電時,才會包含這個欄位。選填。campaign_name:廣告活動名稱。只有在來電類型為廣告活動來電時,才會包含這個欄位。選填。queue_id:即時通訊工作階段來源佇列的 ID。只有在即時通訊源自佇列時,才會包含這個欄位。選填。queue_path:即時通訊工作階段來源佇列的路徑。只有在即時通訊源自佇列時,才會包含這個欄位。選填。session_type:表示正在建立的工作階段類型,例如透過網路即時通訊傳入的訊息。virtual_agent_id:指派給虛擬服務專員的 ID。選填。va_data_parameters:佇列中設定的所有變數,會傳送至虛擬服務專員。只有涉及虛擬服務專員的事件才需要提供這項資訊。選填。session_variable:虛擬服務專員在酬載中傳送至 CCAI 平台的所有變數。選填。custom_sip_headers:啟用這項功能後,POST 事件記錄中會顯示來電 SIP 的自訂 SIP 標頭。只有在使用自訂 SIP 標頭時,才需要提供這項資訊。選填。custom_data_secured:允許傳輸受保護的 SDK 自訂資料。選填。custom_data_not_secured:允許傳輸不安全的 SDK 自訂資料。選填。
以下是 Agent_Joined_Chat 事件資料範例:
{
"type": "Agent_Joined_Chat",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"session_type": "Messaging Inbound (SMS)",
}
}
服務專員登出
當服務專員登出服務專員轉接器時,就會發生服務專員登出事件。
以下事件欄位是 Agent_Logout 事件的一部分。
agent_id:登入服務專員的 IDagent_email:與代理帳戶相關聯的電子郵件地址agent_custom_id:服務專員的自訂 ID (如果在服務專員的設定檔中輸入)。選填。
以下是 Agent_Logout 事件範例:
{
"type": "Agent_Logout",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
}
}
已新增 Agent Assist
當服務專員在通話或即時通訊工作階段中啟用 Agent Assist 時,就會發生 Agent Assist 新增事件。
關於這項活動,請注意下列事項:
此事件的
type為小寫:agent_assist_added。時間戳記欄位名稱為
Timestamp(大寫 T),代表自 Unix 紀元起算的毫秒數。
以下是 agent_assist_added 事件範例:
{
"type": "agent_assist_added",
"data": {
"conversation_id": "12345",
"queue_id": 65,
"agent_id": 1,
"session_id": "78534G4RT4284",
"queue_language_id": "en",
"Timestamp": 1727853575000
}
}
事件欄位如下:
conversation_id:對話 ID。如果工作階段使用對話設定檔,就會包含這個欄位。選填。queue_id:佇列 ID。選填。agent_id:代理 IDsession_id:工作階段 ID。選填。queue_language_id:佇列的語言。選填。Timestamp:事件發布時間,以 Unix 紀元起算,單位為毫秒
虛擬工作助理已加入
虛擬任務助理 (VTA) 加入通話或即時通訊工作階段時,就會發生虛擬任務助理加入事件。
以下是 Task_VA_Joined 事件範例:
{
"type": "Task_VA_Joined",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853575000,
"data_parameters": {
"param1": "one",
"param2": "two"
}
}
}
事件欄位如下:
call_id或chat_id:通話或即時通訊 IDcampaign_id:廣告活動 ID。廣告活動呼叫會包含這個欄位。選填。campaign_name:廣告活動名稱。這個欄位包含在廣告活動呼叫中。選填。virtual_agent_id:VTA 的 IDvirtual_agent_name:在 CCAI 平台入口網站中設定的 VTA 名稱participant_id:工作階段中 VTA 的參與者 IDqueue_id:工作階段來源佇列的 ID。選填。queue_path:工作階段來源佇列的路徑。選填。queue_language_id:佇列的語言。選填。session_type:工作階段類型conversation_id:對話 ID。如果工作階段使用對話設定檔,就會包含這個欄位。選填。session_id:工作階段 ID。選填。timestamp:事件發布時間,以 Unix 紀元起算,單位為毫秒data_parameters:在 CCAI 平台入口網站中設定並傳送至 VTA 的變數。選填。
虛擬工作助理已離開
虛擬工作助理離開事件會在 VTA 離開工作階段時發生。除了「虛擬任務助理已加入」事件的欄位外,這項事件還包含 VTA 工作階段結束的原因,以及 VTA 擷取的工作階段變數。
以下是 Task_VA_Left 事件範例:
{
"type": "Task_VA_Left",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853600000,
"finish_reason": "Task VA completed",
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
額外事件欄位如下:
finish_reason:VTA 工作階段結束的原因captured_variables:VTA 擷取的工作階段變數,每個變數都包含擷取變數的意圖和擷取時間。選填。
已收到虛擬工作助理工作階段變數
每當 VTA 在工作階段期間傳送自訂工作階段變數酬載時,就會發生「收到虛擬任務助理工作階段變數」事件。除了 finish_reason 之外,這個事件的欄位與「虛擬任務協助離開」事件相同,而 captured_variables 則會保留目前收到的變數。
以下是 Task_VA_Variables_Received 事件範例:
{
"type": "Task_VA_Variables_Received",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853590000,
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
只有在虛擬代理的自訂工作階段變數酬載中,capture_type 包含 event 的變數才會納入,而 invisible_to_adapter_events 中列出的鍵則會排除。
背景彈出式畫面
服務專員可透過彈出式視窗功能,在背景彈出 CRM 畫面,也就是說,服務專員不必採取任何動作,客戶資訊就會顯示在畫面上。這能為消費者提供更流暢的體驗,並縮短服務專員的處理時間。
彈出 CRM 記錄
CRM_Record_Pop 事件是伺服器端事件,會在需要彈出票證時觸發。這個事件包含名為 recordUrl 的參數,其中含有 CRM 記錄的網址。如果您使用嵌入式轉接器,可以訂閱 POST 事件來執行螢幕彈出。
以下是 CRM_Record_Pop 事件範例:
{
"type": "CRM_Record_Pop",
"data": {
"recordUrl": "https://crm.example.com/tickets/4711"
}
}
事件只有一個欄位:
recordUrl:要顯示的 CRM 記錄網址
為此,以下範例說明如何新增事件監聽器,監聽從其他頁框或視窗傳送的訊息。這段程式碼片段旨在啟用不同框架或視窗之間的通訊,並根據收到的訊息,動態更新 iframe 中顯示的內容。
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')
// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
// Only accept events posted by the agent adapter.
if (e.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(e.data)
} catch (err) {
// Not an agent adapter event.
return
}
const { type, data = {} } = message
console.log('EventListener: ', type)
switch (type) {
case 'CRM_Record_Pop': {
const recordUrl = data.recordUrl
if (!recordUrl) {
return
}
console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)
// changing an iframe target to the record URL pop
iframeTarget.src = recordUrl
break
}
case 'New_Chat':
console.log('Chat started...')
// handling here for New_Chat events
break
case 'End_Chat':
console.log('Chat ended...')
// handling here for End_Chat events
break
default:
// code handling for other types
break
}
}, false)
開啟第三方頁面
當呼叫含有第三方金鑰 (例如廣告活動呼叫中的清單廣告活動管理員金鑰),且轉接程式即將開啟相符的第三方頁面時,呼叫轉接程式會發布 openThirdPartyPage 事件。如果您使用嵌入式轉接程式,可以訂閱這個事件,改為在自己的 UI 中開啟頁面。
以下是 openThirdPartyPage 事件範例:
{
"type": "openThirdPartyPage",
"data": {
"thirdPartyKey": "acqueon:12345",
"callId": 103646
}
}
事件欄位如下:
thirdPartyKey:與呼叫相關聯的第三方金鑰callId:通話 ID