ハンズオン#1-5:Amazon Connect との統合

Lex ボットを Amazon Connect インスタンスに登録する

AWS マネジメントコンソールにて、本ハンズオンで使用する Amazon Connect インスタンスを選択します。

左メニューから Contact flows を選択し、Amazon Lex セクションで以下のように今回作成した MakeReservation ボットを登録します。

  • リージョン:米国東部: バージニア北部
  • ボット: MakeReservation
  • エイリアス: Prod

Amazon Lex ボットの登録が完了すると、以下のような状態になります。

問い合わせフローから Amazon Lex ボットを呼び出す

管理者権限のあるユーザーで Amazon Connect の管理画面にログインし、以下のようなフローを作成します。フローの名前は MakeReservationFlowとしましょう。

音声の設定ブロックでは、以下のように話者を設定するだけではなく 言語属性を設定 にチェックするようにしてください。 V2 の Amazon Lex ボットを問い合わせフローから呼び出す場合、このチェックが必要になります。

“顧客の入力を取得する” ブロックは以下のようになります。 所定のプロンプトが読み上げられた後、選択した Lex ボットが呼び出されユーザの発話に基づいてインテントが開始されます。 その後、インテントが完了すると Amazon Lex ボットからインテント名が返され、その値に基づいてフローを分岐させることができます。

二つの”コンタクト属性の設定”ブロックは以下のように設定してください。 Amazon Lex ボットが呼び出されると、セッション属性(または Amazon Lex 属性)が返されます。例えば、 $.Lex.Slots.slotName は顧客とAmazon Lex ボットの対話中に検出されたスロットのkey/valueペアです。このブロックでは、 Amazon Lex 属性をユーザー定義属性に格納し、後続のブロックで使えるようにします。

[Waitlist の後続ブロック]

宛先属性
Number $.Lex.Slots.Number
TableType $.Lex.Slots.TableType

[Takeout の後続ブロック]

宛先属性
PhoneNumber $.Lex.Slots.PhoneNumber
Date $.Lex.Slots.Date
Time $.Lex.Slots.Time

“プロンプトの再生”ブロックには、それぞれ以下のようにテキストを入力します。

[Waitlist の後続ブロック]

順番待ちのご予約ありがとうございます。 $.Attributes.Number めいで、 $.Attributes.TableType のご予約をうけたまわりました。

[Takeout の後続ブロック]

お持ち帰りのご予約ありがとうございます。 $.Attributes.Date の$.Attributes.Time ころまでにお店にお越しください。お見えにならない場合は$.Attributes.PhoneNumber にお電話する場合がございます。

これでフローは完成です。フローを公開して、電話番号を割り当てましょう。

テスト

電話番号にテストコールして、以下の動作を確認してみましょう。

  • 最初のプロンプトの後に「順番待ち」と発話すると、Waitlist インテントが実行されるのを確認します。
  • 最初のプロンプトの後に「持ち帰り」と発話すると、Takeout インテントが実行されるのを確認します。
  • インテントの実行結果(電話番号や日時)が復唱されるのを確認します。
  • Cloudwatch Logs で上記の結果を確認してみましょう。