☎️

AmazonConnectとSlackを連携したちょっと便利な仕組み

2023/12/06に公開

https://qiita.com/advent-calendar/2023/ne

こんにちは。NE株式会社Advent Calendar6日目の記事をよへいが担当します。

AmazonConnect使ってますか?
サービスリリースされてからかなり経過しており、さまざまなAWSサービスとの連携事例もみかけるようになりましたが、シンプルにSlackとの連携を導入するだけで生産性バク上がりするかもしれない方法をご紹介できればと思います。(かもしれない程度ですよ)
本記事は技術的には目新しくないのですが、難易度も高くないと思いますので誰かの参考になれば幸いです。

AmazonConnectとは

AWSを利用してコンタクトセンターを構築できるサービスです。
AWS上で電話番号の取得、着信や応答のフローを設定することができ、着信や発信(所謂電話の機能)をブラウザで利用することができます。

個人的にAmazonConnectの推しポイントは2つあります。

  • 簡単に電話対応できる仕組み(コンタクトセンター)を構築できる
  • AWSのサービスと簡単に連携できる

以下のようにGUIでワークフローを構築することができます。

詳細は公式のドキュメントをご確認ください
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/what-is-amazon-connect.html

当社での利用用途

自分の担当するコンサルティング事業部ではAmazonConnectをビジネスフォンのような用途で利用しています。

  • お客様からの受電
  • お客様への架電

コンタクトセンターのように専任のオペレーターを配置しているわけではなく、オフィスに電話があるときのように着信に気づいた人が対応するような運用を想定しています。

解決したい課題

AmazonConnectはコンタクトセンター向けのサービスなのでビジネスフォン用途で利用しようとするといくつかの課題がありました。
前提として1つの電話番号を複数人で利用しています。
着信を受けるにはメンバーごとにブラウザでCCPにログインし、オンラインにしておく必要があります。

  1. 着信があったことをチームメンバーが気付けるようにしたい
    • オンラインにしている人に順番に着信がくるため、たまたまその方が対応できない場合に他のメンバーが気づくのが遅れる
  2. 営業時間外の着信を簡単に把握したい
    • 営業時間を設定する機能が標準で備わっているがダッシュボードから履歴を追わないと確認できない
  3. よく連絡をくださる番号の着信は担当者に連絡欲しい
    • 1つの番号を共有しているため、担当者以外の方が対応することがあるが担当者がすぐに気付けるとお客様をお待たせしなくて済む

どうやって解決したか

AmazonConnectはワークフロー上で特定のイベント発生時に指定のLambdaを起動することができます。
これを利用してSlackとの連携機能を実装しました。

https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/connect-lambda-functions.html

1.着信通知

実際にslackに通知されるとこんな感じ

着信があって対応できなかった場合は折返しが必要である旨をチームに通知します。

2.営業時間外の着信通知

電話をかけてきた方には営業時間外である旨のアナウンスが流れて終話します。
担当者はslackの通知をみて営業開始後に連絡をとることができます。

3.通知担当者の登録

良く連絡をくださる方の場合は着信と同時に担当者にメンションが飛ぶようにしました。

  • 着信履歴から担当者登録
  • 着信時に登録済みの連絡先の場合は通知時に担当者へメンション

担当者などを登録します


登録完了

登録された連絡先からの着信時に通知にメンションが追加される

どうやって実現してるか

利用してる技術スタック

着信通知

これはシンプルにAmazonConnectからLambda起動して実現しています。

  • AmazonConnectでイベントフックでLambdaを起動できる
  • Lambdaからslackへ情報を整形してリクエスト

担当者登録

slackからのリクエストには3秒以内にレスポンスを返す必要があるので、API Gateway経由で実行されたLambdaは非同期処理用のLambadaを起動してレスポンスを返すようなことをしています。

まとめ

AmazonConnectとSlackを連携させて電話対応フローを少しだけ便利にしてみました。
AWS Lambdaを利用してるだけなのでシンプルに構築&運用できると思います。

実はこの仕組みは2年近く前に作った仕組みで今も社内で利用されています。
当時から比べてAmazonConnectはだいぶ進化しているので、改めて課題整理といろいろ試してみる機会を持ちたいなと考えているところです。
Contact Lens for Amazon Connectを利用して通話を自動的にテキスト化したり、以下の記事にあるようなAmazon Qとの連携も気になるところですね。

https://dev.classmethod.jp/articles/preview-amazon-q-in-connect/

NE株式会社の開発ブログ

Discussion