Overview
The Set Node reshapes payloads by adding, updating, or removing fields in flight. It supports both click-to-configure field mappings and JSON-based templates, allowing teams to enrich data, normalize schemas, or inject metadata without writing custom code. Expressions are fully supported so downstream nodes receive the exact structure and values they expect.
Core Functionality
1. Two Authoring Modes
- Manual mode lets you configure individual fields with dedicated names, values, and target types.
- JSON mode accepts a JSON structure (including expressions) that merges into the payload.
- Any string field can include Maestro expressions (
{{ }}) that resolve against pipeline context.
- Expressions have access to
$input, $node, $pipeline.
3. Type Conversion & Validation
- Supported target types:
auto, string, number, boolean, json, array.
- Optional
Ignore Type Conversion Errors lets you continue when conversions fail (defaults to strict mode).
- Validation catches missing field names, unsupported types, or invalid JSON before execution.
Include Input Data: "all" (default) clones the inbound payload before applying changes.
Include Input Data: "none" starts from an empty object—ideal for building new payloads.
Include Input Data: "selected" is reserved for selective merges; today it behaves like "all" unless the backend injects filtered data.
5. Field-Level Controls
Keep Only Set Fields removes fields not explicitly configured (manual mode only).
- Dot notation (
user.profile.name) creates or updates nested objects when Support Dot Notation is enabled.
Configuration Reference
Parameters (Dynamic Data)
| Field | Type | Default | Description |
|---|
| Mode | string | "manual" | Authoring strategy ("manual" or "json"). |
| Fields | array | [] | Manual field definitions (required in manual mode). |
| JSON Data | string | "" | JSON payload injected when Mode is "json". |
Options
| Field | Type | Default | Description |
|---|
| Keep Only Set Fields | boolean | false | Remove any fields not explicitly configured (manual mode only). |
| Support Dot Notation | boolean | true | Allow nested paths such as order.total. |
| Ignore Type Conversion Errors | boolean | false | Continue execution when conversion errors occur. |
| Include Input Data | string | "all" | Merge behavior: "all", "none", or "selected". |
Manual Field Definition (fields[])
| Property | Type | Description |
|---|
| Name | string | Target field name; supports dot notation when enabled. |
| Value | string | Literal value or expression resolved at runtime. |
| Type | string | Optional conversion target (auto, string, number, boolean, json, array). |
Settings (Static Configuration)
| Field | Type | Default | Description |
|---|
| Retry on Fail | boolean | false | Retries execution if the node encounters infrastructure issues. |
| On Error | string | "Stop Pipeline" | "Stop Pipeline" aborts the branch, "Continue Execution" forwards the payload with error metadata. |
| Notes | string | "" | Document transformation intent for collaborators. |
| Display Note in Pipeline | boolean | false | Show notes directly on the canvas. |
Usage Examples
| Field | Value |
|---|
| Mode | manual |
| Include Input Data | all |
| Support Dot Notation | true |
| Notes | Attach operator name and processed timestamp. |
| Manual Field | Assigned Value | Type |
|---|
batch.operatorName | Jane Miller | string |
batch.processedAt | 1706539200000 | number |
The incoming payload is preserved while the node adds a nested batch object with operator details.
Example 2: Build a Fresh Payload with JSON Mode
| Field | Value |
|---|
| Mode | json |
| JSON Template | {"status":"ready","line":"Assembly-1","targetUnits":480} |
| Include Input Data | none |
| Ignore Type Errors | false |
The output becomes exactly the JSON template above—ideal for shaping requests to a downstream connector without carrying legacy fields.
Example 3: Keep Only Essential Fields
| Field | Value |
|---|
| Mode | manual |
| Include Input Data | all |
| Keep Only Set | true |
| Notes | Return only identifiers for audit export. |
| Manual Field | Assigned Value | Type |
|---|
orderId | PO-8721 | string |
totalAmount | 1543.75 | number |
metadata.retryCount | 0 | number |
After execution, the payload contains only the configured fields. metadata.retryCount populates with 0 when absent but leaves existing values untouched because Keep Missing is true.