この音声統合では、Twilio Open CTI 統合を使用して、Twilio Flex コールセンターを Salesforce インスタンスに統合します。
Agent Assist は、Twilio Flex 通話のメディア ストリームを使用して、Salesforce Lightning Service Console でエージェントに候補を提供します。
始める前に
Agent Assist UI モジュールを Salesforce と統合するには、次のリソースへのアクセス権が必要です。
-
オペレーティング システムの推奨インストール手順に沿って操作します。
-
オペレーティング システムの推奨インストール手順に沿って操作します。
-
手順に沿って
gcloudコマンドをインストールし、gcloud auth loginを使用して認証します。 Salesforce
- インスタンス URL または Salesforce のログインページでログインし、次の点に注意してください。
- Salesforce の My Domain URL。私のドメイン URL を確認する手順は次のとおりです。
- メニューバー > [設定] メニューに移動します。
- [Setup] をクリックします。
- [クイック検索] ボックスに「My Domain」と入力します。ドメイン名は
MY-DOMAIN-NAME.develop.my.salesforce.comの形式です。
- Salesforce 組織 ID。組織 ID を確認する手順は次のとおりです。
- メニューバー > [設定] メニューに移動します。
- [Setup] をクリックします。
- [クイック検索] ボックスに「組織情報」と入力します。注: これらの統合手順は、Salesforce Developer Edition でのみテストされています。別のエディションを使用している場合は、機能ライセンスと Salesforce インターフェースに違いが生じる可能性があります。
-
- 手順に沿って統合を設定します。
- デプロイ スクリプトを実行する前に、
deploy.shを使用して、またはプロジェクト ルートの.envファイルで、次の環境変数を構成します。 AUTH_OPTION:SalesforceLWCに設定します。SALESFORCE_DOMAIN:YOUR_SUBDOMAIN.develop.lightning.force.comに類似したドメイン名。この値は、Salesforce の前提条件でメモしました。https://は含めないように注意してください。SALESFORCE_ORGANIZATION_ID: この値は Salesforce の前提条件でメモしました。APP_AUTH_OPTION:Twilioに設定します。TWILIO_ACCOUNT_SID: Twilio アカウント SID に設定します。
ステップ 1: Twilio Flex を設定する
この統合では、Twilio Flex がソフトフォンとして機能します。Twilio コンソールにログインして、Flex アカウントを設定できます。Flex アカウントの作成方法について詳しくは、Twilio の設定ページをご覧ください。
SIPREC コネクタ アドオンをインストールする
SIPREC コネクタ アドオンを使用すると、Twilio Flex アカウントで音声通話メディア ストリームの SIPREC フォークを Agent Assist に作成できます。SIPREC コネクタ アドオンをインストールする手順は次のとおりです。
- Twilio ホーム > [マーケットプレイス] > [カタログ] > [Twilio] > [Siprec Connector] に移動します。
- [インストール] > [利用規約への同意] チェックボックス > [インストール] をクリックします。
- [構成] タブで、プラグインを次のように構成します。
- Unique Name:
SipRec1 - セッション録画サーバー:
sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
- GTP 番号のプロビジョニングの詳細については、テレフォニー統合のドキュメントをご覧ください。Twilio Siprec コネクタでは SBC の構成と検証の手順が完了しているため、これらの手順は無視してかまいません。
- Unique Name:
- Twilio ホーム > 関数とアセットに移動します。
- サイドバーに [関数とアセット] が表示されていない場合は、[プロダクトを探索] から固定します。
- [サービスを作成] をクリックします。
- 新しいサービスに
ui-connector-authという名前を付けます。 - 表示されたエディタで、[追加 +] > [関数を追加] をクリックします。
- 関数に
conversation-nameという名前を付けます。 - をクリックし、関数の可視性を [Public] に変更します。
- GitHub リポジトリから
ui-connector-auth.jsの内容全体をコピーして、エディタに貼り付けます。 - [保存] をクリックします。
- [すべてデプロイ] をクリックします。
Flex Studio で IVR を構成する
IVR は、Twilio Studio でプログラムによる通話フローを構成し、メディア ストリームの SIPREC フォークを Agent Assist に作成することで構成されます。また、HTTP POST を実行して、電話番号と会話 ID を Agent Assist と共有します。Flex Studio で IVR を構成する手順は次のとおりです。
- Twilio コンソールに移動します。
- [Develop] > [Phone Numbers] > [Manage] > [Active Numbers] をクリックします。表には、Flex アカウント用にプロビジョニングされたデフォルトの Twilio 番号が 1 行表示されます。
- [Voice - Studio Workflow] セクションで、[Voice IVR] をクリックします。
- HTTP リクエストを作成ウィジェットをフローにドラッグします。
- Incoming Call を SendCallToAgent ウィジェットの入力から切断します。
- [Incoming Call] を [Make HTTP Request] ウィジェットの入力に接続します。
- HTTP リクエストの作成ウィジェットを次の詳細で構成します。
- ウィジェット名:
register_twilio - リクエスト メソッド:
POST - リクエスト URL:
<your-ui-connector-cloud-run-url>.run.app/register-app - コンテンツ タイプ: Application/JSON
- リクエストの本文:
{ "accountSid": "<yourTwilioAccountSid>", "authToken": "<yourTwilioAccountAuthToken>" }
- ウィジェット名:
- [関数を実行] ウィジェットをフローにドラッグします。
- register_twilio ウィジェットの [Success] 出力と [Fail] 出力を、Run Function ウィジェットの入力に接続します。
- 次の詳細を使用してウィジェットを作成します。
- ウィジェット名:
conversation_name - サービス:
ui-connector-auth - 環境:
ui - 関数:
conversation-name - 関数パラメータ:
- token:
{{ widgets.register_twilio.parsed.token }}
- endpoint:
<your-ui-connector-cloud-run-url>.run.app/conversation-name - phone:
{{ trigger.call.From | replace_first:'+','' }}
- conversationName:
projects/<project>/locations/<location>/conversations/TW-{{ trigger.call.From | replace_first:'+','' }}-{{ trigger.call.CallSid }}
- token:
- ウィジェット名:
- サイドバーからフローに [Fork Stream] ウィジェットをドラッグします。
- [Make HTTP Request] ウィジェットの [Success and Fail] 出力を [Fork Stream] ウィジェットの入力に接続します。
- [Fork Stream] ウィジェットの [Next] ノードを [SendCallToAgent] ウィジェットに接続します。
[Fork Stream] ウィジェットを次のように構成します。
- Stream Action: Start
- ストリーム タイプ: Siprec
- コネクタ名:
Siprec1 - トラック: 両方のトラック
ストリーム パラメータ:
- キー:
conversation 値:
projects/<gcp-project-id>/conversations/TW-{{trigger.call.From | replace_first:'+','' }}-{{trigger.call.CallSid}}
- キー:
[保存] > [公開] をクリックします。
アカウントの詳細
この手順に沿って、Twilio Flex アカウントの詳細情報を収集します。この情報は、後で Salesforce で Flex CTI を構成するために必要になります。
- Twilio Home > Account Dashboard に移動し、次の情報を書き留めます。
- アカウント SID
- Twilio の電話番号
ステップ 2: 開発プロジェクトを設定する
Agent Assist UI モジュールの統合を開始する手順は次のとおりです。
- 次のコードを実行して、Agent Assist 統合リポジトリのクローンを作成し、プロジェクトを開きます。
git clone https://github.com/GoogleCloudPlatform/agent-assist-integrations cd salesforce/aa-lwc
- 次のコマンドを実行して、UI モジュールの JavaScript ファイルをダウンロードします。このファイルは後で静的リソースとしてデプロイします。Salesforce では、サードパーティの JavaScript を読み込むために静的リソースが必要です。
npm run generate-static-resources npm install
ステップ 3: Salesforce 環境を設定する
Agent Assist UI モジュールは、本番環境や開発環境などの特定の環境に統合できます。Salesforce では、これらの環境を組織(org)と呼びます。
Salesforce CLI を使用して組織を構成する
Salesforce CLI を使用して Agent Assist 統合用に組織を構成する手順は次のとおりです。
- 次のコードを実行し、通常使用する Salesforce のログイン情報を使用して CLI を認証します。
npm run login
- 次のコードを実行して、LWC を組織にデプロイします。
npm run deploy
ステップ 4: 外部クライアント アプリを作成する
Salesforce LWC は、クライアント認証情報の OAuth 2.0 フローを使用してユーザーを認証します。外部クライアント アプリは、クライアント認証情報フローを有効にします。アプリのコンシューマ キーとコンシューマ シークレットを使用して Salesforce LWC を構成し、Salesforce でユーザーを認証します。
- メニューバー > [設定] メニューに移動し、[設定] をクリックします。[クイック検索] ボックスに「External Client App Manager」と入力します。
- [External Client App Manager] > [New External Client App] > [Create] をクリックし、次の情報を入力します。
- 外部クライアント アプリ名: lwc auth
- API 名: lwc_auth
- Contact Email:
your_email@example.com - API(OAuth 設定の有効化) > OAuth の有効化: 選択済み
- [API (Enable OAuth Settings)] > [Callback URL]: https://login.salesforce.com/services/oauth2/callback
- [API (Enable OAuth Settings)] > [Selected OAuth Scopes]: ID URL サービスにアクセスする
- API(OAuth 設定の有効化)> クライアント認証情報フローを有効にする: 選択済み
- [作成] をクリックします。
- メニューバー > [設定] メニューに移動し、[設定] をクリックします。[クイック検索] ボックスに「External Client App Manager」と入力します。
- 外部クライアント アプリの名前 > [編集] をクリックします。
- [OAuth Policies] > [OAuth Flows and External Client App Enhancements] に移動します。
- [Enable Client Credentials Flow] が選択されていることを確認します。
- [Run As] に、ログイン ユーザー名を入力します。
- [保存] をクリックします。
- メニューバー > [設定] メニューに移動し、[設定] をクリックします。[クイック検索] ボックスに「External Client App Manager」と入力します。
- 外部クライアント アプリの名前 > [編集] をクリックします。
- [OAuth Settings] > [App Settings] > [Consumer Key and Secret] に移動します。
- メールで送信された確認コードを入力します。
- コンシューマー キーとコンシューマー シークレットを安全な場所にコピーします。これらの値は後のステップで必要になります。
CORS とコンテンツ セキュリティ ポリシーを確立する
- メニューバー > [設定] メニューに移動し、[設定] をクリックします。
- [クイック検索] ボックスに「CORS」と入力し、[編集] をクリックします。
- [OAuth エンドポイントの CORS を有効にする] を選択します。
- [保存] をクリックします。
- メニューバー > [設定] メニューに移動し、[設定] をクリックします。
- [クイック検索] ボックスに「信頼できる URL」と入力し、[新しい信頼できる URL] をクリックします。
- [API Name] に「ui_connector」と入力します。
- Agent Assist Integration Backend でデプロイした UI コネクタ Cloud Run サービス エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。例:
https://<var>UI_CONNECTOR_SUBDOMAIN</var>.<var>GCP_REGION</var>.run.app。 - [CSP ディレクティブ] のすべてのチェックボックスをオンにします。
- [Save & New] をクリックします。
- Agent Assist Integration Backend でデプロイした UI コネクタ Cloud Run サービス エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。例:
- [API Name] に「ui_connector_wss」と入力します。
- Agent Assist Integration Backend でデプロイした UI コネクタ Cloud Run サービス エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。WebSockets トラフィック用にプロトコルを wss に変更します。例:
wss://<var>UI_CONNECTOR_SUBDOMAIN</var>.<var>GCP_REGION</var>.run.app。 - [CSP ディレクティブ] のすべてのチェックボックスをオンにします。
- [Save & New] をクリックします。
- Agent Assist Integration Backend でデプロイした UI コネクタ Cloud Run サービス エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。WebSockets トラフィック用にプロトコルを wss に変更します。例:
- [API Name] に「salesforce_domain」と入力します。
- Salesforce ドメインの URL を
https://<var>YOUR_SUBDOMAIN</var>.my.salesforce.comの形式で入力します。 - [CSP ディレクティブ] のすべてのチェックボックスをオンにします。
- [保存] をクリックします。
- Salesforce ドメインの URL を
ステップ 5: Twilio Flex CTI プラグインをインストールする
Salesforce は、サードパーティのソフトフォンを Salesforce インスタンスと統合できるように、Salesforce Open CTI を提供しています。
Twilio Flex CTI は Salesforce Open CTI を使用して、Salesforce インスタンス内で Flex を直接使用できるようにします。Twilio の手順に沿って、Salesforce インスタンスで Twilio Flex CTI を設定します。
ステップ 6: Salesforce Lightning Web コンポーネントをインストールする
Lightning Experience エディタを使用して、新しい電話がかかってきたときに Twilio Flex CTI が開く連絡先ページに Salesforce Lightning Web コンポーネントを追加する手順は次のとおりです。
- サービス コンソールに移動し、[連絡先] を選択します。
- 連絡先レコードを選択します。
- [設定] メニュー > [ページの編集] をクリックします。
- [テンプレート] > [変更] をクリックします。
- [ヘッダー] と [2 つの等しいリージョン] を選択します。
- [次へ] をクリックします。
- 各リージョンを新しいリージョンにマッピングします。
- [完了] をクリックします。
- [コンポーネント] サイドバーから、
agentAssistContainerModuleをサイドバーに移動します。注: このコンポーネントはnpm deployコマンドによって提供されました。 - 前の手順で配置したコンポーネントをクリックし、次の手順に沿ってフォーム フィールドに入力して構成の詳細を追加します。
- endpoint: 統合バックエンドの UI コネクタの URL。たとえば、Cloud Run コンソールの URL(
https://<var>UI_CONNECTOR_ENDPOINT</var>.<var>GCP_REGION</var>.run.appなど)。 - features: 含める Agent Assist の機能。これらは会話プロファイルで有効にする必要があります。使用可能な機能には、
CONVERSATION_SUMMARIZATION、KNOWLEDGE_ASSIST_V2、AGENT_COACHINGなどがあります。SMART_REPLYなどの一部の機能はvoiceでは使用できません。 - channel: 統合が
voice用であることを示します。 - platform: プラットフォームが
twilioであることを示します。 - conversationProfile: Agent Assist の会話プロファイルのリソース名。例:
projects/<var>GCP_PROJECT_ID</var>/locations/<var>GCP_REGION</var>/conversationProfiles/<var>CONVERSATION_PROFILE_ID</var> - consumerKey: ステップ 3 の外部クライアント コンシューマ キー。
- consumerSecret: ステップ 3 の外部クライアント アプリのコンシューマ シークレット。
- endpoint: 統合バックエンドの UI コネクタの URL。たとえば、Cloud Run コンソールの URL(
ステップ 7: 統合をテストする
Salesforce コールセンターへのテスト通話で、音声統合をテストできます。
- サービス コンソールから Twilio Flex にログインします。
- Twilio Flex の番号に電話をかけます。これはステップ 1 でメモしました。
- サービス コンソールで通話に応答します。画面に、電話をかけてきた番号の新しい連絡先ページまたは既存の連絡先ページが開きます。
- 新しい連絡先ページの場合は、連絡先を保存します。連絡先ページが読み込まれると、Salesforce Lightning Web コンポーネントがサイドバーに読み込まれます。
- 会話の両側をテストして、Agent Assist 機能が構成どおりに動作していることを確認します。