Salesforce Voice と NiCE CXone の統合

Salesforce との Agent Assist および NiCE CXone の統合のアーキテクチャ

この音声統合では、NiCE CXone Agent for Service Cloud Voice(BYOT)Salesforce アプリを使用して、エージェントが Salesforce Service Cloud Voice で NiCE CXone 通話を受けられるようにします。

Agent Assist は、NiCE CXone Agent Assist Hub からの音声通話ストリームを使用して、Salesforce Lightning Service Console でエージェントに提案を提供します。

始める前に

Agent Assist UI モジュールを Salesforce と統合するには、次のリソースへのアクセス権が必要です。

  • Node.js

    オペレーティング システムの推奨インストール手順に沿って操作します。

  • Salesforce CLI

    オペレーティング システムの推奨インストール手順に沿って操作します。

  • Google Cloud CLI

    手順に沿って gcloud コマンドをインストールし、gcloud auth login を使用して認証します。

  • Salesforce UI

    1. インスタンス URL または Salesforce のログインページでログインし、次の点に注意してください。
    2. Salesforce の My Domain URL私のドメイン URL を確認する手順は次のとおりです。
    3. メニューバー > [設定] メニューに移動します。
    4. [Setup] をクリックします。
    5. [クイック検索] ボックスに「My Domain」と入力します。ドメイン名は MY-DOMAIN-NAME.develop.my.salesforce.com の形式です。
    6. Salesforce 組織 ID。組織 ID を確認する手順は次のとおりです。
    7. メニューバー > [設定] メニューに移動します。
    8. [Setup] をクリックします。
    9. [クイック検索] ボックスに「組織情報」と入力します。
  • Agent Assist 統合バックエンド

    1. 手順に沿って統合を設定します。
    2. デプロイ スクリプトを実行する前に、deploy.sh を使用して、またはプロジェクト ルートの .env ファイルで、次の環境変数を構成します。
    3. AUTH_OPTION: SalesforceLWC に設定します。
    4. SALESFORCE_DOMAIN: YOUR_SUBDOMAIN.develop.lightning.force.com に類似したドメイン名。この値は、Salesforce UI の前提条件でメモしました。https:// は含めないように注意してください。
    5. SALESFORCE_ORGANIZATION_ID: この値は、Salesforce UI の前提条件でメモしました。
  • NiCE CXone インスタンス

  • NiCE CXone Agent Assist Hub アドオン ライセンス

    NiCE CXone Agent Assist Hub アドオンを使用すると、NiCE CXone インスタンスから Google Cloud の Agent Assist に音声通話メディア ストリームを送信できます。NiCE CXone はライセンス製品です。詳しくは、NiCE CXone Agent Assist Hub のドキュメントをご覧ください。

ステップ 1: NiCE CXone Studio と NiCE CXone Agent Assist Hub を構成する

この手順では、NiCE CXone インスタンスに必要なすべての構成について説明します。

NiCE CXone Studio で通話フローを構成する

このステップでは、NiCE CXone Studio を使用してプログラムによる通話フローを構成し、着信をエージェントに転送して、通話メディア ストリームを Agent Assist に送信します。次の NiCE CXone Studio のトリガーとアクションを次の順序で設定して、このコールフローを構成します。

  1. NiCE CXone コンソールにログインします。
  2. [アプリケーション] メニュー()を開きます。
  3. [オムニチャネル ルーティング] > [Studio] を開きます。
  4. Studio ページで、新しいスクリプトを作成します。

次の NiCE CXone Studio のトリガーとアクションを使用して、このコールフローを構成します。

  1. 開始: このトリガーは、NiCE Point of Contact(POC)の電話番号に着信があったときに有効になります。
  2. Reqagent: このアクションは、指定されたスキルに呼び出しを送信します。通話を受け取るエージェントに関連付けられているスキルを選択します。
  3. 音楽: 保留音を再生します。
  4. 待機: このアクションは、別のトリガーが有効になるまでフローを一時停止します。

別のフローで、エージェントが着信に応答したときの動作を構成します。

  1. Onanswer: このトリガーは、スキル内のエージェントが応答したときに有効になります。
  2. Ziptone: NiCE CXone エージェント デスクトップ(NiCE CXone Agent for Service Cloud Voice(BYOT)ソフトフォンなど)でエージェントが電話に出ると、ビープ音が鳴ります。
  3. Agent Assist: このアクションは、会話を作成し、着信のメディア ストリームを Dialogflow に送信して、Agent Assist UI モジュール LWC が Salesforce で文字起こしと Agent Assist の候補(PGKA、GKA、AI コーチングなど)をレンダリングできるようにします。構成の詳細については、この統合に関するドキュメントをご覧ください。注: この手順には、事前構成された会話プロファイルが必要です。

発信通話用にエージェント アシストを構成することもできます。このインテグレーションでは、発信通話に相手が応答したときに エージェント アシスト アクションをトリガーする必要があります。具体的な実装は構成によって異なりますが、通常は、Placecall アクションを使用して通話を開始し、Agent Assist アクションを PlacecallOnAnswer ブランチに接続することで、スクリプトで実現できます。詳しくは、NiCE CXone Studio のヘルプ ドキュメントの PlacecallOnanswerAgent Assist をご覧ください。

NiCE CXone アカウントの詳細をメモする

この手順に沿って、NiCE CXone アカウントの詳細情報を収集します。この情報は、後で Salesforce で NiCE CXone Agent for Service Cloud Voice(BYOT)を構成する際に必要になります。

  • NiCE CXone コンソールで NiCE Business Unit 番号をメモします。Salesforce プロジェクト(次のステップでクローンを作成します)の ServiceCloudVoicePlatformService.js で、NiCE ビジネス ユニット番号を反映するように CONFIG.niceBusNo を更新します。これにより、Agent Assist UI モジュール LWC は、NiCE CXone Agent Assist Hub が作成する conversationName を特定できます(詳細については、同じファイルの generateNiCEConversationName メソッドを参照してください)。
  • NiCE CXone コンソールで NiCE の連絡先(POC)の電話番号をメモします。これは、お客様がエージェントと話すために電話をかける番号であり、この Agent Assist 統合のテストに使用する番号です。

ステップ 2: Salesforce 開発プロジェクトを設定する

Agent Assist UI モジュールの統合を開始する手順は次のとおりです。

  1. 次のコードを実行して、Agent Assist 統合リポジトリのクローンを作成し、プロジェクトを開きます。

    git clone https://github.com/GoogleCloudPlatform/agent-assist-integrations
    cd salesforce/aa-lwc
    
  2. 次のコマンドを実行して、UI モジュールの JavaScript ファイルをダウンロードします。このファイルは後で静的リソースとしてデプロイします。Salesforce では、静的リソースでサードパーティの JavaScript を読み込む必要があります。

    npm run generate-static-resources
    npm install
    
  3. 前の手順でメモした NiCE ビジネス ユニット番号ServiceCloudVoicePlatformService.js を更新します。

    const CONFIG = {
    // For this.platform = "servicecloudvoice-nice", the NiCE Business Unit Number
    // https://help.nicecxone.com/content/acd/businessunits/managebusinessunit.htm
    niceBusNo: 1234567 // Make sure this matches your NiCE CXone Business Unit Number.
    };
    

ステップ 3: Salesforce 環境を設定する

Agent Assist UI モジュールは、本番環境や開発環境などの特定の環境に統合できます。Salesforce では、これらの環境を組織(org)と呼びます。

Salesforce CLI を使用して組織を構成する

Salesforce CLI を使用して Agent Assist 統合用に組織を構成する手順は次のとおりです。

  1. 次のコードを実行し、通常使用する Salesforce のログイン情報を使用して CLI を認証します。

    npm run login
    
  2. 次のコードを実行して、LWC を組織にデプロイします。

    npm run deploy
    

ステップ 4: 外部クライアント アプリを作成する

Salesforce LWC は、クライアント認証情報の OAuth 2.0 フローを使用してユーザーを認証します。外部クライアント アプリは、クライアント認証情報フローを有効にします。アプリのコンシューマ キーとコンシューマ シークレットを使用して Salesforce LWC を構成し、Salesforce でユーザーを認証します。

  1. メニューバー > [設定] メニューに移動し、[設定] をクリックします。
  2. [クイック検索] ボックスに「外部クライアント アプリケーション マネージャー」と入力します。
  3. [External Client App Manager] > [New External Client App] > [Create] をクリックし、次の情報を入力します。
  4. 外部クライアント アプリ名: lwc auth
  5. API 名: lwc_auth
  6. Contact Email: your_email@example.com
  7. API(OAuth 設定の有効化) > OAuth の有効化: 選択済み
  8. [API (Enable OAuth Settings)] > [Callback URL]: https://login.salesforce.com/services/oauth2/callback
  9. [API (Enable OAuth Settings)] > [Selected OAuth Scopes]: ID URL サービスにアクセスする
  10. API(OAuth 設定の有効化)> クライアント認証情報フローを有効にする: 選択済み
  11. [作成] をクリックします。
  12. メニューバー > [設定] メニューに移動し、[設定] をクリックします。
  13. [クイック検索] ボックスに「外部クライアント アプリケーション マネージャー」と入力します。
  14. 外部クライアント アプリの名前 > [編集] をクリックします。
  15. [OAuth Policies] > [OAuth Flows and External Client App Enhancements] に移動します。
  16. [Enable Client Credentials Flow] が選択されていることを確認します。
  17. [Run As] に、ログイン ユーザー名を入力します。
  18. [保存] をクリックします。
  19. メニューバー > [設定] メニューに移動し、[設定] をクリックします。[クイック検索] ボックスに「外部クライアント アプリケーション マネージャー」と入力します。
  20. 外部クライアント アプリの名前 > [編集] をクリックします。
  21. [OAuth Settings] > [App Settings] > [Consumer Key and Secret] に移動します。
  22. メールで送信された確認コードを入力します。
  23. コンシューマー キーとコンシューマー シークレットを安全な場所にコピーします。これらの値は後のステップで必要になります。

CORS とコンテンツ セキュリティ ポリシーを確立する

  1. メニューバー > [設定] メニューに移動し、[設定] をクリックします。
  2. [クイック検索] ボックスに「CORS」と入力し、[編集] をクリックします。
    1. [OAuth エンドポイントの CORS を有効にする] を選択します。
    2. [保存] をクリックします。
  3. メニューバー > [設定] メニューに移動し、[設定] をクリックします。
  4. [クイック検索] ボックスに「信頼できる URL」と入力し、[新しい信頼できる URL] をクリックします。
  5. 次の情報を入力します。
    1. API 名: ui_connector
    2. URL: Agent Assist Integration Backend でデプロイした UI Connector Cloud Run Service エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。例: https://UI_CONNECTOR_SUBDOMAIN.GCP_REGION.run.app
    3. CSP ディレクティブ: すべてのチェックボックスをオンにします。
    4. [Save & New] をクリックします。
  6. 次の情報を入力します。
    1. API 名: ui_connector_wss
    2. URL: Agent Assist 統合バックエンドでデプロイした UI コネクタ Cloud Run サービス エンドポイントの URL を入力します。この URL は Cloud Run コンソールで確認できます。WebSockets トラフィック用にプロトコルを wss に変更します。例: wss://UI_CONNECTOR_SUBDOMAIN.GCP_REGION.run.app
    3. CSP ディレクティブ: すべてのチェックボックスをオンにします。
    4. [Save & New] をクリックします。
  7. 次の情報を入力します。
    1. API 名: salesforce_domain
    2. URL: https://YOUR_SUBDOMAIN.my.salesforce.com の形式で Salesforce ドメインの URL を入力します。
    3. CSP ディレクティブ: すべてのチェックボックスをオンにします。
    4. [保存] をクリックします。

ステップ 5: NiCE CXone Agent for Service Cloud Voice(BYOT)をインストールする

Salesforce は、サードパーティのソフトフォンを Salesforce インスタンスと統合できるアドオン ライセンス Service Cloud Voice を提供しています。NiCE CXone は、NiCE CXone Agent for Service Cloud Voice(BYOT)という Service Cloud Voice アドオンを提供しています。NiCE のドキュメントに沿って、SCV 対応の Salesforce インスタンスで NiCE CXone Agent for Service Cloud Voice(BYOT)を設定します。

ステップ 6: Salesforce Lightning Web コンポーネントをインストールする

次の手順に沿って、Lightning Experience エディタを使用して、新しい通話が着信したときに NiCE CXone Agent for Service Cloud Voice(BYOT)が開く連絡先ページに Salesforce Lightning Web コンポーネントを追加します。

  1. サービス コンソールに移動します。
  2. ユーティリティ バーで NiCE CXone Agent for Service Cloud Voice(BYOT)にログインします。
  3. ログインした NiCE アカウントに関連付けられている NiCE POC 番号に電話します。
  4. 着信に応答します。これにより、新しい [Voice Call] レコードタブが開きます。
  5. [設定] メニュー > [ページの編集] をクリックします。
  6. [テンプレート] > [変更] をクリックします。
    1. [ヘッダー] と [2 つの等しいリージョン] を選択します。
    2. [次へ] をクリックします。
    3. 各リージョンを新しいリージョンにマッピングします。
    4. [完了] をクリックします。
  7. [コンポーネント] サイドバーから、agentAssistContainerModule をサイドバーに移動します。注: このコンポーネントは npm deploy コマンドによって提供されました。
  8. 前の手順で配置したコンポーネントをクリックし、次の手順に沿ってフォーム フィールドに入力して構成の詳細を追加します。
    • endpoint: 統合バックエンドの UI コネクタの URL。たとえば、Cloud Run コンソールの URL(https://UI_CONNECTOR_ENDPOINT.GCP_REGION.run.app など)。
    • features: 含める Agent Assist の機能。これらは会話プロファイルで有効にする必要があります。使用可能な機能には、CONVERSATION_SUMMARIZATIONKNOWLEDGE_ASSIST_V2AGENT_COACHING などがあります。SMART_REPLY などの一部の機能は voice では使用できません。
    • channel: 統合が voice であることを示します。
    • platform: プラットフォームが servicecloudvoice-nice であることを示します。
    • conversationProfile: Agent Assist の会話プロファイルのリソース名。例: projects/GCP_PROJECT_ID/locations/GCP_REGION/conversationProfiles/CONVERSATION_PROFILE_ID
    • consumerKey: 手順 4 の外部クライアント アプリのコンシューマ キー。
    • consumerSecret: 手順 4 で取得した外部クライアント アプリのコンシューマ シークレット。

ステップ 7: 統合をテストする

Salesforce コールセンターへのテスト通話で、音声統合をテストできます。

  1. Service Console のユーティリティ バーにあるオムニチャネル ウィジェットから、NiCE CXone Agent for Service Cloud Voice(BYOT)にログインします。
  2. NiCE CXone POC の番号に電話をかけます。これは NiCE CXone コンソールで確認できます。
  3. Service Console で着信に応答します。新しい音声通話レコードが画面に表示されます。
  4. 音声通話レコードのサイドバーに Salesforce Lightning Web コンポーネントが読み込まれます。
  5. 会話の両側をテストして、Agent Assist コンソールで会話プロファイルで構成したとおりに Agent Assist の文字起こしと機能が動作していることを確認します。