在這個工作流程的步驟中,您將學習如何使用條件邏輯 (conditional logic) 過濾資料,以及如何在節點中使用運算式 (expressions),這些都是透過 If 節點來實現的。
若只想在 Airtable 中插入「處理中 (processing)」的訂單,我們需要依照 orderStatus 來篩選資料。基本上,我們想告訴程式:如果 orderStatus 是 processing,則將所有符合此狀態的紀錄插入 Airtable;否則(例如,orderStatus 不是 processing),就計算其他訂單狀態(booked)的所有訂單金額總和。
這類 if-then-else 指令就是所謂的條件邏輯。在 n8n 的工作流程中,我們可以用 If 節點來實作條件邏輯,透過比較運算來決定工作流程的分支。
<aside> 🚀
If vs. Switch
如果您需要依據多於兩條可能的條件路徑(If 節點只有 true 與 false 兩個分支)來過濾資料,可以使用 Switch 節點。Switch 節點與 If 節點相似,但支援多個輸出路徑。
</aside>
首先,先移除 HTTP Request 節點與 Airtable 節點之間的連線:
移除 Airtable 節點連線後,新增一個 If 節點並連接到 HTTP Request 節點:
對於 If 節點,我們將使用表達式。
<aside> 🚀
Expressions
運算式 (expression) 指的是在程式語言中,由字元與符號組成、並可依據輸入值而得到結果的字串。在 n8n 的工作流程中,您可以在節點裡使用運算式引用其他節點輸出的資料。在本例中,If 節點會引用 HTTP Request 節點的輸出資料。
</aside>
在 If 節點視窗中,進行以下參數設定:
Value 1: {{ $json.orderStatus }}
將滑鼠移到 Value 1 欄位上,然後選擇右側的 Expression 標籤。
點擊連結圖示以開啟運算式編輯器 (Expression Editor)。
在變數選擇器 (Variable Selector) 裡,選擇 orderStatus,拉進 Value 1 ,即會將表達式新增到 Value 1。
Operation: String > is equal to
Value 2: processing
<aside> 🚀
Data Type:
請確保依照您所選的運算,正確設定資料型別 (boolean、date & time、number、string)。
</aside>