CTI Adapter for Salesforceの機能で着信時に顧客レコードをポップアップできるのですが、バージョン 5.22で指定方法が変わったようです。変更点を確認します。
概要
顧客レコードポップアップについては下記ポストで機能確認・紹介しています。
この際はバージョン 5.19でしたが、2024年6月現在のバージョン 5.22 ではそのままの設定では動作しないようです。
確認して、従来と同等の動作をするように設定変更します。
現状確認
バージョン5.22で動作を確認します。
なお、5.19から5.22へバージョンアップ、または5.22を新規インストールしてみましたが、いずれも同じ挙動でした。
どちらのパターンも同じ対応になると思います。
CTIフローを確認
着信時のCTIフローを確認します。
下記はCTIアダプターインストール時に自動設定される Default Voice Contact onConnecting
を編集している画面です。
「検索とスクリーンポップ」ブロックが設定され、検索パラメータとして $.contact.parsedNumber.phone
と指定されていることが確認できます。
電話を着信させる
着信時のフロー動作ログを確認します。
エラーが見えます。
"code": "INVALID_PARAM", "description": "パラメーター searchParams に無効な値が渡されました。A string length greater than 2 was expected, but string of length 2 was found instead。"
searchParamsへ渡された値が短すぎるようです。指定している $.contact.parsedNumber.phone
の $.contact
オブジェクトを確認してみます。
{ "contactId": "xxxxxxxxxxxxxxxxxx", "originalContactId": "xxxxxxxxxxxxxxxxxx", "type": "voice", "status": { "type": "connecting", "timestamp": "2024-06-05T10:35:07.626Z" }, "statusDuration": 41, "queue": { "queueARN": "arn:aws:connect:ap-northeast-1:....", "name": "BasicQueue", "queueId": "arn:aws:connect:ap-northeast-1:...." }, "queueTimestamp": "2024-06-05T10:35:07.262Z", "attributes": { }, "isSoftphoneCall": true, "isInbound": true, "isConnected": false, "isTransfer": false, "parsedNumber": { "country": "JP", "countryCallingCode": "81", "nationalNumber": "9011112222", "number": "+819011112222", "__countryCallingCodeSource": "FROM_NUMBER_WITH_PLUS_SIGN" }, "phone": "9011112222", "country": "JP", "formattedPhoneNumber": "9011112222", "formattedPhoneNumberE164": "+819011112222", "rawPhoneNumber": "+819011112222", "channel": "Voice", "callType": "inbound" }
オブジェクトの構造が変更されたようで、 $.contact.parsedNumber.phone
というキーが存在しないようです。
値が無いのでエラーになっているようです。
修正パターン1
$.contact
オブジェクトの内容を確認すると、 $.contact.parsedNumber.nationalNumber
が代わりになりそうですので指定してみます。
動作確認
期待通りポップアップ動作しました。
ログ上も検索できていることが確認できます。
なお、他にも同じ値がセットされるキーが見つかりますが、そちらを指定しても同様にポップアップ動作することを確認できました。
- $.contact.phone
- $.contact.formattedPhoneNumber
修正パターン2
公式ドキュメントを確認すると、CTI Flow説明ページが更新されており、サンプルがまさに着信時のポップアップ設定例となっていました。
「顧客の電話番号を取得(Get Customer Phone Number)」ブロックを配置し、取得できた電話番号を「検索とスクリーンポップ」ブロックで参照する設定となっています。サンプルに従って設定してみます。
動作確認
こちらも期待通りポップアップ動作しました。 ログを確認すると、「顧客の電話番号を取得」ブロックで電話番号を取得し、「検索とスクリーンポップ」の searchParams でその値を参照できていることが確認できます。
まとめ
2つの修正パターンを試し、いずれも同等の動作のように見えました。
ドキュメントにも掲載されているパターン2が推奨されるかと思います。
CTIアダプターをアップデートされる場合はご注意ください。