← All playbooks
Databases migration

Airtable → Baserow

Copy an Airtable base into Baserow with the share-link importer, then rebuild the formulas, lookups, rollups, automations, and permissions the importer leaves behind.

Typical timeline4 to 10 business days12 to 30 hours active work
Statusneeds review
Source profileAirtable and Baserow import documentation reviewed 2026-11-05
Destination profileBaserow Airtable import documentation reviewed 2026-11-05
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Airtable

Reasons to stay
  • Approachable relational tables combine spreadsheet familiarity with lightweight apps
  • Structured ownership, status, and workflow views improve operational visibility
Reasons to leave
  • Scale, automation, and permission needs can become expensive or awkward
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
New platform

Baserow

What gets better
  • Open-source tables, views, and an Airtable importer give you a database you can host yourself
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Formulas, lookups, rollups, automations, interfaces, and permissions still need rebuilding after import
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

Baserow: Open-source tables, views, and an Airtable importer give you a database you can host yourself. This removes a major source-side concern: Scale, automation, and permission needs can become expensive or awkward.

Worst of the move

What you lose: Approachable relational tables combine spreadsheet familiarity with lightweight apps. What you inherit: Formulas, lookups, rollups, automations, interfaces, and permissions still need rebuilding after import.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome10 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 5, Manual rebuild: 4, Not transferred: 1.
Clean0
Partial5
Manual4
Lost1
Mapping route8 of 9 fields have a destination path

This timeline assumes

  • You can publish a share link for the whole Airtable base, or you can paste the session cookies Baserow documents when the base asks for a login.
  • The Baserow workspace has room for the tables and the attachment files.
  • Airtable stays the place people edit until the import report is cleared and a second row count matches.
  • Someone on the team can rebuild formulas, lookups, rollups, automations, and interfaces after the copy.
  • You keep a record of every blocking check.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Tables and recordspartialcriticalBaserow's importer reads a public share link to a base or a view and creates a new database. You import one base at a time. The Airtable base is only read.Import into a test database first. Compare table counts and row counts before anyone edits Baserow.
Direct field typespartialhighBaserow documents direct conversions for single line text, long text, single and multiple select, checkbox, URL, date, phone, email, rating, attachment, link to another record, created time, and last modified time. Select colors can differ.Spot-check selects, dates, and links on each table. Adjust colors only after the counts match.
Currency, percent, and durationpartialhighBaserow converts these to number fields. A currency symbol becomes a prefix, a percent sign becomes a suffix, and a duration becomes a number of seconds or minutes. Large-number abbreviations such as 1K are not kept.Record the original format, then check a sample of money, percent, and duration cells after import.
Formulas, lookups, and rollupsmanualcriticalBaserow says these field types are not imported. Formula fields show up empty. You can change them to text or number in Airtable first if you need the current calculated values in the copy.Snapshot the calculated values you must keep, then recreate the fields in Baserow and compare them.
Collaborators, buttons, and barcodesmanualhighCollaborator, created by, last modified by, button, and barcode fields are on Baserow's not-imported list. Created-by and last-modified-by can be recreated as Baserow fields, but the old values do not come across by themselves.Export any person or barcode values you need as text before the import, then map them by hand.
Grid viewspartialmediumBaserow says grid views move with their filters, sorts, and grouping. The current import page does not list gallery, kanban, calendar, or form views as transferred.List every view people use. Rebuild the ones that are not grids.
AttachmentspartialcriticalFiles are copied unless you turn on Skip importing files. Baserow warns that a base with many files is slow, and that files over 100MB may need a manual upload.Leave the Airtable share available until the file count matches, or upload the large files yourself.
Automations, interfaces, and integrationsmanualcriticalBaserow's reconfiguration list includes automations, Application Builder interfaces, and integrations. None of those run because the rows arrived.Write down each automation and interface, rebuild it, and run it once on test data.
Comments, history, and field descriptionslostmediumRow comments, revision history, and field descriptions are not imported. Baserow says you start comments again and add descriptions yourself.Export any comment thread you still need before you treat Airtable as read-only.
Access controlsmanualcriticalThe importer does not copy Airtable collaborators or permissions. You add Baserow members and roles after the database exists.Invite people only after the test database passes. Give each person the smallest role that works.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Airtable baseBaserow databaseautomaticOne share-link import creates one database.
TableTableautomaticImport the whole base when you need every table.
RecordRowautomaticCompare row counts per table.
Link to another recordLink to tableautomaticBaserow says relationships are maintained for this field type.
AttachmentFileautomaticTurn off Skip importing files when the files must move.
Formula, lookup, or rollupEmpty field, then a rebuilt fieldmanualThese types are not imported.
Currency, percent, or durationNumbertransformSymbol, percent sign, or unit is presentation, not a separate field type.
Grid viewGrid viewautomaticFilters, sorts, and grouping are the documented pieces.
Automation or interfaceNo destinationunsupportedRebuild in Baserow automations or Application Builder.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep a restorable Airtable copy that the Baserow import cannot change.

  1. Duplicate the base or take an Airtable snapshot before you share it.
  2. Download a CSV of each table with filters cleared, so the file is the full table.
  3. Download attachments if the base holds files you cannot fetch again.
  4. Write down automations, interfaces, and who can edit the base.

Proof to capture: You can open the snapshot or the CSV set without using the Baserow database.

Transformation · Baserow Import from Airtable

Share-link import

Let Baserow build the tables, rows, links, grid views, and files from the Airtable base.

  1. Create the share link for the whole base.
  2. In the workspace, add a database and open Import from Airtable.
  3. Paste the link. Leave Skip importing files off unless you are doing a structure-only trial.
  4. Read the Airtable import report table before you call the copy done.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Baserow field editor, plus a CSV of the old calculated values

Rebuild calculated fields

Put formulas, lookups, and rollups back after the importer skips them.

  1. Change critical formula fields to text in a copy of the Airtable base if you need the current results preserved.
  2. Recreate each formula in Baserow syntax.
  3. Compare the new results with the CSV, cell by cell, on a sample and on the rows that drive decisions.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Import

A view share link imports a slice of the base

criticalpossible likelihood

The database is missing tables or rows that a filtered view hid.

Consequence
People work from an incomplete copy.
Mitigation
Use a share link to the entire base for the production import.

Stop if: Any production table is missing.

Transform

Calculated fields look blank

criticallikely likelihood

Formula, lookup, and rollup columns have no values.

Consequence
Reports and automations that depended on those values go quiet.
Mitigation
Rebuild and compare them before you switch editors.

Stop if: A decision-making formula has no checked Baserow equivalent.

Import

Files time out

highpossible likelihood

The import report lists missing attachments, or a file over 100MB never arrives.

Consequence
Records point at files that are not in Baserow.
Mitigation
Keep Airtable online and upload the missing files.

Stop if: A required file is absent after the retry.

06Precise timeline

Do the work in this order.

Estimate forOne Airtable base, imported from a full-base share link, with formulas and automations rebuilt after the copy.
Total elapsed4 to 10 business days
Active work12 to 30 hours
BufferAdd time when the base has many attachments, heavy formulas, or interfaces you still need.
01
Days 1 to 2Inventory the base1 to 2 days
02
Days 2 to 3Snapshot and export1 day
03
Days 3 to 6Import a test database2 to 4 days
04
Days 6 to 8Switch editors1 to 2 days
05
Days 8 to 10Watch one working week2 days
  1. Days 1 to 2 · inventory

    Inventory the base

    3 to 6 hours active1 to 2 days elapsedOwner review waiting
    • List tables, views, formulas, automations, and interfaces.
    • Decide which calculated values must be snapshotted as text.

    Depends on: Airtable editor access

    Stop / go checkpoint

    Share the base?

    Go when: Every production table has an owner and a disposition.

    Stop when: You cannot tell which views are filtered.

  2. Days 2 to 3 · backup

    Snapshot and export

    2 to 4 hours active1 day elapsedAirtable snapshot waiting
    • Take a base snapshot.
    • Export full-table CSVs with filters off.

    Depends on: Approved inventory

    Stop / go checkpoint

    Import?

    Go when: The snapshot and the CSV row counts match the live tables.

    Stop when: A table export is short of the live row count.

  3. Days 3 to 6 · pilot

    Import a test database

    4 to 10 hours active2 to 4 days elapsedFile transfer waiting
    • Run Import from Airtable into a new database.
    • Read the import report and rebuild one formula per critical table.

    Depends on: Verified snapshot

    Stop / go checkpoint

    Import again for production?

    Go when: Row counts match and the rebuilt sample formulas match.

    Stop when: The import report shows a missing table or a broken link.

  4. Days 6 to 8 · cutover

    Switch editors

    2 to 6 hours active1 to 2 days elapsedPeople moving off Airtable waiting
    • Stop Airtable edits.
    • Re-import or apply the delta you planned.
    • Turn on Baserow permissions.

    Depends on: Passed pilot

    Stop / go checkpoint

    Let people edit Baserow?

    Go when: Baserow is the only writable copy and the counts still match.

    Stop when: Someone is still editing Airtable.

  5. Days 8 to 10 · observe

    Watch one working week

    1 to 4 hours active2 days elapsedA normal editing cycle waiting
    • Run the rebuilt automations once.
    • Keep Airtable read-only until the owners sign the checks.

    Depends on: Verified cutover

    Stop / go checkpoint

    Close Airtable?

    Go when: No blocking check fails during the watch period.

    Stop when: A formula, file, or permission check regresses.

07The point of change

Cut over with a way back.

Go live

Cutover

Make the Baserow database the copy people edit, with Airtable frozen.

Recommended window: A quiet weekday morning when a base owner can compare tables with you.

  1. Stop creates and edits in the Airtable base.
  2. Run a fresh import, or apply the delta method you already rehearsed.
  3. Compare row counts, links, and the import report.
  4. Enable Baserow members only after those checks pass.
  5. Leave the Airtable base in place, read-only.

Proof to capture: Baserow row counts match the frozen Airtable tables, and the import report has no unresolved critical row.

Return to safety

Rollback

Send people back to the Airtable base if Baserow is wrong.

Deadline: Before you delete the Airtable base or remove the share link you still need for files.

  1. Stop edits in Baserow.
  2. Point people back at the Airtable base.
  3. Export any Baserow rows that were created after the switch.
  4. Review that export before you put anything back into Airtable.
  5. Re-open Airtable editing only after the row list is understood.

Proof to capture: Airtable is the writable base again, and post-switch Baserow rows are either merged or explicitly dropped.

Rollback immediately when
  • A production table's row count does not match
  • A required attachment is missing
  • A rebuilt formula changes a decision relative to the Airtable snapshot
  • The wrong people can edit the Baserow database
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingRow countsCompare each Airtable table with the Baserow table.Every scoped table matches.Count sheet
V-02BlockingLinked recordsOpen linked rows on both sides for each link field.Links point at the same records.Link sample
V-03BlockingAttachmentsCompare file counts and open a sample, including any file near 100MB.Required files open.File sample
V-04BlockingRebuilt calculationsCompare formula, lookup, and rollup results with the snapshot.Critical calculations match.Formula sheet
V-05BlockingGrid filtersRun each production grid view.Filters, sorts, and groups match the Airtable grids you kept.View checklist
V-06BlockingRolesSign in as each role you created.Editors and viewers match the access list.Access notes
V-07BlockingRebuilt jobsFire each automation once with test rows.The job does the thing you wrote down.Automation log
V-08BlockingImport reportRead every row in Airtable import report.Each gap is fixed or accepted in writing.Import report
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: A week of normal editing in Baserow, with Airtable still readable and every blocking check signed.

  1. Archive the Airtable snapshot and the CSV exports.
  2. Remove the public share link.
  3. Revoke any Airtable tokens you created for the move.
  4. Keep the Airtable base until the retention date you agreed.
  5. Put Baserow backups on a schedule and restore one backup before you rely on it.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountmakeprivacy.org

Leaving Airtable for a database you run2026

makeprivacy.org says they moved their own records from Airtable to Baserow on a small server they rent, using the Airtable API rather than a share link. They loaded a test workspace first, rebuilt formulas where a direct conversion failed, and compared every value. They report 2,245 values on the first base and 8,131 on the second, with zero differences after that check. A number field set to whole numbers rejected a batch of 200 rows because one stored value was 22.5. A year-count formula rounded a span they measured as 8.87 years up to 9, which pushed a renewal date out by a year. They kept the old Airtable base read-only after the switch and gave each program its own token.

What they recommend
  • Load the copy into a test workspace and compare values field by field before you switch people or automations.
  • Size number fields from the values Airtable stored, not from the display setting, and rebuild year-count formulas from calendar parts.
Worth noticing
  • They found both errors only because they compared every value. The row copy itself did not surface them.
  • The old base stayed read-only for a while, and each program that used to write to Airtable got a separate Baserow token.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Baserow: import an Airtable baseAccessed 2026-11-05
  2. Baserow: import a CSV, JSON, XML, or spreadsheetAccessed 2026-11-05
  3. Airtable: CSV import extensionAccessed 2026-11-05