visibility Static layout preview of Map Columns, shown with a file imported, an interactive target schema + mapping configured, and a completed run (results + mapped preview). All pages →

# Map Columns

Runs 100% locally

Rename columns, change their order, and set each one as text, number, or date.

description Using crm_contacts_raw.csv from the upload screen.
Preview: crm_contacts_raw.csv

4,210 rows, 6 columns

| Full Name | EmailAddr | Phone # | Signup | Amount Spent | Notes
--- | --- | --- | --- | --- | --- | ---
0 | Jane Doe | jane@acme.io | 512-555-0190 | 01/04/2024 | $1,204.50 | VIP
1 | Bob Smith | bob@globex.com | 720-555-7781 | 02/11/2024 | $88.00 |
2 | Carla Reyes | carla@initech.net | 415-555-3322 | 03/02/2024 | $612.10 | renewal
3 | Dev Patel | dev@umbrella.co | 206-555-9043 | 03/19/2024 | $0.00 |

Options

### Target schema

How would you like to define the target schema?
Build interactively (start from current columns) Import schema JSON Skip (rename / convert types only — no schema)
An interactive build is fastest for one-off cleanup. Import a JSON when you have a fixed contract (a CRM import format, db schema). Skip when you only want to rename or convert the type of specific columns.

Edit the table to define your target schema. Add rows for fields the input doesn't have yet (with a default), or remove rows for columns you want to drop.

Target name | Type | Required | Default (for added cols) | Aliases (comma-sep, helps fuzzy-match)
--- | --- | --- | --- | ---
full_name | string | ✗ |  | Full Name, name
email | string | ✓ |  | EmailAddr, email_address
phone | string | ✗ |  | Phone #, tel
signup_date | date | ✗ |  | Signup
amount_spent | float | ✗ | 0.0 | Amount Spent
source | string | ✗ | crm-import |
add add row |  |  |  |

6 target fields · 1 added field (`source`) not present in the input.

### Mapping

Source | Target | Auto-suggested
--- | --- | ---
Full Name | full_name | ✓
EmailAddr | email | ✓
Phone # | phone | ✓
Signup | signup_date | ✓
Amount Spent | amount_spent | ✓
Notes | (unmapped) | ✗

Pick a target for each source column. `Notes` stays unmapped — with the keep-extras strategy it is kept as-is. `source` is added from the schema default.

### Strategy

Preset
rename-only (just rename, leave types alone, keep extras) lenient-schema (rename + convert types + reorder, keep extras) strict-schema (rename + convert types + reorder, drop extras) base Custom — based on strict-schema, 1 control changed modified
rule Individual Advanced controls win over the preset. You started from strict-schema, then changed Unmapped source columns to keep below — so the preset is now Custom. The controls' current values are what actually run.
Pick a strategy as the baseline. Every Advanced toggle below is still individually overridable; overriding any one switches the preset to Custom.
Advanced options
Unmapped source columns changed
keep
Winning value: keep. Overrides the strict-schema base (drop) — so `Notes` survives into the output.
check Convert each column to the right type
check Reorder to schema order
check Auto-infer mapping (fuzzy match)
Fuzzy match threshold
0.80
check Enforce required fields

## Results

Renamed
5
Dropped
0
Added
1
Coerce fails
3
infoAdded (with defaults): `source`
warningSome cells could not be coerced and were left as NaN: amount_spent (3)

Mapped preview (first 10 rows)

| full_name | email | phone | signup_date | amount_spent | source | Notes
--- | --- | --- | --- | --- | --- | --- | ---
0 | Jane Doe | jane@acme.io | 512-555-0190 | 2024-01-04 | 1204.5 | crm-import | VIP
1 | Bob Smith | bob@globex.com | 720-555-7781 | 2024-02-11 | 88.0 | crm-import |
2 | Carla Reyes | carla@initech.net | 415-555-3322 | 2024-03-02 | 612.1 | crm-import | renewal
3 | Dev Patel | dev@umbrella.co | 206-555-9043 | 2024-03-19 | 0.0 | crm-import |
4 | Mei Lin | mei@hooli.com | 503-555-1188 | 2024-04-07 | NaN | crm-import | trial

arrow_forwardColumns mapped. Run the recommended clean →