將 Twilio 與 Salesforce Service Cloud Voice (SCV) 整合後,Salesforce 代表就能使用 Twilio 平台的功能,在 Salesforce 中撥打及接聽電話。
事前準備
如要整合 Salesforce Voice 與 Twilio Flex,您必須存取下列資源:
- Salesforce 和 Agent Assist 資源
- Salesforce 應用程式適用的 Agent Assist
Flex 帳戶
按照 Twilio 設定頁面的操作說明建立 Flex 帳戶。記下帳戶字串 ID (SID)、Twilio 電話號碼和驗證權杖。
Google 電話平台佈建的電話號碼
按照「Google Telephony Platform」一文的指示,取得已佈建的電話號碼,以便與 Twilio 的 Siprec 連接器外掛程式整合。
步驟 1:設定 Twilio 服務雲端語音
請按照 Twilio 指南中的操作說明,以 Twilio 做為合作夥伴電話服務供應商,設定 Salesforce SCV。
步驟 2:將 Agent Assist 與 Twilio Flex 整合
請按照下列步驟將 Agent Assist 與 Twilio Flex 整合。
安裝 SIPREC 連接器外掛程式
透過 SIPREC 連接器外掛程式,Twilio Flex 帳戶可以將語音通話媒體串流的 SIPREC 分支傳送至 Agent Assist。請按照下列步驟安裝 SIPREC 連接器外掛程式。
前往 Twilio 首頁,在搜尋框中輸入 Marketplace。
依序點選「目錄」 >「串流連接器」 >「Siprec 連接器」 >「安裝」 >「新增執行個體」。
前往「設定」分頁,並使用下列詳細資料設定外掛程式:
- 專屬名稱:
SipRec1 - 工作階段錄製伺服器:
sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
- 專屬名稱:
按一下 [儲存]。
設定 Twilio 函式
請按照下列步驟設定兩個 Twilio 函式:conversation-name 和 wrap-up。
- 前往 Twilio 控制台,在搜尋框中輸入「Function」。
- 依序點選「函式」>「建立服務」。
- 為新服務命名
ui-connector-auth,然後按一下「下一步」。 - 依序點選「新增 +」 >「新增函式」。
請按照下列步驟建立 conversation-name 函式。
- 將函式命名為
conversation-name。 - 按一下鎖頭,將函式瀏覽權限變更為「公開」。
- 複製
ui-connector-auth.js程式碼並貼到編輯器中。 - 按一下 [儲存]。
您可以使用 wrap-up 函式和 EventCallbackUrl 自動完成通話。這樣就不必在 Salesforce 和 Twilio Flex 中手動結束通話。請按照下列步驟建立 wrap-up 函式,透過 EventCallbackUrl 接收事件。
- 前往 Twilio 控制台 > 搜尋列,然後輸入「Taskrouter Workspace」。
- 選取「Taskrouter workspaces」。
- 記下工作區欄中的 SID。
- 前往編輯器,將函式命名為
wrap-up。 在編輯器中加入下列程式碼。
/** * @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); } };找出
workspaceSid變數,並使用 Taskrouter Workspace SID 步驟中的工作區 SID 更新該變數。記下服務網址。在下一個步驟中,您必須使用
wrap-up函式的完整網址。依序點選「儲存」 >「部署全部」。
前往 Twilio 控制台,並在搜尋列中輸入「Taskrouter Workspaces」。
依序點選您使用的工作區 >「設定」>「事件回呼」>「事件回呼網址」。
輸入上一個步驟中
wrap-up函式的網址。點選「回呼事件」,然後設為「特定事件」。
依序點選「全選」 >「儲存」。
使用 Flex Studio 設定 IVR
如要設定自動電話選單,請使用 Twilio Studio 建構啟動 SIPREC 分支的通話流程。該分支會直接將媒體串流傳送至 Agent Assist。通話流程也會發出 HTTP POST 要求,將電話號碼和對話 ID 分享給 Agent Assist。
請按照下列步驟,使用 Flex Studio 設定互動式語音回應 (IVR)。
- 前往 Twilio 控制台,在搜尋框中輸入 Studio。
- 按一下「Studio」,工作室資訊主頁隨即開啟,並列出流程清單。
在工作室資訊主頁頁面中,你可以執行下列操作:
- 更新現有流程。
- 建立流程。
更新現有流程
請按照 Twilio 控制台中的下列步驟更新現有流程。
- 選取要更新的流程。
- 依序點選「Develop」 >「Phone Numbers」 >「Manage」 >「Active Numbers」。表格中應有一列,其中包含為 Flex 帳戶佈建的預設 Twilio 號碼。
- 前往「Voice - Studio Workflow」(語音 - Studio 工作流程),然後按一下「Voice IVR」(語音 IVR)。
建立流程
建立新流程,提出 HTTP 要求、執行函式、分叉串流,以及傳送至 Flex。請按照 Twilio 控制台中的步驟,建立 HTTP 要求流程。
- 前往 Studio 資訊主頁頁面,然後按一下「建立新流程」。
- 前往「搜尋小工具」,然後輸入「HTTP」。
- 將「Make HTTP request」小工具拖曳至流程面板。
使用下列詳細資料設定小工具,然後按一下「儲存」。
- 小工具名稱:
register_twilio - 要求方法:
POST - 要求網址:
your-ui-connector-cloud-run-url.run.app/register-app
- 內容類型:Application/JSON
要求主體:
{ "accountSid": "yourTwilioAccountSid", "authToken": "yourTwilioAccountAuthToken" }
- 小工具名稱:
請按照下列步驟建立執行函式流程。
- 在搜尋小工具中輸入「執行函式」。
- 將「執行函式」小工具拖曳至流程面板,與
register_twilio小工具的「成功」和「失敗」輸出內容建立連結。 使用下列詳細資料設定執行函式小工具:
- 小工具名稱:
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 }}
- 權杖:
- 小工具名稱:
按一下 [儲存]。
如要建立分叉串流流程,請按照下列步驟操作。
- 在搜尋小工具中輸入「Fork stream」。
- 將「Fork Stream」小工具移至流程面板,與「make HTTP request」小工具的「Success」和「Fail」輸出內容建立連線。
使用下列詳細資料設定 Fork 串流小工具:
- 串流動作:開始
- 串流類型:
Siprec - 連接器名稱:
Siprec1 - 軌道:兩條軌道
串流參數:輸入下列串流參數。
- 關鍵字:對話
- 值:
projects/project-id/conversations/{{trigger.call.CallSid}}
按一下 [儲存]。
請按照下列步驟建立「傳送至 Flex」流程。
- 在搜尋小工具中輸入「傳送至 Flex」。
- 將「Send to Flex」移至流程面板,然後將「Fork Stream」的「Next」連線至「Send to Flex」。
- 按一下「傳送到 Flex」。
請使用下列詳細資料設定「傳送至 Flex」小工具。
- 工作流程:選擇用於 SCV 的工作流程。
- 工作管道:語音
- 屬性:
{"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"} - 透過網址:
POST
依序點選「儲存」 >「發布」。
步驟 4:設定 Agent Assist 的記錄頁面
請按照下列步驟設定 Agent Assist 的記錄頁面。
- 為 Agent Assist 建立語音通話記錄頁面。
- 依序點選「啟用」 >「應用程式預設值」 >「指派為應用程式預設值」。
- 選取「Twilio for service cloud voice」(適用於 Service Cloud Voice 的 Twilio)。
- 依序點選「下一步」 >「儲存」。
步驟 5:測試 Agent Assist 整合功能
請按照下列步驟測試 Agent Assist。
- 前往 Salesforce。
- 按一下「應用程式」應用程式啟動器。
- 在搜尋欄位中輸入「Twilio for service cloud voice」。系統隨即會開啟「案件」頁面。
- 前往「Omni channel」面板,然後按一下「New」。
- 按一下「check_circle」check_circle「檢查」,撥打 Twilio Flex 號碼。您在開始時已記下這點。
- 測試雙方的對話,確保 Agent Assist 功能的運作方式符合設定。