Select Columns
Keep only the columns you want, or remove the columns you don’t, by listing column names. The transform runs in two modes —
keepemits only the listed columns;removeemits 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.
How it works
Section titled “How it works”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.
Options
Section titled “Options”| Option | Type | Description | Default |
|---|---|---|---|
mode | "keep" | "remove" | Whether columns lists what to retain or what to drop. | keep |
columns | string[] | Column names to keep or drop. Empty list = passthrough. | [] |
Examples
Section titled “Examples”Keep only the columns you need
Section titled “Keep only the columns you need”A wide export has nine columns; downstream you only care about three.
Before:
| customer_id | full_name | phone | signup_date | tier | balance | |
|---|---|---|---|---|---|---|
| 1042 | Alice Anderson | [email protected] | 555-0142 | 2024-03-12 | pro | 320.50 |
| 1043 | Bob Brown | [email protected] | 555-0177 | 2024-04-01 | standard | 45.00 |
Configuration: mode: keep, columns: ["customer_id", "full_name", "email"].
After:
| customer_id | full_name | |
|---|---|---|
| 1042 | Alice Anderson | [email protected] |
| 1043 | Bob Brown | [email protected] |
Drop sensitive columns before sharing
Section titled “Drop sensitive columns before sharing”You’re handing the data to a partner and want to strip the phone number and internal balance.
Before:
| customer_id | full_name | phone | balance | |
|---|---|---|---|---|
| 1042 | Alice Anderson | [email protected] | 555-0142 | 320.50 |
| 1043 | Bob Brown | [email protected] | 555-0177 | 45.00 |
Configuration: mode: remove, columns: ["phone", "balance"].
After:
| customer_id | full_name | |
|---|---|---|
| 1042 | Alice Anderson | [email protected] |
| 1043 | Bob Brown | [email protected] |
Tips and Edge Cases
Section titled “Tips and Edge Cases”- Output column order follows input row order, not the configured list. If you write
columns: ["email", "customer_id"]inkeepmode, the output still emitscustomer_idbeforeemailif that’s how the input row is ordered. Pair with Reorder Columns to control output order. Seeapps/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
keepmode it just produces no extra output, inremovemode it has no effect. This is forgiving for sparse data but means typos don’t surface as errors.
Related Transforms
Section titled “Related Transforms”- Reorder Columns — control output column order after selecting.
- Rename Columns — rename the columns you keep without dropping them.
- Filter Rows — remove rows instead of columns.