Skip to content

Rename Columns

Transform

Rename one or more columns by declaring fromto mappings. Columns not listed in the mappings pass through with their original names. Use it to clean up source headers (e.g. Customer IDcustomer_id), align columns to a downstream schema, or apply consistent naming across imported files.

Rename Columns is a streaming transform: each row is processed independently and emitted with the matching keys swapped to their target names. Row order, row count, and cell values are unchanged — only the keys differ.

The transform builds a Map<from, to> once at startup and rewrites each row’s keys in input order. Columns whose names are not in the mapping are emitted unchanged. Mappings whose from column does not exist on a row are silently ignored for that row.

If no mappings are defined, all rows pass through unchanged.

Input: One tabular data connection. Output: The same rows with the configured columns renamed; other columns untouched.

An ordered list of { from, to } pairs. Both fields are required strings; either being empty is a configuration error.

FieldTypeDescription
fromstringExisting column name to rename. Required, non-empty.
tostringNew column name. Required, non-empty.

Defaults to an empty list (passthrough).

The source export uses Title Case headers and you want lowercase snake_case for downstream tooling.

Before:

Customer IDFull NameSignup Date
1042Alice Anderson2024-03-12
1043Bob Brown2024-04-01
1044Carol Chen2025-01-18

Configuration: Three mappings — Customer IDcustomer_id, Full Namefull_name, Signup Datesignup_date.

After:

customer_idfull_namesignup_date
1042Alice Anderson2024-03-12
1043Bob Brown2024-04-01
1044Carol Chen2025-01-18

Only the email_address column needs to become email; everything else stays as-is.

Before:

nameemail_addressrole
Alice[email protected]admin
Bob[email protected]user

Configuration: One mapping — email_addressemail.

After:

nameemailrole
Alice[email protected]admin
Bob[email protected]user
  • Renaming to a name that already exists collapses the two columns. The transform writes to the target key as it walks the input row in insertion order, so if you rename legacy_totaltotal while a total column already exists, the column written last wins. This is rarely what you want — pair with Select Columns to drop the duplicate first, or rename the existing total column to something else as a separate mapping. See apps/web/src/transforms/rename-columns/logic.ts:37-44.
  • Mappings whose source column doesn’t exist on a row are silently ignored. This is intentional — sparse rows (where a column may be absent on some rows) don’t error. The downside is that typos in the from field don’t produce a runtime warning; the rename just never fires.
  • Select Columns — drop the leftover columns after a rename, or remove the duplicate when renaming into an existing name.
  • Reorder Columns — change column order without changing names.
  • Formula — derive a new column from existing ones if you need more than a name change.