Retail 認証の事前構築済みコンポーネントは、必要な認証レベルで認証するためにユーザーから情報を収集します。このコンポーネントは、小売業界で一般的な(ただし、限定されるものではない)認証要件に対応しています。このコンポーネントは、電話番号の収集の事前構築済みコンポーネントを使用して、ユーザーの詳細情報を収集して検証します。
認証レベル
異なる事前構築済みコンポーネントには、複数のレベルの認証が必要です。レベルが高いほど、ユーザーを認証するにはより多くのユーザー情報が必要になります。Retail 認証コンポーネントを使用すると、認証レベル表で説明されているように、ユーザーはレベル 0(ANI 一致)またはレベル 1(基本)で認証を行うことができます。
認証レベル | 要件 |
---|---|
レベル 0: ANI 一致 | ユーザーは、登録済みアカウントに対応する電話番号から電話をかけるか、電話番号を入力して認証されます。 ユーザーは、グリーティングの事前構築済みコンポーネントを使用してレベル 0 で認証することができます。 |
レベル 1: 基本 | ユーザーは、メールアドレスまたは電話番号に送信されたワンタイム パスワード(OTP)コードを検証することで認証されます。 |
サポートされているユーザータイプ
Retail 認証コンポーネントは、登録済みの電話番号とメールアドレスを持つユーザーをサポートします。
制限事項
一般的な事前構築済みコンポーネントの制限に加えて、この事前構築済みコンポーネントには次の制限があります。
- OTP は、以前にユーザーに登録された携帯電話番号またはメールアドレスにのみ送信されます。このコンポーネントは、自身のアカウントに登録していない別の電話番号から発信した顧客を OTP を使用して認証することはありません。ユーザーが別の電話番号から電話をかけてきた場合は、セキュリティ保護用の質問を使用して発信者を認証します。
- このコンポーネントはデータを暗号化しません。
サンプル ダイアログ
次のサンプル ダイアログは、この事前構築されたコンポーネントによって処理される一般的なシナリオを示しています。サンプル ダイアログは、コンポーネントがテレフォニーを使用して呼び出されたときの動作を示しています。呼び出しにより、Default Welcome Intent と会話開始時の最初のエージェント レスポンスがトリガーされます。
レベル 0 の認証の成功: ANI 一致
既存のアカウントに登録された電話番号からユーザーが電話をかけ、自分のアカウントを確認すると、レベル 0 で正常に認証されます。
ユーザー入力 | エージェントの応答 |
---|---|
こんにちは。ダイヤルされた電話番号は John さんのアカウントにリンクされています。他の人の注文についてのお問い合わせですか?該当する場合は「はい」、それ以外の場合は「いいえ」とおっしゃってください。 | |
× | |
お電話いただき、ありがとうございます。正常に識別されました。 |
レベル 1 の認証の成功: OTP
ユーザーが承認されていない電話番号から電話をかけてきています。コンポーネントはユーザーの登録済み電話番号を収集し、ユーザーが選択したチャネルに OTP を送信して確認を求めます。ユーザーは有効な OTP を提供でき、レベル 1 で正常に認証されます。
ユーザー入力 | エージェントの応答 |
---|---|
Google に関連付けられている電話番号が見つかりませんでした。登録されている電話番号をお知らせください。 | |
エージェントは、電話番号の収集の事前構築済みコンポーネントを使用して電話番号を収集します | |
電話番号の収集が完了しました。 セキュリティ上の理由から、本人確認を行う必要があるためコードを送信します。コードを電話とメールのどちらで受け取ることをご希望ですか? |
|
電話 | |
確認ですが、OTP をスマートフォンで受信することをご希望ですか?「はい」または「いいえ」でお答えください。 | |
はい | |
末尾が 0000 のご登録電話番号にコードを送信しました。この処理には数秒かかることがあります。コードを確認してください。 | |
123457 | |
お電話いただき、ありがとうございます。正常に識別されました。 |
命名規則
この事前構築済みコンポーネントでは、次の命名規則が使用されています。
機能 | 形式 | 例 |
---|---|---|
フロー | [コンポーネント名] | Retail 認証 |
コンポーネントに固有のインテント | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_retail_authentication_incorrect_phone_number |
エンティティ タイプ | prebuilt_components_[component_name]_[entity_type] | prebuilt_components_channel_email_phone |
Webhook | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_retail_authentication:verify_user_details |
入力パラメータ
入力パラメータは、コンポーネントの特定の動作を構成するために使用されるパラメータです。このパラメータは、コンポーネントの動作を決定するためにフロー内の 1 つ以上の条件によって使用されます。フロースコープのパラメータは、後述するように、コンポーネントのスタートページで設定する必要があります。セッション スコープのパラメータは、呼び出しフローまたはこのコンポーネントのスタートページで設定できます。
この事前構築済みコンポーネントは、次の入力パラメータを受け入れます。
パラメータ名 | 説明 | 入力形式 |
---|---|---|
$session.params.auth_level_req | エンドユーザーが認証される認証レベルを定義します。有効な値は 0 または 1 です。 |
integer |
$session.params.auth_level | (省略可)エンドユーザーの現在の認証レベルを示します。 | integer |
$session.params.phone_number | (省略可)エンドユーザーの電話番号。このパラメータを指定しない場合、このコンポーネントはエンドユーザーから電話番号を収集します。 | 文字列 |
$flow.max_retry_phone_number | ユーザーの電話番号を収集する際に再試行できる回数を指定します。デフォルト値は 3 です。 |
integer |
$flow.max_retry_otp | ワンタイム パスワード(OTP)の収集時に許可する再試行回数を指定します。デフォルト値は 3 です。 |
整数 |
$flow.max_retry_otp_not_received | ワンタイム パスワード(OTP)が受信されない場合に許可する再試行回数を指定します。デフォルト値は 1 です。 |
integer |
$flow.max_retry_otp_confirm_channel | ワンタイム パスワード(OTP)の受信のためにチャネルを収集する際に許可する再試行回数を指定します。デフォルト値は 3 です。 |
integer |
このコンポーネントの入力パラメータを構成するには、開いて手順を確認します。
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Build] タブを選択します。
- [Flows] セクションでインポートされたコンポーネントをクリックします。
- [Pages] セクションで [Start Page] をクリックします。
- スタートページで true ルートをクリックします。
- [Route] ウィンドウで、必要に応じて [Parameter Presets] 値を編集します。
- [Save] をクリックします。
出力パラメータ
出力パラメータは、コンポーネントを終了した後もアクティブな状態を継続するセッション パラメータです。これらのパラメータには、コンポーネントによって収集される重要な情報が含まれます。この事前構築されたコンポーネントは、次の出力パラメータの値を提供します。
パラメータ名 | 説明 | 出力形式 |
---|---|---|
auth_level | エンドユーザーの現在の認証レベルを示します。 | integer |
all_recent_order_id | このパラメータは、認証済みユーザーに関連付けられている注文 ID を、注文の日付の降順で並べ替えてリストします。配列の最初の要素は最新の注文を表します。ユーザーの注文がない場合、このパラメータの値は null です。 |
リスト(文字列) |
phone_number | ユーザーの識別に使用されるユーザーの電話番号(国コードなし)。 | 文字列 |
メール | アカウントに登録されているメールアドレス。 | 文字列 |
user_first_name | ユーザーの名。挨拶とアカウントの所有権の確認に使用します。 | 文字列 |
transfer_reason | このパラメータは、フローが失敗した場合に終了した理由を示します。戻り値は次のいずれかです。agent : エンドユーザーが会話中のいずれかの時点で人間のエージェントをリクエストした。denial_of_information : エンドユーザーが、コンポーネントによってリクエストされた情報を共有することを拒否した。max_no_input : 会話が回答なしイベントの再試行の最大回数に達した。回答なし組み込みイベントをご覧ください。max_no_match : 会話が一致なしイベントの再試行の最大回数に達しました。一致なし組み込みイベントをご覧ください。webhook_error : Webhook エラーが発生しました。webhook.error の組み込みイベントをご覧ください。webhook_not_found : Webhook URL にアクセスできませんでした。webhook.error.not-found の組み込みイベントをご覧ください。 |
文字列 |
基本設定
この事前構築済みコンポーネントを設定するには:
- 事前構築済みコンポーネントをインポートします。
- 外部サービスを記述する構成を使用して、付属の柔軟な Webhook を構成します。下記の Webhook の設定をご覧ください。
Webhook の設定
このコンポーネントを使用するには、付属の柔軟な Webhook を構成して外部サービスから必要な情報を取得する必要があります。
ユーザーの詳細を確認する
prebuilt_components_retail_authentication:verify_user_details
Webhook は、指定された電話番号に基づいてユーザー アカウントの詳細情報を取得するためにコンポーネントによって使用されます。
API リクエスト パラメータ
以下のパラメータは、コンポーネントによって API リクエストへの入力として提供されます。
パラメータ名 | 説明 | 入力形式 |
---|---|---|
$session.params.phone_number | ユーザーの識別に使用されるユーザーの電話番号(国コードなし)。 | 文字列 |
API レスポンス パラメータ
以下のパラメータは、コンポーネントで使用される API レスポンスから取得されます。
パラメータ名 | 説明 | 出力形式 |
---|---|---|
メール | アカウントに登録されているメールアドレス。 | 文字列 |
all_recent_order_id | 認証済みユーザーに関連付けられている注文 ID のリスト(注文の日付の降順で並べ替え)。配列の最初の要素は最新の注文を表します。ユーザーの注文がない場合、このパラメータの値は null です。 |
リスト(文字列) |
user_first_name | ユーザーの名。挨拶とアカウントの所有権の確認に使用します。 | 文字列 |
このコンポーネントの [ユーザーの詳細を確認する] Webhook を構成するには、開いて手順を確認してください。
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Manage] タブを選択します。
- [Webhooks] をクリックします。
- prebuilt_components_retail_authentication:verify_user_details Webhook を選択します。
- 会話エージェント(Dialogflow CX)Webhook URL フィールドの URL を、統合するサービスのエンドポイントに置き換えます。プルダウンで適切なメソッドを選択します。
- Webhook に適したリクエスト形式になるように、リクエスト本文を確認して更新します。
- レスポンス構成を確認して更新し、Webhook のレスポンスから特定のフィールドを抽出します。パラメータ名は、コンポーネントが返されたフィールド値にアクセスするために必要であるため、変更しないでください。
- 必要に応じて [Authentication] の設定を確認し、更新します。
- [Save] をクリックします。
OTP を送信
prebuilt_components_retail_authentication:send_otp
Webhook は、エンドユーザーが選択した登録済みチャネルにワンタイム パスワード(OTP)を送信するためにコンポーネントによって使用されます。
API リクエスト パラメータ
以下のパラメータは、コンポーネントによって API リクエストへの入力として提供されます。
パラメータ名 | 説明 | 入力形式 |
---|---|---|
$session.params.phone_number | ユーザーの識別に使用されるユーザーの電話番号(国コードなし)。 | 文字列 |
$flow.channel | OTP を受信するためにユーザーが選択したチャネル。有効な値は、prebuilt_components_channel_email_phone カスタム エンティティによって定義されます。デフォルトでは、email と phone がサポートされています。 |
文字列 |
API レスポンス パラメータ
以下のパラメータは、コンポーネントで使用される API レスポンスから取得されます。
パラメータ名 | 説明 | 出力形式 |
---|---|---|
generated_otp | 選択したチャネルを使用して生成され、ユーザーに送信された OTP の値。 | 文字列 |
このコンポーネントの [OTP を送信] Webhook を構成するには、展開して手順を確認してください。
- Dialogflow CX Console を開きます。
- ご自身の Google Cloud プロジェクトを選択します。
- エージェントを選択します。
- [Manage] タブを選択します。
- [Webhooks] をクリックします。
- prebuilt_components_retail_authentication:send_otp Webhook を選択します。
- 会話エージェント(Dialogflow CX)Webhook URL フィールドの URL を、統合するサービスのエンドポイントに置き換えます。プルダウンで適切なメソッドを選択します。
- Webhook に適したリクエスト形式になるように、リクエスト本文を確認して更新します。
- レスポンス構成を確認して更新し、Webhook のレスポンスから特定のフィールドを抽出します。パラメータ名は、コンポーネントが返されたフィールド値にアクセスするために必要であるため、変更しないでください。
- 必要に応じて [Authentication] の設定を確認し、更新します。
- [Save] をクリックします。
完了
これで、エージェントとその Webhook が設定され、テストの準備が整いました。