はじめに
Amazon Connectのフローではユーザーに選択肢を提示する際に、Get customer input
ブロックのListPicker機能を利用できます。ListPickerを使うと、タイトル、サブタイトル、選択肢をリスト形式で表示することができます。
本記事では、ListPickerのタイトル(content > title)部分にコンタクト属性を使用して動的な値を設定する方法を記載します。動的に値を設定する事でインタラクティブで状況に応じたチャットフローを作成できます。
ゴール
下記画像の赤枠に部分(ListPicker のcontent > title 部分)に、セッション属性から取得した動的な値が表示されることを、Connectのテストチャットで確認します。
図の「カテゴリ1」のように、数字
の部分が動的に変更される仕組みを実装します。
対象の方
- ListPicker のcontent > title 部分に動的な値を設定したい方
- Conncetのフローのテストチャットをやりたい方
作成するもの
- Amazon Connectのフロー:1つ
- Amazon Lex:1つ
本記事で書かない事
Connectのインスタンスの作成方法
Amazon Connectのインスタンスは作成済みであることを想定しています。
1.Amazon Lex の作成
Connectのフローにおいて Get customer input
ブロックで使用するLexを作成します。
本記事ではLex Botは次のようにインテント(Intent name)とサンプル発話(Sample utterances)を設定しておきます。
Intent name | Sample utterances |
---|---|
category1 | カテゴリ1 |
category2 | カテゴリ2 |
category3 | カテゴリ3 |
マネジメントコンソールでの入力イメージは下記の通りです。
設定出来たら Save Intent
を押下し、botをビルドしておきます。
2. Amazon Connectのフロー作成
2.1 ConnectのインスタンスにLexを追加
フローでLex Botを使用できるように設定します。
問い合わせフロー > Amazon Lex から上記で作成したLex BotをConnectのインスタンスに追加しておきます。
2.2 フローの作成
次の図のような簡単なフローを作成します。
正常に進めば 開始⇒①⇒②⇒③⇒④⇒⑤⇒切断 の流れで進んでいきます。
▼ Connectのフロー図
上記フローで使用しているブロックは下記の通りです。
①:コンタクト属性の設定(言語設定)
②:コンタクト属性の設定(セッション属性を設定)
③:プロンプトの再生(こんにちは)
④:顧客の入力を取得する(カテゴリを表示3つ表示)
⑤:プロンプトの再生(成功)
言語設定について
本記事のように顧客の入力を取得する
ブロックでLexと紐づけてユーザ入力を取得する場合、コンタクト属性の設定
ブロックで図のように設定しないと、顧客の入力を取得する
ブロックで入力を受け付けた際にエラーに落ちたので注意してください。
エラーの調査はCloudWatchのログから追えます。
言語設定をしない場合のエラーは下記の通りでした。
{
"Results": "Error",
~~~
"ErrorDetails": {
"ErrorCode": "ResourceNotFoundException",
"Message": "Service returned error code ResourceNotFoundException (Service: LexRuntimeV2, Status Code: 404~~~"
}
}
リストピッカー(ListPicker)の設定値について
本記事の 顧客の入力を取得する
ブロックでは次のようにリストピッカーを設定しています。
{
"templateType": "ListPicker",
"version": "1.0",
"data": {
"content": {
"title": "カテゴリ$.Attributes.set_category を選んでください",
"subtitle": "",
"elements": [
{ "title": "カテゴリ1" },
{ "title": "カテゴリ2" },
{ "title": "カテゴリ3" }
]
}
}
}
データの構造は下記のドキュメントが参考になります。
上記では $.Attributes.set_category
のようにセッション属性の値をListPickerのcontent > title に設定しており、動的に値が入るようにしています。
属性の設定周りについては下記のドキュメントが参考になります。
3.テストチャットしてみる
ここまでできたらフローを保存+公開してマネジメントコンソールのからテストチャットしてみます。
Connectの管理者ワークスペース > チャットをテスト > テスト設定 をクリック。
フローを選択して 適用
ボタンを押下するとフローのテストチャットができます。
実際にテストチャットしてみると、想定通りの挙動になっている事が確認できました。
セッション属性の設定について
上記ではコンタクト属性の設定
ブロックで(②)ListPickerで使用する値を設定しましたが、このブロックでなくても次の図のようにテスト設定 >問い合わせ属性で同じように属性の設定ができます。
コンタクト属性の設定ブロックを削除し、次の属性で試してみます。
{"set_category":"2"}
ListPickerの属性部分に、テスト設定で入力した 2
が入っており、動的に値が入る事を確認できました。