【クラウド初心者向け】Amazon Connectでコールセンターを作る

# 注意
現在、こちらのドキュメントは作成中ですので随時更新されるはずです。

# 前振り
- 初めてAWSのアカウントを開設してAmazon Connectを試作したのでこの知見を忘れないようにメモとして残しておくため
⁻ 同じように初めて触る人がいるかと思い何かの役に立てれば良いな

## 想定ユーザー
- これまでAWSやAzureといったクラウドサービスを全く触ったことがない
- 基本はWindowsユーザー（ADなんか触った事があると良いかも）
- Webの知識をある程度持っている（Webシステムを作ったことがあればなお良し）
- HTML、CSS、JavaScriptの知識をある程度持っている

## なぜQiitaに投稿するの
### 熱い思いを文章で（長いので、時間の無い人は次の結論へ）
Amazon Connectで何かをしようと思って検索すると、たいていの事はクラスメソッド株式会社が運営する[Developers.IO](https://dev.classmethod.jp)に記事があり実現方法が記載されています。

私も、参考にさせてもらって進めることができました。ありがとうございます。
しかし、HowToサイトではないので全部の手順は書いていないです。（AWSになれている人にはわかる説明がちゃんと書いてあります）
今回、Amazon Connectを利用するために初めてAWSを触ったので、書いてある説明を理解するのに色々と調べて時間がかかりました。
このままでは、調べた内容を忘れてしまうと思ったので自分の備忘録として投稿することにしました。
うまくいけば、社内での説明用資料やプレゼン用資料に使えるかななんて思ったりもしています。

なのでDevelopers.IOの記事を引用させてもらう事も多いですが、[もうこれで怒られない！テキスト、スクショ、SNS埋め込み等の引用マナーまとめました](https://dev.classmethod.jp/etc/quotation/)にも書いてある通り自分の記事になるようしたいと思います。

# コールセンターを作る
ここからコールセンターを作るための説明をします。
作りながら機能は増やしていこうと思っています。

## 目的
- 手間と費用をかけずにコールセンターに必要と思われる最低限の機能を実装して運用する。
- お客様と自社のコールセンター担当者の双方がWin、Winの関係になれる。

## 機能
- ガイダンスによる業務の選択
- 通話内容の録音
- 営業時間内のみ電話を受け付け、時間外は留守番電話になる。
- 外線への電話転送

## 構築環境
- OS：Windows 10
- ブラウザ：Chrome
- インターネット接続：ポート、IP制限、Proxyサーバーなどの制限がない環境（制限があるとつながらない場合があります）
- マイクとスピーカー：PC側の通話確認で使用
- 電話：通話確認で使用

## 注意点
- セキュリティについては考えていませんので、実運用する場合はセキュリティの検討が必要です。
- Amazon Connectの問い合わせフローでエラー時の対応が電話をいきなり切る仕様になっているので、実運用ではプロンプトの再生等の検討が必要です。
 
## Amazon Connectの概要
- インスタンスを作成し、電話番号の取得および問い合わせフローの作成を行います。
- 役割
    - インスタンス
        - 電話番号、問い合わせフロー等をまとめる。
    - 電話番号
        - Amazon Connectに接続するための電話番号、お客様はこの電話番号に電話を掛ける。
    - 問い合わせフロー
        - かかってきた電話をどう処理するか流れを決められます。
        - 電話番号やお客様の選択によって処理を分ける事ができます。
        - ログの取得ができます。
    - キュー
        - お客様の電話がユーザー（エージェント）に接続されるまで待機している場所になります。
        - キュー内の優先順位はキューに入ってきた順になります。
        - ルーティングプロファイルを割り当て、空いているユーザー（エージェント）に電話を転送します。
    - ルーティングプロファイル
        - この中から割り当てるユーザー（エージェント）が選択されます。
        - ユーザー（エージェント）を束ねられます。
        - ルーティングプロファイルには複数のキューを割り当てる事ができます。
    - ユーザー（エージェント）
        - お客様の電話を受けて対応する人。
        - ソフトフォンを利用してお客様からの電話を受け取ります。
        - ユーザー（エージェント）は複数のルーティングプロファイルを割り当てる事ができます。
- 動作
    - お客様が取得した電話番号に電話をかけてきます。
    - 電話番号に割り当てられている問い合わせフローの処理を開始します。
    - 問い合わせフローの結果、キューにいったん割り当てられます。
    - キューに割り当てられたルーティングプロファイル内のユーザーが空いていれば電話を割り当てます。
    - お客様とユーザーの会話が始まります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520689/de176a37-c591-bd63-d703-65b65d4164e3.png)

## Amazon Connectの構築手順
1. AWSのアカウント開設と初期設定を行います。
1. Amazon Connectの作成します。ここでは電話を受けられるだけの機能を作ります。  
 （初めての方だと理解しにくい手順ですが、割り切ってください。）
    1. インスタンスの作成
    1. 電話番号の取得
    1. キューの作成
    1. ルーティングプロファイルの作成
    1. ユーザーの作成
    1. 問い合わせフローの作成
    1. 番号と問い合わせフローの関連付け
1. ユーザー（エージェント）がソフトフォンを使って受電できることを確認します。
    1. ソフトフォンの起動
    1. 管理者による電話のモニタリング 
    1. 過去の通話内容の確認
1. Amazon Connectの機能アップ
    1. 案内音声を人間の音声に変更する。
    1. お客様の選択によりユーザー（エージェント）の振り分けや外線転送を行う。
    1. 営業時間を判断して留守番電話に接続する。

## 目次
### AWSの開設
1. [AWSアカウントを作成してコンソールにサインインする](https://qiita.com/echolimitless/items/129495c920217916a14f)
1. AWSアカウント作成後にやった方が良い初期設定
    1. [ルートユーザー設定](https://qiita.com/echolimitless/items/bd11186938f34c4865e7)
    1. [アカウント設定](https://qiita.com/echolimitless/items/45da7a765dd4e107ce29)
    1. [請求設定](https://qiita.com/echolimitless/items/f258d3338dab8ca9a575)
    1. [準拠法、管轄裁判所設定](https://qiita.com/echolimitless/items/d9a8b26159cd148f4a4c)
    1. [IAMユーザーの作成](https://qiita.com/echolimitless/items/d6b9170be82ca030ed0e)
    1. [IAMユーザー設定](https://qiita.com/echolimitless/items/24d1bc59920a4eb4ed85)
    1. [操作ログの取得・閲覧](https://qiita.com/echolimitless/items/df869f2259c4095d6c65)
    1. [リソース管理](https://qiita.com/echolimitless/items/ce4030cf1469ecfd2645)
    1. [脅威監視](https://qiita.com/echolimitless/items/6b47461b3a599c7ce265)
    1. [改善提案](https://qiita.com/echolimitless/items/1da9a58a076307a2a2ca)
    
### Amazon Connect構築
1. 基礎編（Amazon Connectの開設 ～ 着信確認まで）
    1. [インスタンスの作成](https://qiita.com/echolimitless/items/91fe2793687a7782c54b)
    1. [電話番号の取得](https://qiita.com/echolimitless/items/8005138dfd337cf6b34e)
    1. [キューの作成](https://qiita.com/echolimitless/items/87bd5c69d771c77bdb73)
    1. [ルーティングプロファイルの作成](https://qiita.com/echolimitless/items/329d9af13fc715b58ee7)
    1. [ユーザー（エージェント）作成](https://qiita.com/echolimitless/items/ca1d94e26c4946721233)
    1. [問い合わせフローの作成](https://qiita.com/echolimitless/items/f56b7f2ec478d83f2ebd)
    1. [着信確認](https://qiita.com/echolimitless/items/38e10d6f5835cf922739)
    1. [顧客キューのフロー変更](https://qiita.com/echolimitless/items/32738b431f5cba222eee)
    1. [着信確認までの振り返り](https://qiita.com/echolimitless/items/846668ad89ad4315707b)
    1. [録音確認](https://qiita.com/echolimitless/items/b911a47a1aa75de20dde)
    1. [リアルタイムモニタリング](https://qiita.com/echolimitless/items/3388126a9e68fce8f8a2)
1. 応用編
    1. [案内音声を人間の音声に変更](https://qiita.com/echolimitless/items/f84ef2896547bf3ef010)
    1. [お客様の選択による分岐と外線転送](https://qiita.com/echolimitless/items/e2efdc1e8ee6b15e3467)
    1. [営業時間の判断](https://qiita.com/echolimitless/items/a8d8d9221a05c64de150)
    1. [留守番電話1（kinesis Video Streamsデータ取得用情報の作成環境の準備）](https://qiita.com/echolimitless/items/3e979b95419272777dc1)
    1. [留守番電話2（Amazon Connect問い合わせフローに留守番電話機能を追加）](https://qiita.com/echolimitless/items/a11a15c4edc83b5e85c6)
    1. [留守番電話3（kinesis Video StreamsデータをWAV形式に変換してS3に保存）](https://qiita.com/echolimitless/items/af068e147e233c51d6a4)
    1. [留守番電話4（録音した留守番電話を聴く）](https://qiita.com/echolimitless/items/db3d2a53baadc26afec6)

# 参考サイト
- [Developers.IO](https://dev.classmethod.jp)
- [もうこれで怒られない！テキスト、スクショ、SNS埋め込み等の引用マナーまとめました](https://dev.classmethod.jp/etc/quotation/)
- [AWSアカウントを作ったら最初にやるべきこと ～令和元年版～](https://dev.classmethod.jp/cloud/aws/aws-1st-step-new-era-reiwa/)