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?

Service Cloud Voice の Telephony Integration API連携

Last updated at Posted at 2025-11-04

本ドキュメントは、AWS側からSalesforceのService Cloud Voiceで提供される Telephony Integration API についての解説です。

以下の、Service Cloud Voiceのセットアップが完了し、発着信ができる状態になった後に実施内容になります。

セットアップが完了しているとすぐに利用することができます。

なお、本内容はAmazon Connect からのパートナーテレフォニーを使用した Service Cloud Voiceのエディションで、バージョンは 18.0 を対象にしています。

概要

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

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

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

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

使い方の紹介

着信用・転送用音声通話レコード作成

音声通話レコードを作成する機能では、標準で渡される情報に加えて sfdc- プレフィックスをつけたユーザー定義属性( コンタクト属性の設定ブロック )を、Lambda関数を呼び出す前に設定することで音声通話レコードの任意の項目に値を設定することができます。

属性設定のサンプル
音声通話レコードにカスタム項目 MyField__c に対して、"設定したい値"という文字を書き込みたい場合、以下のように値を設定します。

  • 名前空間: ユーザー定義済み
  • キー: sfdc-MyField__c
  • 値: 設定したい値

カスタムフィールドに設定する例
カスタムフィールドに設定する例

Lambdaの呼び出しパラメータ:

  • methodName: createVoiceCall または、createTransferVC

パラメータ設定の例
パラメータ設定の例

応答
以下の形式で応答が返るため、コンタクトフローでは $.External.attributeName または、名前空間「外部」から音声通話レコードのレコードID( voiceCallId )を参照することができます。

{
  "voiceCallId": "0LQRM0000006CSz",
  "errors": []
}

以下の情報が、Salesforceに連携されます。

ラベル 項目名 /telephony/v1/voiceCallsのプロパティ名 説明
前の通話 PreviousCallId parentVoiceCallId 転送時の1つ前の音声通話レコード
ベンダー通話キー VendorCallKey vendorCallKey Amazon ConnectのコンタクトID
受信者の連絡先情報 ToPhoneNumber to 音声: 着信時のAmazon Connectの電話番号
WebRTC: メールアドレス
通話者の連絡先情報 FromPhoneNumber from 音声: 音声通話の発信元または転送元の電話番号または電子メールアドレス
WebRTC:メールアドレス
通話元 CallOrigin callOrigin - Preview: プレビューダイヤラーを表します
- Progressive: プログレッシブダイヤラー
- Voicemail: 留守番電話
上記以外は空
通話種別 CallType initiationMethod - Inbound: 着信
- Transfer: 転送
- Voicemail: 留守番電話
補足: 発信(Outbound)はサポートされていません。Salesforceシステム内部が自動不要されるため
キュー名 QueueName queue Amazon Connectのキュー名
転送の場合は空白です
通話開始日時 CallStartDateTime startTime 音声通話が開始された日時 (UTC)

オムニチャネルフローの実行

Salesforceのオムニチャネルフローを実行します。

実行するオムニチャネルフローの実行対象は以下のように判断されます。

1.コンタクトセンターチャネルの設定
着信時のAmazon Connectの電話番号と一致する電話番号がパートナーテレフォニーコンタクトセンターの「コンタクトセンターチャネル」に設定されている場合、こちらの設定が優先され、コンタクトフローの flowDevNameは無視されます。

[通話のルーティング種別]で "オムニチャネルフロー" を設定している場合、ここで設定されたオムニチャネルフローが実行されます。フローの実行に失敗した場合、コンタクトセンターチャネルに設定した [代替キュー]が使用されます。

[通話のルーティング種別]で "キュー"を設定している場合、ここで設定されたキューが使用されます

一致する電話番号を設定していない場合、次の「コンタクトフローから指定」に沿った設定が行われます。

2.コンタクトフローから指定
着信、転送時のコンタクトフローで flowDevName で指定したオムニチャネルフローを実行します。

オムニチャネルフローの変数にパラメータを渡す
flowInput- 接頭辞をつけたパラメータを Lambda呼び出しのブロックのパラメータに設定すると、オムニチャネルフローの変数に値を渡すことができます。

例えば、サンプルのコンタクトフロー Sample SCV Omni-Channel Subflow - Basic Routing with Case Creation では、パラメータとして flowInput-IncomingCallPhoneNumber で顧客の電話番号を渡しています。実行される側であるテンプレートのオムニチャネルフロー Voice Calls Routed to Basic Queue with Case Creation は変数 IncomingCallPhoneNumber でパラメータを受け取る設定がされています。

オムニチャネルフローを実行するLambda呼び出しブロックの例
オムニチャネルフローを実行するLambda呼び出しブロックの例

テンプレートのオムニチャネルに設定されている変数
テンプレートのオムニチャネルに設定されている変数

Lambdaの呼び出しパラメータ:

  • methodName: executeOmniFlow
  • flowInput-*** オムニチャネルフローに渡すパラメータ。*** の部分がパラメータとして渡されます

応答
オムニチャネルフローを実行結果として、以下の形式で結果が返ります。
オムニチャネルフローの 作業を転送 (routeWork)で設定した 「ルーティング先」に応じてそれぞれのARNが格納されます。キューを選択した場合は、Amazon ConnectのキューARNが、エージェントを選択した場合はエージェントのARNが返却されます。
オムニチャネルフローの実行時エラーが起きた場合、パラメータで指定したフォールバックキューが返却されます。

{
  "agent": "<AGENT_INFO>",
  "queue": "<QUEUE_INFO>"
}

応答の値に基づいてコンタクトフローで作業キューの設定ブロックをすることで、オムニチャネルフローからルーティングの制御を行うことができるようになります。

エラーがある場合、以下の形式で結果が返ります。

{ "errors": ["error1", "error2"] }

補足:
(原理は分かりませんが) Service Cloud Voiceのバージョン 18.0 時点で、オムニチャネルフローの実行をするためには事前に音声通話レコードの作成(createVoiceCall / createTransferVCが成功)済みしている必要があります。

参考URL

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?