拿到了資料,也學會了加工,現在我們要學習如何讓工作流具備「判斷力」。這章會教你如何根據資料的狀況,讓流程走上不同的路徑。

學習目標 (Goal)

  • 搞懂 If (二分法):只有對或錯兩條路。

  • 掌握 Switch (多路開關):根據不同的關鍵字走多條路。

  • 理解 Filter (篩選器):不符合條件的,通通留下來。


核心觀念 (Concepts)

0. n8n 的比對三部曲 (Universal Comparison Logic)

在學習具體的節點前,你要先掌握 n8n 所有邏輯節點(If, Switch, Filter)共用的「比對套路」。學會這組邏輯,你就學會了所有具備判斷功能的節點。

  1. 選擇比對類型 (Data Type)

    • 這是新手最容易卡關的地方! 系統必須知道你是在比「標籤文字」還是「數學數字」。
    • 如果類型選錯(例如:用 String 去比數字的 10 > 2),結果可能會出錯。
    • 常用類型:String (文字), Number (數字), Boolean (真假值), Date (日期)。

  2. 共通的比對方式 (Common Operators)

    • Exists / Not Exists (欄位存在):這是 n8n 整合 API 的關鍵!它專門用來檢查「API 是否有回傳這個標籤」。這能防止後續節點因為找不到欄位而意外報錯。
    • Is Empty / Not Empty (內容為空):標籤有在,但裡面沒填東西。
    • Equal / Not Equal (等於):最基礎的比對邏輯。

    上述所提到的是較共同的比較方式,但每種類型都會再加入特有的比較方式,如圖中是String(字串),就會有字串比較會有的如:比較開頭、結尾、包含字串、還有更彈性的正規表示法(regex)。

  3. 類型專屬比對 (Type-Specific)

    • String:才有 Contains (包含)Regex (正規表達式)
    • Number:才有 Greater Than (大於)
    • **Date & Time **:才有 is after(超過時間)


1. If 節點:非黑即白

這是最直覺的邏輯。滿足條件走 true 線,不滿足走 false 線。 - 場景:如果金額 > 1000 走審核線,否則直接結案。If 會有2個輸出,1個是true 線另一個是false

2. Switch 節點:多重選擇

當你的條件不只是「對或錯」,而是有三四種可能時,If 節點疊起來會變得很醜(巢狀結構)。這時候 Switch 就派上用場了。

  • 場景:根據「產品類別」分流。電子產品走 0 線(Output 0)、書籍走 1 線(Output 1)、食品走 2 線(Output 2)。

  • 核心配置:設定一個變數,然後列出多個輸出路徑對應的數值。

3. Filter 節點:數據漏斗

Filter 不會產生新的路徑分支,它更像是一個「檢查哨」。 - 功能:符合條件的 Item 才能通過,不符合的會被丟棄(或停止在這一點)。 - 與 If 的差別:如果你只是想「篩掉不要的」,用 Filter 最整潔,它只有1個輸出;如果你的結果兩邊都要處理,才用 If。

下圖雖然看到不成立的 items,但它不會輸出。


節點配置 (Node Setup)

Step 1: 建立判斷依據

我們用 Mock Data 生成幾筆包含 category (類別) 跟 total (金額) 的資料,其中混入一筆低於 100 元的「垃圾資料」。

Step 1.5: 設定 Filter 篩選

  1. 拉出 Filter 節點接在 Mock Data 後面。

  2. 設定條件:{{ $json.total }} > 100

  3. 執行後,你會發現只有符合條件的資料會過關,垃圾資料會被擋在門外。

Step 2: 設定 Switch 分流

  1. 拉出 Switch 節點接在 Filter 後面。

  2. Data TypeString (或者視變數而定)。

  3. Value To Compare 選取 {{ $json.category }}

  4. 新增兩個 Rules

    • 電子 對應 Output 0 (第一個出口)。
    • 書籍 對應 Output 1 (第二個出口)。

Step 3: 設定 If 判斷

在 Switch 之後,我們可以再接一個 If 判斷金額:

  1. 拉出 If 節點。

  2. 設定:{{ $json.total }} >= 1000

  3. 測試看看當數值改變時,綠色的線條會往哪邊跑。

NOTE

[擷圖情境:展示畫布上 Switch 之後接了多條線,且其中一條線後又接了 If 節點,形成一個清晰的邏輯樹狀圖]


實戰挑戰 (Challenge)

  1. 分流大作戰:建立一個包含 5 筆不同類別資料的 Mock Data,用一個 Switch 把它們正確分流到三個不同的節點處理。
  2. 多重篩選:先用 Filter 篩掉金額小於 100 的垃圾資料,再用 If 判斷資料是否具 email 欄位。
  3. 邏輯陷阱:試試看在 If 裡如果不小心把數字當字串比(比如 "10" vs 10),會發生什麼事?

TIP

邏輯設計的「整潔之道」:能用一次 Switch 解決的,不要用三次 If。不僅畫布好看,以後你回來看邏輯也會輕鬆很多。


範例