Skip to main content
The Transform step builds a structured, typed object from expressions and records it under the step’s name, so later steps can reference the result. Unlike the Output step, it is not terminal — execution continues to the next step.

What it does

  • Evaluates the expression in each field against ctx
  • Type-casts each value to the field’s declared type
  • Records the resulting object under the step’s name
  • Continues to the next step (it does not set the workflow’s return value)
Think of it as an Output step you can put in the middle of a workflow: it produces a clean, named payload without ending the run.

Transform vs Output

The two share the same field editor (name, type, value), so a Transform is easy to promote to an Output later, or vice-versa.

Fields

Each field has:
  • Name — the key on the produced object
  • Typestring, number, boolean, array, or object
  • Value — a literal or expression resolved against ctx
You can edit fields one at a time in the Fields tab, or switch to the JSON tab to define them all at once as { "field": { "value": "{{ expr }}", "type": "string" } }.

What lands in ctx

After the step runs, its fields are recorded as a flat object under the step’s name:
Reference the fields downstream just like any other step:

When to use it

  • Reshape and rename — turn a verbose API response into a small, clearly-named object for the rest of the workflow.
  • Consolidate — combine fields from several upstream steps into one payload you reference in one place.
  • Normalize types — coerce a stringy value into a real number or boolean before a Condition step.

Example: clean up an API response

Given an HTTP step n4 that returned a large CRM record, a Transform step can distill just what downstream steps need:
Downstream steps then reference {{ n5.name }}, {{ n5.tier }}, and {{ n5.is_vip }} instead of digging back into the raw response.

Considerations

  • Pure expressions preserve types. {{ n4.body.balance }} in a number field stays a number. A number field whose expression resolves to non-numeric text will fail the type-cast — keep the declared type and the value in sync.
  • It doesn’t terminate. Remember to connect a Transform to a following step; on its own it produces data but returns nothing to the caller.