Edit Fields (Set)
processing.set Processing v0.1.0 Set output fields from literals or JS {{ }} expressions, per item. Choose which other input fields to keep (all/none/selected/except); expressions can reach into JSON held in a string.
Ports
| Direction | Port | Label |
|---|---|---|
| Input | input | Input |
| Output | output | Output |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
Modemode | select | "manual" | Manual mapping = define fields one by one. JSON = produce the whole output object from JSON / a {{ }} expression. manualjson |
Fields to setassignments | set-fields | [{"name":"","type":"string","value":""}] | Each field has a name (dot-notation builds nested objects), a type, and a value. The value can be a literal or a JS {{ }} expression like {{ $json.body.results[0].name.first }} or {{ $json.total * 2 }} — expressions can reach into JSON held in a string (e.g. an HTTP body). Shown when (mode ?? "manual") === "manual" |
JSON outputjson | json | {} | The output object. Values may be {{ }} expressions, e.g. { "name": "{{ $json.first }}" }. Shown when mode === "json" |
Other input fieldsinclude | select | "all" | Which fields from the input to keep alongside the ones you set. Set fields always override. allnoneselectedexcept |
Fields to keepincludeFields | string | — | Comma-separated field names/paths to keep from the input (empty = keep none of the others). Shown when include === "selected" |
Fields to dropexcludeFields | string | — | Comma-separated field names/paths to remove from the input (empty = drop none). Shown when include === "except" |
Dot notationdotNotation | boolean | true | Interpret dots in a field name as a nested path (user.name → { user: { name } }). Off = use the whole name literally. |
Ignore type conversion errorsignoreConversionErrors | boolean | false | If a value can't be converted to its chosen type, keep the raw value instead of failing the node. |
Examples
Manual mapping with expressions
Each assignment has a name (dot-notation builds nested objects), a type, and a value that can be
a {{ }} expression:
{
"id": "shape",
"type": "processing.set",
"config": {
"mode": "manual",
"assignments": [
{ "name": "customer.name", "type": "string", "value": "{{ $json.body.results[0].name.first }}" },
{ "name": "total", "type": "number", "value": "{{ $json.total * 2 }}" },
{ "name": "processedAt", "type": "string", "value": "{{ $now }}" }
],
"include": "none",
"dotNotation": true
}
}
include controls what happens to the other input fields: keep all, keep none (only your
set fields), keep selected, or keep all except listed ones.
JSON mode — emit the whole object
{
"mode": "json",
"json": { "name": "{{ $json.first }} {{ $json.last }}", "source": "flowdrome" }
}
Tips
- Expressions descend into JSON-in-a-string.
{{ $json.body.results[0].name }}works even whenbodyis a JSON string (an HTTP response) — the expression engine parses it on the way in. - Per-item by nature: over a list input, assignments apply to each item.
ignoreConversionErrorskeeps the raw value instead of failing when, say,"abc"won’t become anumber.- Set is the n8n Edit Fields (Set) equivalent at full parity — if you’re arriving from n8n, your habits transfer.
This page is generated from the node registry by gen-node-docs.mjs on every
site build — ports, properties, defaults and visibility rules cannot drift from the code.
The examples above are hand-authored and merged in.