はじめに
電話をかけると、オペレーターに繋げるConnectシステム構築した際、オペレーターが電話に出られず、発信者が電話を切る場合があります。
その場合、オペレーターが折り返しの電話をする必要があり、かつ発信者の名前を知る必要がありました。
Connectのシステムは、事前に電話番号と名前をDynamoDBに登録したユーザーのみが使用できる仕様です。
そのため、オペレーターが着信履歴からユーザー名などを確認できる仕組みを構築しましたので、まとめます。
事前構築
下記のサービス構築を行いました。
DynamoDBでは、パーティションキーを電話番号(user_phone)にし、family_nameとgiven_nameを属性として加えます。
connectに発信すると、発信電話番号をLambdaが受け取り、Lambdaが発信電話番号から電話番号(user_phone)に一致する項目を取得し、family_nameとgiven_nameを返すようにします。
その後、オペレータにつなげる、というお問い合わせフローを作成します。

お問い合わせフロー
電話をかけてオペレーターに転送するまでに、以下のフローを加えます。
Lambda実行(発信電話番号から、DynamoDBでユーザー情報を取得する)
→コンタクト属性の設定
→顧客キューフロー
→作業キューの設定
→キューへ転送
オペレーターが着信履歴からユーザー名を確認できる仕組み構築するためには、コンタクト属性の設定に、着信履歴に必要なユーザーデータを設定する必要があります。

Lambda
Lambdaでは、発信電話番号から、DynamoDBでユーザー情報を取得する必要があります。
着信履歴に必要なユーザーデータを、returnでdict型で返します。
return{
"user_phone": user_phone,
"family_name": family_name,
"given_name": given_name
}
コンタクト属性の設定
繰り返しになりますが、オペレーターが着信履歴からユーザー名を確認できる仕組み構築するためには、コンタクト属性の設定に、着信履歴に必要なユーザーデータを設定する必要があります。
Lambdaでreturnした3つをコンタクト属性として、以下のように設定します
user_phone
-
宛先タイプ:ユーザー定義 -
宛先属性:user_phone -
タイプ:外部 -
属性:user_phone
family_name
-
宛先タイプ:ユーザー定義 -
宛先属性:family_name -
タイプ:外部 -
属性:family_name
given_name
顧客キューフロー以降のフロー
顧客キューフロー以降の3つのフローは、下記の記事を参考にしてください
着信履歴からユーザー情報を確認する
では、下準備ができましたので、発信して、オペレータに繋がる前に電話を切りましょう。
電話を切ると、着信履歴は、左タブの問い合わせ検索から確認できますので、クリックします。

-
コンタクトIDに発信の詳細が記載されています。
クリックすると詳細画面に遷移します。 -
キューは、適用されたキューが記載されてます。
キュー欄に記載がなければ、キューの転送の前に、電話を切れたなどの可能性があります。 -
エージェントは、対応したオペレーター名が記載されます。
エージェントに記載がなければ、対応したオペレーターがいなかったということです。

コンタクトIDをクリックましょう。
一番下に、属性の一覧があり、ここに、コンタクト属性の設定で設定したユーザーデータが反映されています。
まとめ
まとめますと、発信者の電話にオペレーターが出られず、発信者が電話を切った場合、
名前を確認してから折り返しの電話する必要があるため、オペレーターは、問い合わせ検索から、エージェント欄が空白のコンタクトIDを探し、そのコンタクトIDの属性から名前を確認できます。
参照



