Skip to content

Select Columns

Transform

Keep only the columns you want, or remove the columns you don’t, by listing column names. The transform runs in two modes — keep emits only the listed columns; remove emits everything except them. Use it to trim noisy exports, drop sensitive fields before sharing, or narrow a wide table to the handful of columns a downstream node actually needs.

Select Columns is a streaming transform: each row is filtered independently. The mode (keep or remove) determines whether the listed columns are the ones to retain or the ones to drop. Columns not on any row but listed in the configuration are silently ignored — there is no error for unknown column names.

Output column order matches input row order, not the order you list columns in the configuration. If you need a specific output order, follow this transform with Reorder Columns.

If the column list is empty, all rows pass through unchanged regardless of mode.

Input: One tabular data connection. Output: The same rows with columns added or omitted per the configuration.

OptionTypeDescriptionDefault
mode"keep" | "remove"Whether columns lists what to retain or what to drop.keep
columnsstring[]Column names to keep or drop. Empty list = passthrough.[]

A wide export has nine columns; downstream you only care about three.

Before:

customer_idfull_nameemailphonesignup_datetierbalance
1042Alice Anderson[email protected]555-01422024-03-12pro320.50
1043Bob Brown[email protected]555-01772024-04-01standard45.00

Configuration: mode: keep, columns: ["customer_id", "full_name", "email"].

After:

customer_idfull_nameemail
1042Alice Anderson[email protected]
1043Bob Brown[email protected]

You’re handing the data to a partner and want to strip the phone number and internal balance.

Before:

customer_idfull_nameemailphonebalance
1042Alice Anderson[email protected]555-0142320.50
1043Bob Brown[email protected]555-017745.00

Configuration: mode: remove, columns: ["phone", "balance"].

After:

customer_idfull_nameemail
1042Alice Anderson[email protected]
1043Bob Brown[email protected]
  • Output column order follows input row order, not the configured list. If you write columns: ["email", "customer_id"] in keep mode, the output still emits customer_id before email if that’s how the input row is ordered. Pair with Reorder Columns to control output order. See apps/web/src/transforms/select-columns/logic.ts:42-53.
  • Unknown column names are silently ignored. Listing a column that doesn’t exist on the input doesn’t raise — in keep mode it just produces no extra output, in remove mode it has no effect. This is forgiving for sparse data but means typos don’t surface as errors.