2026/3/19
AI自動化 n8n n8n新手教學如何使用 If 節點條件過濾 API 資料並寫入 Airtable? | (EP.6) n8n 自動化新手教學
為什麼需要在寫入資料庫前進行「條件過濾」?在上一堂課程中,我們成功透過 HTTP Request 節點從 API 取得了 30 筆訂單資料,並將它們全部寫入 Airtable 中。然而在實務應用上,這並非最佳做法。 我們其實不需要將「所有」訂單都存入資料庫,而是只需要處理特定狀態的訂單。例如,我們只想挑出 orderStatus 為 processing(處理中)的訂單,而忽略狀態為 booked(已預訂)的資料。透過條件過濾,不僅能讓資料庫保持整潔,更能節省運算資源與 API 傳輸時間。 如何在 n8n 中加入並設定 If 節點?為了達到分流資料的目的,我們可以使用 n8n 中的 If 節點 來處理條件邏輯。 步驟一:中斷原有流程並插入 If 節點 游標移至 HTTP Request 與 Airtable 節點之間的連線。 點擊垃圾桶圖示(Delete)刪除原有的直接連線。 點擊 + 號,搜尋並新增一個 If 節點。 步驟二:設定條件邏輯 (Expression)進入 If 節點的設定畫面後,我們需要告訴系統「判斷的標準」是什麼: 點擊 Add Condition。 針對 Value 1,點擊 Expression 模式。 從左側的資料面板中,將前一個節點抓取到的 orderStatus 欄位拖拉進來,此時會自動產生變數語法:1{{ $json.orderStatus }} 設定判斷條件:選擇 String 類別下的 **is equal to**(等於)。 針對 Value 2,輸入我們想要篩選的目標字串:processing。 步驟三:測試與檢驗分流結果點擊 Execute Step(執行節點)。執行完畢後,你可以在 Output 面板看到資料被成功分流: True Branch(真分支): 包含 14 筆 orderStatus 為 processing 的訂單。 False Branch(假分支): 包含 16 筆狀態為 booked 的訂單。 如何將篩選後的資料正確寫入 Airtable?既然我們已經把資料分流,接下來只要將符合條件的資料送進資料庫即可。 連接正確的分支: 從 If 節點的 true 輸出端點,拉一條線連接至原有的 Airtable 節點。 清理舊資料: 回到你的 Airtable 介面,將先前測試時一次塞入的 30 筆舊資料全選並刪除(Delete all selected orders)。 重新執行工作流: 回到 n8n,點擊下方的 Execute Workflow 完整跑一次流程。 驗證結果: 此時回到 Airtable 或查看 Airtable 節點的 Output,你會發現系統只精準寫入了那 14 筆 processing 狀態的訂單,且每個欄位(如建立時間、ID、名稱等)皆正確對應。 下一步優化:為什麼我們該精簡傳輸的欄位?目前我們雖然過濾了訂單狀態,但仍把每一筆訂單的「所有欄位」都傳進了 Airtable。 如果在只有 14 筆資料、5 個欄位的情況下,效能差異並不明顯;但當企業成長到數千筆訂單、數十個欄位時,傳輸不需要的資料會大幅拖慢運算速度、拉長資料傳輸時間,並佔用過多 Airtable 的儲存空間。 因此,在下一個章節中,我們將教你如何進一步過濾,只提取我們真正需要的欄位(例如:員工姓名與訂單編號)來進行後續處理。 常見問答 (FAQ)Q:在 n8n 中,If 節點與 Switch 節點有什麼不同?A:If 節點主要用於處理布林邏輯(True / False),適合單一條件的二分法過濾(例如:狀態是否為處理中)。若你需要依據多種不同的狀態(例如:處理中、已出貨、已退款)將資料分流到三個以上的不同工作流程,使用支援多個輸出連接器的 Switch 節點會更加合適。 Q:如果我想設定多個過濾條件可以嗎?A:可以的。在 If 節點的設定中,你可以點擊 Add condition 來新增多個條件,並設定它們之間的邏輯關係為 AND(必須全部符合)或 OR(符合其中一項即可),以滿足更複雜的商業邏輯。 Q:為什麼不建議把 API 抓到的所有資料直接塞進資料庫保留備用?A:寫入過多非必要資料會大量消耗系統算力,導致資料傳輸速度變慢且耗時更長。此外,雲端資料庫(如 Airtable)通常有儲存空間與紀錄筆數的限制。精準過濾所需的資料與欄位,是維持自動化工作流高效運作的關鍵最佳實踐。