n8n Set 節點封面圖:在自動化流程中處理資料欄位

n8n Set 節點教學:新增、改寫與整理資料欄位

內容簡介

Set 節點是 n8n 中非常強大的資料中繼處理工具,用於建立或修改資料。

它允許您直接在工作流程中定義新的欄位,或更新已有的欄位資料,而不需要從外部來源取得。

在目前的 n8n(本文查核版本 2.45.5)中,Set 節點在介面上的名稱是 Edit Fields (Set),可以用「Manual Mapping」以圖形介面拖拉欄位,或用「JSON Output」直接撰寫 JSON。本文的範例使用較早期的 Set 節點寫法,概念完全相同,文末「小技巧」整理了新版介面的對應設定。

使用情境

1. 新增資料:建立新的欄位,並指定它們的值。

2. 資料轉置:將既有欄位資訊轉置寫入至新欄位中。

3. 修改資料:更改輸入資料中的欄位值。

4. 刪除欄位:移除輸入資料中的不必要欄位。

範例場景

假設您有一組資料,想要在其中新增一個名為 status 的欄位,並根據某些條件決定其值。

範例設定

這是一個完整的範例 Workflow,展示如何使用 Set 節點新增欄位及修改資料:

範例說明

1. Start 節點:啟動工作流程,無輸入資料。

2. Set Node:

新增資料

• 新增欄位:

• status = “active”

• userId = 123 (數字)

• isAdmin = true (布林值)

• 將這些欄位新增到資料中。

3. Set Node:

修改資料

• 修改 status 欄位的值為 “inactive”。

• 不刪除其他欄位 (keepOnlySet: false)。

執行後差異

1. 第1個 Set Node(Set Node):

[
  {
    "isAdmin": true,
    "userId": 123,
    "status": "active"
  }
]

2. 第二個Set Node(Modify Existing Data):

[
  {
    "isAdmin": true,
    "userId": 123,
    "status": "inactive"
  }
]

小技巧

  • 只保留指定欄位:舊版的 keepOnlySet 參數,在新版 Edit Fields 節點中對應「Keep Only Set Fields」,開啟後只會輸出您在節點中設定的欄位。
  • 兩種模式:欄位少時用 Manual Mapping 拖拉即可;結構複雜(陣列、巢狀物件)時改用 JSON Output,並可在 JSON 中使用 {{ $json.欄位 }} 運算式。
  • 點號表示法:預設支援點號表示法,欄位名稱設為 number.one 會產生巢狀物件 { "number": { "one": 20 } };不需要時可在選項中關閉 Support Dot Notation。
  • 起始節點:範例中的 Start 節點在新版已由 Manual Trigger 等觸發節點取代,自己建立流程時請改用觸發節點。
  • Set 節點支援多種資料類型,包括字串、數字、布林值等,可以依據需求進行欄位資料中繼處理。

搭配 AI Agent 使用

Set 節點在 AI 流程中特別實用:

  • 送進 AI Agent 前先瘦身:只保留模型需要的欄位(例如標題、內文),可以減少送出的 Token 數量,也避免把不必要的個資傳給外部模型。
  • 整理 AI 輸出:把 AI Agent 回傳的內容拆成固定欄位,再交給 Google Sheets 或資料庫節點寫入。

n8n 系列文章

參考連結

成本與風險摘要

  • 適用對象與規模:所有 n8n 使用者;Set 是幾乎每個流程都會用到的基礎節點。
  • 成本(硬體、訂閱、授權):節點本身不另外收費;自架社群版免費,n8n Cloud 依執行次數計費。
  • 維護時間:幾乎不需維護;升級 n8n 時留意舊版節點是否需要更新。
  • 資安注意事項:不要把 API 金鑰或密碼寫在 Set 節點的欄位值中,請改用 Credentials 管理。
  • 常見誤區:忘記開啟「Keep Only Set Fields」,導致不必要的欄位(甚至個資)一路傳到下游節點。
  • 不建議使用的情況:需要複雜邏輯運算時,改用 Code 節點較清楚。
  • 測試日期與版本號:資料查核日期:2026-10-28;依官方文件對照 n8n 2.45.5(範例為作者早期實作,本次未重新實機測試)。
返回頂端