0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Connect からのパートナーテレフォニーを使用した Service Cloud Voiceの機能別構成

Last updated at Posted at 2025-11-04

Amazon Connect からのパートナーテレフォニーを使用した Service Cloud Voiceで提供している各機能についての構成を説明します。
Salesforce内部で閉じているService Cloud Voiceの機能については、ここでは省略します。

前提

本セットアップ機能は 2025年10月20日時点のものです。
Salesforce のバージョンは Winter'26、パートナーテレフォニーコンタクトセンター Service Cloud Voiceのバージョンは 19.0 です。

本機能は GitHubで公開されている、CloudFormationの内容をもとに作成されているため、古かったり実環境との差異があるなど正確性を担保されていない点をご了承ください。

オムニチャネル

エージェントにSalesforceのオムニチャネルのウィジェットを介して、音声通話、チャット、WebRTCを用いた通話、メッセージングの機能を提供します。

オムニチャネルの概要構成図
オムニチャネルの概要構成図

Telephony Integration API(基本)

Service Cloud Voiceが抵抗する基本的なAPIをコールするために仕組みです。

AWS Lambda 関数 InvokeTelephonyIntegrationApi を介してService Cloud Voice の Telephony Integration API をコールするための機能です。
主に、以下の機能をAmazon Connect のコンタクトフローから呼び出して利用します。

機能

  • 音声通話 ( VoiceCall ) レコードの作成
    • インバウンド用 createVoiceCall
    • 転送用 createTransferVC
  • オムニチャネルフローの実行: executeOmniFlow

加えてイベントドリブンで動作したり、裏方の機能として以下のような機能があります。

  • 通話終了後 CTR 情報で音声通話レコードを更新: updateVoiceCall
  • 不在着信・放棄された通話の一次情報 PendingServiceRouting (PSR) レコードをクリア: cancelOmniFlowExecution
  • 統合ルーティングにおいて再ルーティングを実現する: rerouteFlowExecution
  • 留守番録音データの文字起こし結果の送信: sendMessage

Service Cloud Voice専用サーバー間JWT Bearerフロー認証のための秘密鍵の設定
秘密鍵はAmazon Connectからのパートナーテレフォニーを使用したService Cloud Voiceを用いて構築した場合、自動で作成されます。期限が1年で切れるためコンタクトセンターの設定から更新する必要があります。
ただし、ディザスタリカバリーのためにXMLを用いてコールセンター定義を作成している場合は、手動で鍵の更新が必要になるので注意してください。

Salesforce Integration APIの構成図
Salesforce Integration APIの構成図

拡張会話コンポーネント と 会話インテリジェンス

Telephony Integration APIの機能の一部です。
リアルタイムの文字起こし結果をエージェントに送信することで、エージェントの支援をする機能を提供します。

拡張会話コンポーネント と 会話インテリジェンスの構成図
拡張会話コンポーネント と 会話インテリジェンスの構成図

Contact Lensを利用する場合

2つの機能を提供します。

  1. 文字起こし結果の送信
  2. インテリジェンスシグナルの送信

文字起こし結果は、拡張会話コンポーネント と Toolkit APIの transcript イベントのサブスクリプションを介して取得することができます。
拡張会話コンポーネントは、音声通話(VoiceCall)のLightningレコードページに配置することで利用できるようになります。

インテリジェンスシグナルは、会話インテリジェンスルールを設定することで、Next Best Actionの起動、自動フローの機能を行うことができるようになります。

Contact Lens を用いたリアルタイム文字起こしを利用する場合、コンタクトフローで 記録と分析の動作の設定ブロックを利用します。
Service Cloud Voiceのコンタクトセンターバージョン 9.0、Summer'22 から利用可能です(リリースノート)

ライブメディアを利用する場合

Kinesis Video Streamを介したライブメディアストリーミングを利用することで、リアルタイム文字起こしの機能を提供します。
通常の Amazon Transcribe、医療向けに特化した Amazon Transcribe Medical を用いた文字起こし結果受け取ることができるようになります。

Kinesis Video Streams を利用するためには、「Amazon Connect インスタンスでのライブメディアストリーミングの有効化」とコンタクトフローで「メディアストリーミングの開始」ブロックを設定します。

通話録音プレーヤー

VoiceCallオブジェクトなどに標準コンポーネント「通話記録プレーヤー」(通話オーディオプレーヤー)を配置することで、通話録音した音声データを聞くことができるようになります。
通話データを取得できるようになるタイミングは、コンタクトフローで「記録と分析の動作の設定」ブロックで音声の録音を有効にした上で、エージェントが通話終了後、ACWを終了した(コンタクトを閉じた)後に聞くことができるようになります。

通話記録プレーヤーの構成図
通話記録プレーヤーの構成図

REST API (InvokeSalesforceRestApiFunction)

概要
Salesforce の REST API を AWS Lambda 関数 InvokeSalesforceRestApiFunction を介してコールするための機能です。
本セットアップが完了すると、以下の機能をAmazon Connect のコンタクトフローから呼び出して利用ができるようになります。

  • Salesforceのレコード作成 ( createRecord )
  • Salesforceのレコード更新 ( updateRecord )
  • Salesforceのレコードクエリ ( queryRecord )

加えて執筆時点では記述はありませんが、以下のような機能があります。

  • Salesforceのグローバル検索SOSLを実行する ( searchRecord )
  • 手動で、Lambda関数を起動してリアルタイム文字起こしの結果を取得して、組織に取り込む ( uploadTranscript, fetchUploadIdsStatus )
    • Service Cloud Voiceのディザスターリカバリーなど複数組織のユースケースなど、XMLインポートを通じて作成された 手動でAmazon Connect と Service Cloud Voiceが統合された時に使用
  • Amazon Connectインスタンス と Service Cloud Voice構築時に作成される Lambda関数のリアルタイムアラート を Salesforceのプラットフォームイベントにパブリッシュする ( realtimeAlertEvent )
  • Field Serviceで、顧客の電話番号とサービス予定(ServiceResourceId)割り当てられた派遣作業員の電話番号を取得する ( SFSPhoneCallFlowQuery )
    • 外線転送する用途で利用します
  • エージェントへの直通電話のための、エージェントに割り当てられた電話番号を取得( fetchOutboundPhoneNumber )

サーバー間JWT Bearerフローの設定
システム管理者はを手動で以下の情報を設定必要があります。
最新のSCVのバージョン向けでは access-token は使用しません。

  • audience: ログインURL
    • 本番・Developer Edition: https://login.salesforce.com
    • Sandbox・スクラッチ組織: https://test.salesforce.com
  • consumer-key: コンシューマ鍵
  • auth-private-key: X.509 の証明書のサーバー秘密鍵
  • subject: APIアクセスするユーザー名

REST APIの構成図
REST APIの構成図

アラートと監視

Service Cloud Voiceをデプロイすることで、自動でいくつかのアラームのテンプレートとダッシュボードがデプロイされます。
カスタマイズせず使う場合は、Cloud Watch ダッシュボードを監視します。
Salesforceからアラートをどこかへ通知するカスタマイズをする場合は、標準プラットフォームイベントである RealtimeAlertEvent プラットフォームイベントをApex、またはフローのプラットフォームイベントトリガフロー受け取ることで実現できます。
AWSからアラートをどこかへ通知するカスタマイズをする場合は、SNSトピックにサブスクライバーを追加することで実現できます。

仕組み:
CloudWatch Alarm が発火すると、SNSトピックにパブリッシュされ、SNSトピックからさらにLambda関数にパブリッシュされます。
REST APIのセットアップが完了している場合、Salesforceに InvokeSalesforceRestApiFunction を介してAPIコールされますが、セットアップしていない場合エラーで終了します。

補足:
コンタクトセンターバージョン 8.0 (Spring'22) 以降で利用可能です (リリースノート)。
実装の詳細は Service Cloud Voice 実装ガイドを参照してください。
デフォルトのテンプレート一覧は Customer Alerts Alarmsを参照してください。

アラートの構成図
アラートの構成図

CTR同期

Telephony Integration APIの機能の一部です。
通話終了後、ACWでコンタクトが閉じられた時、音声通話(VoiceCall)レコードを最新の状態に更新します。

留守番録音データ(属性:vm_flag, 録音データがある場合)処理をスキップします。VoiceMail機能でVoiceCallレコードが更新されるため、本CTRの同期機能で更新する必要がないためスキップされます。

更新される内容の詳細はUpdate a Voice Call Recordのパラメータを参照してください。
音声通話(VoiceCall)オブジェクトとの対応関係は以下の通りです。

ラベル 項目名 APIのパラメータ名名 説明
通話開始日時 CallStartDateTime startTime 音声通話が開始された日時 (UTC)
通話終了日時 CallEndDateTime endTime 音声通話が終了した日時 (UTC)
通話承諾日時 CallAcceptDateTime acceptTime 音声通話がキューに配置された日時 (UTC)
通話者の連絡先情報 FromPhoneNumber fromNumber 音声通話の発信元番号。
- 着信通話の場合、この値はエンドユーザーの電話番号
- WebRTCの場合メールアドレス
- - totalHoldDuration 担当者が音声通話を保留にしていた合計時間 (秒)
格納先について、通話録音プレーヤーなど内部で利用されるため情報は公開されていない
最長保持期間 LongestHoldDuration longestHoldDuration 通話全体の中で、担当者が音声通話を保留にしていた最長時間(秒)
保持数 NumberOfHolds numberOfHolds 通話全体における保留の合計数
キュー名 QueueName queue 音声通話を担当した担当者が属していたキューの名前
ユーザー UserId agent 担当者のユーザー名
Salesforce内部でエージェント名 -> ユーザーIDに変換されます
- - agentInteractionDuration 営業担当者とのやり取りの合計時間 (秒)
格納先について、通話録音プレーヤーなど内部で利用されるため情報は公開されていない
通話元 CallOrigin callOrigin - Preview: プレビューダイヤラーを表します
- Progressive: プログレッシブダイヤラー
- Voicemail: 留守番電話
上記以外は空
- - recordingLocation 音声通話録音の場所
格納先について、通話録音プレーヤーなど内部で利用されるため情報は公開されていない
- - totalRecordingDuration 音声通話録音の合計時間(秒)
値を設定しない場合、agentInteractionDuration + totalHoldDuration として計算された値が利用されます。
格納先について、通話録音プレーヤーなど内部で利用されるため情報は公開されていない
- - callAttributes カスタム項目(__c)に値が設定されます
通話状況 CallDisposition isActiveCall true: 空 (処理中)
false: completed (処理済み)
切断理由 DisconnectReason disconnectReason 音声通話が切断された理由

CTR同期の構成図
CTR同期の構成図

通話会話後の自動生成されたセンチメント

Telephony Integration APIの機能を利用します。
通話終了後にContact Lensで分析した通話の感情分析の結果を見えるようにするための機能になります。

音声通話(VoiceCall)オブジェクトのLightningレコードページに「通話記録プレーヤー」(通話オーディオプレーヤー)追加することで、グラフ化された情報を見ることができるようになります。
平均化されたデータは、音声通話オブジェクトの[エージェントセンチメントスコア] 項目と [顧客センチメントスコア]項目に格納されます。

補足:
コンタクトセンターバージョン 10.0 以降 (Lambda関数が自動でデプロイされるのは、バージョン 11.0)で利用可能です。
利用するためには、手動でセットアップしなければならない箇所があます。
セットアップ手順は 通話会話の自動生成されたセンチメント を参照してください。
Telephony Integration APIの詳細は Store a Post-Call Conversation Eventを参照してください。

通話会話後の自動生成されたセンチメントの構成図
通話後の会話感情分析の構成図

コンタクトデータ同期

Contact Lensで出力された文字起こしのトランスクリプト一覧を 手動で Salesforceにアップロードする機能です。
ユースケースは主に以下の2つが想定されています。

  1. リアルタイムの文字起こし結果をリアルタイムで確認する機能は拡張会話コンポーネント機能になります。通話終了後に全部をSalesforceに取り込み拡張会話コンポーネントで表示する
  2. デザスタリカバリー環境で、ダウンした後復帰後に結果の一括取り込み や セカンダリーのインスタンスの結果から文字起こし結果を取り込む

仕組み:
REST APIのセットアップが完了している場合、Salesforceに InvokeSalesforceRestApiFunction を介してAPIコールされますが、セットアップしていない場合エラーで終了します。
APIの種類はConnect REST APIを用いて実現されます。

補足:
単一のコンタクトセンターへの同期の場合はコンタクトセンターのバージョン 15.0 以降で利用可能です。
複数組織向けの機能コンタクトセンターのバージョン 19.0 以降で利用可能です。
使い方と制限については ContactDataSync Lambda Function を参照してください。

コンタクトデータ同期の構成図
コンタクトデータ同期の構成図

留守番録音 (Voicemail)

エージェントに繋がらなかった音声を留守番電話の録音として残す機能を提供します。
Amazon Connect の音声通話は、エージェントとつながった場合は「記録と分析の動作の設定」ブロックを用いて録音することが可能ですが、エージェントにつながることなく終了するコンタクトの録音データは保存されません。
そのため、Kinesis Video Streams で顧客の発話内容を保存・文字起こしし通知する機能を提供します。

仕組みの詳細は、Enable Voicemail Supportを参照してください。
最終的には、オムニチャネルフローが実行されるため、オムニチャネルフロー内から担当者などに通知が届くような仕組みを追加で構築する必要があります。パラメータには何も渡ってこないため、オムニチャネルフローが動く時に recordId変数(音声通話(VoiceCall)レコード)に 適切な値をコンタクトフローから設定しておくなどの工夫が必要です。

補足:
コンタクトセンターバージョン 11.0 以降 Spring'23 以降で利用可能です。
正確に留守録(Voicemail)を配信するためには、Ensure Correct Delivery of Voicemailsの手順に沿って、コンタクトフローからREST APIなどを介して、callOrigin=Voicemailになるようレコードを更新します。
実際に利用するためには、注意する点があります ヘルプの設定ステップが守られているか注意してください。
再生するための使い方は ボイスメールの再生 を参照してください。

留守番録音の構成図
留守番録音の構成図

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?