node cookbook

n8n Set Node: Clean Payloads Before APIs, Sheets, and Databases

Use the Set node, also known as Edit Fields, to create, rename, keep, remove, or normalize fields before sending data to later nodes.

Independent third-party notes. n8n is a trademark of its owner and is referenced only for compatibility and troubleshooting context.

Quick Answer

Use the Set node, also known as Edit Fields, to create, rename, keep, remove, or normalize fields before sending data to later nodes.

Problem Pattern

The user has messy incoming data and needs a predictable output shape before sending it to an API, sheet, database, or app node.

Key Facts

Node role
Edit the fields on workflow items.
Best fit
Data cleanup, field mapping, shaping API payloads, and simplifying downstream nodes.
Common output
A predictable object shape for app, HTTP, or database nodes.
Common companion nodes
IF, Merge, HTTP Request, Code, Webhook, and app nodes.

Recommended Steps

  1. Place the Set node before a node that needs a cleaner input shape.
  2. Choose which fields to add, rename, keep, or remove.
  3. Use expressions for values that come from earlier nodes.
  4. Keep only fields downstream nodes actually need when payloads are noisy.
  5. Run a test and inspect the exact output JSON.

Verification

  • The output JSON has the exact field names downstream nodes expect.
  • Unneeded fields are removed only after no downstream node needs them.
  • Example items with missing fields still produce safe output.

Warnings

  • Removing fields too early can break downstream expressions.
  • Renaming fields without updating downstream mappings creates hard-to-see failures.

Common Mistakes

  • Using Set as a place for complex logic better suited to Code.
  • Renaming a field but leaving old expressions in later nodes.
  • Keeping large unused fields and increasing memory pressure.
  • Forgetting to test an item with missing optional fields.

Examples

Normalize a lead payload Use Set before sending data to a CRM or spreadsheet.
email = {{$json.email}}
company = {{$json.company.name}}
source = webhook
created_at = {{$now}}
qualified = {{$json.score >= 80}}

FAQ

Is Set the same as Code?

No. Set is best for straightforward field editing. Code is better for loops, complex transformations, and defensive logic.

Why did a later node lose data?

The Set node may be configured to keep only selected fields. Check whether needed fields were removed.

Sources