Agent Assist for Salesforce 語音整合 (搭配 Twilio Flex)

將 Twilio 與 Salesforce Service Cloud Voice (SCV) 整合後,Salesforce 代表就能使用 Twilio 平台的功能,在 Salesforce 中撥打及接聽電話。

事前準備

如要整合 Salesforce Voice 與 Twilio Flex,您必須存取下列資源:

步驟 1:設定 Twilio 服務雲端語音

請按照 Twilio 指南中的操作說明,以 Twilio 做為合作夥伴電話服務供應商,設定 Salesforce SCV。

步驟 2:將 Agent Assist 與 Twilio Flex 整合

請按照下列步驟將 Agent Assist 與 Twilio Flex 整合。

安裝 SIPREC 連接器外掛程式

透過 SIPREC 連接器外掛程式,Twilio Flex 帳戶可以將語音通話媒體串流的 SIPREC 分支傳送至 Agent Assist。請按照下列步驟安裝 SIPREC 連接器外掛程式。

  1. 前往 Twilio 首頁,在搜尋框中輸入 Marketplace

    Twilio 首頁

  2. 依序點選「目錄」 >「串流連接器」 >「Siprec 連接器」 >「安裝」 >「新增執行個體」

  3. 前往「設定」分頁,並使用下列詳細資料設定外掛程式:

    • 專屬名稱SipRec1
    • 工作階段錄製伺服器sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
  4. 按一下 [儲存]

設定 Twilio 函式

請按照下列步驟設定兩個 Twilio 函式:conversation-namewrap-up

  1. 前往 Twilio 控制台,在搜尋框中輸入「Function」
  2. 依序點選「函式」>「建立服務」
  3. 為新服務命名 ui-connector-auth,然後按一下「下一步」
  4. 依序點選「新增 +」 >「新增函式」

請按照下列步驟建立 conversation-name 函式。

  1. 將函式命名為 conversation-name
  2. 按一下鎖頭,將函式瀏覽權限變更為「公開」
  3. 複製 ui-connector-auth.js 程式碼並貼到編輯器中。
  4. 按一下 [儲存]

您可以使用 wrap-up 函式和 EventCallbackUrl 自動完成通話。這樣就不必在 Salesforce 和 Twilio Flex 中手動結束通話。請按照下列步驟建立 wrap-up 函式,透過 EventCallbackUrl 接收事件。

  1. 前往 Twilio 控制台 > 搜尋列,然後輸入「Taskrouter Workspace」
  2. 選取「Taskrouter workspaces」
  3. 記下工作區欄中的 SID。
  4. 前往編輯器,將函式命名為 wrap-up
  5. 在編輯器中加入下列程式碼。

    /**
    * @desc A Twilio Function that wraps up a conversation automatically to avoid agents being stuck
    * in a wrap up state while in Salesforce's Service Console.
    */
    exports.handler = function(context, event, callback) {
     const response = new Twilio.Response();
     const client = context.getTwilioClient();
    
     /**
      * @TODO Add your workspaceSid to this variable.
      */
     const workspaceSid = ""
    
     response.appendHeader('Content-Type', 'application/json');
    
     if (!event.EventType) {
       response.setBody({});
        return callback(null, response);
      }
    
      /**
       * This event is dispatched with the Event Callback Url, which is assigned in a Taskrouter Workspace's
       * Settings.
       */
      if (event.EventType === 'task.wrapup') {
       client.taskrouter.v1.workspaces(workspaceSid)
          .tasks(event.TaskSid)
          .update({
           assignmentStatus: 'completed',
           reason: 'Auto-completed via Function'
          })
          .then(() => {
            response.setBody({ status: "completed" });
            callback(null, response);
          })
          .catch(err => {
           response.setStatusCode(500);
           response.setBody({ error: err.message });
           callback(null, response);
         });
      } else {
       response.setBody({ status: "ignored" });
        callback(null, response);
      }
    };
    
  6. 找出 workspaceSid 變數,並使用 Taskrouter Workspace SID 步驟中的工作區 SID 更新該變數。

  7. 記下服務網址。在下一個步驟中,您必須使用 wrap-up 函式的完整網址。

  8. 依序點選「儲存」 >「部署全部」

  9. 前往 Twilio 控制台,並在搜尋列中輸入「Taskrouter Workspaces」

  10. 依序點選您使用的工作區 >「設定」>「事件回呼」>「事件回呼網址」

  11. 輸入上一個步驟中 wrap-up 函式的網址。

  12. 點選「回呼事件」,然後設為「特定事件」

  13. 依序點選「全選」 >「儲存」

使用 Flex Studio 設定 IVR

如要設定自動電話選單,請使用 Twilio Studio 建構啟動 SIPREC 分支的通話流程。該分支會直接將媒體串流傳送至 Agent Assist。通話流程也會發出 HTTP POST 要求,將電話號碼和對話 ID 分享給 Agent Assist。

請按照下列步驟,使用 Flex Studio 設定互動式語音回應 (IVR)。

  1. 前往 Twilio 控制台,在搜尋框中輸入 Studio
  2. 按一下「Studio」,工作室資訊主頁隨即開啟,並列出流程清單。
  3. 在工作室資訊主頁頁面中,你可以執行下列操作:

    • 更新現有流程。
    • 建立流程。

更新現有流程

請按照 Twilio 控制台中的下列步驟更新現有流程。

  1. 選取要更新的流程。
  2. 依序點選「Develop」 >「Phone Numbers」 >「Manage」 >「Active Numbers」。表格中應有一列,其中包含為 Flex 帳戶佈建的預設 Twilio 號碼。
  3. 前往「Voice - Studio Workflow」(語音 - Studio 工作流程),然後按一下「Voice IVR」(語音 IVR)

建立流程

建立新流程,提出 HTTP 要求、執行函式、分叉串流,以及傳送至 Flex。請按照 Twilio 控制台中的步驟,建立 HTTP 要求流程。

  1. 前往 Studio 資訊主頁頁面,然後按一下「建立新流程」
  2. 前往「搜尋小工具」,然後輸入「HTTP」
  3. 將「Make HTTP request」小工具拖曳至流程面板。
  4. 使用下列詳細資料設定小工具,然後按一下「儲存」

    • 小工具名稱register_twilio
    • 要求方法POST
    • 要求網址
      your-ui-connector-cloud-run-url.run.app/register-app
    • 內容類型:Application/JSON
    • 要求主體

      {
      "accountSid": "yourTwilioAccountSid",
      "authToken": "yourTwilioAccountAuthToken"
      }
      

請按照下列步驟建立執行函式流程。

  1. 在搜尋小工具中輸入「執行函式」
  2. 將「執行函式」小工具拖曳至流程面板,與 register_twilio 小工具的「成功」和「失敗」輸出內容建立連結。
  3. 使用下列詳細資料設定執行函式小工具:

    • 小工具名稱conversation_name
    • 服務ui-connector-auth
    • 環境:ui
    • 功能/conversation-name
    • 函式參數:輸入下列函式參數

      • 權杖
        {{ widgets.register_twilio.parsed.token }}
      • 端點
        your-ui-connector-cloud-run-url.run.app/conversation-name
      • 手機
        {{ trigger.call.From | replace_first:'+','' }}
      • ConversationName
        projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
  4. 按一下 [儲存]

如要建立分叉串流流程,請按照下列步驟操作。

  1. 在搜尋小工具中輸入「Fork stream」
  2. 將「Fork Stream」小工具移至流程面板,與「make HTTP request」小工具的「Success」和「Fail」輸出內容建立連線。
  3. 使用下列詳細資料設定 Fork 串流小工具:

    • 串流動作:開始
    • 串流類型Siprec
    • 連接器名稱Siprec1
    • 軌道:兩條軌道
    • 串流參數:輸入下列串流參數。

      • 關鍵字:對話
      • projects/project-id/conversations/{{trigger.call.CallSid}}
  4. 按一下 [儲存]

請按照下列步驟建立「傳送至 Flex」流程。

  1. 在搜尋小工具中輸入「傳送至 Flex」
  2. 將「Send to Flex」移至流程面板,然後將「Fork Stream」的「Next」連線至「Send to Flex」
  3. 按一下「傳送到 Flex」
  4. 請使用下列詳細資料設定「傳送至 Flex」小工具。

    • 工作流程:選擇用於 SCV 的工作流程。
    • 工作管道:語音
    • 屬性
      {"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"}
    • 透過網址POST
  5. 依序點選「儲存」 >「發布」

步驟 4:設定 Agent Assist 的記錄頁面

請按照下列步驟設定 Agent Assist 的記錄頁面。

  1. 為 Agent Assist 建立語音通話記錄頁面
  2. 依序點選「啟用」 >「應用程式預設值」 >「指派為應用程式預設值」
  3. 選取「Twilio for service cloud voice」(適用於 Service Cloud Voice 的 Twilio)
  4. 依序點選「下一步」 >「儲存」

步驟 5:測試 Agent Assist 整合功能

請按照下列步驟測試 Agent Assist。

  1. 前往 Salesforce。
  2. 按一下「應用程式」應用程式啟動器
  3. 在搜尋欄位中輸入「Twilio for service cloud voice」。系統隨即會開啟「案件」頁面。
  4. 前往「Omni channel」面板,然後按一下「New」
  5. 按一下「check_circle」check_circle「檢查」,撥打 Twilio Flex 號碼。您在開始時已記下這點。
  6. 測試雙方的對話,確保 Agent Assist 功能的運作方式符合設定。