零售驗證預先建構元件

零售驗證預先建構的元件會收集使用者資訊,將驗證層級提升至所需等級。這項元件涵蓋零售業常見的驗證需求,但不限於零售業。這個元件會使用 電話號碼收集 預先建構的元件,收集及驗證使用者詳細資料。

驗證等級

不同的預先建構元件需要多個驗證層級,層級越高,驗證使用者時需要的使用者資訊就越多。零售驗證元件可讓使用者驗證至第 0 級 (ANI 比對) 或第 1 級 (基本),如「驗證等級」表中所述。

驗證等級 需求條件
第 0 級:ANI 比對 使用者撥打電話或提供與已註冊帳戶相符的電話號碼,即可通過驗證。

使用者可以透過問候語預先建構元件,驗證至第 0 級。
第 1 級:基礎 驗證傳送至使用者電子郵件地址或電話號碼的動態密碼,即可完成驗證。

支援的使用者類型

零售驗證元件支援已註冊電話號碼和電子郵件的使用者。

限制

除了常見的預先建構元件限制外,這個預先建構元件還有下列限制:

  • 動態密碼只會傳送至使用者先前註冊的手機號碼或電子郵件地址。如果顧客使用未向帳戶註冊的替代電話號碼來電,這個元件不會使用動態密碼驗證顧客身分。如果使用者透過備用電話號碼撥打電話,系統會使用安全性問題驗證來電者身分。
  • 這個元件不會加密任何資料。

對話範例

下列範例對話方塊展示了這個預先建構元件處理的常見情境。範例對話會示範透過電話呼叫元件時的行為,這會在對話開始時觸發預設歡迎意圖和第一個代理程式回應。

第 0 級驗證成功:ANI 相符

使用者透過已註冊現有帳戶的電話號碼撥打電話,確認帳戶後,即可成功通過第 0 級驗證。

使用者輸入內容 代理回覆
你好,你撥打的號碼已連結至 John 的帳戶。你是否要查詢他人的訂單?如果符合上述情況,請說「是」,否則請說「否」。
否
謝謝你,John。身分驗證成功。

第 1 級驗證成功:動態密碼

使用者從無法識別的電話號碼撥打電話。這個元件會收集使用者註冊的電話號碼,然後傳送動態密碼,並要求使用者透過所選管道確認。使用者可以提供有效的 OTP,並成功通過第 1 級驗證。

使用者輸入內容 代理回覆
我們找不到與我們相關聯的電話號碼。請提供註冊電話號碼。
服務專員使用電話號碼收集預建元件收集電話號碼
太棒了,我們已收集電話號碼。

為確保安全,我們需要驗證您的身分,因此會傳送驗證碼給您。你偏好透過電話還是電子郵件接收驗證碼?
手機
確認一下,你是否要在手機上接收動態密碼?請回答「要」或「不要」。
是
我們已將驗證碼傳送至您登錄的電話號碼 (末四碼為 0000)。請稍候片刻。請確認代碼。
123457
謝謝你,John。身分驗證成功。

命名慣例

這個預先建構的元件採用下列命名慣例:

功能 格式 範例
Flow [元件名稱] 零售驗證
元件專屬意圖 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 指定未收到動態密碼時允許的重試次數。預設值為 1。 整數
$flow.max_retry_otp_confirm_channel 指定收集管道以接收動態密碼時,允許的重試次數。預設值為 3。 整數

如要設定這個元件的輸入參數,請展開查看操作說明。

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇 Google Cloud 雲端專案。
  3. 選取代理程式。
  4. 選取「Build」(建構) 分頁標籤。
  5. 在「流程」部分中,按一下匯入的元件。
  6. 按一下「頁面」部分中的「開始頁面」。
  7. 在「開始頁面」中,按一下「true」路徑。
  8. 在「Route」視窗中,視需要編輯「Parameter Presets」值。
  9. 按一下「儲存」。

輸出參數

輸出參數是工作階段參數,離開元件後仍會保持有效狀態。這些參數包含元件收集的重要資訊。這個預先建構的元件會提供下列輸出參數的值:

參數名稱 說明 輸出格式
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 內建事件」。
字串

基本設定

如要設定這個預先建構的元件,請按照下列步驟操作:

  1. 匯入預先建構的元件。
  2. 設定提供的彈性 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,請展開查看操作說明。

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇 Google Cloud 雲端專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhooks」。
  6. 選取 prebuilt_components_retail_authentication:verify_user_details 網路服務掛鉤。
  7. 將 Dialogflow CX「Webhook URL」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  8. 查看並更新要求主體,為 Webhook 建立正確的要求格式。
  9. 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件必須使用這些名稱才能存取傳回的欄位值。
  10. 視需要檢查並更新「驗證」設定。
  11. 按一下「儲存」。

傳送動態密碼

元件會使用 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 值。 字串

如要為這個元件設定傳送 OTP 網路鉤子,請展開查看操作說明。

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇 Google Cloud 雲端專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhooks」。
  6. 選取 prebuilt_components_retail_authentication:send_otp 網頁掛鉤。
  7. 將 Dialogflow CX「Webhook URL」欄位中的 Webhook 網址,換成要整合的服務端點。在下拉式選單中選取適當的「方法」。
  8. 查看並更新要求主體,為 Webhook 建立正確的要求格式。
  9. 查看並更新「回應設定」,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件必須使用這些名稱才能存取傳回的欄位值。
  10. 視需要檢查並更新「驗證」設定。
  11. 按一下「儲存」。

完成

代理程式和 Webhook 現在應已設定完成,可供測試。