くらしのマーケット開発ブログ

くらしのマーケットを開発する、みんなのマーケットによる技術ブログ

Amazon Connect使ってみた!

CTOの戸澤です。 今回は、昨年AWSから発表されたAmazon Connectを使ってIVRを構築してみます。

f:id:curama-tech:20180309105522p:plain

Amazon Connectとは

Amazon Connectは、AWS上でコールセンターのシステム(IVR,PBX)を構築できるサービスです。 クラウドなのでスケールしやすく、使った分だけの従量課金です。 AWSのLexやLambdaとの連携、S3に録音を保存できるなどAWSの他のサービスを活用したシステムの構築ができます。

参考: Amazon Connect(簡単に使えるクラウド型コンタクトセンター)|AWS

利用にはAWS Console上で問い合わせフローを構築する必要があります。構築はGUIでドラッグ&ドロップするだけです。 インバウンド、アウトバウンド双方の通話をブラウザ上で動作するソフトフォンを使ってできます。

Amazon Connectは、2018/03/07現在、EU, バージニア、オレゴン、シドニーリージョンの4リージョンに展開されています。 東京リージョンには来ていませんが、シドニーリージョンで日本の050番号が取得できるようですので、今回はシドニーリージョンを使って試してみます。

なぜ電話システム(IVR)が必要なのか

みんなのマーケットには、コンサルティング本部という部署があり、くらしのマーケットのカスタマーサポートと出店者へのコンサルティングを行っています。

基本的には、メールでやりとりをしますが、出店者へのコンサルティング、カスタマーサポートは電話で行うことも多くあります。お客様と出店者それぞれ担当するスタッフが異なるため、問い合わせフローを使って振り分ける必要があります。

構築

Amazon Connectのウィザードが充実しているので、基本的にそれにしたがって構築していけます。

今回は簡単なIVRを作ってみます。 コールフローはインバウンドとアウトバウンドの双方に対応でき、簡単に

  • インバウンド: カスタマーからの着信 -> 対応可能時間の判定 -> ルーティング -> キューイング -> 担当者が受話
  • アウトバウンド: 担当者が発信 -> カスタマーが受話

という流れになります。

1.電話番号の取得まで

ウィザードにしたがって、

f:id:curama-tech:20180309105537p:plain

  1. インスタンスの作成
  2. 管理者の設定
  3. テレフォニーの設定(インバウンド、アウトバウンドの通話を許可するか)
  4. データストレージの設定(録音とログを保存するS3 Bucketを指定)

を進めます。

次に電話番号を取得します。 今回は日本の050番号を取得します。 050番号の他に、フリーダイヤルの0800番号も取得できます。

f:id:curama-tech:20180309105551p:plain

電話番号の取得ができたら、さっそく通話のテストをしてみます。 携帯から今回取得した050番号に電話してみると、携帯とAmazon Connect(ブラウザ)の間で通話ができました。

f:id:curama-tech:20180309105602p:plain

2.問い合わせフローで使う各種設定

問い合わせフローを構築する前に、問い合わせフローで使うオペレーション時間(電話対応する時間帯と曜日)、エージェントが受話するまでに待機するキュー、プロンプト(音声による案内)の登録を先に行います。

オペレーション時間

今回は、BusinessHoursという名前で新規にオペレーション時間を作成します。 タイムゾーンはJapan, すべての曜日、開始AM9時、終了PM5時に設定します。

f:id:curama-tech:20180309105617p:plain

キュー

InboundQueueという名前で新規にキューを作成します。 オペレーション時間をさきほど作成した、BusinessHours, アウトバウンド発信者ID番号を取得した050番号に、ID名を適当に設定します。

f:id:curama-tech:20180309105626p:plain

プロンプト

今回は、コールフローから次のプロンプトを登録しました。

  1. 「お電話ありがとうございます。」
  2. 「IVRのテストです。お問合わせの場合は1を、終了する場合は9を押してください。」
  3. 「只今の時間は営業時間外です。平日の9時から17時のあいだにあらためてお掛け直しをお願いします。」
  4. 「エラーが発生しました。申し訳ありませんが、しばらく経ってからおかけ直しください。」
ルーティングプロファイルとユーザーへの割り当て

ルーティングプロファイルを作成します。 ルーティングプロファイルは、エージェントが対応するキューの設定です。 InboundRoutingProfileという名前で新規に作成します。 キューはさきほど作成したInboundQueueを設定します。

f:id:curama-tech:20180309105638p:plain

現在、このインスタンスでは唯一の管理者だけがユーザーとして登録されています。インバウンド通話はこのユーザーがエージェントとなって受けるため、管理者のルーティングプロファイルを今回作成したInboundRoutingProfileに変更し、InboundQueueの対応ができるように設定します。

f:id:curama-tech:20180309105647p:plain

ここまで、必要な設定は完了しました。 次に問い合わせフローを構築していきます。

3.問い合わせフローを作成

今回はテンプレートを使わずに、ゼロから構築してきます。

f:id:curama-tech:20180309105703p:plain

フロー図のとおりですが、キューの設定 -> オペレーション時間の確認 -> 番号入力で分岐 -> キューへ転送 -> エージェントが受話 という流れに、各エラーハンドリングが付属している状態です。 この問い合わせフローを保存します。

さきほど取得した050番号はデフォルトでは別の問い合わせフローと紐付いているので、今回作成した問い合わせフローに紐付きを変更します。

f:id:curama-tech:20180309105716p:plain

ここまでの問い合わせフローの「保存」だけでは、着信しても使える状態になっていません。 最後に、問い合わせフローの「保存して発行」をしてデプロイします。

ここまで、IVRの構築が完了しました。

電話してみる

実際に使えるか試してみます。 Amazon Connectの管理画面 右上にある電話マークをクリックして、Contact Control Panel(CCP)を開き、Availableの状態にして待機しておきます。

1.インバウンド

携帯からAmazon Connectの050番号へ発信してみます。

f:id:curama-tech:20180309105728p:plain

f:id:curama-tech:20180309105737p:plain

プロンプトが再生され、1番を押下し、CCPから受話ができました。

2.アウトバウンド

f:id:curama-tech:20180309105747p:plain

Amazon Connectから携帯にアウトバウンドの電話をしてみます。 CCPのダイヤルパッドを使って、発信できました。 ただ、携帯(ドコモ)では、着信時に非通知設定になり050番号は表示されませんでした。

今後に期待すること

1. オペレーション時間に祝日を設定できる

オペレーション時間の設定では、曜日と時間帯別に対応の可否を設定できます。現在、利用している電話システムでは、祝日は対応時間外に設定できますが、それと同等の機能ができるとたいへん便利です。 とりあえずは、手動で祝日前に曜日単位で対応外に設定することで対応できそうです。(祝日明けに元に戻すのを忘れないようにする必要があります。また、Amazon Connectは、Lambdaと連携できるのでLambdaで祝日判定をすることもできそうです。)

2. 固定電話の番号を取得できる

現在、シドニーリージョンの日本の電話番号では050番号と通話料無料の0800番号が使えるようです。 フリーダイヤルの0120は場合によっては、東京03〜のような固定電話の番号でないとつながらない場合があります。

3. 番号通知してアウトバウンド発信できる

Amazon Connectからアウトバウンドの発信をするとドコモでは、非通知になりました(2018/03/08現在)。Qiitaの記事によると、番号通知は対応中のようです。

参考: Amazon Connect で非通知電話ではなく、番号通知で電話をかける方法 - Qiita

まとめ

  • Amazon ConnectでIVRを簡単に構築できる
  • アウトバウンドが非通知の表示になるので注意

みんなのマーケットでは、一緒に働いてみたいといった方をお待ちしてます。

次回は、SREエンジニアの記事です。