條件漏斗

條件漏斗(Condition Funnel) 區塊可根據變數值、使用者輸入或訊息內容,將對話導向不同的流程分支。

常見使用情境包括:驗證使用者輸入(例如電子郵件、電話號碼、數字),使用者屬性分流,透過條件控制流程邏輯。


1. 條件漏斗介面說明

介面組成

  1. 輸入自訂資料名稱 選擇要進行判斷的資料名稱(例如用戶輸入、自訂資料或系統資料)。

  2. 條件運算子 定義變數與輸入值之間的比對方式。

  3. 輸入值/規則 用來進行比對的值或規則。

    • 基本條件:文字或數字

    • Regex 條件:正則表達式

  4. 新增條件(+) 新增多個條件分支。

  5. 後備路徑 當所有條件皆不符合時,對話會進入此路徑。


2. 條件運算子說明

比較與數值運算

運算子
說明
範例

等於(Equal)

變數完全相同

country = USA

不等於(Not Equal)

變數不相同

country ≠ SG

小於(Less Than)

數值比較

order_count < 3

小於或等於(Less Than or Equal)

數值比較

score ≤ 60

大於(Greater Than)

數值比較

order_count > 5

大於或等於(Greater Than or Equal)

數值比較

amount ≥ 1000

⚠️ 數值相關的運算子僅適用於數字型變數。


清單與文字比對

運算子
說明
範例

在(In)

符合清單中的任一值

country in [USA, SG]

包含(Contains)

包含指定文字

訊息包含 refund

是空的(Is Empty)

變數沒有值

電話號碼為空


3. 符合正則表達式 (Regex)

符合正則表達式可使用正則表達式進行進階格式驗證,適用於需要嚴格輸入規則的情境。

使用方式

  • 在欄位/ /中輸入 Regex 表達式

  • 可選擇性啟用 Regex flags

  • 若變數值符合該 Regex,條件即成立

常見 Regex 範例

使用情境
Regex 範例
輸入範例

驗證電子郵件格式

^[^\s@]+@[^\s@]+\.[^\s@]+$

驗證含國碼的電話號碼

^\+[1-9]\d{6,14}$

+14155552671

僅允許數字輸入

^\d+$

123456


4. 進階Regex Flags說明(選用)

Regex Flags控制模式的評估方式。

Flag
名稱
說明

g

Global

比對所有符合的結果

m

Multi Line

^$ 作用於每一行

i

Case Insensitive

忽略大小寫

x

Extended

允許空白與註解

s

Single Line

. 可比對換行字元

u

Unicode

啟用 Unicode 比對

U

Ungreedy

預設使用非貪婪比對

A

Anchored

從字串開頭開始比對

J

Jchanged

允許重複命名群組


5. 使用範例

範例 1:驗證電子郵件

  • 變數:User Input

  • 運算子:Matches Regex

  • 規則:^[^\s@]+@[^\s@]+\.[^\s@]+$

結果

  • 符合 → 繼續流程

  • 不符合 → 請用戶重新輸入 Email


範例 2:依國家分流

  • 變數:Country

  • 運算子:In

  • 值:USA, SG

結果

  • 符合 → 進入區域流程

  • 不符合 → 進入預設流程


範例 3:檢查電話號碼是否為空

  • 變數:Phone Number

  • 運算子:Is Empty

結果

  • 為空 → 提示用戶輸入電話號碼

  • 非空 → 繼續流程


6. 最佳實務

  • 簡單運算子(等於、包含於、包含)開始,然後再使用正則表達式。

  • 務必配置後備路徑以防止死路。

  • 使用正則表達式時:

    • 使用 ^$ 錨定模式以避免部分匹配

    • 使用真實用戶輸入測試模式

  • 保持條件邏輯可讀性——多個簡單條件通常比一個複雜規則更清晰。

Last updated