零售驗證預先建構元件

零售驗證預建元件會收集使用者資訊,將使用者驗證至所需驗證層級。這項元件涵蓋零售業常見 (但非專屬) 的驗證需求。這個元件會使用電話號碼收集預建元件,收集及驗證使用者詳細資料。

驗證等級

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

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

使用者可以使用預先建構的問候語元件通過第 0 級驗證。
第 1 級:基本 系統會將動態密碼傳送至使用者的電子郵件地址或電話號碼,並在驗證後完成使用者驗證程序。

支援的使用者類型

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

限制

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

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

對話範例

下列對話範例說明這項預建元件處理的常見情境。範例對話會示範使用電話呼叫元件時的行為,這會觸發預設歡迎意圖和對話開始時的第一個代理回覆。

第 0 級驗證成功:ANI 相符

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

使用者輸入內容 代理回覆
你好,你撥打的號碼與 John 的帳戶連結。您是否要詢問他人的訂單?如果是,請回答「是」,否則請回答「否」。
否
謝謝 John。身分驗證成功。

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

使用者從無法識別的電話號碼來電。元件會收集使用者註冊的電話號碼,然後傳送動態密碼至使用者選擇的管道,並要求使用者確認。使用者提供有效的一次性密碼,並成功通過第 1 級驗證。

使用者輸入內容 代理回覆
我們找不到與這個電話號碼相關聯的資訊。請提供註冊的電話號碼。
代理使用電話號碼收集預建元件收集電話號碼
太好了,電話號碼收集完畢。

基於安全考量,我們需要驗證你的身分,因此會傳送驗證碼給你。您希望透過電話還是電子郵件接收驗證碼?
手機
確認一下,你是否想透過手機接收動態密碼?請回答「要」或「不要」。
是
我們已將驗證碼傳送至你註冊的電話號碼 (末四碼為 0000)。這可能需要幾秒鐘。可以請您確認代碼嗎?
123457
謝謝 John。身分驗證成功。

命名慣例

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

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

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

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇 Google Cloud 雲端專案。
  3. 選取代理。
  4. 選取「Build」(建構) 分頁標籤。
  5. 在「Flows」(流程) 部分,點選匯入的元件。
  6. 按一下「Pages」部分中的「Start Page」。
  7. 在「Start Page」中,點選「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 Webhook,根據提供的電話號碼擷取使用者帳戶詳細資料。

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 Webhook。
  7. 將 Dialogflow CX「Webhook 網址」欄位中的網址,替換成要整合的服務端點。在下拉式選單中選取適當的「Method」。
  8. 查看並更新要求主體,為 Webhook 建立適當的要求格式。
  9. 查看並更新回應設定,從 Webhook 的回應中擷取特定欄位。請勿修改參數名稱,因為元件需要這些名稱才能存取傳回的欄位值。
  10. 視需要查看及更新「驗證」設定。
  11. 按一下「儲存」。

傳送動態密碼

prebuilt_components_retail_authentication:send_otp Webhook 是由元件使用,可將動態密碼 (OTP) 傳送至使用者選取的已註冊管道。

API 要求參數

元件會提供下列參數,做為 API 要求的輸入內容。

參數名稱 說明 輸入格式
$session.params.phone_number 使用者的當地電話號碼 (不含國家/地區代碼),用於識別使用者。 字串
$flow.channel 使用者選擇接收動態密碼的管道。有效值由 prebuilt_components_channel_email_phone 自訂實體定義。系統預設支援 email 和 phone。 字串

API 回應參數

系統會從 API 回應中擷取下列參數,供元件使用。

參數名稱 說明 輸出格式
generated_otp 系統產生並透過所選管道傳送給使用者的動態密碼值。 字串

如要為這個元件設定傳送動態密碼 Webhook,請展開查看操作說明。

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

完成

代理和 Webhook 應已設定完成,可以開始測試。