Amazon Connectはクラウド上で構築するコールセンターの様なサービスとなっていますが、 電話応答のフローの中に、AWSのチャットボットサービスのLexを組み込むことが出来ます。
今回はこの機能を使い、音声による電話転送を行ってみようと思います。
目次
概要 連絡先のDBの作成 Lambda関数の作成 Lexでチャットボットの作成 Connectの設定 最後に
概要
大まかの流れとしてはConnectに電話をかけたらLexが呼び出され、話したい相手を伝えたら LambdaがDynamoDBより電話番号を引っ張り出し、Connectが電話の転送を行う…… という仕組みを作ってみましょう。
それでは早速始めます。
連絡先のDBの作成
後ほど分かりますが、LexのチャットボットをConnectと連携させるには両方共同じリージョンではいけないので、今回はバージニア北部で作りましょう。
名前、及び電話番号を保存する為のDBをDynamoDBで作成します。
市外局番や携帯電話番号が0から始まる場合は、0を外します。
Lambda関数の作成
続いてLexから名前を渡されたら電話番号を返すLambdaを作成します。 Lambdaが電話番号をDBから取ってきた後、Lexがその電話番号をConnectに渡す必要があるので
レスポンスのsessionAttributesに電話番号を含めるのを忘れないようにしましょう。
Lexでボットの作成
Lambdaが完成したらLexでチャットボットを作ります。
まずは転送先専用のスロットを作成しましょう。転送先の名前がSupportとMobileのみの場合はこんな感じになります。
繋ぎたい連絡先を聞き出すインテントを作成し、先程作成したスロットを埋め込み、処理用のLambdaに流します。
ボットの作成に関しましては以下の記事でも説明しています。
Connectの設定
まずLexをConnectに追加する必要があるので、Amazon Connectのコンソール画面より「問い合わせフロー」→「Amazon Lex」→「+Lexボットの追加」 で先程作成したボットを追加します。
ここの連携は同じリージョンにLexのサービスが展開されてないと表示されないので注意が必要です。
後はお問い合わせフローを作成すれば終わりです。
Connectに管理者としてログインし、新しい問い合わせフローを作成します。
Lexの呼び出しは「顧客の入力を取得する」より設定します。 ここでは作成したボットの情報を入力して行きましょう。
ここの呼び出したLexインテントのsessionAttributeは$.Lex.SessionAttributesよりConnect内で呼び出せます。 ので、「終了/転送」より「電話番号への転送」を追加し、国コードを日本、 電話番号に「$.Lex.SessionAttributes.{レスポンスの電話番号キー}」を設定しましょう。
最終的にこのようなフローが出来上がりました。
後は電話番号に今作成したフローを紐づければ完成です。
最後に
無事指定した名前に転送されましたでしょうか?
今回はLexを呼び出し、変数をConnectで使用しましたが同じ事をLambdaでも出来ます。 また、今回Lexの方でスロットの連絡先は手動で追加したと思いますが、APIにより動的にスロットを作成出来たりするので 連絡先の追加や削除が行われる場合はこちらも試してみてください。