はじめに
Amazon Connectの音声通話・チャットなどのイベントをキャッチできる機能がリリースされました
Amazon EventBridgeを利用することで簡単な設定で使え、「ほぼリアルタイム」でイベントキャッチできるとのことなので、確認してみたいと思います
本記事の内容
ドキュメント の通り、Amazon EventBridgeのルールを設定し、Lamdaを実行、チャットツールであるSlackへイベント内容をそのままポストしてみます
下記のような流れになります
- SlackへポストするLambdaを作成
- EventBridgeでConnectのアクティビティイベントと上記Lambdaを連携
- 動作させてみる
設定
Lambda作成
受け取ったイベント内容をSlackへポストするだけのコードです(内容は省略します)
EventBridgeでConnectのアクティビティイベントと上記Lambdaを連携
ルール名を入力し、イベントパターンを選びます
ターゲットとして作成したLambda関数を指定します
今回は ConnectEvent-dev-main
という関数名としました
指定できたら 作成
指示します
Lambda側トリガーの確認
上記操作にてEventBridgeからトリガーされるように構成されました
動作
受電(INBOUND)時は、下記のような順序でイベントをキャッチします
- Amazon Connectへ着信時
- eventType=
INITIATED
- インスタンスID、コンタクトIDを取得できます
- eventType=
- キューへ転送時
- eventType=
QUEUED
- インスタンスID、コンタクトID、転送先のキューIDを取得できます
- eventType=
- エージェント接続時
- eventType=
CONNECTED_TO_AGENT
- インスタンスID、コンタクトID、転送先のキューID、エージェントユーザーIDを取得できます
- eventType=
- 切断時
- eventType=
DISCONNECTED
- インスタンスID、コンタクトID、転送先のキューID、エージェントユーザーIDを取得できます
- キューID、エージェントユーザーIDはそれぞれ転送、接続した場合のみ含まれます
- 例:エージェントが応答する前に切断した場合はエージェントユーザーIDは含まれない
- eventType=
より伝わるよう、動画にしてみました(38秒)
まとめ
簡易的な実装で試しただけですが、エージェント接続時と切断時は、実際の操作から1~2秒未満程度のタイムラグがある、という結果になり、十分使えるレスポンスと言えると思います
(今回の場合は、Lambdaの実行時間、Slackとの通信、画面表示までの処理時間等の遅延も含めたレスポンスになります)
なお、通知に含まれるのはコンタクトIDやエージェントユーザーIDといった、ID文字列であるため、コンタクト情報・問い合わせ属性を必要とする場合は別途APIと組み合わせることになります
一見不便かと思いましたが、ユーザー名などの具体的な情報を含めないことでセキュリティを担保する設計かと推測します
このイベント通知機能は問い合わせフローに組み入れたLambdaとは異なり、非同期で動作します。問い合わせフローの遅延が発生しないところも優れたポイントですね
派手な機能ではないかもしれませんが、活用できそうな新機能でした