Skip to Content
BuildAction StepsChange Fields

Change Fields

Change fields reshapes a record on its way between two steps. Rename a field the receiving system calls something else, add one it needs, drop the ones it should never see.

At a glanceVerified in app · Oct 29, 2026
Use it to
Rename, set, and remove top-level fields on a record in one Step
Find it
Tools → Data → Transform → Change Fields
Cost
1 Step credit per execution
Limits
Runs three fixed passes in order: 1. Rename fields, 2. Set fields, 3. Remove fields
Output
{{ N.<field> }} (the reshaped record at the top level)
Instead
Custom Variables (when creating new named values without modifying an existing object)

It is the step that saves you from writing code purely to move data from one shape into another.

Transforming single fields inline? Use Data Transformation pipes (e.g. {{ 3.company | trim | upper }} or {{ 3.users | pluck:email }}) for single-field tidying. Use the Change fields canvas step when renaming, adding, and dropping multiple keys across a record at once.

Three passes, in a fixed order

The step runs three passes, always in this order:

1. Rename fields2. Set fields3. Remove fields
PassWhen it runsWhat it does
Rename fieldsFirstEach row gives a field’s current name and its new one
Set fieldsSecondEach row sets a field to a value
Remove fieldsLastEach row names a field to leave out of the result

Because renaming happens first, a Set row can write to a name that only exists because a Rename above created it. And because removal happens last, a field you set can still be removed in the same step.

// Before (Step 3 output): { "company_name": "Acme", "internal_blob": "..." } // After Change Fields (Rename company_name -> Company, Set source = "web", Remove internal_blob): { "Company": "Acme", "source": "web" }

Setting it up

Add the step

Open Tools in the dock and choose Change fields under Data.

Point it at a record

Start from takes the record you want to change, normally a reference to an earlier step such as {{ 3 }}. Leave Start from empty to build a new record from the fields you set below. Field names match literally at the top level.

Rename what needs renaming

Under Rename fields, add a row per field with its current Field name and New name. Renaming onto an existing field name overwrites that field. Renaming a missing field changes nothing and logs a warning on the run.

Set what needs setting

Under Set fields, add a row per field with its Field name, Value, and optional Type (Text, Number, Yes/no, List, or Record):

  • Typed literals: A value with no {{ }} reference is stored using its Type (Text by default, or parsed as JSON for Number, Yes/no, List, and Record).
  • References: A single reference (such as {{ 1.email }} or {{ 3.items }}) keeps its runtime type automatically. Mixing a reference with surrounding text produces Text.

Remove what should not travel on

Under Remove fields, name any field to leave out, such as an internal ID or large payload blob. Removing a field that does not exist does nothing.

What it passes on

The changed record itself, with your renames, sets and removes applied. Fields sit at the top level, so a downstream step reads them directly:

{{ 4.firstName }} {{ 4.greeting }}

Everything you did not mention travels through unchanged, keeping its type.

Examples to copy

An enrichment API returns company_name and employee_count, but your CRM expects Company and Headcount.

Start from: {{ 3.ret }}. Add two Rename rows: company_name → Company and employee_count → Headcount, then map the renamed fields into the CRM action.

Verify it works
Run
Point Start from at an earlier Step's record, add a Rename or Set row, and click Run step in Test & Debug
You should see
The Output tab shows the reshaped record at the top level with your renamed, added, and removed keys applied in order.

What’s Next?

Last updated on

Search documentation

Start with a guide, or search by Step, task or error.