DEV Community

Cover image for Mapping CSV Airtable (or Notion) without tears (template inside)
Colby Cardell
Colby Cardell

Posted on

Mapping CSV Airtable (or Notion) without tears (template inside)

Imports break for tiny reasons: wrong casing, duplicate emails, states spelled out, phones formatted weirdly.

Here’s a lightweight recipe + templates that make CSV → Airtable/Notion painless.

1) Define the mapping

Use a 5-column mapping template:

source_field destination_field type_hint required notes
first_name First Name text no PROPER case
last_name Last Name text no
email Email email yes unique key
phone Phone phone no normalize E.164
state State select no USPS 2-letter
tags Tags multi-select no split on , or ;

2) Normalize before import

Rules that catch 80% of pain:

  • email → LOWER
  • phone → E.164 (+15551234567), infer country if needed
  • state → USPS (IllinoisIL)
  • first/last → PROPER
  • tags → split on [,;] then trim

3) Deduplicate

Start with email (lowercased) as the primary key.

If missing, use first_name + last_name + company exact match and keep the row with the latest updated_at (or most complete).

Save the losers to duplicates.csv with a winner_id column for traceability.

4) Test import (50–100 rows)

  • Airtable: create select options first, then import → map fields → verify counts
  • Notion: set property types first (select/multi-select/email/phone), then import

5) Final import + rollback plan

  • Export a backup of the destination table/database
  • Rename the current table to _bad_<timestamp> if needed, restore the backup, re-import

Grab my templates

I packaged the mapping CSV, normalization rules, dedupe rules, import checklist, and rollback plan.
👉 https://colbycardell.gumroad.com/l/jlxau?utm_source=devto&utm_medium=post&utm_campaign=migration_launch&utm_content=body_cta

  • Starter $199 (≤5k) · Plus $399 (≤25k) · Pro $799 (≤100k)

Top comments (0)