Amazon Connectで「ダイヤル分岐」コネクトセンターを実装する【ハンズオン】


# はじめに

この記事では

- Amazon Connectにダイヤル分岐処理を実装する手順

についてハンズオン形式で解説していきます。
なお、Amazon Connectの概要やAWSアカウントの登録方法・Amazon Connectのインスタンスの作成手順についてはこちらの記事をご参考ください。

[Amazon Connectの使い方[丁寧に解説してみた]](https://qiita.com/mottie/items/5d94c7d2f94beeb9c342)

# コネクトセンターに必須の「ダイヤル分岐」
新型コロナウイルス感染症の拡大に伴い、次に示すような問い合わせフロー図を目にする機会が増えてきたように思います。
<div align="center">
<img width="auto" alt="スクリーンショット 2020-04-28 19.27.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/437aadab-3ded-3ae1-4432-d97a5a6e4446.png"></div>
(<a herf="https://www.fukushihoken.metro.tokyo.lg.jp/iryo/kansen/coronasodan.html">新型コロナウイルス感染症にかかる相談窓口について[東京都福祉保健局]</a>より引用)
<br>
ダイヤル分岐による音声案内を実施しているところもあるようです。

<div align="center">
<img width="auto" alt="スクリーンショット 2020-04-28 19.21.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/110285ad-dbff-dc48-faa2-e58264ca4d86.png"></div>
(<a herf="https://www.pref.kanagawa.jp/docs/ga4/bukanshi/support.html">新型コロナウイルス感染症に対する「帰国者・接触者相談センター」の設置について[神奈川県]</a>より引用)
<br>
<br>
</div>
Amazon Connectを活用すれば上記のような「ダイヤル分岐」を実装することも可能です。
実装には基本ブロックの一つである「顧客の入力を取得する」を使用します。

# 「ダイヤル分岐」の実装

それでは、実装していきます。
電話をかけると音声案内が流れ、

- 「０」を押すとAさんに電話が転送
- 「１」を押すとBさんに電話が転送
- 「０」または「１」以外を押してしまった場合は再度正しい値の入力を促す
- 一定時間操作がない場合は値入力を促す

という機能を実装していきます。

AWSアカウントの登録方法からAmazon Connectのインスタンスの作成までは次の記事を参考にしてください。
[Amazon Connectの使い方[丁寧に解説してみた]](https://qiita.com/mottie/items/5d94c7d2f94beeb9c342)


### 問い合わせフローの作成
左のメニューから「ルーティング」→「問い合わせフロー」をクリックします。

<div align="center">
<img width="auto" alt="図1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/fd87f070-2c83-ba25-d758-bbab04a08a61.png">
</div>

「問い合わせフローの作成」をクリックします。
<div align="center">
<img width="auto" alt="図2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/5a1a5cdf-2620-8257-d5d6-6061ee0df1cf.png">
</div>
「名前の入力」にフローのタイトル（SampleFlowとします）を書いて「保存」をクリックします。
<div align="center">
![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/f6fbb9b1-41c7-2490-ab99-a866359d2d31.png)
</div>
「設定」の「音声の設定」を選んでドラッグし「エントリポイント」と接続します。
<div align="center">
![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/891145a3-d64a-765c-1bd9-3377a4d353d6.png)
</div>
音声の設定は「日本語」に設定しておきましょう。「Save」をクリックします。
<div align="center">
![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/87fec6a9-06c6-b8fb-c23f-cc1b2af16d4e.png)
</div>
### 「顧客の入力を取得する」ブロックの実装

「操作」より「顧客の入力を取得する」をドラッグし「音声の設定」と接続します。
<div align="center">
![図6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/06a45b8d-e1db-3cce-d696-9519c7aaa655.png)
</div>
「テキストの入力」に読み上げたい内容を記載します。
<div align="center">
![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/a47329cd-26c5-a1b3-dca4-db91e1873304.png)
</div>
下にスクロールしてタイムアウトの設定を行い、「別の条件を追加」をクリックして「０」「１」を追加します。終わったら「Save」をクリックします。
<div align="center">
![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/1de10c30-f012-2290-070c-878fa7ddcc80.png)
</div>
### タイムアウト処理
「ブランチ」から「ループ」をドラッグし、「顧客の入力を取得する」のタイムアウトと接続します。
<div align="center">
![図9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/b9352342-8d9f-4304-9b49-d34e90604c1e.png)
</div>
ループの数を設定します(今回は3回とします)。その後「Save」をクリックします。
<div align="center">
![図10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/897dcab0-f7dd-3674-a210-180ad2b8e562.png)
</div>
「終了／転送」の「切断／ハングアップ」をドラッグし、「ループ」ブロックの「ループ」を「顧客の入力を取得する」に接続し、「ループ」ブロックの「完了」を「切断／ハングアップ」に接続します。
<div align="center">
![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/251f2650-7d47-fa8d-86b6-1a9bbb7be124.png)
</div>
これによって音声案内が流れて一定時間操作がない場合にタイムアウト時間分経過するたびに再度案内が流れ、３回案内が流れても操作がない場合は電話が切れるようになります。
### デフォルト処理
予定外の入力があった場合（「０」「１」以外の番号など）はデフォルト処理として実行されます。

「操作」から「プロンプトの再生」をドラッグし、「顧客の入力を取得する」の「デフォルト」を「プロンプトの再生」に接続し、「プロンプトの再生」の出力から「顧客の入力を取得する」に接続します。
<div align="center">
![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/9e4a4a0f-120a-c95b-29a6-6f06fe033c2f.png)
</div>
予定外の入力があった場合に読み上げるテキストを設定します。設定したら「Save」します。
<div align="center">
![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/70fd2525-ad11-064d-53aa-191efa05d8c6.png)
</div>
これで予定外の入力があった場合は再度ダイヤル分岐の案内が流れるようになります。

### エラー処理
それ以外の予期せぬエラーが生じた場合は電話が切断されるようにします。

「顧客の入力を取得する」ブロックの「エラー」を「切断／ハングアップ」に接続すればOKです。
次からは分岐処理の実装に移ります。別の画面に移るので一度「保存」しておきましょう。
<div align="center">
![図14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/f0adcf18-22fc-faf5-cc66-177486167ae8.png)
</div>

### 分岐処理の実装
音声案内に従い「０」を押したらAさんに電話が繋がり、「１」を押したらBさんに繋がるようにします。

左のメニューから「ルーティング」の「キュー」を選択します。
<div align="center">
![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/0f63df6b-9ab3-6ec8-bd9f-306181acc87e.png)
</div>
「新しいキューの追加」をクリックします。
<div align="center">
![図16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/85514aa9-687e-b55b-aedf-33ae63c686f6.png)
</div>
名前や説明を記載し、「新しいキューの追加」をクリックします。
アウトバウンド発信者ID番号はインスタンス作成時に取得した電話番号を選択します。キューはユーザーの数だけ作成します。
<div align="center">
![図99.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/08f7834b-0e78-ea61-f68c-779e47b5b4cd.png)

</div>
同様の手順でもう一人の分のキューも作成します。
![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/ec651d30-a796-3e4b-bebd-aaa4dc0aecde.png)


続いて左のメニューから「ユーザー」の「ルーティングプロファイル」を選択してください。
<div align="center">
![図100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/48cf272a-9d3c-6be3-86ee-5ea7786940ce.png)
</div>
「新しいプロファイルの追加」をクリックします。
<div align="center">
![図19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/a6fbb06f-194b-cbc2-1047-2e125405ce93.png)
</div>
名前と説明を記載し、「Voice」にチェックを入れます。
<div align="center">
![図20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/41f0ad80-808c-9f1c-5f3d-7eb70ab19f34.png)
</div>
ルーティングプロファイルのキューに先ほど作成したキューを選択します。デフォルトのアウトバウンドキューも先ほどのキューを設定しておきましょう。
<div align="center">
![図21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/25648044-ce18-aa28-caf1-c2f8ed576321.png)
</div>
「新しいプロファイルを追加」がクリックできるようになります。
<div align="center">
![図22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/b27efd00-f9e6-ccd5-0028-524da41ef830.png)
</div>
同様の手順でもう一人の分も作成します。
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/1aa385c6-6d9b-5c96-01fd-0be5bb05ce89.png)

左のメニューで「ユーザー」の「ユーザー管理」をクリックします。
<div align="center">
![図23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/200c4018-7698-c5d8-5907-2b6a02f9cf73.png)
</div>
「新しいユーザーの追加」をクリックします。
<div align="center">
![図24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/45d9f3ad-0e81-411c-a34e-947b0b13d054.png)
</div>
「作成」を選択し次へ進みます。
<div align="center">
![図25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/6b72b554-91e0-860a-d0f5-dc8fe66656bf.png)
</div>
必要事項を記載します。
ルーティングプロファイルは先ほど作成したものを選択してください。電話の種類はソフトフォンでOKです。セキュリティプロファイルは受信発信を実施する場合は「Agent」を選択します。（※複数ユーザーを作成する場合はいずれかのユーザーに「Admin」も選択しておくことを推奨します。）
エージェント階層は空欄で大丈夫です。
<div align="center">
![図26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/8f8d1009-4c12-486a-4fd1-0badf69cf427.png)
</div>
「保存」をクリックします。
<div align="center">
![図27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/06db60df-f6e0-777f-c572-f795684f4d52.png)
</div>
「ユーザーの作成」をクリックします。
<div align="center">
![図28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/dc5599e7-dc6d-636b-4050-ae7a265c29b5.png)
</div>
「他のユーザーの作成」または「戻る」をクリックします。（今回はもう一人のユーザーを追加します。）
<div align="center">
![図29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/62989890-18eb-9a2d-6a41-af389a21a584.png)
</div>
もう一人のユーザーも作成しました。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/8767a1b8-efe8-53f4-d9e4-b48b89fe1cb0.png)

左メニューから「ルーティング」の「問い合わせフロー」をクリックし、先ほどまで作成していた問い合わせフローを開きます。
そして、「設定」の「キューの設定」をドラッグし、「Pressed 0」に接続します。
<div align="center">
![図30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/300db6ce-29ea-0f27-c6a0-21fa27d54a4e.png)
</div>
キューの設定は作成したキューを選択します。「Save」します。
<div align="center">
![図31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/0dd18b78-2d56-db14-54e6-fbfb005d9760.png)
</div>
「終了／転送」の「キューへの転送」をドラッグし、「キューの設定」から接続します。「キューへの転送」ブロックはデフォルト設定のままでOKです。
<div align="center">
![図32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/35513dce-59f1-4455-afb4-1980acbc3d45.png)
</div>
「キューの設定」の「エラー」、「キューへの転送」の「容量」及び「エラー」を「切断／ハングアップ」に接続します。
<div align="center">
![図33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/d1214e07-cda7-0edb-87eb-aba60db0d933.png)
</div>
同様にして「Pressed 1」にBさんのブロックを追加します。その後、「公開」をクリックします。
<div align="center">
![図34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/cc311dc6-b70c-2322-47a2-1fb27e1af4d4.png)
</div>
これでほとんど完成です！次にデフォルト顧客キューの音声設定を変更しましょう。

### デフォルト顧客キューの音声設定

左のメニュー「ルーティング」の「問い合わせフロー」から「Default customer queue」を選択してください。
<div align="center">
![図35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/a2b9c833-6e7f-8b74-95f4-dad473aed6d3.png)
</div>
テキストの内容を変更しましょう。こちらの設定でキュー転送時に流れる音声内容を設定できます。設定が終わったら「Save」して「公開」にしましょう。
<div align="center">
![図36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/c8081c48-86ce-14dd-f7a5-7d5d6ebdfc13.png)
</div>

最後にインスタンス生成時に取得した電話番号を今回作成した問い合わせフローに割り当てれば完成です。

### 電話番号の割り当て

左メニュー「ルーティング」の「電話番号」をクリックします。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/35f77037-95cf-a68d-9255-9bb57aeb597a.png)

取得した電話番号をクリックします。
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/49203915-9b0c-fe71-4eaa-a1d36d00b5f9.png)

作成した問い合わせフローを選択し、「保存」します。
![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/9c742bde-bca4-cda9-8e41-3509dc112a0f.png)

お疲れ様でした！以上で実装作業は完了です。

# オペレーターとして運用する方法

それではオペレーターとして受電対応する場合について説明します。

AWSのマネジメントコンソールから「Amazon Connect」を開きます。
![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/4802ddba-34c6-08f6-9315-6fb256d7906c.png)

「アクセスURL」をクリックします。
![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/8614d6f5-a4bc-152d-fe7e-b1ab4582261a.png)

作成したユーザー（「Agent」権限が与えられているもの）のユーザー名、パスワードを入力してサイインインしてください。
<img width="300" alt="図6.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/50cae245-c368-9418-c0f3-1323f3805a5c.png">

「ステータスの変更」で「Offline」から「Available」へ変更します。
<img width="300" alt="図7.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/c3a042a8-d9c0-2821-7b9b-6fa98d663fe3.png">

これでいつでも受電できる状態になりました。
<img width="300" alt="図8.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/6caf478f-09a6-aa64-c270-e72f522e8a59.png">

架電した人が音声案内に従い、こちらのオペレーター接続すると次のような表示になります。
「通話を受信」で通話が開始されます。
<img width="300" alt="図9.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/5706f245-335c-9ead-cf3c-394647e7c675.png">

「通話を終了」で切断されます。
<img width="300" alt="図101.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/06b95fe0-1032-279d-4125-fbe53d8b13bf.png">


### 「デスクフォン」で携帯電話に転送して受電する
歯車マークからデスクフォンを選択し、電話番号を入力すると携帯電話で受電することもできます。
<img width="300" alt="図10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/618791/ce4fed50-bb34-181b-fca1-c71e237a0ff6.png">

# おわりに

ダイヤル分岐のコネクトセンターの実装方法についてハンズオン形式で説明しました。
Amazon Cennectでは基本ブロックの組み合わせで様々なことができると改めて実感しました。
ご参考いただけると幸いです。