昨天成功把 AI 處理完成的結果自動寫進 Google Sheets。
目前的流程已經可以做到:
外部資料 → Webhook → AI 處理 → Google Sheets 儲存
但目前不管收到什麼資料,基本上都會走完全相同的流程。
這讓我想到一個問題:
如果不同的資料需要不同的處理方式,要怎麼辦?
例如收到「緊急」的內容時,我可能希望另外處理,而一般內容就直接儲存。
所以今天要來認識 n8n 的 IF Node,讓 Workflow 開始可以自己判斷要走哪一條路。
如果有學過程式設計,應該多少看過:
if 條件成立
做 A
else
做 B
n8n 的 IF Node 其實就是類似的概念,只是可以直接透過圖形化介面設定。
例如:
收到資料
↓
判斷 status 是否為 urgent
↓
TRUE → 緊急處理
FALSE → 一般處理
也就是讓 Workflow 不再只能一直往同一個方向執行,而是可以根據資料決定接下來要做什麼。
今天先做一個簡單的分類測試。
假設 Webhook 收到:
{
"text": "系統目前無法正常登入",
"status": "urgent"
}
希望 Workflow 判斷 status。
如果:
status = urgent
就走 True。
如果不是 urgent,就走 False。
整個流程大概會變成:
Webhook
↓
IF Node:status 是否等於 urgent?
↙ ↘
True False
↓ ↓
緊急處理 一般處理

圖 1 使用 IF Node 建立條件分流
今天可以繼續使用 Webhook。
先傳入一筆資料:
{
"text": "系統目前無法正常登入",
"status": "urgent"
}
執行後,可以先確認 Webhook 有沒有正確收到:
text
status
這兩個欄位。

圖 2 Webhook 接收到包含 status 的測試資料
接下來在 Webhook 後面加入 IF Node。
今天要判斷的是:
status是否等於urgent
所以 IF Node 的概念就是:
Value 1:status
條件:is equal to
Value 2:urgent
而 status 的資料可以從前一個 Node 的 Input 選取,或使用 Expression 取得。
例如依照今天的資料結構,可能會從 Webhook 的 body 裡取得:
{{ $json.body.status }}
不過實際路徑還是要以自己 Webhook 收到的 JSON 結構為準。

圖 3 設定 IF Node 判斷 status 是否為 urgent
先傳:
{
"text": "系統發生錯誤,現在無法使用",
"status": "urgent"
}
因為:
urgent = urgent
條件成立,所以資料應該會從 True 的路線出去。
這時候就代表 IF Node 判斷成功。
只有測試 True 還不夠,所以再改一筆資料:
{
"text": "希望之後可以增加深色模式",
"status": "normal"
}
這次:
normal ≠ urgent
條件不成立,所以資料應該走 False。

圖 4 IF Node 根據不同 status 將資料分流
這樣就證明 Workflow 真的會根據收到的內容走不同的路線。
接著就可以跟昨天的 Google Sheets 結合。
例如:
Webhook
↓
IF Node
↙ ↘
True False
↓ ↓
緊急處理 Google Sheets
↓
儲存一般資料
目前「緊急處理」這邊甚至不用做得太複雜,可以先接一個簡單的節點,確認資料真的有走到不同路線。
等之後學到通知功能,再把它改成:
緊急資料 → 自動發送通知
這樣整個流程就會更實用了。
做到這裡,我發現其實「判斷」也可以分成兩種。
如果資料本身已經有:
status = urgent
這種很明確的條件,就可以直接用 IF Node。
但是如果使用者只傳:
「系統一直當掉,我現在完全沒辦法工作。」
裡面根本沒有 urgent 這個欄位。
這時候單靠:
status == urgent
就沒有辦法判斷。
反而可以先讓 AI 分析:
這段文字屬於「緊急」還是「一般」?
AI 回傳:
urgent
再把結果交給 IF Node。
流程就可以變成:
Webhook → AI 分類 → IF Node 判斷 → 不同處理方式
這也是我覺得 AI 和一般自動化結合後比較有意思的地方。
AI 負責理解內容,IF Node 則負責根據結果控制 Workflow。
IF Node 本身其實不難,真正比較容易出錯的是:
我要判斷的資料到底在哪裡?
有時候會以為資料是:
$json.status
但實際從 Webhook 收到後可能是在:
$json.body.status
所以如果 IF Node 一直判斷錯誤,我現在會先回去看前一個 Node 的 Output,確認 JSON 結構,再設定 Expression。
這也再次用到 Day 8 學到的 JSON。
今天加入 IF Node 之後,Workflow 終於不再只有一條固定路線。
現在已經可以做到:
收到資料 → 判斷條件 → 選擇不同路線 → 執行不同工作
前幾天主要是在學「資料怎麼進來」和「資料怎麼處理」,今天則開始學:
Workflow 怎麼根據資料做決定。
目前我們已經有 Webhook、AI、IF Node 和 Google Sheets,基本的自動化流程也越來越完整。
不過現在如果出現緊急資料,我們雖然可以把它分流出來,卻還沒有真的通知任何人。
所以明天就把今天的 True 路線繼續完成:
判斷為緊急 → 自動發送通知