0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Amazon Connect+Lex】 ListPickerのタイトルをコンタクト属性で動的に設定する

Last updated at Posted at 2024-12-14

はじめに

Amazon Connectのフローではユーザーに選択肢を提示する際に、Get customer input ブロックのListPicker機能を利用できます。ListPickerを使うと、タイトル、サブタイトル、選択肢をリスト形式で表示することができます。
本記事では、ListPickerのタイトル(content > title)部分にコンタクト属性を使用して動的な値を設定する方法を記載します。動的に値を設定する事でインタラクティブで状況に応じたチャットフローを作成できます。

ゴール

下記画像の赤枠に部分(ListPicker のcontent > title 部分)に、セッション属性から取得した動的な値が表示されることを、Connectのテストチャットで確認します。
図の「カテゴリ1」のように、数字 の部分が動的に変更される仕組みを実装します。

image.png

対象の方

  • 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

マネジメントコンソールでの入力イメージは下記の通りです。

image.png

image.png

設定出来たら Save Intent を押下し、botをビルドしておきます。

2. Amazon Connectのフロー作成

2.1 ConnectのインスタンスにLexを追加

フローでLex Botを使用できるように設定します。
問い合わせフロー > Amazon Lex から上記で作成したLex BotをConnectのインスタンスに追加しておきます。

image.png

2.2 フローの作成

次の図のような簡単なフローを作成します。
正常に進めば 開始⇒①⇒②⇒③⇒④⇒⑤⇒切断 の流れで進んでいきます。

▼ Connectのフロー図

image.png

上記フローで使用しているブロックは下記の通りです。

①:コンタクト属性の設定(言語設定)
②:コンタクト属性の設定(セッション属性を設定)
③:プロンプトの再生(こんにちは)
④:顧客の入力を取得する(カテゴリを表示3つ表示)
⑤:プロンプトの再生(成功)

言語設定について

本記事のように顧客の入力を取得する ブロックでLexと紐づけてユーザ入力を取得する場合、コンタクト属性の設定 ブロックで図のように設定しないと、顧客の入力を取得する ブロックで入力を受け付けた際にエラーに落ちたので注意してください。

image.png

エラーの調査はCloudWatchのログから追えます。
言語設定をしない場合のエラーは下記の通りでした。

log
{
    "Results": "Error",
     ~~~
    "ErrorDetails": {
        "ErrorCode": "ResourceNotFoundException",
        "Message": "Service returned error code ResourceNotFoundException (Service: LexRuntimeV2, Status Code: 404~~~"
    }
}

参考:https://repost.aws/questions/QUn9bLLnclQxmD_DMBgfB9_Q/amazon-connect-error-using-lex-as-customer-input#ANi8beR-L4SQSJz8z5bQJdcA

リストピッカー(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 に設定しており、動的に値が入るようにしています。

属性の設定周りについては下記のドキュメントが参考になります。

content > title のセッション属性の設定について

下記のようにコンタクト属性の名前の後ろに半角スペースを入れておかないと、チャットを開始した際に動的に値が入らないので注意してください。

×:"title": "カテゴリ$.Attributes.set_categoryを選んでください",
〇:"title": "カテゴリ$.Attributes.set_category を選んでください",

×の場合、テストチャットすると下記のようになってしまいます。

image.png

3.テストチャットしてみる

ここまでできたらフローを保存+公開してマネジメントコンソールのからテストチャットしてみます。
Connectの管理者ワークスペース > チャットをテスト > テスト設定 をクリック。
フローを選択して 適用 ボタンを押下するとフローのテストチャットができます。

実際にテストチャットしてみると、想定通りの挙動になっている事が確認できました。

connect-test.gif

セッション属性の設定について

上記ではコンタクト属性の設定 ブロックで(②)ListPickerで使用する値を設定しましたが、このブロックでなくても次の図のようにテスト設定 >問い合わせ属性で同じように属性の設定ができます。

image.png

コンタクト属性の設定ブロックを削除し、次の属性で試してみます。

テスト設定 > 問い合わせ属性
{"set_category":"2"}

image.png

ListPickerの属性部分に、テスト設定で入力した 2 が入っており、動的に値が入る事を確認できました。

image.png

4.参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?