【Amazon Connect】エラー時の発信者番号をメール通知してみた(シンプル版)
はじめに
こんにちは、フニです。
本記事では、Amazon Connect フローでエラーが発生した際に、発信者番号などのコンタクト属性をメール通知する方法についてご紹介します。
全体像
全体像は以下の通りです。
エラーなどの例外処理を、コンタクトタグを活用して EventBridge が検知、SNS でメール通知します。

Amazon Connect フロー
AWS Lambda 関数ブロックでエラーを起こし、以下のコンタクトタグを付与するフローです。
callerNumberには発信者番号のコンタクト属性をタグに付与します。
error:truecallerNumber:$.CustomerEndpoint.Address


Amazon EventBridge
イベントパターンには以下のように設定します。
フローのコンタクトタグに、errorがtrueの場合、エラーが発生したと判断します。

{
"source": ["aws.connect"],
"detail-type": ["Amazon Connect Contact Event"],
"detail": {
"eventType": ["COMPLETED"],
"tags": {
"error": ["true"]
}
}
}
Input Transferには以下を登録します。設定手順は以下のブログをご参考ください。
入力パス
イベント発生時の json から活用が必要なデータを変数として保存します。
今回は以下3つの変数を保存しました。
{
"callerNumber": "$.detail.tags.callerNumber",
"contactId": "$.detail.contactId",
"time": "$.time"
}
テンプレート
メール通知の本文の整形を定義します。入力パスで定義した変数を活用できます。
注意点として、各行を "" で囲む必要があります。
"ContactId:<contactId>"
"発生時刻:<time> (UTC)"
"発信者番号:<callerNumber>"
""
"予期しないエラーが発生しました。担当者は折り返しの電話を実施してください。"
結果
メール本文にはタグで設定した発信者番号が問題なく含まれていました。

制約
以下の制約が許容できない場合は、以下のブログのように Step Functions などのアーキテクチャの追加をご検討ください。
Input Transformer の制約
Input Transformer でのメール整形には、以下のような制約があります。
- ① SNS トピックでメール通知を実施している場合、メールタイトルの変更はできません。つまり、
AWS Notification Messageというタイトルが固定されます。 - ② 一方で、SNS トピック名からメールが届くようになっていて、AWSAccountID のようなユニークな値で登録すると把握はできるかと思います。
- ③ 本文の内容には、各行に
""がそのまま出力されます。

コンタクトタグの上限
ユーザー定義タグは、最大 6 つ作成できます。
仕様上、コンタクトタグは最大 6 つまでしか登録できません。
注意点
Amazon Connectのコンタクトイベントは基本的にEventBridgeに送信されますが、配信はベストエフォート方式で行われます。
稀に取りこぼしが発生するため、100% の確実性が求められるケースでは別の仕組み(例えば Amazon Kinesis Data Streams など)の利用も検討してください。
別の仕組みについては、以下のブログ記事を参考ください。
さいごに
今回は、Amazon Connect フローでエラーが発生した際に、発信者番号などの属性をメール通知する方法についてご紹介しました。
EventBridge + SNS のシンプルな構成だけでも、コンタクト属性をタグに保存してメール通知できるのは嬉しいです。
この記事が、誰かの助けになれば幸いです。







