コールバックは、顧客がエージェントを待ち続けることなく、また回線を占有することなく折り返し通話を予約できるので、コンタクトセンターにとって重要な機能の1つです。顧客のコールバック予約の順番が来ると、コンタクトセンターは自動で折り返しの電話を発信するので、顧客は待っている間に別の用事や仕事を行うことができます。また、コンタクトセンターにとっても顧客が接続を待っている間の通話コストを削減できるメリットがあります。
ただし、顧客が急いでエージェントと会話を希望する場合、何度もコンタクトセンターへコールを行い、結果として複数のコールバック予約が登録されてしまうことがあります。これを防止できれば、同じ件について何度もコールバックが行われることがなくなるため、顧客とエージェントの双方にメリットがあります。 このセッションでは、Amazon Connect、 AWS Lambda、Amazon DynamoDB を使用して、複数のコールバック登録を防止するソリューションについて説明します。
このアーキテクチャでは、Amazon DynamoDB を使用して、Callback Database という名前のデータベースにコールバックを要求した顧客のレコードを登録します。
- 顧客がコンタクトセンターにコールすると、Amazon Connect はコールバックをリクエストした電話番号をコンタクト属性として AWS Lambda に渡します。
- 最初に呼び出される Read Callback という名前の AWS Lambda では、顧客の電話番号とキュー名で Callback Database 内の一致するレコードの存在をチェックします。
- すでに該当するレコードがある場合は、コールバックリクエストがキューに入っているため、顧客にコールバックを待つように伝えるメッセージを再生します。
- レコードがない場合は、顧客はコールバックをリクエストできます。リクエストが確認されると、Write Callback という AWS Lambda 関数を使用して、電話番号と Amazon Connect のコンタクト属性 (Contact ID、キュー名、タイムスタンプなど) を Callback Database に書き込みます。
このアーキテクチャでは、顧客にコールバックが実行されると、発信ウィスパーフローから Delete Callback という AWS Lambda 関数を呼び出し、Callback Database からカスタマーレコードを削除します。
このワークショップでは、アーキテクチャをシンプルにするため、コールバックの通話が成立したかによらず、コールバックの最初の試行でデータベース内のコールバックエントリを削除しています。
- この AWS Lambda 関数では、まず電話番号とキュー名でエントリを調べます。一致していれば、そのアイテムを削除します。
AWS CloudFormation テンプレートを使用して AWS IAMロール、AWS Lambda 関数、Amazon DynamoDB (Callback Database)テーブルを作成します。AWS Lambda 関数(readcallback、writecallback、removecallback) は、DynamoDB テーブル内のコールバック先電話番号やその他の情報を読み取り、書き込み、または削除するために使用されます。IAM ロールにより、AWS Lambda 関数がコールバックデータベースへの読み取り、書き込み、または削除するための権限と、Amazon Cloudwatch Logsへのアクセスを許可します。
Callback
というスタックを作成します。Amazon Connect インスタンス IDは、インスタンス設定画面の以下の赤枠部分から確認できます( instance/ の後の文字列)。
Amazon Connect インスタンスに、作成した AWS Lambda 関数を呼び出すアクセス権限を付与するには以下の手順に従います。
1. AWS コンソールから開いた Amazon Connect インスタンスの設定画面で、左側のメニューから Contact flows を選択し、AWS Lambda セクションのページの下部までスクロールします。
2. 以下の図に示すように、関数 ドロップダウンメニューで readcallback 関数を選択し、+ AWS Lambda Function をクリックします。
3. writecallback 関数と removecallback 関数についても、手順 2を繰り返します。
4. 正常に処理を実行すると、合計 3 つの AWS Lambda 関数が登録されます。
セットアップの準備が整ったので、ソリューションをテストしてみましょう。
1. 現在 Amazon Connect を使用しているブラウザからシークレットタブを開くか、あるいは CCP をサポートする別のブラウザを起動します。インスタンスの Access URL から CCP を開き、エージェントとして作成したユーザーでログインした後、Offline 状態にします。
1. Callback コンタクトフローに設定した電話番号に電話をかけます。
1. すべてのエージェントが通話中であることを示すメッセージが再生されます。1 を押すとコールバック、何も押さないとそのままエージェントに繋がるのを待つことになります。今回は 1 を押します。
1. コールした番号にコールバックする場合は 1 を、別の番号にコールバックする場合は 2 を押します。
- 2 を押した場合は電話番号の入力を要求されますので、コールバックを希望する番号を入力します。
1. 入力が正常に受け付けられると、通話が終了します。
顧客の電話番号は DynamoDB データベースの Callback テーブルに書き込まれます。この状態で2回目の呼び出しを行うとどのような動作になるか確認しましょう。
コールバックを重複して登録できないことを確認しました。続いてエージェントでコールバックを受信しましょう。
このラボでは、DynamoDB テーブル内のコールバックを確認することで、同じ発信者による重複コールバックの登録を回避し、コンタクトセンターの生産性を向上させるソリューションを実装しました。