EventBridge API Destinations を利用して、Amazon Connect で特定のキューに電話が入った際に Slack に通知してみた

アノテーションのスライマンです。
今回は Amazon Connect で特定のキューに電話が入った際に、Slack へ通知する仕組みを作成していきます。

構成

構成図は下記のようになります。

Amazon Connect 内の特定のキューに対して、電話が入った際にのイベントをトリガーとして、EventBridge ルールが検知します。
その後、EventBridge API Destinations を利用して、Slack へ通知します。

EventBridge ルールでは、Amazon Connect Contact Event を利用してイベントパターンを作成します。

Amazon Connect では、Amazon Connect コンタクトセンターへの問い合わせ (音声通話、チャット、タスク) イベントのほぼリアルタイムでのストリームに登録できます。
問い合わせイベントを使用して、問い合わせアクティビティをモニタリングおよび追跡する分析ダッシュボードを作成したり、ワークフォースマネジメント (WFM) ソリューションに統合してコンタクトセンターのパフォーマンスをよりよく理解したり、通話の切断などのイベントにリアルタイムで反応するアプリケーションを統合したりできます。

必要なリソース

  • Amazon Connect で通話が可能な環境
  • Slack
  • EventBridge API の送信先
  • EventBridge ルール
  • EventBridge 接続

実際にやってみた

Amazon Connect の環境

Amazon Connect のリソース作成について、本記事では、既に作成している前提として、進めていきます。
Amazon Connect 環境の構築については、下記のブログ記事をご参照ください。

Slack の設定

Slack の設定については、以前の記事で設定した際と同じように設定するため、割愛させていただきます。
設定方法については、下記をご参照ください。

EventBridge の設定

EventBridge では、ルールと API 送信先、接続を作成します。
リソースの作成に関しては、Slack の設定時に紹介したブログ記事と同じ流れで設定します。

  • ルールの詳細の定義
    • ルール名:任意の名前
    • イベントパス:default
    • ルールタイプ:イベントパターンを持つルール
  • イベントパターンを構築
    • イベントソース:AWSイベントまたは EventBridge パートナーイベント
    • メソッド:カスタムパターン

イベントパターンは下記のように設定します。
簡単に説明しますと、今回利用するイベントパターンは、特定のキューに入った際の着信の電話があった際に、トリガーされるパターンとなっております。
今回は着信(INBOUND)を設定しておりますが、initiationMethod では OUTBOUNDTRANSFERDISCONNECT などが存在しており、着信以外をトリガーとすることも可能です。

{
  "source": ["aws.connect"],
  "detail-type": ["Amazon Connect Contact Event"],
  "detail": {
    "initiationMethod": ["INBOUND"],
    "eventType": ["QUEUED"],
    "queueInfo": {
      "queueArn": ["arn:aws:connect:<リージョン>:<アカウントID>:instance/<インスタンスID>/queue/<キューID>"]
    }
  }
}
  • ターゲットを選択 ターゲットを下記の通り、設定していきます。
    API 送信先エンドポイントは Slack の Webhooks URL を入力します。
    今回は Incoming Webhook を利用しているため、認証タイプは入力不要となりますが、入力必須のこうもくになっているため、任意の値を入力してください。(今回はAPIキー名:sample、値:hoge)
    API 送信先エンドポイントを Chat PostMessage (https://slack.com/api/chat.postMessage)にする場合は、認証タイプを API キーを選択して、Authorization の値として、Bot User OAuth Token (xoxb-) を入力してください。

ターゲット入力は、通知内容をカスタマイズするため、「入力トランスフォーマー」を選択します。
今回は入力パスを次のように、設定します。

{
  "channel": "$.detail.channel",
  "contactId": "$.detail.contactId",
  "detailType": "$.detail-type",
  "eventType": "$.detail.eventType",
  "initiationMethod": "$.detail.initiationMethod"
}

入力テンプレートは下記を設定します。

  {
    "channel":"<チャネルID>",
    "text":":heavy_exclamation_mark: <detailType>\nEventType : <eventType>\nInitiationMethod: <initiationMethod>\nContactId : <contactId>\nChannel : <channel>\n"
 }

通知内容のカスタマイズはこの入力パスと入力テンプレートでの設定となります。
EventBridge 入力トランスフォーマーの設定できるパラメーターや設定方法は下記のドキュメントをご参照ください。
Amazon EventBridge 入力変換

通知内容の確認

実際に通知される内容を確認してみます。
該当するキューに対して、電話をかけてみます。
電話をかけた瞬間、Slack に通知されることを確認できます。

参考情報

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。