Input & Output
Output ports, the mapped_data object, and downstream access patterns.
Output Ports
| Port | Condition | Description |
|---|---|---|
| success | All mapping rules applied without error | The mapped_data object is populated and available downstream via output.NodeName.mapped_data. |
| error | Source resolution failed or a transform threw an exception | Error details in output.NodeName.error. Individual missing source fields do NOT trigger the error port — they use default_value or produce null. |
Output Data Schema
| Field | Type | Description |
|---|---|---|
mapped_data | object | The constructed target object containing all target fields defined in the mapping rules. Only explicitly mapped fields appear — no source fields are passed through automatically. |
Example Source and Output
Source object (from upstream CRM node):
{
"contact": {
"fullName": " Jane Doe ",
"emailAddress": "JANE.DOE@EXAMPLE.COM",
"phone": "(512) 555-1234",
"createdAt": "2023-11-15T00:00:00Z",
"accountBalance": 1234.5
}
}
Output after Data Mapping with the configuration from the Configuration page:
{
"mapped_data": {
"displayName": "Jane Doe",
"email": "jane.doe@example.com",
"phoneE164": "5125551234",
"memberSince": "15 Nov 2023",
"balanceFormatted": "1,234.50"
}
}
Accessing Output Downstream
| Expression | Result |
|---|---|
{@ output.NormaliseContact.mapped_data } | The entire mapped object |
{@ output.NormaliseContact.mapped_data.email } | "jane.doe@example.com" |
{@ output.NormaliseContact.mapped_data.balanceFormatted } | "1,234.50" |
Error Output Schema
{
"error": {
"code": "SOURCE_RESOLUTION_ERROR",
"message": "Could not resolve source_output node 'GetContactFromCRM': node not found in execution context.",
"node": "NormaliseContact",
"timestamp": "2026-05-23T10:34:12Z"
}
}