自訂 CRM

如果公司使用的 CRM 目前未與 CCAI 平台標準整合,即可透過自訂 CRM 解決方案,使用 Contact Center AI 平台 (CCAI 平台) 入口網站。使用自製或任何非標準的 CRM 時,自訂 CRM 設定會正常運作。

服務專員負責處理通話和即時通訊,主管則可使用 CCAI 平台入口網站監控及提取報表。通話或即時通訊工作階段的所有詳細資料,都會儲存在工作階段中繼資料檔案中。這個檔案可包含 20 多個資料點,包括工作階段資訊、轉移、通話時間、參與者、診斷資訊等。您可以剖析工作階段中繼資料檔案,並用於工作階段後分析和追蹤。

工作階段中繼資料和消費者上傳的媒體檔案會推送至外部儲存服務,代理商可以在工作階段期間直接在代理商介面卡中查看消費者上傳的媒體檔案。

自訂 CRM 解決方案是透過下列元件組合實作。部分元件可能適用於您的設定,也可能不適用:

  • 為每通電話和即時通訊工作階段產生工作階段中繼資料檔案

  • 將中繼資料和媒體檔案推送至外部儲存服務

  • 一般 API 整合

  • 自訂查詢網址

  • 透過電子郵件更新 CRM 記錄

  • 透過服務專員轉接程式查詢帳戶或案件

必要條件

如要使用自訂 CRM 功能,請先設定外部儲存空間。詳情請參閱「自訂 CRM 解決方案的外部儲存空間」。

工作階段中繼資料

工作階段中繼資料檔案包含工作階段的詳細資訊。這份摘要會在工作階段結束 15 分鐘後傳送。詳情請參閱「工作階段中繼資料檔案」。

自訂顧客關係管理系統互動和整合方法

通用 API 自訂網址
帳戶查詢
案件查詢
案件更新

通用 API

透過「通用 API」整合方法,您可以使用自訂 CRM 的 API,與 CCAI Platform 建立雙向連線。這種無縫方法與現成可用的 CRM 整合體驗相同。視獨特的 API 設定而定,Agent 不必採取任何動作,即可為通話或即時通訊工作階段建立 CRM 記錄。可讓您順暢地查詢及更新記錄。

自訂網址

透過「自訂連結」選項,服務專員可使用為每個工作階段建立的自訂連結,與 CRM 互動。與標準 CRM 整合和 Generic API 體驗不同,Agent 必須採取行動,才能建立 CRM 記錄。在某些情況下,這可能只是啟動含有工作階段自訂連結的分頁,在其他情況下,服務專員可能需要手動建立記錄。

自訂查詢網址詳細資料和設定

網址的基本功能是執行 CRM 查詢,但根據您的 CRM,系統可能會根據自訂網址內容觸發更複雜的程序。您可以設定自訂 CRM 的網址,其中包含工作階段資訊的變數,並在工作階段期間透過服務專員介面卡存取。存取網址後,系統會觸發自訂 CRM 執行查詢。客服人員可透過這項 CRM 查詢功能,在進行中的通話或即時通訊工作階段中「彈出工單」。自訂連結程序完全取決於自訂 CRM 處理這個連結的能力,以及是否需要修改或重寫連結。

除非也使用列出的電子郵件更新方法,否則外部儲存的工作階段中繼資料、通話錄音和其他檔案不會連結回 CRM 記錄。

在這個設定中,服務專員會在不同的分頁中登入 CCAI Platform Portal 和 CRM。通話和即時通訊會在 CCAI Platform 分頁中處理,票證詳細資料則會在 CRM 分頁中存取。

如要讓這項設定正常運作,請注意下列事項:

  • 服務專員必須在瀏覽器中登入 CRM

  • 代理人必須在瀏覽器中登入 CCAI 平台入口網站

  • 必須預先設定自訂查詢網址

  • CRM 必須處理自訂網址,才能顯示相關 CRM 記錄

自訂查詢網址行為

  • CCAI Platform 只會在網址中加入非空白的參數。

  • 工作階段結束後,CCAI 平台不會在資料庫中儲存含有 ANI/UID/電子郵件地址的產生網址。

自訂查詢網址設定

由於唯一 ID、CRM 功能和行為各不相同,因此您需要建立 2 個不同的網址,分別用於 IVR/PSTN/SMS 工作階段,以及網頁和行動版 SDK 工作階段。IVR/PSTN/SMS 工作階段會使用 ANI 做為專屬 ID,而網頁和行動版 SDK 則可能使用 CUID 和電子郵件地址。

您可以使用下列變數設定查詢網址:

變數
{CUSTOMER_PHONE_NUMBER} 使用者的電話號碼
{ANI} 使用者的電話號碼。為保持回溯相容而保留。
{CUID} 自訂使用者 ID
{EMAIL} 使用者電子郵件地址
{MENU_PATH} 完整佇列選單路徑。
例如「Orders/Order confirmation/Order info」。
{MENU_ID} 選單 ID
{CHANNEL}

工作階段管道。可能的值包括:

  • 對話
  • voice_call
{TYPE}

工作階段類型。

通話可能的值:

  • Incoming_Call_(app)
  • Scheduled_Call_(app)
  • Incoming_Call_(web)
  • Scheduled_Call_(web)
  • Outbound_Call
  • Outbound_Call_(api)
  • Incoming_Call_(api)
  • IVR_Call
  • IVR_Call_(app)
  • 語音留言

可能的聊天值:

  • 行動裝置
  • 網頁
  • 簡訊
{SUPPORT_PHONE_NUMBER} 終端使用者撥打的支援中心電話號碼。
{OUTBOUND_NUMBER} 客服人員用於撥出電話的電話號碼。
{SESSION_ID}

工作階段 ID。可能的值包括:

  • 通話 ID
  • 即時通訊 ID
  • 電子郵件 ID
{CUSTOM_AGENT_ID} user 物件中的選填服務專員 ID 欄位。必須先建立工作階段並指派服務專員,才能取得服務專員 ID。因此,請設定執行個體,延遲建立通話或即時通訊記錄,以便定義這個變數。你可以在「設定」>「作業管理」>「CRM 記錄建立詳細資料」中,延後建立通話或即時通訊記錄。詳情請參閱「建立 CRM 記錄的詳細資料」。

設定 CCAI 平台入口網站

  1. 使用已獲派管理員角色的帳戶登入 CCAI Platform 入口網站。

  2. 依序前往「設定」>「開發人員設定」

  3. 在「客戶關係管理」部分中,選取「自訂客戶關係管理」

  4. 在「客戶關係管理系統查詢」下方,輸入自訂網址。

  5. 選取要在 CRM 要求中使用的電話號碼格式

  6. 按一下 [儲存變更]。

  7. 如果尚未設定,請設定外部儲存空間服務。詳情請參閱「外部儲存空間」。

透過電子郵件更新 CRM 記錄

在自訂查詢網址等設定中,工作階段完成後,必須在 CRM 中更新工作階段中繼資料。這項功能可讓 CCAI Platform 自動透過電子郵件傳送工作階段資料。工作階段結束後約 15 分鐘,系統會將電子郵件傳送至設定的位置,並使用電子郵件內容更新 CRM 中的記錄。這項功能可針對全域和每個佇列進行設定。收到電子郵件後,系統可能會更新或建立工作階段的新 CRM 記錄。

電子郵件詳細資料

  • 寄件者:no-reply@ccaiplatform.com

  • 包含:

    • Subject line

    • 主體,內含 JSON 語法的會話中繼資料

    • 視情況以 TXT 格式附加即時通訊轉錄稿

  • 工作階段結束後,CCAI 平台會等待 15 分鐘,然後傳送電子郵件。

  • 只有在工作階段順利結束時,系統才會傳送電子郵件。如果工作階段失敗或遭捨棄,系統就不會傳送這類資料。

全域設定

  1. 使用已獲派管理員角色的帳戶登入 CCAI Platform 入口網站。

  2. 依序前往「設定」>「開發人員設定」

  3. 在「客戶關係管理系統」部分,確認已選取「自訂客戶關係管理系統」

  4. 啟用「透過電子郵件傳送工作階段結果」

  5. 輸入要接收電子郵件的電子郵件地址。

  6. 按一下 [儲存變更]。

每個佇列的設定

  1. 使用已獲派管理員角色的帳戶登入 CCAI Platform 入口網站。

  2. 依序前往「設定」>「佇列」,然後選取任一子佇列。

  3. 啟用「透過電子郵件傳送工作階段結果」

  4. 輸入要接收電子郵件的電子郵件地址。

    電子郵件設定顯示畫面

  5. 按一下「儲存自訂 CRM 設定」。

設定繼承和覆寫

設定 行為
全域 = 未啟用
佇列 = 未啟用
不要為所有佇列傳送通知。
全域 = 未啟用
佇列 = 已啟用
佇列設定 (即開啟/關閉狀態) 會覆寫全域設定。
系統會從指定佇列將電子郵件傳送至佇列設定中定義的電子郵件地址。
全域 = 已啟用
佇列 = 未啟用
佇列設定 (電子郵件地址、開啟/關閉狀態) 會沿用全域設定。
系統會從指定佇列將電子郵件傳送至全域設定中定義的電子郵件地址。
全域 = 已啟用
佇列 = 已啟用
佇列設定 (電子郵件地址) 會覆寫全域設定。
系統會從指定佇列將電子郵件傳送至佇列設定中定義的電子郵件地址。
如果電子郵件地址為空白,系統就不會傳送電子郵件。

服務專員體驗

查詢顧客關係管理記錄

  1. 使用已指派「代理程式」角色的帳戶登入 CCAI Platform 入口網站。

  2. 開啟通話或即時通訊轉接程式。

  3. 使用「在新瀏覽器視窗中開啟」按鈕觸發查詢。

  4. 使用「複製連結」按鈕,將查詢網址複製到剪貼簿。

代理顯示

自訂顧客關係管理系統解決方案的外部儲存空間

自訂解決方案的外部儲存空間可讓您使用外部儲存空間服務,儲存及擷取 CCAI 平台工作階段中繼資料、通話錄音、即時通訊記錄和消費者上傳的媒體檔案。檔案儲存在客戶關係管理系統以外的位置。

如要設定外部儲存空間,必須符合下列條件:

  • 有效的 CCAI 平台帳戶,並指派管理員和服務專員角色,以進行設定和測試

  • 外部儲存服務

資料夾結構

外部儲存空間的資料夾結構會整理在「資料夾路徑」中:

  • 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

服務專員和主管體驗

在通話或即時通訊期間,消費者使用智慧動作上傳的相片和影片會顯示在服務專員介面中。

如果您使用自訂網址客戶關係管理互動,並搭配工作階段中繼資料檔案電子郵件更新方法,服務專員和主管就能透過外部伺服器存取工作階段資訊。

設定外部儲存空間服務

請完成下列步驟來設定外部儲存空間:

  1. 使用已指派管理員角色的帳戶登入 CCAI Platform 入口網站。

  2. 依序前往「設定」>「開發人員設定」

  3. 在「開發人員設定」頁面中,前往「外部儲存空間」部分。

  4. 將切換鈕設為「開啟」,即可啟用在 CRM 伺服器外部儲存資訊的功能,然後選取要儲存的檔案類型。

  5. 在「伺服器設定」部分,選取儲存空間類型並完成設定步驟:SFTP 伺服器Google Cloud bucket。

安全檔案傳輸通訊協定伺服器

  1. 輸入安全檔案傳輸通訊協定主機 (網址或 IP 位址)。

  2. 輸入「Port」(通訊埠) 編號。

  3. 輸入安全檔案傳輸通訊協定的「登入使用者 ID」

  4. 如果 SFTP 伺服器要求以密碼進行驗證,請在「密碼」欄位中輸入密碼。

  5. 如果 SFTP 伺服器需要私密金鑰才能進行驗證,請選取「SSH 私密金鑰」核取方塊。

  6. 輸入 (複製並貼上) 安全殼層私密金鑰

  7. 輸入私密金鑰通關密語。如果工作階段資訊應儲存在 SFTP 伺服器上的特定資料夾中,請選取「資料夾路徑」核取方塊,然後輸入 SFTP 資料夾路徑

  8. 按一下 [儲存變更]。

Cloud Storage

  1. 輸入目的地 Google Cloud 儲存空間名稱

  2. 輸入 Google Cloud 用戶端 ID

  3. 輸入 Google Cloud 用戶端密鑰

  4. 如果工作階段資訊應儲存在 bucket 的特定資料夾中,請選取「資料夾路徑」核取方塊,然後輸入Google Cloud 資料夾路徑。 Google Cloud

  5. 按一下「連結並儲存」

測試外部儲存空間設定

如果客戶關係管理系統已具備標準整合功能:

  1. 登入 CRM。

  2. 使用指派有「代理程式」角色的 CCAI Platform 憑證,登入 CRM 中的 CCAI Platform。

  3. 撥打電話或發起即時通訊。系統會顯示與工作階段相關聯的 CRM 記錄。

  4. 工作階段結束後,轉錄稿檔案應會在幾秒內上傳。

  5. 直接前往外部伺服器儲存空間資料夾,確認檔案是否可用。

將工作階段檔案傳送至 CRM

啟用外部儲存空間後,開發人員設定中的「CRM 儲存空間」和「外部儲存空間」網址,可讓您傳送工作階段檔案,並決定要在代理程式介面卡中顯示檔案時使用哪個來源。

如要查看這些設定,請依序前往「設定」>「開發人員設定」>「外部儲存空間」,啟用外部儲存空間。將「Enable information storage outside CRM servers」(啟用在 CRM 伺服器外部儲存資訊) 切換為「開啟」

客戶關係管理系統儲存空間

  1. 依序前往「設定」>「開發人員設定」>「外部儲存空間」>「CRM 儲存空間」

  2. 勾選「同時將工作階段檔案傳送至 CRM」旁的方塊,即可將通話錄音或即時通訊記錄等工作階段檔案傳送至 CRM 和已設定的外部儲存空間。

  3. 按一下 [儲存變更]。

如果勾選這個核取方塊,錄音檔會同時儲存在 CRM 和外部儲存空間。

外部儲存空間網址

外部儲存空間網址用於以下兩個位置:

  • 代理程式介面卡。

  • 報表:在報表和「設定」、「通話」、「已完成」等選單中顯示媒體網址。

  1. 依序前往「設定」>「開發人員設定」>「外部儲存空間」>「外部儲存空間網址」

  2. 選取來源「客戶關係管理系統網址」或「外部儲存空間網址」,即可在服務專員介面卡中顯示檔案。

  3. 按一下 [儲存變更]。

客戶關係管理系統儲存空間

  • 如果取消勾選「CRM 儲存空間」核取方塊,錄音檔只會儲存在外部儲存空間,並使用 CRM 的連結。

  • 如果勾選這個核取方塊,錄音檔就會同時儲存在 CRM 和外部儲存空間。

外部儲存空間網址

這個網址會用於兩個地方:

  • 其中一個是顯示 CCAI 平台介面卡中的媒體。外部儲存空間或 CRM。

  • 另一個則在報表中。我們會在報表和「設定」、「通話」、「已完成」等選單中顯示媒體網址。

在 CCAI 平台入口網站中顯示自訂 CRM

使用自訂顧客關係管理系統整合功能時,您可以在 CCAI Platform Portal 的專屬頁面載入顧客關係管理系統。啟用後,CCAI Platform Portal 中的「CRM」分頁會載入並顯示您自訂的 CRM 頁面。如要設定這項功能,請依序前往「開發人員設定」>「CRM」

這項功能可讓服務專員使用 CCAI Platform 通話和即時通訊介面,處理即時支援工作階段,同時在自訂 CRM 中工作。包括透過 CCAI 平台入口網站,查看自動彈出的帳戶和記錄詳細資料,以及從行動應用程式或消費者傳入的會話專屬檔案和資料。

設定自訂 CRM 頁面

如要設定自訂 CRM 頁面,請按照下列步驟操作:

  1. 在 CCAI Platform 入口網站中,依序點選「Settings」>「Developer Settings」。 如果沒有看到「設定」選單,請按一下「選單」圖示

  2. 在「CRM」窗格中,按一下「Custom CRM」

  3. 按一下「在 CCAI 平台入口網站中顯示 CRM」切換鈕,將其切換至開啟位置。

  4. 在「顯示網址」下方,輸入自訂 CRM 頁面的網址,然後按一下「儲存」

開啟自訂網址畫面彈出視窗

如果系統找不到聯絡人,請使用「開啟自訂網址」,叫出自訂網址畫面彈出式視窗。建立含有臨時帳戶 ID 的 CRM 記錄,並根據佇列層級設定,觸發含有參數的自訂連結。

針對個別佇列啟用螢幕跳出功能

  1. 依序前往「設定」>「佇列」>「IVR」,然後按一下要編輯的佇列。

  2. 前往面板中的「Open Custom URL」(開啟自訂網址)

  3. 輸入網址,系統就會顯示螢幕彈出式視窗。

在網址中加入變數參數 {ACCOUNT_ID} 和 {PHONE_NUMBER}。

並提供範例。

  1. 按一下 [儲存]

自訂顧客關係管理系統通用 API 整合

透過一般 API 整合方法,您可以使用 CRM 的 API,與 CCAI Platform 建立雙向連線。這個無縫接軌的方法與現成可用的 CRM 整合體驗相同。

通話或即時通訊工作階段的 CRM 記錄會自動建立,服務專員不必採取任何動作。視 API 的獨特設定而定,這項功能可讓您順暢地查詢及更新記錄。

術語

效期

說明

帳戶

這項 ID 用於參照 CRM 中的帳戶/聯絡人/客戶/待開發客戶實體。您的 CRM 可能會為這個實體命名。

帳戶包含記錄。

記錄

用於參照 CRM 中的案件/工單/對話/事件實體。您的 CRM 可能會為這個實體命名。

記錄屬於帳戶。

註解

用於參照 CRM 中的「註解/附註」實體。您的 CRM 可能會為這個實體使用其他名稱。

留言屬於記錄。

API 設定

本節將說明自訂 CRM API 設定的專屬設定。

驗證方式

CCAI Platform 支援三種客戶關係管理系統驗證方法:

  • 基本驗證:設定驗證憑證,包括「使用者名稱」和「密碼」

  • 自訂標頭:設定自訂標頭鍵值對:「欄位鍵」和「欄位值」。視需要輸入任意數量的配對。

  • 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 中顯示的查詢網址。

您也可以搭配網頁 SDK行動 SDK 使用 CRM 查詢網址。您可以設定 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 最重要的設定。

  1. 如要讓服務專員查詢帳戶,請設定「尋找帳戶」和「建立帳戶」端點。

  2. 此外,您也可以設定「尋找記錄」和「建立記錄」端點,讓服務專員能夠尋找或建立記錄。您必須先完成上一個步驟的帳戶設定,才能執行這項操作。

  3. 最後,如果您輸入「Update a record」(更新記錄)、「Upload a file」(上傳檔案) 和「Comment」(留言) 端點,系統就會啟用記錄更新功能。您必須先完成上一個步驟的記錄設定,才能執行這項操作。

端點設定

進行下列設定:

  1. 要求網址:API 端點網址。

  2. 從 POST、GET、PUT 或 PATCH 中選擇要求方法

  3. 指定要求參數。您可以使用 CCAI Platform 定義的變數,傳遞必要資訊 (請參閱下表)。此外,您也可以輸入純文字或數字做為參數值。您可以視需要新增任意數量的參數。

  4. 如果端點是 POST/PUT/PATCH,CCAI Platform 會提供更精細的控制項,方便您建構要求。從「資源」或「容器」中選擇「要求資料格式」。指定要求 JSON 的格式。

    • Property 模型類別的執行個體。這表示當 CCAI Platform 從參數建構要求主體時,要求物件是基本屬性對應。

    • 「Container」(容器)。這表示要傳送的要求物件資料必須巢狀內嵌在結構中。從「Map」或「Array」選擇「Container Type」。輸入「容器名稱」。從參數建構要求主體時,這個名稱會做為父項物件名稱。

      • 範例:對應:{ container_name : { ...parameters } }

      • 範例:陣列:{container_name : [ { ...parameters } ] }

  5. 輸入「回應資料位置」。用於在 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。
即時通訊 ID {Chat_ID} CCAI 平台聊天室 ID。
語言 {LANG}
自訂 UID {CUSTOM_USER_ID} 行動裝置:這是電子郵件的左側。例如:從 test.user3@test.co test.user3
帳戶 ID {ACCOUNT_ID} 透過呼叫「尋找/建立聯絡人」端點找到。
記錄 ID {RECORD_ID} 透過呼叫「Find/Create record」端點找到。
工作階段 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 使用者或帳戶。請勿在這個屬性中加入個人身分識別資訊。建立帳戶時,要求中必須包含這個 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} 僅適用於上傳檔案端點,但包含 multipart 表單的 base64 或資料。

要求網址參數函式

系統提供函式,協助處理動態 CCAI 平台變數。 這些函式只能在端點設定的「要求參數」部分使用。

函式建立的值會是字串。如果函式未傳回任何值,系統會在執行要求前,從要求中的參數清單移除該參數。

函式 函式語法 說明
預設值 =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_IDEMAIL (Id:equals:<uuid>)(Email:equals:kim@example)
PHONE_NUMBEREMAIL (Phone:equals:+12223334444)(Email:equals:kim@example)

API 帳戶

API 帳戶端點支援與 CRM 中的帳戶整合。

系統會重試傳回 400 錯誤的端點呼叫。如果呼叫傳回其他錯誤,系統不會重試。重試會持續一週,並以指數遞減。如要瞭解 API 流程,請參閱「Custom CRM generic API: Flows」(自訂 CRM 通用 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 Platform 設定為重複使用現有記錄,系統就會使用找到的記錄。這是用於尋找記錄的預設端點。

回應範例:

{
  "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
}

建立記錄端點

這個端點用於建立記錄。如果「尋找記錄」要求找不到記錄,或 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 Platform 事件更新記錄,例如儲存 CSAT 評分、通話或即時通訊結束事件、選取的佇列、驗證使用者等。

上傳檔案端點

這個端點用於上傳附件。

選擇上傳端點的「類型」

  • Base64 編碼格式

  • Multipart 表單

選取要附加的檔案

  • 通話錄音

  • 即時通訊轉錄稿

  • 語音留言

  • 相簿

  • 影片

  • 工作階段中繼資料檔案

從「ID」和「附件網址」中選擇「附件類型」。這會指定回應 JSON 的格式。

  • ID

  • 附件 ID。在 JSON 回應中輸入附件 ID 的參數位置。這項 ID 會以 {ATTACHMENT_ID} 形式提供給附件建構工具網址。

  • 附件產生器網址。輸入網址,下載檔案附件。RECORD_IDATTACHMENT_ID 是可用的變數。

    例如: https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}

  • 附件網址

    輸入檔案下載網址的 JSON 回應中參數的位置。

如要讓 CCAI 平台在檔案上傳後為記錄留下註解,請勾選「Add comment to CRM」記錄核取方塊。系統會根據註解端點的「文字格式」設定,顯示這些註解。

以下範例使用 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 平台會在記錄中新增含有下列事件的註解:

  • 通話或即時通訊開始

  • 通話或即時通訊結束

  • 客戶滿意度評分和意見

  • 自訂資料包

  • 轉移留言

  • 處置代碼和附註

  • 問卷調查問與答

選擇留言的「文字格式」。如果勾選「將文字轉換為 HTML」核取方塊,文字會採用 HTML 格式,否則會是純文字。

要求範例 POST/PUT/PATCH

{
  "comment": "Some text",
 // string can also be formatted on ujet 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}
}

自訂 CRM 通用 API:流程

本節提供自訂 CRM 通用 API 流程的流程圖。

基本流程圖

基本流程圖

尋找或建立帳戶流程

尋找或建立帳戶流程

尋找或建立記錄流程

尋找或建立記錄流程

通話後或即時通訊後動作流程

通話後或即時通訊後動作流程

更新記錄流程

更新記錄流程

留言流程

留言流程

上傳檔案流程

上傳檔案流程

代理程式介面卡

自訂 CRM 提供通用方法,可將介面卡 (UI 小工具) 整合至 CRM 系統。客戶關係管理系統必須能夠處理轉接程式在系統內啟動和觸發的方式。

如要整合使用者介面介面卡,通常需要 CRM 軟體或應用程式。我們已為多種 CRM 軟體提供這項功能,例如 Salesforce、Kustomer 和 Zendesk 等。

iFrame

透過使用 iFrame 標記,代理程式介面卡可無縫整合至 CRM 或任何其他工具。如要進一步瞭解 HTML iframe 代碼,請參閱「HTML iframe 代碼」。

不過,CRM 必須處理轉接器向使用者顯示的方式。舉例來說,這類按鈕可能用於顯示及隱藏轉接程式。此外,轉接頭可設計為可拖曳,方便服務專員在畫面上重新放置。以下範例說明網址格式。

通話接聽工具: https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom

即時通訊介面卡: https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom

iFrame 範本

通話接聽工具: html <iframe src="https://tenant.loc.CCAI Platformlatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>

即時通訊介面卡: html <iframe src="https://tenant.loc.CCAI Platformlatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>

網址參數

網址參數可用於向軟體提供額外資訊,例如互動類型 (通話或即時通訊)、互動來源 (自訂) 和其他相關詳細資料。

如果清單中沒有租戶 CRM 設定,From 參數一律必須設為「自訂」

類型

  • 撥打電話
  • 即時通訊

寄件者

  • 自訂 (必須與租戶 CRM 設定相符)。如果使用清單以外的任何 CRM,一律必須為「custom」。如果沒有 CRM 設定,可以略過這個參數。

代理程式轉接程式中的事件

代理程式介面會發布可由 CRM 系統掛鉤的事件,然後處理 CRM 的更新。如要這麼做,CRM 必須監聽父視窗的貼文並讀取貼文資料。根據資料,系統可以觸發動作,例如開啟特定工作階段 ID 的票證分頁。

通話和即時通訊介面卡都有特定事件,可用來提升 CRM 功能。

通話轉接器

  • 發起新通話
  • 通話內容遮蓋作業已開始
  • 通話內容遮蓋作業已結束
  • 結束通話

即時通訊轉接程式

  • 發起新對話
  • 進行中的即時通訊
  • Chat 收到的訊息
  • Chat 外送訊息
  • 結束即時通訊
  • 已關閉的對話

兩種轉接器

  • 代理程式登入
  • 已開始分享螢幕畫面
  • 螢幕畫面分享工作階段的遠端控制權已變更
  • 螢幕分享工作階段完整裝置已變更
  • 分享螢幕畫面工作階段已結束
  • 轉移
  • 已新增派對
  • 服務專員連線至工作階段
  • 服務專員登出
  • 已新增 Agent Assist

活動資料

  • 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 標頭時,才需要提供這項資訊。選填。

  • custom_data_secured:包含伺服器中的已簽署自訂資料。 選填。

  • custom_data_not_secured:包含來自網頁的未簽署自訂資料。詳情請參閱「Chat unsigned custom data」(Chat 未簽署的自訂資料)。選填。

代理程式 ID

  • agent_id:這是代理程式的 ID。
  • from_agent_id:用於將通話或即時通訊從一位服務專員轉接給另一位時,指出原始服務專員。
  • to_agent_id:用於將通話或即時通訊從一位服務專員轉給另一位時,指出目的地服務專員。
  • agent_custom_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:表示所要求遠端控制螢幕分享工作階段的狀態。值:offrequestedrejectedon
  • cobrowse_session_full_device:指出完整裝置螢幕分享工作階段的狀態。值:offrequestedrejectedon

參與者

  • type:參與者類型 - end_useragent;(來自 /api/v1/calls 或 /api/v1/chats 回應的 participants.type)。

  • cobrowse_session_requested_by:指出是誰發起螢幕分享工作階段。可能的值為 agentend_user

  • cobrowse_session_ended_by:指出是誰結束螢幕分享工作階段。可能的值為 agentend_userapi

  • end_user_id/api/v1/calls/api/v1/chats 回應的 participants.end_user_id。只有在類型為 end_user 時,才會顯示這個欄位。

互動 / 工作階段類型

通話類型

  • 語音來電:標準 PSTN 電話。
  • 語音來電 (使用行動裝置的 IVR):從 Mobile SDK 撥打的備用 PSTN 電話。
  • 語音來電 (行動裝置):消費者使用已安裝的 Mobile SDK 撥打電話。
  • 語音回呼 (網頁):從 Web SDK 啟動。
  • 語音來電 (API):透過 API 啟動。
  • 語音預約 (行動裝置):使用已安裝的 Mobile SDK 預約。
  • 語音通話排程 (網頁):使用已安裝的 Web SDK 排定時間。
  • Voice 外撥:服務專員撥打號碼發起通話。
  • 語音撥出 (API):透過 API 啟動。
  • 語音廣告活動:使用撥出電話機 (廣告活動) 啟動。

即時通訊類型

  • 訊息 (WhatsApp):透過 WhatsApp 啟動。
  • 訊息內送 (SMS)
  • 訊息外送 (SMS)
  • 傳訊外送 (使用 API 傳送簡訊)
  • 即時通訊 (網頁):使用已安裝的 Web SDK 啟動。
  • 訊息 (行動版):使用已安裝的 Mobile SDK 啟動。

通話或即時通訊類型

  • 分享螢幕畫面工作階段:由服務專員或使用者在通話或即時通訊期間啟動。

事件類型

代理程式轉接程式會發布下列事件類型:

代理程式登入

服務專員登入轉接程式時,就會發生服務專員登入事件。

以下是 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:服務專員 ID

  • agent_custom_id:代理商的自訂 ID (如果已在代理商的設定檔中輸入)。選填。

  • agent_email:與代理人帳戶相關聯的電子郵件地址

  • queue_id:通話來源佇列的 ID。如果通話是從佇列發起,就會包含這個欄位。選填。

  • queue_path:呼叫來源佇列的路徑。如果通話來自佇列,系統會納入這個欄位。選填。

  • campaign_id:廣告活動的 ID。這個欄位會納入廣告活動呼叫。選填。

  • campaign_name:廣告活動名稱。這個欄位會納入廣告活動呼叫。選填。

  • call_id:通話 ID

  • session_type:工作階段類型

  • virtual_agent_id:虛擬服務專員 ID。如果事件涉及虛擬代理人,就會包含這個欄位。選填。

  • va_data_parameters:在佇列中設定要傳送至虛擬服務專員的變數。如果事件涉及虛擬服務專員,就會包含這個欄位。選填。

  • session_variable:從虛擬服務專員傳送至 Contact Center AI 平台的所有變數。選填。

  • custom_sip_headers:啟用後,來自來電的自訂對話啟動協定 (SIP) 標頭會顯示在 POST 事件記錄中。如果使用自訂 SIP 標頭,系統就會納入這個欄位。選填。

  • custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。

  • custom_data_not_secured:包含來自網頁的未簽署自訂資料。詳情請參閱「Chat unsigned custom data」(未簽署的自訂資料)。選填。

通話內容遮蓋作業已開始

通話內容遮蓋作業開始時,系統會觸發「通話內容遮蓋作業開始」事件,且不會錄音。事件資料包含處理通話的服務專員 ID 和通話 ID。

  • agent_id:處理通話的服務專員 ID
  • call_id:通話 ID

以下是「通話內容已開始遮蓋」事件的範例:

{
  "agent_id": 2896,
  "call_id": 97939
}

通話內容遮蓋作業已停止

通話內容遮蓋結束且錄音繼續時,就會發生通話內容遮蓋停止事件。這項事件包含處理通話的服務專員 ID,以及 call ID

  • agent_id:處理通話的服務專員 ID
  • call_id:通話的 ID

以下是通話內容遮蓋功能停止事件資料的範例:

{
  "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:服務專員 ID

  • agent_custom_id:代理商的自訂 ID (如果已在代理商的設定檔中輸入)。選填。

  • agent_email:與代理人帳戶相關聯的電子郵件地址

  • queue_id:通話來源佇列的 ID。如果通話是從佇列發起,就會包含這個欄位。選填。

  • queue_path:呼叫來源佇列的路徑。如果通話來自佇列,系統會納入這個欄位。選填。

  • campaign_id:廣告活動的 ID。這個欄位會納入廣告活動呼叫。選填。

  • campaign_name:廣告活動名稱。這個欄位會納入廣告活動呼叫。選填。

  • call_id:通話 ID

  • session_type:工作階段類型

  • virtual_agent_id:虛擬服務專員 ID。如果事件涉及虛擬代理,就會包含這個欄位。選填。

  • va_data_parameters:在佇列中設定要傳送至虛擬服務專員的變數。如果事件涉及虛擬服務專員,就會包含這個欄位。選填。

  • session_variable:從虛擬服務專員傳送至 Contact Center AI 平台的所有變數。選填。

  • custom_sip_headers:啟用後,來自來電的自訂對話啟動協定 (SIP) 標頭會顯示在 POST 事件記錄中。如果使用自訂 SIP 標頭,系統就會納入這個欄位。選填。

  • custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。

  • custom_data_not_secured:包含來自網頁的未簽署自訂資料。詳情請參閱「Chat unsigned custom data (Optional)」(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:對話 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 unsigned custom data (Optional)」(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 unsigned custom data (Optional)」(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:對話 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 unsigned custom data (Optional)」(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"
  }
}

已關閉的對話

當服務專員關閉即時通訊介面中的即時通訊分頁時,就會發生已關閉的即時通訊事件。

以下是 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:對話 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 unsigned custom data (Optional)」(Chat 未簽署的自訂資料 (選用))。選填。

已開始分享螢幕畫面

當服務專員或使用者啟動螢幕分享工作階段時,系統會觸發「螢幕分享工作階段已啟動」事件。你可以在通話或即時通訊期間發起螢幕畫面分享活動。詳情請參閱「螢幕分享」。

以下是「螢幕分享工作階段已啟動」事件的 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:指出是誰發起螢幕分享工作階段。值為 agentend-user

  • cobrowse_session_remote_control:指出遠端控制螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • cobrowse_session_full_device:指出完整裝置螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • custom_data_secured:包含伺服器提供的已簽署自訂資料。選填。

  • custom_data_not_secured:包含網頁中的未簽署自訂資料。詳情請參閱「Chat unsigned custom data (Optional)」(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:表示遠端控制螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • custom_data_secured:包含伺服器提供的已簽署自訂資料。選填。

  • custom_data_not_secured:包含網頁中的未簽署自訂資料。詳情請參閱「Chat unsigned custom data (Optional)」(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:表示完整裝置螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • custom_data_secured:包含來自伺服器的已簽署自訂資料。選填。

  • custom_data_not_secured:包含來自網頁的未簽署自訂資料。詳情請參閱「Chat unsigned custom data (Optional)」(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:指出是誰結束螢幕分享工作階段。值為 agentend-userapi

  • cobrowse_session_remote_control:表示遠端控制螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • cobrowse_session_full_device:表示完整裝置螢幕分享工作階段的狀態。值為 onrejectedrequestedoff

  • custom_data_secured:包含伺服器提供的已簽署自訂資料。選填。

  • custom_data_not_secured:包含來自網頁的未簽署自訂資料。詳情請參閱「Chat unsigned custom data (Optional)」(Chat 未簽署的自訂資料 (選用))。選填。

轉移

通話或即時通訊轉接時,就會發生轉接事件。可指熱轉移或冷轉移。

下列事件欄位是轉移事件的一部分。

  • chat_idcall_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"
  }
}

已新增派對

第三方新增的活動是指任何轉移。可以是通話或即時通訊轉接。

新增派對成員事件包含下列資料:

  • chat_idcall_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:從虛擬代理程式傳送至 CC AI Platform 的所有變數 (位於酬載中)。選填。

  • custom_sip_headers:啟用這項功能後,POST 事件記錄中就會顯示來自來電的自訂 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_idcall_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:從虛擬代理程式傳送至 UJET 的所有變數 (位於酬載中)。選填。

  • custom_sip_headers:啟用這項功能後,POST 事件記錄中就會顯示來自來電的自訂 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:登入的服務專員 ID

  • agent_email:與代理程式帳戶相關聯的電子郵件地址

  • agent_custom_id:如果代理商的個人資料中輸入了自訂 ID,則為該 ID。選填。

以下是 Agent_Logout 事件的範例:

{
  "type": "Agent_Logout",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
  }
}

Agent Assist 已啟動

服務專員在通話或即時通訊期間啟動服務專員輔助功能時,系統會觸發「服務專員輔助功能已啟動」事件。

以下是 Agent_Assist_Started 事件的範例:

{
  "type": "Agent_Assist_Started",
  "data": {
    "conversation_id": "12345",
    "queue_id": "65",
    "agent_id": "1",
    "session_id": "78534G4RT4284",
    "queue_language_id": "en",
    "timestamp": "12:45:15"
  }
}

事件欄位如下:

  • conversation_id:對話 ID

  • queue_id:佇列 ID

  • agent_id:服務專員 ID

  • session_id:工作階段 ID

  • queue_language_id:佇列的語言

  • timestamp:時間戳記

背景畫面彈出

螢幕彈出功能可讓服務專員在背景執行 CRM 螢幕彈出作業,也就是說,系統會在服務專員的螢幕上顯示顧客資訊,服務專員不必採取任何行動。這能為消費者提供更流暢的體驗,並縮短服務專員的處理時間。

客戶關係管理記錄彈出式視窗

CRM_Record_Pop 事件是伺服器端事件,會在需要彈出票證時觸發。這個事件包含名為 recordUrl 的參數,其中含有 CRM 記錄的網址。如果您使用內嵌介面卡,只要訂閱 POST 事件,即可執行螢幕彈出功能。

為此,以下範例將說明如何新增事件監聽器,監聽從其他框架或視窗傳送的訊息。這段程式碼片段的用途是啟用不同框架或視窗之間的通訊,並根據收到的訊息,動態更新 iframe 中顯示的內容。

// name is the html property of the iframe
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) => {
  try {
    const data = JSON.parse(e.data)
    const type = data.type
    console.log('EventListener: ', JSON.stringify(data))

    if (type === 'CRM_Record_Pop') {
      const recordUrl = data.data.recordUrl
      if (!recordUrl) {
        return
      }
      console.log(`Opening <strong>recordUrl</strong> in iframe <strong>${iframeTarget.getAttribute('name')}</strong>`)

      // changing an iframe target to the record URL pop 
      iframeTarget.src = recordUrl
    } else if (type === 'New_Chat') {
      console.log(`<strong>Chat started...</strong>`)

      // handling here for new_chat events
    } else if (type === 'End_Chat') {
      console.log(`<strong>Chat ended...</strong>`)
      // handling here for end_chat events
    } if (.... //other event types) {
      // code handling for other types
    }else {
      console.log(JSON.stringify(data))
    }
  } catch (e) {
    log(e, true)
  }
}, false)