在真實世界裡,資料永遠不會只有一種長相。付費用戶要走 VIP 通道、免費新手要走引導通道、而分數不及格的資料則應該直接丟進垃圾桶。
如果 Merge 是讓流程合流,那 Switch 跟 Filter 就是讓流程充滿智慧的分岔路。學會控制資料的走向,是你成為高級架構師的必經之路。
學習目標 (Goal)
- 掌握 Switch (複雜路由):捨棄傳統的
IF節點,學會如何一次建立 3 條以上的精準分流路徑。 - 掌握 Filter (過濾器):建立資料防火牆,只讓符合高標準的 Item 繼續往下走。
核心觀念 (Concepts)
Switch 節點:智慧交流道
用 If 做 True/False 分岔很直覺,但當邏輯變成「VIP 走 A、Pro 走 B、其餘走 C」時,多個 If 串接會讓流程圖難以維護。Switch 以 Rules 模式讓每條 Routing Rule 對應一個出口,再搭配 Fallback Output(Extra Output)把「不符合任何規則」的 Item 集中到同一出口,結構一目瞭然。
Filter 節點:資料守門員
Filter 只有一個輸出:符合條件的 Item 會往後傳,不符合的會被節點捨棄、不會進入任何後續節點。適合做資料清洗,例如從資料庫拉出 100 筆貼文,只讓「按讚數大於 50」的 Item 通過並進入發布流程。
節點配置 (Node Setup)
Switch Node
- Mode:二選一。
- Rules:依條件比對分流。點選 Add Routing Rule 新增規則,每條規則可設多個條件;左側選資料類型(String、Number、Date & Time、Boolean、Array、Object),右側選比較運算(如 String → is equal to、Number → is greater than or equal to)。
- Expression:用表示式回傳輸出編號(數字),自訂要接到哪一個出口;可設 Number of Outputs、Send data to all matching outputs(符合多條時是否送往所有符合的出口)。
- Fallback Output(Rules 模式):當 Item 不符合任何規則時的處理。
- None(預設):不符合的 Item 不輸出,等同被丟棄。
- Extra Output:不符合的 Item 送往額外的獨立出口,建議勾選以集中處理異常或未分類資料。
- Output 0:不符合的 Item 與符合第一條規則的 Item 走同一出口。
CAUTION
Fallback Output 為 None 時,未符合任何規則的 Item 不會從任何出口輸出,除錯時容易誤以為資料遺失;生產流程建議改為 Extra Output 並接後續處理或紀錄。

Filter Node
- Conditions:點選 Add condition 新增條件,依資料類型與比較運算設定(與 Switch 相同,可選 String、Number、Date & Time 等)。
- 條件組合:多條件時可選 AND(全部符合才通過)或 OR(符合其一即通過);同一節點內不可混用 AND 與 OR。
- Options:Less Strict Type Validation 開啟時,n8n 會依運算子嘗試轉換型別,可緩解「wrong type」錯誤;Ignore Case 可忽略字串大小寫。
NOTE
[擷圖情境:展示 Filter 節點設定單一條件(如 score is greater than or equal to 60)與通過筆數的介面]
專業操作 (Action)
Step 1: 建立分流模擬資料
- 準備三筆會員 mock 資料(可匯入 part1 或手動用多個
Edit Fields (Set)建立):- User A:
tier = VIP,score = 90 - User B:
tier = Pro,score = 50 - User C:
tier = Free,score = 40
- User A:
- 若手動建立,需先以 Merge(Append)將三筆彙成一路再接 Switch。
Step 2: 使用 Switch 分發路線
- 後方接上
Switch節點,選擇 Mode → Rules。 - Add Routing Rule 第一條:資料類型選 String,條件設為
tieris equal toVIP。 - 再新增第二條規則:
tieris equal toPro。 - 在 Fallback Output 選擇 Extra Output,讓不符合上述兩條的 Item(例如 tier = Free)走獨立出口。
執行後,3 筆 Item 會分別進入 VIP 出口、Pro 出口與 Fallback 出口。
Step 3: 加上 Filter 洗掉不及格分數
假設 Pro 路線出口後要再篩一關:只放行分數及格者。
1. 在 Switch 的 Pro 出口後接上 Filter 節點。
2. Add condition:資料類型選 Number,左側欄位 score,運算選 is greater than or equal to,右側填 60。
3. User B 若 score 為 60 以上會通過;若為 50 會在 Filter 被攔下,不會進入後續節點。
TIP
型別陷阱:若前面 Set 把 score 設成字串(如 "50"),Filter 用數字比較可能判斷錯誤。可在條件的左側改為 Expression,輸入 {{ parseInt($json.score, 10) }} 再與 60 比較。
實戰挑戰 (Challenge)
- Fallback 的重要性:送一筆沒有
tier的 Item 進 Switch。若 Fallback Output 為 None(預設),該 Item 不會從任何出口輸出,等於在流程中消失,除錯時容易漏看。 - 多條件同一 Rule:同一條 Routing Rule 內可 Add condition 多個條件,並以 AND 組合。試著讓 VIP 出口改為「tier 等於 VIP 且 score 大於 80」才通過。
範例 (Example)
你可以匯入來觀察基礎的三路分流。