Skip to Content
๐Ÿ›  Build๐Ÿ›  Action 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.

DockData ยท ChangeTakesa recordReturnsthe changed record

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

Transforming single fields inline? If you only need to clean, uppercase, format, or extract a specific field value before passing it to a downstream step, use Data Transformation (e.g. {{ 3.company | trim | upper }} or {{ 3.users | pluck:email }}). Use the Change fields canvas step when reshaping entire records (renaming, adding, and dropping multiple keys simultaneously).

Three passes, in a fixed order

The step runs three passes, always in this order.

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. That suits a value you need briefly and do not want to pass on.

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 }}.

Rename what needs renaming

Under Rename fields, add a row per field: its current name, then the name it should have. Add Row for each one.

Set what needs setting

Under Set fields, add a row per field with its value. The value can be a reference, so {{ 1.email }} or {{ $today }} both work.

Remove what should not travel on

Under Remove fields, name any field to leave out: usually an internal identifier, or a large blob you do not want carried into the next step.

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

Match a CRMโ€™s field names

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

Start from: {{ 3.ret }}. Two Rename rows: company_name โ†’ Company, employee_count โ†’ Headcount. Nothing else needed.

Stamp a record before storing it

Set fields: processedAt = {{ $now }}, source = Website form, workflowUrl = {{ $workflow_url }}.

The last one gives whoever finds the record later a link straight back to the workflow that wrote it.

Cut a record down before sending it on

An app returns fifty fields and the next system wants six.

Use Remove fields for the big ones: the raw HTML of an email, an attached file, an internal id nobody downstream reads. A smaller record moves between steps faster and stays under the size a run may carry.

Rename, then build on the new name

Rename: first_name โ†’ firstName. Set: greeting = Hi {{ 3.first_name }}.

The rename gives downstream steps the tidy firstName; the greeting is built from the source stepโ€™s value. A {{ }} reference always reads an earlier stepโ€™s stored output: a step cannot reference its own result while it is still being made.

Whatโ€™s Next?