Click-to-Call

Click-to-Call讓您的聯絡人Closed 在聯絡中心與客服專員、IVR 或機器人互動的人。只需點擊即可呼叫真人客服代表。 訪客可透過您網站上的按鈕,直接撥打電話給客服專員。 這可以幫助您減少或消除:

  • 連接銷售或支援團隊的額外步驟。

  • 管理費用,例如服務號碼費和行動裝置附加費。

Click-to-Call透過以JavaScript撰寫的軟體開發套件 (SDK) 運作。 若要設定,您必須與開發人員合作,在您的網站上實作 SDK。 您還必須與可以提供特定憑證的客戶代表合作。

有關 Click-to-Call 的重要資訊

  • Click-to-Call支援桌面瀏覽器。 目前不支援行動裝置。

  • 以下區域目前支援Click-to-Call

    • 加拿大

    • 德國

    • 日本

    • 英國

    • 美國

  • 有關 Click-to-Call SDK 的關鍵資訊包括:

  • SDK 由一個clicktocall.js檔案組成。 在您希望顯示Click-to-Call按鈕的每個網頁上,都必須包含或引用此項。 您也必須實作自己的 UI 元件,如Click-to-Call按鈕和呼叫控制。 Click-to-Call按鈕必須叫用 SDK 中的makeCall功能,這啟動WebRTC呼叫。 如果通話請求通過CXone Mpower的驗證,則通話已撥打。

  • SDK 提供了一個選項,用於使用 X 標頭將使用者資料、網站元數據和路由資料作為SIP邀請請求的一部分傳遞。 您必須配置與Studio Click-to-Call聯絡點關聯的腳本Closed 呼入聯絡人用來發起互動的入口點,如電話號碼或電郵地址。以獲取並根據需要使用它。 這可能包括在螢幕彈出視窗中為客服專員顯示用戶數據,或使用路由數據做出路由決策。

    此規定是可選的,應僅在需要時進行設置。 如果不需要,可以在不傳遞任何數據的情況下設置 makeCall() 函數。

    收集和傳遞數據是您的責任。 SDK 僅提供傳輸數據的機制。 它不會生成、驗證或管理數據。

整合的先決條件

要準備將Click-to-Call整合到您的網站中,請完成以下操作:

  • 從您的NICE 客戶代表獲取用戶端 ID。

  • NICE 客戶代表合作,預配特定於Click-to-Call的電話號碼。

  • 在您自己的伺服器上實作 POST API。 此 API 必須產生 JWT 權杖以進行驗證。 此功能驗證來電要求是否合法。

  • 提供公鑰給您的客戶代表進行驗證。

  • 考慮您的 UI 設計。 您必須為通話的聯絡人端開發自己的使用者介面,包括通話控制按鈕,例如靜音或結束通話。 SDK 包含 React 和 Angular 元件範例,您的開發人員可以使用這些範例作為參考和啟發。 呼叫的客服專員端在他們的客服專員應用程式中處理,因此 UI 開發只需要用於聯絡端。

CXone Mpower 設定

除了新增Click-to-Call功能到您的網站上,您也必須確保在CXone Mpower中設定了您的路由元件。 您的CXone Mpower管理員可以設定必要的元件。

請確定您已擁有如下元件:

  • 已建立傳入語音ACD技能,並且已向此技能指派了必要的客服專員。

  • 為語音呼叫設定了聯絡點(POC)。 這些必須是每個Click-to-Call電話號碼的電話 POC。 在您的網站上實作Click-to-Call的開發者必須為JavaScript檔案contactAddress使用此項。

  • 將呼叫路由至客服專員的Studio指令碼。

取決於您的CXone Mpower設定,您可能可以使用現有的路由元件,也可能需要建立並設定新元件。

SDK 整合

請確定您已完成或準備了先決條件部分的必要項目。

  1. clicktocall.js檔案加入您認為合適的網頁。

  2. clicktocall.js檔案中,設定 POST API 的 API 端點 URL。

    let getJWT1TokenURL = '<YOUR_TOKEN_ENDPOINT_URL>';
  3. 新增下列 UI 元件至您的網站。 請務必賦予每個元件唯一的識別碼。 SDK 套件包含 React 和 Angular 的 UI 元件範例。 您可在 IntegrationHelpers/UIComponents 目錄中找到此內容。

    • 開始語音通話的按鈕。

    • 掛斷或中斷通話的按鈕。

    • 通話音訊靜音和取消靜音的按鈕。

    • 顯示 DTMF 輸入鍵盤的按鈕。

    • 用於顯示鍵盤按鍵的<div>

    • 顯示呼叫成功或錯誤訊息的標籤。

    • <audio>標記來播放某些聲音,例如撥號音或通話連接聲音。

  4. 更新clicktocall.js檔案,並引用您在上一步中新增的 UI 元件。

    let clickToCallButtonId = '<YOUR_CLICK_TO_CALL_BUTTON_ID>';
    let hangUpButtonId = '<YOUR_HANG_UP_BUTTON_ID>';
    let muteAudioButtonId = '<YOUR_MUTE_AUDIO_BUTTON_ID>';
    let keypadButtonId = '<YOUR_KEYPAD_BUTTON_ID>';
    let dtmfKeyDivId = '<YOUR_DTMF_KEY_DIV_ID>';
    let callStatusMessageLabelId = '<YOUR_CALL_STATUS_MESSAGE_LABEL_ID>';
    let remoteAudioId = '<YOUR_AUDIO_CONTROL_ID>';
  5. clicktocall.js檔案的配置部分配置您的偏好配置。 本部分包含數個控制特定行為類型的配置變數。

    • 使用retryCount設定重試次數。 如果通話中斷,這是系統嘗試重新連接通話的次數。 預設為 3

    • 設定POCREnvironmentXHeaderValue值為PROD

    • phoneServerConfigclientId中設定電話伺服器的配置設定。

      let phoneServerConfig = {
      	domain: '<Domain of the SIP server>', //Set value of this configuration to 'cxonevoice.com'
      	addresses: [], //Keep this array empty
      	iceServers: [], //Keep this array empty
      	userName: '<username>', //This configuration is a human-readable string used to identify the sender in a more friendly way. In agent applications like CXone Agent, this might be displayed on the screen during a call. Tthis value should not contain any spaces and should not exceed 20 characters. 
      	displayName: '', // This is an optional field and its value can be kept the same as userName 
      	password: '' //Keep this field empty
      }
      let clientID = '<YOUR_CLIENT_ID>'; //Set the value of this configuration as provided by CXone 
  6. 如果您想要自訂與通話失敗或斷線相關的聯絡人端通知,請變更clicktocall.js中下列變數的文字字串。

    • callFailedToConnectErrorMessage

    • uiErrorMessage

    • contactSupportTeamMessage

    let callFailedToConnectErrorMessage = 'Call failed to connect. Service not available!';
    let uiErrorMessage = {
    'Default': 'Error occurred. Please try again!',
    'Terminated': 'Call ended successfully!',
    'Canceled': 'Call cancelled. Please try again!',
    'Failed': callFailedToConnectErrorMessage,
    'login failed': callFailedToConnectErrorMessage,
    'disconnected': callFailedToConnectErrorMessage,
    'logout': callFailedToConnectErrorMessage,
    'SIP Failure Code': callFailedToConnectErrorMessage,
    'RTP Timeout':  'RTP Timeout': 'The call ended unexpectedly due to network issues. Please ensure your internet is stable and try placing the call again!',
    'Token Claims': 'An error occurred during the call attempt. Please retry!'
    						}
    let contactSupportTeamMessage = "We're sorry, could not connect the call. Please try again later or contact our support team!";
  7. 如果要分配最近的資源來處理Click-to-Call請求,請配置基於位置的資源。 為此,請在clicktocall.js中執行以下操作:

    1. 使用 getAvailableLocations() 函數返回部署了所需資源(如會話邊界控制器 (SBC))的位置清單。 這些位置有助於確定處理Click-to-Call請求的最佳資源。

    2. 將位置選擇整合到UI中。 您可以透過以下兩種方式之一來執行此操作:

      • 用戶可選擇的控件:提供可選元素,如下拉式清單或單選按鈕,允許聯絡人從getAvailableLocations()功能提供的選項中選擇最近的位置。

      • 自動映射:如果系統可以確定聯繫人的位置,則將其映射到getAvailableLocations()功能公開的位置之一,並將其傳遞給makeCall()功能。

    3. 配置預設位置。 為此,請將 defaultLocation 變數設置為您的聯絡人最常呼叫的位置。 預設位置必須是 getAvailableLocations() 函數返回的位置之一。

      // Variable to store default location
      let defaultLocation = "US";
  8. makeCall(contactAddress, [location], [userData], [routingData])方法新增到Click-to-Call按鈕。 locationuserDataroutingData參數是可選的。

    userDataroutingData 參數傳遞使用者和路由數據,以便在路由決策中使用或在Agent中顯示。 這是使用 X 標頭作為SIP邀請請求的一部分完成的。 然後,您可以在用於聯絡點的 Studio 指令碼中處理資料。

    • userData:顯示使用者相關信息。
    • routingData:顯示用於路由決策的數據。

    這些參數必須作為包含鍵值對的物件提供。 SDK 使用 JSON.stringify() 將這兩個物件轉換為字串,並在SIP邀請請求中將它們作為 X 標頭傳輸:

    • X-user-data:包含userData物件。

    • X-routing-data:包含routingData物件。

    userDataroutingData是單獨的物件,以便在需要時方便分離數據。 但是,如果您願意,可以只在其中一個參數中傳遞所有必需的數據。 如果對 Studio 指令碼進行了相應配置,您還可以傳輸單個 X 標頭中的所有資料。

    截止日期 X 標頭中可以傳遞的數據大小限制,則字串轉換后,每個userDataroutingData物件的字元長度不應超過 1,000 個字元 (1 KB)。

    請參閱以下範例,為您的特定用例配置它:

    • 不傳遞任何參數:

      makeCall(contactAddress);
    • 僅傳遞location

      makeCall(contactAddress, "US");
    • 傳遞locationuserDataroutingData

      makeCall(contactAddress, "US", { name: "Elizabeth Bennet", age: 20 }, { skill: "sales" });
    • 僅傳遞userData

      makeCall(contactAddress, undefined, { name: "John Doe", age: 30 }, undefined);
  9. 如果將makeCall()方法配置為使用userData物件或routingData物件,則必須使用以下操作處理與Studio Click-to-Call聯絡點關聯的腳本中的 X 標頭資料Closed 呼入聯絡人用來發起互動的入口點,如電話號碼或電郵地址。

  10. 若要傳送 DTMF 鈴聲,請在按下 DTMF 按鈕時呼叫guiSendDTMF(digit)功能。

  11. 測試您的配置,確保它可以成功發起和路由呼叫。