Amazon Connect で直通電話①
こんにちは、米須です。
リモートワークが多くなっていますが、みなさんは社外の方との電話ってどうしてますか?会社にかかってきた電話は在宅だと受けることができないので折り返しかけ直したり、自分の電話からかけるので電話代が高くなったりしてないでしょうか。
そこで、今回は Amazon Connect を利用して直通電話ができる仕組みを作ってみました。1回目は Amazon Connect 側の設定を中心に、2回目は Lambda や DynamoDB 側を中心にお話していきたいと思います。
フロー
今回の仕組みはこんな感じです。
1.電話をかける
2.「担当者番号を入力してください」というようなアナウンスが流れる
3. 話をしたい人の担当者番号をプッシュホンで入力する
4. 相手に繋がる
Amazon Connect では下記のようなフローを設定することでその仕組みを作ることができます。
では、一つずつステップを見ていきましょう。

Step① 音声の設定

途中でアナウンスを流したかったので、読み上げ音声の設定をしています。日本語だと「Mizuki(女性)」と「Takumi(男性)」が選べます。
Step② ログ記録動作の設定

思ったように動かなかった時に調査できるようログの設定をしています。これにより、前のステップから渡されてきた値などを CloudWatch Logs で確認することができます。
Step③ プロンプトの再生

電話がつながった直後のアナウンスになります。今回は固定の文言を設定するため「テキスト読み上げまたはチャットテキスト」で「テキストの入力」を選択し、固定の文言を設定しています。
「動的に入力する」を選択した場合は、Lambda を利用して作成した文言を読み上げさせることができます。(例えば、電話をかけた時間によって「おはようございます」や「こんにちは」というように挨拶を変えることができます)
文言を設定するだけで読み上げてくれるなんて便利!
Step④ 顧客の入力を保存する
Step⑥ プロンプトの再生

このステップで電話をかけてきた人に担当者番号を入力してもらいます。
まずは、入力を促すためのアナウンスの設定です。今回は「6桁の担当者番号を入力してください」という固定文言を設定しています。
次に入力設定です。今回入力してほしい担当者番号は6桁(部署番号:2桁+担当ごとの番号:4桁)としていたので、最大桁数に「6」を設定しています。
これで入力された内容が保存されます。
このステップでエラーになった時のために、Step⑥ 「プロンプトの再生」でエラーになった旨のアナウンスを設定しました。
Step⑤ AWS Lambda 関数を呼び出す
Step⑧ プロンプトの再生

Step④ で入力してもらった担当者番号からユーザを特定するための Lambda 関数を設定しています。
簡単に説明すると、DynamoDB に担当者番号とユーザ名が設定されており、担当者番号をキーとして渡すとユーザ名が戻ってくるようにコーディングされた Lambda 関数が設定されています。(Lambda と DynamoDB の仕組みは次回説明したいと思います)
では Amazon Connect の設定に戻ります。まず最初は Lambda 関数の ARN を設定します。
次に関数入力パラメータの項目で Lambda 関数に渡すキーについて設定します。今回は Step④ にて入力してもらった内容をキーとして渡したいので、
タイプ:システム
属性 :保存済みの顧客の入力
を設定し、キー名として
宛先キー:Extension
を設定しています。
こちらも、このステップでエラーになった時のために、Step⑧ 「プロンプトの再生」でエラーになった旨のアナウンスを設定しています。
Step⑦ キューの設定

ここでどこに電話を繋ぐかを設定します。
まず、電話を繋ぐ設定は下記の2種類があります。
「キュー別」を選択:キューに繋ぐ
「エージェント別」を選択:特定のエージェントに繋ぐ
「キュー」とは、複数のエージェントが紐づけられているグループのようなものです。なので、「キュー別」を選択すると、設定されたキューに転送され、そこに紐づくエージェントの誰かに繋がる形になります。
一方、「エージェント別」を選択すると、特定のエージェントに繋ぐことができます。今回は直通電話の仕組みなのでこちらを選択しました。
今回の場合、エージェントは常に決まった人ではなく、入力された内線番号に紐づくエージェントを設定したいため、「属性を使用する」を選択し、Lambda 関数からの戻りのキーが設定されるようにします。
タイプ: 外部
属性 : FallBackQueue(Lambda 関数内で指定した戻りキー名)
色々なサイトを見ながら構築していたのですが、「キュー別」と「エージェント別」があるのを理解しないままあれこれ流し読みしていたので、設定方法の違いをちゃんと把握しておらずハマってしまいました・・・(^^;
Step⑨ キューへ転送

ステップ⑧ で設置された転送先に転送するためのステップですが、特に設定項目はありません。
これで Amazon Connect 側の設定ができました。
実務で利用するなら、キューへの転送時にエージェントの状態(電話を受けられるかそうでないか)をチェックする仕組みも入れてあげたほうが良いかと思います。
さいごに
AWS には色々なサービスがありますが、こんなに簡単に電話の仕組みが作れるなんていいサービスですよね。色々な所に適用できそうなので、時間を見つけてもっと深堀できればと思っています。
では、次回もお楽しみに(^^)