翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Connect のフローブロック: 顧客の入力の取得
このトピックでは、顧客情報のキャプチャ、顧客の応答用のインタラクティブな電話メニューの作成、フロー内の特定のパスへの顧客のルーティングなどのタスクのフローブロックを定義します。
説明
お客様からのインタラクティブで動的な入力を取得します。DTMF 入力 (電話からの入力) と Amazon Lex ボットによる割り込み可能なプロンプトに対応しています。
このブロックのユースケース
このブロックは、以下のシナリオでの使用を想定して設計されています。
-
お客様がタッチトーンキーパッドを使用して応答できる、インタラクティブな電話メニューを作成する。たとえば、「セールスの場合は 1 を押し、サポートの場合は 2 を押してください」
-
Amazon Lex ボットでこのブロックを使用して、音声認識のプロンプトを有効にする。お客様は話しかけることでプロンプトを中断できます。お客様にとって、対話がより自然で、応答性の高いものになります。
-
構造化された方法で顧客情報を収集する。例えば、お客様にアカウント番号、注文 ID、その他の関連情報の入力を求めます。
-
お客様からの入力内容に基づいて、フロー内の特定のパスにお客様をルーティングする。これにより、お客様をご要望に基づいて適切な部署やサービスに案内できます。
-
お客様が満足度や懸念を表明できるような選択肢を提示して、お客様からのフィードバックを収集する。
-
アンケートを実施してお客様の意見を聞き、貴重なフィードバックやインサイトを収集する。
-
お客様の問題に関する具体的な質問をして、お客様にトラブルシューティングプロセスを案内する。回答内容に基づいて、お客様に合わせたソリューションを提案できます。
コンタクトのタイプ
次の表は、このブロックでのコンタクトのルーティング方法をチャネルごとに示しています。
Channel | サポート対象? |
---|---|
音声 |
あり |
Chat |
はい (ただし、Amazon Lex が使用されている場合。それ以外の場合は [エラー] ブランチに分岐) |
タスク |
あり |
E メール |
あり |
フロータイプ
このブロックは、次のフロータイプで使用できます。
フロータイプ | サポート対象? |
---|---|
着信フロー |
あり |
顧客キューフロー |
あり |
顧客保留フロー |
いいえ |
顧客ウィスパーフロー |
いいえ |
アウトバウンドウィスパーフロー |
いいえ |
エージェント保留フロー |
いいえ |
エージェントウィスパーフロー |
いいえ |
エージェントへの転送フロー |
あり |
キューへの転送フロー |
あり |
このブロックの設定方法
Get customer input ブロックを設定するには、 Amazon Connect 管理ウェブサイトを使用するか、Amazon Connect Flow 言語の GetParticipantInput アクション、または ConnectParticipantWithLexBot および Compare アクションを使用します。
プロンプトの選択
次の画像は、[お客様の入力を取得する] ブロックの [プロパティ] ページを示しています。「Welcome to Example Corp」という音声プロンプトを再生するように、手動で設定されています。
![[顧客の入力を取得する] ブロックのプロパティページ。](images/get-customer-input-properties1a.png)
次のオプションの中から、お客様に再生するプロンプトを選択します。
-
プロンプトライブラリ (オーディオ) から選択: Amazon Connect に含まれている録音済みのプロンプトのいずれかから選択するか、 Amazon Connect 管理ウェブサイトを使用して独自のプロンプトを記録してアップロードできます。
-
[S3 バケットから音声ファイルを指定]: S3 バケットにある音声ファイルを手動で、または動的に指定できます。
-
[テキスト読み上げまたはチャットテキスト]: 再生するプロンプトをプレーンテキストまたは SSML で入力できます。これらのテキストベースのプロンプトは、Amazon Polly を使用してお客様に音声プロンプトとして再生されます。SSML 拡張テキストで入力した方が、指定したテキストから Amazon Connect で音声を生成する方法を細かく制御できます。発音、音量、話す速度など、音声のさまざまな要素をカスタマイズして制御できます。
DTMF 入力用に設定する
次の画像は、[プロパティ] ページの [DTMF] セクションを示しています。お客様が 1 を押すか 2 を押すかに応じて適切な分岐を判断するために、条件が 2 つ追加されています。お客様が何も入力しなかった場合は 5 秒後にタイムアウトします。
![プロパティページの [DTMF] セクション。](images/get-customer-input-properties2a.png)
次のオプションを選択します。
-
[Set timeout (タイムアウトの設定)]: ユーザーがプロンプトに応答する方法を決定するまでの待機時間を指定します。
-
最小値: 1 秒
-
最大値: 180 秒
この時間が経過すると、タイムアウトエラーが発生します。音声チャネルの場合、一桁目の DTMF が入力されるまでのタイムアウトです。静的に定義する必要があり、0 より大きい有効な整数でなければなりません。
-
-
[条件の追加]: 顧客の入力と比較照合される数値。
DTMF を使用する場合の Flow 言語表現
次のコード例は、DTMF の設定が、Flow 言語の GetParticipantInput アクションではどのように表現されるかを示しています。
{ "Parameters": { "StoreInput": "False", "InputTimeLimitSeconds": "5", "Text": "Welcome to Example Corp. Please press 1 for sales, press 2 for support" }, "Identifier": "Get Customer Input", "Type": "GetParticipantInput", "Transitions": { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Conditions": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "Equals", "Operands": [ "1" ] } }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "Equals", "Operands": [ "2" ] } } ], "Errors": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "InputTimeLimitExceeded" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingCondition" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingError" } ] } }
Amazon Lex 入力用に を設定する
-
Lex ボットを選択: Amazon Lex ボットを作成したら、ドロップダウンリストからボットの名前を選択します。構築済みのボットのみが、ドロップダウンリストに表示されます。
-
[ARN を入力]: Amazon Lex ボットの Amazon リソースネームを指定します。
-
[セッション属性]: 現在のコンタクトのセッションにのみ適用される Amazon Lex セッション属性を指定します。次の図は、最大通話時間が 8000 ミリ秒 (8 秒) に設定されたセッション属性を示しています。
-
インテント
-
[インテントを追加]: このオプションを選択し、比較対象とする Amazon Lex ボットのインテントの名前を入力します。
インテントを追加する方法はいくつかあります。
-
テキストボックスに手動で入力します。
-
インテントを検索します。
-
ドロップダウンリストからインテントを選択します。
-
ロケールでインテントのドロップダウンリストをフィルタリングします。選択したロケールに基づいて、ボットのインテントがドロップダウンリストに表示されます。
ドロップダウンリストから Lex ボット ARN とエイリアスを選択すると、ロケールを使用して検索することで、そのボットのインテントを追加できます。インテントを一覧表示するには、ボットに Amazon Connect タグが必要であり、ボットエイリアスにバージョンが関連付けられている必要があります。
Intents ドロップダウンボックスには、Amazon Lex V1 ボット、クロスリージョンボット、またはボット ARN が動的に設定されている場合は、インテントは一覧表示されません。これらのインテントについては、次のオプションを試して見つけてください。
-
AmazonConnectEnabled タグが true に設定されているかどうかを確認します。
-
Amazon Lex コンソールを開き、ボットを選択し、ボットを選択し、タグを選択します。
-
AmazonConnectEnabled タグが存在しない場合は、AmazonConnectEnabled = true を追加します。
-
Amazon Connect 管理ウェブサイトに戻ります。フローデザイナーを更新して、「顧客入力の取得」ブロックでの選択を確認します。
-
-
バージョンがエイリアスに関連付けられているかどうかを確認します。
-
Amazon Connect 管理ウェブサイトで、ルーティング、フロー、ボット、エイリアスを選択します。次の図に示すように、フローモジュールとフローモジュールで の使用が有効になっていることを確認します。
-
フローデザイナーを更新して、「顧客入力の取得」ブロックでの選択を確認します。
-
-
-
[Use sentiment override] (感情の上書きを使用): Amazon Lex インテントの前に、感情スコアに基づいて分岐します。
感情スコアは、顧客の最後の発話に基づいています。会話全体に基づいているわけではありません。
例えば、希望する予約時間が空いていないため、否定的な感情を抱いた顧客から電話があったとします。この場合、否定的な感情スコアに基づいてフローを分岐できます (例: 否定的な感情が 80% を超える場合)。または、顧客から電話があった場合に、その顧客が 80% を超える肯定的な感情を抱いているときは、分岐してサービスでアップセルすることができます。
次の画像は、[Amazon Lex] タブの [インテント] セクションを示しています。否定的な感情スコアが 80% のときにコンタクトをルーティングするように設定されています。
否定的な感情スコアと肯定的な感情スコアの両方を追加すると、常に否定的なスコアが最初に評価されます。
感情スコア、代替インテント、および感情ラベルを問い合わせ属性とともに使用する方法については、「コンタクト属性を確認する」を参照してください。
-
-
メッセージでボットを初期化
-
目的: このオプションを選択すると、エンドユーザーの初期メッセージを Lex に渡し、エンドユーザーチャットエクスペリエンスを向上させるためにボットを準備できます。StartChatContact API の呼び出し中に、初期メッセージが新しく作成されたチャットに送信されます。
-
このオプションを選択すると、常にボットの初期化メッセージで
`$.Media.InitialMessage`
としてブロックがシリアル化されます。 -
必須: いいえ。これは必須パラメータではありません。
-
注記
初期メッセージ属性がコンタクトの一部として含まれていない場合、顧客の入力の取得ブロックはフローのエラーブランチに進みます。ウェブチャット、SMS、ビジネスチャット用 Apple メッセージなど、さまざまなメッセージングタイプに対して個別のフローを設定するには、[顧客の入力の取得] ブロックを使用する前に、[コンタクト属性の確認] ブロックを使用して、初期メッセージが使用可能であることを確認します。
![カスタマープロンプトまたはボットの初期化のプロパティページで、[メッセージでボットを初期化] と [お客様の最初のアトランスを使用 (テキストのみ)] が表示されています。](images/get-customer-input-properties-initialize-bot-1.png)
音声入力の設定可能なタイムアウト
音声の問い合わせのタイムアウト値を設定するには、Lex ボットを呼び出す [顧客の入力を取得する] ブロックで、次のセッション属性を使用します。これらの属性を使用すると、発信者からの音声入力 (はい/いいえの質問に対する回答、日付やクレジットカード番号の提供) を Amazon Lex で収集する前に顧客が発話を終了したと判断するまで待つ時間を指定できます。
Lex 音声対話中のチャット入力のタイムアウトを設定可能
[Intents] (インテント) の下の [Chat timeout] (チャットタイムアウト) フィールドを使用して、チャット入力のタイムアウトを設定します。Lex 音声対話で非アクティブな顧客がタイムアウトするまでの時間を入力します。
-
最小: 1 分
-
最大 7 日
次の画像は、顧客が 2 分間非アクティブになるとチャットをタイムアウトするように設定された [顧客の入力の取得] ブロックを示しています。
![[プロパティ] ページの [インテント] セクション、[チャットのタイムアウト] オプション。](images/get-customer-input-chattimeout.png)
すべての参加者が人間である場合のチャットタイムアウトの設定については、「Amazon Lex チャット参加者のチャットタイムアウトを設定する」を参照してください。
Amazon Lex への割り込みの設定と使用
説明が終わるのを待つことなく、顧客が自分の声を使って Amazon Lex ボットを文の途中で中断できるようにすることができます。例えば、オプションのメニューからの選択に慣れている顧客は、プロンプト全体を聞かなくてもすぐに選択できるようになっています。
DTMF 入力の設定可能なフィールド
次のセッション属性を使用して、Lex ボットが DTMF 入力に応答する方法を指定します。
-
終了文字
x-amz-lex:dtmf:end-character:[IntentName]:[SlotName]
発話を終了する DTMF 終了文字。
デフォルト = #
-
削除文字
x-amz-lex:dtmf:deletion-character:[IntentName]:[SlotName]
それまでに入力された DTMF ディジットをクリアして発声を終了する DTMF 文字。
デフォルト = *
-
終了タイムアウト
x-amz-lex:dtmf:end-timeout-ms:[IntentName]:[SlotName]
発話が終了したと見なすための DTMF ディジットの間のアイドル時間 (ミリ秒単位)。
デフォルト = 5000 ミリ秒 (5 秒)。
-
発話あたりの許可される DTMF ディジットの最大数
x-amz-lex:dtmf:max-length:[IntentName]:[SlotName]
特定の発話で許可される DTMF ディジットの最大数。増やすことはできません。
デフォルト = 1024 文字
詳細については、「フローブロックが Amazon Lex セッション属性を使用する方法」を参照してください。
Amazon Lex を使用する場合の Flow 言語表現
次のコード例は、Amazon Lex の設定が、Flow 言語の ConnectParticipantWithLexBot アクションではどのように表現されるかを示しています。
{ "Parameters": { "Text": "Welcome to Example Corp. Please press 1 for sales, press 2 for support", "LexV2Bot": { "AliasArn": "arn:aws:lex:us-west-2:23XXXXXXXXXX:bot-alias/3HL7SXXXXX/TSTALXXXXX" }, "LexTimeoutSeconds": { "Text": "300" } }, "Identifier": "Get Customer Input", "Type": "ConnectParticipantWithLexBot", "Transitions": { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Errors": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "InputTimeLimitExceeded" }, { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "ErrorType": "NoMatchingError" }, { "NextAction": "Get Customer Input-ygqIfPM1n2", "ErrorType": "NoMatchingCondition" } ] } }
フラグメント化されたアクションの表現
次のコード例は、会話の後で Lex ボットから返された Amazon Lex 感情スコアに対する、フラグメント化された Compare アクションを示しています。
{ "Parameters": { "ComparisonValue": "$.Lex.SentimentResponse.Scores.Negative" }, "Identifier": "Get Customer Input-ygqIfPM1n2", "Type": "Compare", "Transitions": { "NextAction": "Get Customer Input-xDRo1hbBRB", "Conditions": [ { "NextAction": "d8701db7-3d31-4581-bd4c-cb49c38c6f43", "Condition": { "Operator": "NumberGreaterOrEqualTo", "Operands": [ "0.08" ] } } ], "Errors": [ { "NextAction": "Get Customer Input-xDRo1hbBRB", "ErrorType": "NoMatchingCondition" } ] } }
フローブロックのブランチ
次の図は、このブロックが DTMF 入力用に設定されている場合の表示例です。入力の 2 つのブランチとして [Pressed 1] と [Pressed 2] が表示されています。また、[タイムアウト]、[デフォルト]、および [エラー] のブランチも示しています。
![設定された [顧客の入力の取得] ブロック。](images/get-customer-input-branches.png)
-
[タイムアウト]: Amazon Lex で指定されたチャットタイムアウト、または DTMF 用に [タイムアウトの設定] で指定した時間が経過しても、お客様から何も入力がない場合の対応。
-
[デフォルト]: お客様の入力が DTMF のどの条件にも一致しない場合、または Amazon Lex ボットでインテントが実行された場合。上の図のように、1 または 2 以外の値を入力した場合、コンタクトは [デフォルト] ブランチにルーティングされます。
-
[エラー]: ブロックを実行したが、DTMF でエラーが発生した場合、または Amazon Lex ボットのインテントに基づいた処理ができない場合。
追加の設定のヒント
-
[顧客の入力を取得する] ブロックでは、S3 バケットにある音声プロンプトを Amazon Lex V2 で使用することができません。
-
Amazon Connect ライブラリまたは S3 バケットからのプロンプトの選択については、プロンプトの再生 ブロックを参照してください。
-
このブロックは、DTMF 入力またはチャット応答を受け入れるように設定できます。Amazon Lex と連携するように設定することもでき、例えば、コンタクトを発話に基づいてルーティングできます。
-
Amazon Lex との統合に使用できるセッション属性。このトピックでは、Amazon Lex との統合に使用できるセッション属性の一部について説明します。使用可能なすべての Amazon Lex セッション属性のリストについては、「ユーザー入力をキャプチャするためのタイムアウトの設定」を参照してください。(テキスト読み上げまたはチャットに) テキストを使用する場合は、最大 3,000 の課金対象文字 (合計 6,000 文字) を使用できます。
-
Amazon Lex ボットは、フローで使用すると、発声とキーパッド入力の両方をサポートします。
-
音声と DTMF の両方で、会話ごとに 1 つのセッション属性のセットしか存在できません。優先順位は次のとおりです。
-
Lambda が提供するセッション属性: 顧客の Lambda 呼び出し中はセッション属性よりも優先されます。
-
Amazon Connect コンソールが提供するセッション属性: [顧客入力の取得] ブロックで定義されます。
-
サービスのデフォルト: 属性が定義されていない場合にのみ使用されます。
-
-
-
入力をシャープ記号 # で終了し、星の記号 * を使用してキャンセルするよう問い合わせに求めることができます。Lex ボットの使用時に顧客に # で入力を終了するよう求めないと、さらにキーが押されるのを待機するのを Lex が停止するまで顧客は 5 秒待つことになります。
-
タイムアウト機能を制御するには、Lex セッション属性をこのブロックで使用するか、Lex Lambda 関数で設定します。Lex Lambda 関数で属性を設定する場合は、Lex ボットが呼び出されるまでデフォルト値が使用されます。詳細については、Amazon Lex デベロッパーガイドの「Using Lambda Functions」を参照してください。
-
この記事で説明しているセッション属性のいずれかを指定する場合は、ワイルドカードを使用できます。ワイルドカードを使用すると、インテントまたはボットに複数のスロットを設定できます。
ワイルドカードの使用例をいくつか以下に示します。
-
特定のインテント (PasswordReset など) のすべてのスロットを 2000 ミリ秒に設定する例は、次のとおりです。
名前 =
x-amz-lex:max-speech-duration-ms:PasswordReset:*
値 = 2000
-
すべてのボットのすべてのスロットを 4000ミリ秒に設定する例は、次のとおりです。
名前 =
x-amz-lex:max-speech-duration-ms:*:*
値 = 4000
ワイルドカードは、フローのボット全体に適用されますが、ブロック全体には適用されません。
例えば、Get_Account_Number ボットがあるとします。フローには、2 つの [Get customer input] (顧客の入力を取得する) ブロックがあります。最初のブロックでは、ワイルドカードを使用してセッション属性を設定します。2番目のブロックでは、属性を設定しません。このシナリオでは、ボットの動作の変更は、セッション属性が設定されている最初の [顧客の入力を取得する] ブロックにのみ適用されます。
-
-
セッション属性をインテントレベルとスロットレベルに適用するように指定できるため、特定のタイプの入力を収集するときにのみ属性を設定するように指定できます。例えば、アカウント番号を収集する場合は、日付を収集する場合よりも長い [無音開始しきい値] を指定できます。
-
Amazon Connect を使用して Lex ボットに DTMF 入力が送信された場合、顧客入力は [Lex リクエスト属性] として利用可能になります。属性名は
x-amz-lex:dtmf-transcript
で、この値は最大 1024 文字です。さまざまな DTMF 入力シナリオを以下に示します。
顧客入力 DTMF 転写 [DEL]
[DEL]
[END]
[END]
123[DEL]
[DEL]
123[END]
123
コードの説明は以下のとおりです。
-
[DEL] = 削除文字 (デフォルトは *)
-
[END] = 終了文字 (デフォルトは #)
-
このブロックで生成されるデータ
このブロックではデータは生成されません。
エラーシナリオ
次のシナリオを検討してみましょう。フローが 2 つあり、それぞれがお客様からの DTMF 入力を取得します。
-
1 つのコンタクトフローでは [顧客の入力を取得する] ブロックを使用して、顧客から DTMF 入力を要求します。
-
DTMF 入力があると、その入力が [フローへの転送] ブロックを使用して、コンタクトを次のフローに移動します。
-
次のコンタクトフローでは、[顧客の入力を保存する] ブロックを使用して、顧客からより多くの DTMF 入力を取得します。
最初のフローと 2 番目のフローの間には設定時間があります。このため、顧客が 2 番目のフローに対して非常に速く DTMF 入力を入力すると、一部の DTMF の桁が削除される可能性があります。
例えば、顧客は 5 を押し、2 番目のフローからのプロンプトを待ってから「123」と入力する必要があります。この場合、123 は問題なくキャプチャされます。しかし、プロンプトを待たずに非常に速く「5123」と入力すると、[顧客の入力を保存する] ブロックは 23 または 3 しかキャプチャできない可能性があります。
2 番目のフローの [顧客の入力を保存する] ブロックですべての桁が確実に取得されるようにするには、お客様がプロンプトの再生を待ってから DTMF 入力を行う必要があります。
サンプルフロー
Amazon Connect には、サンプルフローのセットが含まれています。フローデザイナーでサンプルフローにアクセスする方法については、「Amazon Connect のサンプルフロー」を参照してください。以下のトピックでは、このブロックを含むサンプルフローについて説明します。
その他のリソース
Amazon Lex の詳細とプロンプトの追加については、以下のトピックを参照してください。