
當你的 n8n 自動化流程越來越複雜,需要處理三、四種,甚至十幾種不同的情況時,你是不是開始瘋狂地串接 IF 節點,搞得整個畫布(Canvas)像一盤義大利麵,錯綜複雜、難以維護?一下 true
、一下 false
,再往下又一個 true
、false
,光是看懂流程走向就讓你頭昏眼花。
如果你有這個痛點,恭喜你,你正在經歷每個 n8n 使用者從新手邁向進階的必經之路。而今天要介紹的 Switch 節點,就是解決這個「IF 巢狀地獄」的最佳解方。
Switch 節點可以說是 IF 節點的超級進化版。它專為「多路徑分流」而生,能讓你的工作流在視覺上保持乾淨、邏輯上更加清晰。這篇文章將帶你徹底解析 Switch 節點的強大之處,從它與 IF 節點的根本差異,到手把手的設定教學與實戰應用,讓你學會如何用更優雅、更高效的方式,打造出能應對多重條件的智慧工作流。
告別義大利麵式流程:為什麼你需要 Switch 節點?
在學習如何使用 Switch 節點之前,我們必須先理解它解決了什麼問題。這一切都要從 IF 節點的極限說起。
IF 節點的極限:當 True/False 不夠用時
IF 節點非常適合處理「二元判斷」,也就是非黑即白、只有兩種結果的情況。例如:「客戶是否為 VIP?」、「訂單金額是否達標?」。這種情況下,一個 IF 節點就能完美分流出 true
和 false
兩條路徑。
但如果情況變成:「根據客戶的國家,執行不同動作」呢?假設你有台灣、日本、美國三個市場,用 IF 節點來做,流程就會變成這樣:
- 第一個 IF 節點: 判斷「國家是否為台灣?」
true
:執行台灣的流程。false
:進入下一個判斷。
- 第二個 IF 節點: 判斷「國家是否為日本?」
true
:執行日本的流程。false
:執行美國的流程(剩下的選項)。
當你需要判斷的國家增加到十個時,你就得串接九個 IF 節點!這種「巢狀 IF 結構」不僅讓工作流變得極度臃腫,未來要新增或修改一個國家的邏輯時,你還得在一團亂麻中找到對應的節點,非常痛苦。
Switch 節點登場:自動化的多向分岔路口
Switch 節點正是為了解決這個問題而設計的。你可以把它想像成一個火車站的「轉轍器」:
- 輸入 (Input): 只有一個入口,所有火車(資料 Items)都從這裡進站。
- 判斷依據 (Value to Route on): 轉轍器會檢查每輛火車的目的地車票(你指定的某個欄位值,例如「國家」)。
- 多個輸出 (Multiple Outputs): 根據車票上的目的地,將火車分別導向第 0 月台(台灣)、第 1 月台(日本)、第 2 月台(美國)…等等。
它將原本複雜的巢狀邏輯,簡化成一個「一進多出」的清晰結構。所有判斷規則都集中在一個節點內設定,一目了然,極易維護。
Switch 節點核心設定:手把手教你建立多路徑分流
理論聽起來很棒,實際操作更是簡單。讓我們用一個常見情境來演練:根據 Trello 卡片的標籤 (Label) 顏色,將任務分派到不同的 Slack 頻道。
假設 Trello 卡片的資料傳入時,包含一個 label_color
欄位,其值可能是 red
、blue
或 green
。
介面導覽:認識「Routing」規則
打開 Switch 節點,你會看到它的核心設定區塊「Routing」,主要包含兩個部分:
- Value to Route on: 用來決定分流依據的「關鍵值」。
- Routing Rules: 根據這個關鍵值,設定多條分流規則。
基礎設定:根據「單一值」進行分流
Step 1: 設定 Value to Route on (你要檢查哪個欄位?)
我們要根據「標籤顏色」來分流,所以點擊 f(x)
圖示,用 Expression 填入 {{ $json.label_color }}
。這就等於告訴 Switch 節點:「等一下請幫我檢查每一筆資料的 label_color
欄位。」
Step 2: 建立 Routing Rules (設定分流規則)
接下來,我們點擊「Add Rule」來新增規則:
- 第一條規則:
- Operation: 選擇
String
->Equal
。 - Value: 輸入
red
。 - n8n 會自動將這條規則對應到 Output Index 0。這表示,如果
label_color
的值等於red
,資料就會從第 0 個出口送出。
- Operation: 選擇
- 第二條規則:
- 點擊「Add Rule」再次新增。
- Operation:
String
->Equal
。 - Value: 輸入
blue
。 - 這條規則會自動對應到 Output Index 1。
- 第三條規則:
- 再次「Add Rule」。
- Operation:
String
->Equal
。 - Value: 輸入
green
。 - 這條規則會對應到 Output Index 2。
Fallback Output (預設路徑): 在所有規則的下方,你會看到最後一個輸出點,它沒有對應任何規則。這個就是「預設路徑」。如果傳入的資料 label_color
既不是 red
、blue
也不是 green
(例如是 yellow
),那麼它就會被送到這個預設的出口。
完成設定後,你的 Switch 節點就會出現 4 個輸出點(0, 1, 2, Fallback),你可以將它們分別連接到不同的 Slack 頻道,輕鬆完成任務分派!

活用 Routing 規則:Switch 節點的條件判斷大全
Switch 節點的 Operation
選項和 IF 節點一樣豐富,讓你不只可以比對固定文字,還能做更複雜的判斷。
- 文字 (String) 路由: 除了
Equal
,你還可以用Contains
(包含)、Starts With
(開頭是)、Regex
(正規表示式) 等,非常適合用來處理分類標籤、訊息關鍵字等。 - 數字 (Number) 路由: 你可以用
Greater Than
(大於)、Less Than
(小於) 等來處理數值。一個關鍵技巧是:當你要判斷一個「範圍」(例如金額 > 1000
)時,在Routing Rules
中,資料類型要選擇Rule
而不是預設的Fixed
,這樣才能設定數字大小的比較。 - 資料類型 (Data Type) 路由: 你可以使用
Is Empty
(是空的) 或Is Not Empty
(不是空的) 來做為路由規則。這在做資料預處理時非常有用,例如檢查重要欄位是否有遺漏,如果有遺漏就先送去錯誤處理路徑。
Switch vs. IF 節點:我該選用哪個?
既然 Switch 這麼好用,是不是所有地方都用 Switch 就好了?其實不然,IF 和 Switch 各有最適合的應用場景。
使用 IF 節點的時機:二元判斷的最佳選擇
當你的邏輯只有兩種結果,是一個簡單的「Yes/No」或「True/False」問題時,用 IF 節點最為直觀且清晰。
- 範例:
- 判斷「用戶是否已勾選同意條款?」
- 判斷「API 回傳的狀態碼是否為 200?」
使用 Switch 節點的時機:處理多種固定狀態
當你需要根據「單一欄位」的「多種不同值」來執行不同路徑時,Switch 節點就是不二之選。
- 範例:
- 根據訂單狀態 (
pending
,shipped
,delivered
,cancelled
) 分流。 - 根據客服問題分類 (
帳務問題
,技術支援
,產品諮詢
) 分派給不同部門。
- 根據訂單狀態 (
組合技:如何搭配使用 IF 和 Switch?
在更複雜的流程中,你可以將兩者結合,發揮各自的優勢。
- 範例: 一個處理新訂單的流程。
- 先用一個 IF 節點 判斷
order_amount > 5000
? - 在
true
的路徑上(高價值訂單),再接一個 Switch 節點,根據product_category
(產品類別)將訂單分派給專門的業務團隊。 - 在
false
的路徑上(一般訂單),則直接進入標準的自動化出貨流程。
- 先用一個 IF 節點 判斷
實戰案例分享:Switch 節點的 3 個典型應用
讓我們看看 Switch 節點在真實世界的應用,你會更了解它的威力。
情境一:根據 Trello 卡片標籤,自動指派任務
- 目標: Trello 看板有「行銷活動」、「技術 Bug」、「內容撰寫」三種標籤。當新卡片被加上標籤時,自動通知對應的 Slack 頻道。
- 流程:
Trello Trigger (Card updated)
->Switch Node
-> 分別連接到#marketing
、#dev-bugs
、#content
三個Slack Node
。 - Switch 設定:
- Value to Route on:
{{ $json.label.name }}
- Rule 1:
Equal
“行銷活動” -> Output 0 - Rule 2:
Equal
“技術 Bug” -> Output 1 - Rule 3:
Equal
“內容撰寫” -> Output 2
- Value to Route on:
情境二:處理 Webhook,根據事件類型觸發不同流程
- 目標: 你的電商平台 (如 Stripe) 會發送不同事件的 Webhook 到同一個 n8n 端點。你需要根據事件類型來處理。
- 流程:
Webhook
->Switch Node
-> (路徑0) 處理付款成功 / (路徑1) 處理退款 / (路徑2) 處理訂閱取消。 - Switch 設定:
- Value to Route on:
{{ $json.body.type }}
(假設事件類型存在這裡) - Rule 1:
Equal
“charge.succeeded” -> Output 0 - Rule 2:
Equal
“charge.refunded” -> Output 1 - Rule 3:
Equal
“customer.subscription.deleted” -> Output 2
- Value to Route on:
情境三:打造一個簡單的 LINE 聊天機器人指令分流器
- 目標: 用戶在 LINE 官方帳號輸入不同指令,機器人回覆不同內容。
- 流程:
LINE Trigger
->Switch Node
-> (路徑0) 查詢天氣 / (路徑1) 查詢最新活動 / (路徑2) 回覆預設訊息。 - Switch 設定:
- Value to Route on:
{{ $json.events[0].message.text }}
- Rule 1:
Contains
“天氣” -> Output 0 - Rule 2:
Contains
“活動” -> Output 1 - 剩下的走 Fallback Output,連接到一個回覆「無法辨識指令」的節點。
- Value to Route on:

結語
告別雜亂無章的 IF 節點串,擁抱清晰明瞭的 Switch 節點吧!它不僅是 n8n 中一個強大的工具,更是優化工作流結構、提升可讀性與可維護性的核心觀念。
記住這兩個節點的最佳使用時機:
- IF 節點: 處理簡單的「二選一」決策。
- Switch 節點: 優雅地處理基於單一值的「多選一」分流。
下次當你發現自己又準備拉出第三個 IF 節點時,請停下來,試著用 Switch 節點來重構你的流程。你會發現,整個世界都變得清爽了!
延伸閱讀
n8n IF 節點教學:掌握 True/False 條件判斷,打造更智慧的自動化工作流
n8n Switch 節點教學:告別複雜 IF 巢狀結構,優雅實現多重條件判斷
n8n Merge 節點教學:合併多個資料來源,告別手動複製貼上
n8n Code 節點終極教學:釋放 JavaScript 的力量,打造無極限自動化
n8n Code 節點 Python 教學:啟用並執行 Python 程式碼,釋放數據處理超能力
n8n Wait 節點教學:讓工作流學會「等待」,完美解決 API 限制與定時任務
n8n Set 節點教學:你的資料瑞士刀,新增、修改、篩選欄位一次搞定
n8n NoOp 節點教學:一個「什麼都不做」的節點,為何是整理工作流的神器?