Airtable → Notion
Move Airtable records into Notion databases while preserving field meaning, relations, attachments, views, ownership, automations, permissions, and evidence for anything CSV cannot carry.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Airtable
- Approachable relational tables combine spreadsheet familiarity with lightweight apps
- Structured ownership, status, and workflow views improve operational visibility
- Scale, automation, and permission needs can become expensive or awkward
- Custom fields, automations, history, and reporting are difficult to reproduce exactly
Notion
- Polished pages and databases let teams build flexible workspaces without code
- Flexible documents make it easy to capture and organize team knowledge
- Offline use, export fidelity, and large-workspace governance remain weak points
- Structure, links, permissions, and rich blocks often degrade during export
Notion: Polished pages and databases let teams build flexible workspaces without code. This removes a major source-side concern: Scale, automation, and permission needs can become expensive or awkward.
What you lose: Approachable relational tables combine spreadsheet familiarity with lightweight apps. What you inherit: Offline use, export fidelity, and large-workspace governance remain weak points.
Know the shape of the move.
This timeline assumes
- Up to 20 bases, 100 tables, 100,000 records, and 20 GB of attachments.
- CSV is the transfer format; Airtable behavior is rebuilt separately.
- Every table has an unfiltered export view.
- Stable record IDs are preserved in a dedicated field.
- Airtable remains read-only during verification.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Visible grid records and scalar values | clean | critical | Airtable grid views export CSV and Notion imports rows as database pages. | Export an unfiltered view and reconcile row counts. |
| Filtered-out records | lost | critical | CSV contains only records visible in the exported view. | Create a dedicated unfiltered migration view per table. |
| Field types | partial | high | CSV flattens types and Notion may infer mixed columns as text. | Create destination properties and map types explicitly. |
| Linked records | manual | critical | New CSV imports cannot create Notion relations. | Preserve Airtable record IDs and rebuild relations after all tables exist. |
| Lookups, rollups, and formulas | manual | critical | CSV exports calculated values, not reusable logic. | Document formulas and rebuild or accept static snapshots. |
| Attachments | partial | critical | CSV carries URLs, not guaranteed durable binaries or Notion file objects. | Download, hash, and upload critical attachments. |
| Views, filters, groups, sorts, and colors | lost | high | CSV does not carry view configuration. | Capture screenshots and rebuild approved Notion views. |
| Automations, scripts, forms, and interfaces | lost | critical | Airtable application behavior does not transfer as records. | Inventory triggers and replace each essential workflow. |
| Comments, revision history, and audit events | lost | high | Collaboration history is absent from CSV. | Resolve open decisions and retain compliance exports. |
| Permissions and sharing | manual | critical | Base, interface, table, and view access do not map automatically. | Design Notion teamspace and page access before import. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Primary field | Title property | automatic | Ensure every row has a useful title. |
| Text and long text | Text property/page body | transform | Choose searchable property versus page content. |
| Number, currency, percent | Number property | transform | Verify locale and formatting. |
| Date | Date property | transform | Normalize timezone and range semantics. |
| Single/multi select | Select/multi-select | transform | Normalize option names. |
| Linked record | Relation | manual | Rebuild using stable record IDs. |
| Formula/rollup/lookup | Formula, rollup, or static property | manual | Recreate only supported decision logic. |
| Attachment URL | Files property | transform | Copy binaries before source access changes. |
Make the move recoverable.
Create the source-of-truth backup
Preserve every record, field definition, relation, attachment, view, automation, and access rule.
- Create and export an unfiltered grid view for every table.
- Export field schemas, formulas, relation diagrams, views, automations, scripts, forms, interfaces, and permissions.
- Download and hash critical attachments.
- Record row counts and record IDs per table.
- Keep raw CSV files immutable.
Proof to capture: A manifest reconciles bases, tables, records, fields, links, attachments, workflows, and access.
Typed table import
Prevent Notion from flattening important types.
- Normalize UTF-8, dates, numbers, and headers.
- Preserve Airtable record IDs.
- Import in dependency order.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Relation reconstruction
Reconnect records after CSV import.
- Create all databases first.
- Join source IDs to destination page IDs.
- Verify both sides of every critical relation.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Filtered records are omitted
Export row count matches a filtered view, not the table.
- Consequence
- Records disappear silently.
- Mitigation
- Use named unfiltered migration views.
Stop if: Any table count is unexplained.
CSV merge duplicates rows
A repeated import adds rather than updates records.
- Consequence
- Relations and reporting become unreliable.
- Mitigation
- Import once into empty databases and preserve IDs.
Stop if: Any stable source ID appears twice.
Calculated values look right but stop updating
A formula result imported as static text.
- Consequence
- Operational decisions use stale data.
- Mitigation
- Test behavior after changing inputs.
Stop if: Any critical calculation lacks live logic or an accepted manual process.
Do the work in this order.
- Days 1–3 · inventory
Inventory
10–16 hours active3 days elapsedOwner review waiting- Inventory schemas, workflows, access, and usage.
- Choose import/archive scope.
Depends on: Airtable and Notion admins
Stop / go checkpointExport?
Go when: Every table and behavior has a disposition.
Stop when: Critical automation or access is unknown.
- Days 4–5 · backup
Export and preserve
6–10 hours active2 days elapsedAttachment download waiting- Export unfiltered CSVs and metadata.
- Download attachments and reconcile counts.
Depends on: Approved scope
Stop / go checkpointTransform?
Go when: Rows and files reconcile.
Stop when: Any table or attachment class is missing.
- Days 6–9 · pilot
Pilot schema
8–14 hours active4 days elapsedOwner testing waiting- Import representative tables.
- Rebuild types, relations, formulas, and views.
- Test behavior.
Depends on: Backup
Stop / go checkpointBulk import?
Go when: Representative workflows return correct results.
Stop when: Critical logic cannot be reproduced.
- Days 10–15 · bulk
Dependency-ordered import
12–25 hours active4–6 days elapsedAPI/import processing waiting- Import tables in waves.
- Rebuild relations, files, views, and automation.
- Reconcile each wave.
Depends on: Passed pilot
Stop / go checkpointFreeze Airtable?
Go when: All waves reconcile.
Stop when: Duplicates or broken relations remain.
- Days 16–20 · cutover
Final delta and observation
4–10 hours active3–5 days elapsedUser validation waiting- Freeze Airtable.
- Apply final delta.
- Switch links and run normal workflows.
Depends on: Bulk import
Stop / go checkpointClose rollback?
Go when: Blocking checks and owner sign-off pass.
Stop when: A source-only workflow remains.
Cut over with a way back.
Cutover
Make Notion authoritative after a reconciled final delta.
- Freeze Airtable edits.
- Export changed records by stable ID.
- Apply reviewed changes to Notion.
- Rebuild affected relations and attachments.
- Switch forms, links, automations, and instructions.
- Make Airtable read-only.
Proof to capture: Record IDs and critical workflows reconcile with one editable system.
Rollback
Resume Airtable without losing Notion changes.
- Freeze Notion edits.
- Export post-cutover changes by stable ID.
- Restore Airtable access.
- Apply reviewed deltas.
- Restore forms and automations.
Proof to capture: Airtable contains approved changes and again owns all writes.
- Missing records
- Broken critical calculations
- Incorrect permissions
- Attachment loss
- Unreliable relations
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Record counts | Reconcile by table and stable ID. | 100% accounted for. | Count report. | |
V-02Blocking | Field values | Compare stratified records. | Types and values match mappings. | Field sheet. | |
V-03Blocking | Linked records | Compare critical relationship pairs. | Every approved link resolves. | Relation report. | |
V-04Blocking | Formulas and rollups | Change inputs and compare outputs. | Approved results update correctly. | Scenario log. | |
V-05Blocking | Attachments | Compare counts, hashes, and samples. | Critical files are intact. | File manifest. | |
V-06Blocking | Operational views | Run owner scenarios. | Required filters and groups answer the same question. | View sign-off. | |
V-07Blocking | Permissions | Test role accounts. | Least-privilege access passes. | Access matrix. | |
V-08Blocking | Forms and automation | Trigger each critical workflow. | One correct destination result. | Workflow log. |
Remove the scaffolding safely.
Safe after: One complete operating cycle and 30 days without a rollback trigger.
- Archive CSVs, schemas, mappings, and evidence.
- Revoke temporary API tokens.
- Remove obsolete Airtable forms and automation.
- Keep Airtable read-only through retention.
- Delete unsecured attachment staging.
- Schedule quarterly relation, access, and backup checks.
Built to be reviewed.
Tested 2026-07-19. Next scheduled review: 2026-10-19.
- Airtable: export grid views as CSVAccessed 2026-07-19
- Notion: import dataAccessed 2026-07-19
- Airtable: import and export dataAccessed 2026-07-19