
這是要介紹的兩個 Node 分別是 If 和 Switch
寫程式的人應該對這兩個詞不太陌生
都是用在條件判斷的時候
舉幾個例子
今天要吃什麼午餐 -> 是個開放性的問題
今天午餐要不要吃麥當勞 -> Yes or No -> If
今天午餐吃麥當勞還是肯德基 -> 二選一 -> Switch
If 節點

n8n 中的 If 就是單純用來判斷 條件有沒有符合
條件的設定如下:

方法非常直覺,選擇要判斷的欄位和值

先觀察前面的節點會傳什麼資料過來
再決定你要判斷哪個欄位
並加上判斷的條件
形態有分成字串、數字、布林值、陣列、物件和日期
請先觀察你想要比較的欄位在截圖 Step 1 其實都會顯示那個欄位是什麼型態

可以稍微記得一下他們的 icon
(截圖這邊用 JSON 示範資料會先把日期當成 String
所以顯示 String 的 icon)
Convert types where required
這個選項是說如果你想要比對的型態,和原始資料的型態不一樣
n8n 會嘗試自動幫你轉換
轉的過去就會成功,轉不過去就填海
這裡分享一個示範關於有沒有勾選的差異

Ignore case
這個選項就很好理解
選擇的話,就會忽略大小寫

舉一個例子
有些系統在搜集 Email 時是會區分大小寫的
但其實 Email 本身是沒有大小寫之分
所以今天名單裡面如果他存的是 Test@test.com
但你可能直覺要比對 test@test.com
這時沒勾選 Ignore case 就會判斷為 False 造成錯誤
Switch 節點
If 單純判斷是或否
Switch 則是多個選項(規格)的判斷

圖例接續上面的範例資料
今天餐廳有Google評分,想要篩選出某個分數以上的餐廳
目前的餐廳分數是 4.8
設定了規則
- 大於 4.5
- 大於 4.0
- 其他
Switch 的運作原理為
從第一個規則開始往下判斷
(預設) 如果遇到符合的,就往下走符合的 output
也可以透過選項 Send data to all matching outputs
來走全部符合的 output
Send data to all matching outputs
直接用圖片示範有勾選和沒勾選的差異,

舉個例子: 前方判斷的資料為
使用者願意接收通知的渠道
✅ Email
✅ Line
❌ 簡訊
✅ Push
如果勾選 Send data to all matching outputs
使用者就會在這些渠道都收到新的消息
而只有簡訊不會寄出