Twilio と Salesforce Service Cloud Voice(SCV)を統合すると、Salesforce の担当者は Twilio プラットフォームの機能を使用して Salesforce で通話を発信、受信できます。
始める前に
Salesforce 音声を Twilio Flex と統合するには、次のリソースにアクセスする必要があります。
- Salesforce と Agent Assist のリソース
- Agent Assist for Salesforce アプリ
Flex アカウント
Twilio の設定ページの手順に沿って、Flex アカウントを作成します。アカウント文字列識別子(SID)、Twilio 電話番号、認証トークンを書き留めます。
Google テレフォニー プラットフォームでプロビジョニングされた電話番号
Google テレフォニー プラットフォームの手順に沿って、Twilio の Siprec コネクタ アドオンと統合するためのプロビジョニングされた電話番号を取得します。
ステップ 1: Twilio Service Cloud Voice を設定する
Twilio ガイドの手順に沿って、Salesforce SCV をパートナー テレフォニー プロバイダとして Twilio で設定します。
ステップ 2: Agent Assist を Twilio Flex と統合する
次の手順に沿って、Agent Assist を Twilio Flex と統合します。
SIPREC コネクタ アドオンをインストールする
SIPREC コネクタ アドオンを使用すると、Twilio Flex アカウントで音声通話メディア ストリームの SIPREC フォーク を Agent Assist に作成できます。次の手順に沿って、SIPREC コネクタ アドオンをインストールします。
[Twilio Home] に移動し、検索ボックスに「Marketplace 」と入力します。
[カタログ] > [ストリーム コネクタ] > [Siprec コネクタ] > [インストール] > [インスタンスを追加] をクリックします。
[構成] タブに移動し、次の詳細情報を使用してプラグインを構成します。
- 一意の名前:
SipRec1 - セッション録画サーバー:
sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
- 一意の名前:
[保存] をクリックします。
Twilio Functions を構成する
次の手順に沿って、2 つの Twilio Functions(conversation-name と wrap-up)を構成します。
- Twilio コンソールに移動し、検索ボックスに「Function」と入力します。
- [Functions] > [サービスを作成] をクリックします。
- 新しいサービスに
ui-connector-authという名前を付けて、[次へ] をクリックします。 - [追加 +] > [関数の追加] をクリックします。
次の手順に沿って、conversation-name 関数を作成します。
- 関数に
conversation-nameという名前を付けます。 - ロックをクリックして、関数の公開設定を [公開] に変更します。
ui-connector-auth.jsコードをコピーして、エディタに貼り付けます。- [保存] をクリックします。
wrap-up 関数と EventCallbackUrl を使用すると、通話完了プロセスを自動化できます。これにより、Salesforce と Twilio Flex の両方で通話を手動で終了する必要がなくなります。次の手順に沿って、EventCallbackUrl を介してイベントを受信する wrap-up 関数を作成します。
- 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 で更新します。サービスの URL をメモします。次のステップでは、
wrap-up関数の完全な URL を使用する必要があります。[保存] > [すべてデプロイ] をクリックします。
Twilio コンソールに移動し、検索バーに「Taskrouter Workspaces 」と入力します。
使用しているワークスペース > [設定] > [イベント コールバック] > [イベント コールバック URL] をクリックします。
前のステップで取得した
wrap-up関数の URL を入力します。[コールバック イベント] をクリックし、[特定のイベント] に設定します。
[すべて選択] > [保存] をクリックします。
Flex Studio で IVR を構成する
自動電話メニューを設定するには、Twilio Studio を使用して、SIPREC フォークを開始する通話フローを作成します。このフォークは、メディア ストリームを Agent Assist に直接送信します。また、通話フローは HTTP POST を実行して、電話番号と会話 ID を Agent Assist と共有します。
次の手順に沿って、Flex Studio でインタラクティブ音声レスポンス(IVR)を構成します。
- Twilio コンソールに移動し、検索ボックスに「Studio」と入力します。
- [Studio] をクリックすると、フローのリストが表示された Studio ダッシュボード ページが開きます。
Studio ダッシュボード ページでは、次の操作を行うことができます。
- 既存のフローを更新する。
- フローを作成する。
既存のフローを更新する
Twilio コンソールで次の手順に沿って、既存のフローを更新します。
- 更新するフローを選択します。
- [Develop] > [Phone Numbers] > [Manage] > [Active Numbers] をクリックします。表には、Flex アカウント用にプロビジョニングされたデフォルトの Twilio 番号が 1 行表示されます。
- [Voice - Studio Workflow] に移動し、[Voice IVR] をクリックします。
フローを作成する
HTTP リクエストの作成、関数の実行、ストリームのフォーク、Flex への送信を行う新しいフローを作成します。Twilio コンソールで次の手順に沿って、HTTP リクエスト フローを作成します。
- [Studio ダッシュボード] ページに移動し、[Create new flow] をクリックします。
- [検索ウィジェット] に移動し、「HTTP 」と入力します。
- [Make HTTP request] ウィジェットをフローパネルにドラッグします。
次の詳細情報を使用してウィジェットを構成し、[保存] をクリックします。
- ウィジェット名:
register_twilio - リクエスト メソッド:
POST - リクエスト URL:
your-ui-connector-cloud-run-url.run.app/register-app
- コンテンツ タイプ: Application/JSON
リクエスト本文:
{ "accountSid": "yourTwilioAccountSid", "authToken": "yourTwilioAccountAuthToken" }
- ウィジェット名:
次の手順に沿って、実行関数フローを作成します。
- 検索ウィジェットに「Run function 」と入力します。
- [Run function] ウィジェットをフローパネルにドラッグして、
register_twilioウィジェットの [Success] 出力と [Fail] 出力を接続します。 次の詳細情報を使用して、実行関数ウィジェットを構成します。
- ウィジェット名:
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 widget] をフローパネルに移動して、HTTP リクエスト ウィジェットの [Success] 出力と [Fail] 出力を接続します。
次の詳細情報を使用して、フォーク ストリーム ウィジェットを構成します。
- ストリーム アクション: 開始
- ストリーム タイプ:
Siprec - コネクタ名:
Siprec1 - トラック: 両方のトラック
ストリーム パラメータ: 次のストリーム パラメータを入力します。
- キー: conversation
- 値:
projects/project-id/conversations/{{trigger.call.CallSid}}
[保存] をクリックします。
次の手順に沿って、Flex フローへの送信を作成します。
- 検索ウィジェットに「Send to Flex 」と入力します。
- [Send to Flex] をフローパネルに移動し、[Fork Stream] の [Next] を [Send to Flex] に接続します。
- [Send to Flex] をクリックします。
次の詳細情報を使用して、Flex ウィジェットへの送信を構成します。
- ワークフロー: SCV で使用しているワークフローを選択します。
- タスクチャネル: 音声
- 属性:
{"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"} - URL メソッド:
POST
[保存] > [公開] をクリックします。
ステップ 4: Agent Assist のレコードページを構成する
次の手順に沿って、Agent Assist のレコードページを構成します。
- Agent Assist の音声通話レコードページを作成します。
- [Activation] > [App default] > [Assign as app default] をクリックします。
- [Twilio for service cloud voice] を選択します。
- [次へ] > [保存] をクリックします。
ステップ 5: Agent Assist の統合をテストする
次の手順に沿って、Agent Assist をテストします。
- Salesforce に移動します。
- [**apps アプリケーション ランチャー**] をクリックします。
- 検索フィールドに「Twilio for service cloud voice 」と入力します。[ケース] ページが開きます。
- [オムニチャネル] パネルに移動し、[新規] をクリックします。
- [check_circle Check] をクリックして、Twilio Flex の番号に電話をかけます。これは最初の手順でメモしたものです。
- 会話の両側をテストし、Agent Assist の機能が構成どおりに動作していることを確認します。