零售業驗證預先建構元件會收集使用者資訊,將驗證層級提升至所需等級。這個元件涵蓋零售業常見但不專屬的驗證需求。這個元件會使用「電話號碼收集」預先建構的元件,收集及驗證使用者詳細資料。
驗證等級
不同的預先建構元件需要多個層級的驗證,層級越高,驗證使用者身分時需要的使用者資訊就越多。零售驗證元件可讓使用者驗證至第 0 級 (ANI 比對) 或第 1 級 (基本),如「驗證等級」表中所述。
| 驗證等級 | 需求條件 |
|---|---|
| 第 0 級:ANI 相符 | 使用者撥打電話或提供與已註冊帳戶相符的電話號碼,即可通過驗證。 使用者可以透過問候語預先建構元件,驗證至第 0 級。 |
| 第 1 級:基礎 | 系統會將一次性密碼 (OTP) 驗證碼傳送至使用者的電子郵件地址或電話號碼,使用者必須驗證該驗證碼才能通過驗證。 |
支援的使用者類型
零售驗證元件支援已註冊電話號碼和電子郵件的使用者。
限制
除了常見的預先建構元件限制外,這個預先建構元件還有下列限制:
- 動態密碼只會傳送至使用者先前註冊的手機號碼或電子郵件地址。如果顧客是使用未向帳戶註冊的替代電話號碼撥打電話,這個元件就不會使用動態密碼驗證顧客身分。如果使用者是透過備用電話號碼撥打電話,系統會使用安全性問題驗證來電者身分。
- 這個元件不會加密任何資料。
對話方塊範例
下列範例對話方塊展示了這個預先建構元件處理的常見情境。範例對話會說明透過電話呼叫元件時的行為,這會在對話開始時觸發預設歡迎意圖和第一個代理程式回應。
第 0 級驗證成功:ANI 相符
使用者透過已註冊現有帳戶的電話號碼撥打電話,確認帳戶後,即可成功通過第 0 級驗證。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 你好,你撥打的號碼已連結至 John 的帳戶。你要查詢的是其他人的訂單嗎?如果是,請說「是」,否則請說「否」。 | |
| 否 | |
| 謝謝 John。我們已成功辨識你的身分。 |
第 1 級驗證成功:動態密碼
使用者從無法識別的電話號碼撥打電話。這個元件會收集使用者註冊的電話號碼,然後傳送動態密碼,並要求使用者確認傳送至所選管道的動態密碼。使用者可以提供有效的 OTP,並成功通過第 1 級驗證。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 我們找不到與我們相關聯的電話號碼。請提供註冊電話號碼。 | |
| 服務專員使用電話號碼收集預先建構的元件收集電話號碼 | |
| 太棒了,我們已收集電話號碼。 為確保安全,我們需要驗證您的身分,因此會傳送驗證碼給您。你偏好透過電話還是電子郵件接收驗證碼? |
|
| 手機 | |
| 確認一下,你是否想在手機上接收動態密碼?請回答「要」或「不要」。 | |
| 是 | |
| 我們已將驗證碼傳送至您登錄的電話號碼 (末四碼為 0000)。請稍候片刻。請確認代碼。 | |
| 123457 | |
| 謝謝 John。我們已成功辨識你的身分。 |
命名慣例
這個預先建構的元件採用下列命名慣例:
| 功能 | 格式 | 範例 |
|---|---|---|
| 心流狀態 | [元件名稱] | 零售驗證 |
| 元件專屬意圖 | 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 |
輸入參數
輸入參數是用來設定元件特定行為的參數。流程中的一或多個條件會使用這些參數,判斷元件的行為。如要設定流程範圍參數,請按照下方說明,在元件的開始頁面進行設定。工作階段範圍的參數可透過呼叫流程設定,也可以在這個元件的開始頁面設定。
這個預先建構的元件接受下列輸入參數:
| 參數名稱 | 說明 | 輸入格式 |
|---|---|---|
| $session.params.auth_level_req | 定義使用者驗證的驗證層級。有效值為 0 或 1。 |
整數 |
| $session.params.auth_level | (選用) 指出使用者的目前驗證等級。 | 整數 |
| $session.params.phone_number | (選用) 終端使用者的電話號碼。如未提供這項參數,元件會向使用者收集電話號碼。 | 字串 |
| $flow.max_retry_phone_number | 指定收集使用者電話號碼時允許的重試次數。預設值為 3。 |
整數 |
| $flow.max_retry_otp | 指定收集動態密碼時允許的重試次數。預設值為 3。 |
整數 |
| $flow.max_retry_otp_not_received | 指定未收到一次性密碼 (OTP) 時允許的重試次數。預設值為 1。 |
整數 |
| $flow.max_retry_otp_confirm_channel | 指定收集接收動態密碼 (OTP) 的管道時,允許重試的次數。預設值為 3。 |
整數 |
如要設定這個元件的輸入參數,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「Build」(建構) 分頁標籤。
- 在「流程」部分中,按一下匯入的元件。
- 按一下「頁面」部分中的「開始頁面」。
- 在「開始頁面」中,按一下「true」路徑。
- 在「Route」視窗中,視需要編輯「Parameter Presets」值。
- 按一下「儲存」。
輸出參數
輸出參數是工作階段參數,在結束元件後仍會保持啟用狀態。這些參數包含元件收集的重要資訊。這個預先建構的元件會提供下列輸出參數的值:
| 參數名稱 | 說明 | 輸出格式 |
|---|---|---|
| auth_level | 指出使用者的目前驗證等級。 | 整數 |
| 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 網址。請參閱「webhook.error.not-found 內建事件」。 |
字串 |
基本設定
如要設定這個預先建構的元件,請按照下列步驟操作:
- 匯入預先建構的元件。
- 設定提供的彈性 Webhook,並使用描述外部服務的設定,請參閱下方的「Webhook 設定」。
設定 Webhook
如要使用這個元件,您必須設定內含的彈性 Webhook,從外部服務擷取所需資訊。
驗證使用者詳細資料
元件會使用 prebuilt_components_retail_authentication:verify_user_details 網路鉤子,根據提供的電話號碼擷取使用者帳戶詳細資料。
API 要求參數
元件會提供下列參數,做為 API 要求的輸入內容。
| 參數名稱 | 說明 | 輸入格式 |
|---|---|---|
| $session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
API 回應參數
系統會從 API 回應中擷取下列參數,供元件使用。
| 參數名稱 | 說明 | 輸出格式 |
|---|---|---|
| 電子郵件 | 帳戶註冊的電子郵件地址。 | 字串 |
| all_recent_order_id | 與已驗證使用者相關聯的訂單 ID 清單,依訂單下訂日期降序排序。陣列的第一個元素代表最近的訂單。如果使用者沒有任何訂單,這個參數的值會是 null。 |
清單 (字串) |
| user_first_name | 使用者名字,用於問候和確認帳戶擁有權。 | 字串 |
如要為這個元件設定「驗證使用者詳細資料」Webhook,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_retail_authentication:verify_user_details 網頁掛鉤。
- 將 Dialogflow CX「Webhook URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 Webhook 建立正確的要求格式。
- 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要檢查並更新「驗證」設定。
- 按一下「儲存」。
傳送動態密碼
元件會使用 prebuilt_components_retail_authentication:send_otp Webhook,將動態密碼傳送至使用者選取的已註冊管道。
API 要求參數
元件會提供下列參數,做為 API 要求的輸入內容。
| 參數名稱 | 說明 | 輸入格式 |
|---|---|---|
| $session.params.phone_number | 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 | 字串 |
| $flow.channel | 使用者選取接收一次性密碼的管道。有效值由 prebuilt_components_channel_email_phone 自訂實體定義。預設支援 email 和 phone。 |
字串 |
API 回應參數
系統會從 API 回應中擷取下列參數,供元件使用。
| 參數名稱 | 說明 | 輸出格式 |
|---|---|---|
| generated_otp | 系統透過所選管道產生並傳送給使用者的 OTP 值。 | 字串 |
如要為這個元件設定傳送一次性密碼 Webhook,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_retail_authentication:send_otp 網頁掛鉤。
- 將 Dialogflow CX「Webhook URL」欄位中的網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
- 查看並更新要求主體,為 Webhook 建立正確的要求格式。
- 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
- 視需要檢查並更新「驗證」設定。
- 按一下「儲存」。
完成
代理程式和 Webhook 現在應已設定完成,可供測試。