Amazon Connectで何ができるのか

# AmazonConnectとは
AmazonConnectとは、コンタクトセンターのシステムを即座に構築できるAWSのサービスです。インスタンスを作成すればその場で電話番号が発行され、電話の受信、発信、音声ガイダンスなどコンタクトセンターに必要な機能を備えたシステムがすぐに用意できます。

公式サイト: https://aws.amazon.com/jp/connect/
> Amazon Connect は、あらゆる規模の顧客窓口をセルフサービスで構築して、より良いサービスを低コストで提供できるクラウド型コンタクトセンターサービスです。世界中のスタッフが日々何百万件もの問い合わせに対応するアマゾンのコンタクトセンターと同じ技術が Amazon Connect に使われています。専門知識のないユーザーでも、Amazon Connect のセルフサービス式のグラフィカルインターフェイスを使えば、対応フローの設計、スタッフの管理、業績指標の追跡が簡単にできます。Amazon Connect なら、前払い料金も、長期契約も、インフラ管理も不要です。費用は分単位の従量課金と、ご利用の電話サービスの料金だけです。

# 特徴
- 設備不要
- 料金は従量制
- ユーザーの追加、電話番号の追加など、スケールアップが追加料金なく行える
- 他のAWSサービスとの連携が可能
    - 通話記録はすべてS3に保存される
    - 問い合わせフローでLamdaが使用可能
- メトリクスの表示、レポートのエクスポートが簡単に行える

# 費用
### インバウンドコール(受信)
アジアンパシフィック(シドニー)で日本の場合

|| 1日あたりの要求された電話番号 |1分あたりのインバウンドコールの使用  |
|---|---|---|
|直通ダイヤルイン (DID) |0.13 USD  |0.0056 USD  |
|無料通話|0.48 USD  |0.2114 USD  |

※ 2018年9月時点
電話番号のタイプは直通ダイヤルインか無料電話の2種類が選べ(直通ダイヤルインは日本ではまだサポートされていませんでした)、複数の電話番号を登録することができます。ただし、希望の番号を指定することはできず、選択肢から選ぶ形式となっています。料金は完全従量制で、１日に利用した電話番号数と、利用通話時間で料金が決まります。

### アウトバウンドコール(発信)
|1分あたりのアウトバウンドコールの使用|
|---|
|0.1203 USD  |
※ 2018年9月時点

# 必要な技術要素
コーディングは必要ありません。
管理コンソールからGUI上ですべての設定が行えます。

他製品に組み込む場合には、javascriptでのコーディングが必要になります。
https://github.com/aws/amazon-connect-streams

# 開始手順
0. AWSのアカウントを作る
1. AmazonConnectのインスタンスを作成する(4~5分)
    - 無料利用枠もあります
    - インバウンド、アウトバウンドまたは両方の利用を選択します
2. 管理コンソールからセットアップを行う  
デフォルトの設定がすでに用意されているので、最初は既存の設定をすこし変えるだけで始められます。
   - **電話番号の取得** ・・・追加の電話番号を発行します
   - **オペレーション時間の設定**・・・曜日ごとのオペレーション開始・終了時間を設定します
   - **キューの作成**・・・着信コールの分類を作成します
   - **プロンプトの作成**・・・問い合わせフローで利用する音声ファイルなどをアップロードします
   - **問い合わせフローの設定**・・・電話番号がコールされてエージェント(スタッフ)が電話を受けるまでのフローをGUIで設定します。
   - **ルーティングプロファイルの作成**・・・エージェントへキューをふり分けるルーティングを作成します
   - **ユーザーの設定**・・・エージェントの登録、権限管理などを行います

# インバウンド(受信)の流れ
管理コンソールでのセットアップでの各設定同士の関係性をまとめてみました。

![スクリーンショット 2018-09-08 18.26.07.png](https://qiita-image-store.s3.amazonaws.com/0/36813/ad86e573-6142-f093-7770-564594f51fa0.png)

1. 「顧客」が電話番号に電話をします。
2. 「電話番号」に対応した「問い合わせフロー」が実行されます。
3. 「問い合わせフロー」は条件分岐が組み合わせられており、最終的にキューなどへの転送、または切断を行います。問い合わせフローの作成、各フローの設定はGUI上で行うことができます。
![スクリーンショット 2018-09-08 17.39.46.png](https://qiita-image-store.s3.amazonaws.com/0/36813/5ab3f930-f2d6-b210-10e7-8f1a401bc29a.png)
問い合わせフローに追加できる主なフローは以下があります。

- オーディオの再生
- テキスト読み上げ
- 顧客の入力(プッシュボタン)取得
- オペレーション時間の確認
- 人員の確認
- 分散(ABテスト)
- Lamda関数の実行
- 転送(キュー、問い合わせフロー、電話番号など)
- 切断  

など
4. 問い合わせフローからキューが転送されると、ルーティングプロファイルを通り適切なルーティングが選ばれ、そこに紐づくエージェントへキューが送られます。
5. キューを受け取ったエージェントと通話が開始します。

# エージェントの利用手順
エージェントがインバウンド(受信)で利用するときの手順です。

1. AmazonConnectの管理コンソールにログインする（管理項目はエージェントには表示されません）
2. メニューバーから電話アイコンをクリックして通話用のウインドウを立ち上げる

![スクリーンショット 2018-09-04 0.39.34.png](https://qiita-image-store.s3.amazonaws.com/0/36813/b0dbd161-3e43-7ac8-23ce-195bb457c050.png)
3. ウインドウが開いたら初期化を待ち、「Available」と表示されれば受信可能状態です

![スクリーンショット 2018-09-04 0.41.08.png](https://qiita-image-store.s3.amazonaws.com/0/36813/8005e7d2-1e99-8f1d-d7b1-b83a219c4413.png)
4. 電話を受信すると自動で通話が開始されます

![スクリーンショット 2018-09-04 0.44.14.png](https://qiita-image-store.s3.amazonaws.com/0/36813/4adfeb85-8641-10c0-b69f-9b579cff6367.png)

アウトバウンド(発信)で利用する場合は、同様の通話用ウインドウから「番号をダイヤル」を選択し、通話先を入力すると通話が行えます。

# 集計
通話履歴などはすべて自動で保存されており、キュー、エージェント、電話番号ごとに履歴の集計の表示、およびCSVなどへのエクスポートができます。
![スクリーンショット 2018-09-08 18.55.13.png](https://qiita-image-store.s3.amazonaws.com/0/36813/56c776fe-f373-1990-5e1c-b6dc30d9579a.png)


# おわりに
ここまでやってみて、まさにその日のうちにコンタクトセンターが開けるという印象です。問い合わせフローなどの設定は時間かかりそう、かつ設計が難しそうと思いましたが、スケールに耐えうる構成になっているなと思います。
次はAPIとライブラリを使っての連携を試してみたいと思います。

# 参考
https://aws.amazon.com/jp/connect/
https://qiita.com/kooohei/items/fec4e677cdfc3d2b35aa
https://dev.classmethod.jp/cloud/aws/amazon-connect-streams-initial-setup-procedure/