← All playbooks
Databases migration

Airtable → Google Sheets

Each Airtable table is its own CSV. Google Sheets imports that file. Linked records, automations, and attachments do not come along as a base.

Typical timeline1 to 3 weeks12 to 35 hours active work
Statusneeds review
Source profileAirtable grid CSV export help reviewed 2026-11-02
Destination profileGoogle Sheets file import help reviewed 2026-11-02
Documentation date
Review window
Evidence5 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

Google Sheets

What gets better
  • Shared spreadsheets that most teams can open, comment on, filter, and download
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Relations, attachments, and automations have to be rebuilt with formulas or scripts
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

Google Sheets: Shared spreadsheets that most teams can open, comment on, filter, and download. 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: Relations, attachments, and automations have to be rebuilt with formulas or scripts.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome12 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 5, Manual rebuild: 3, Not transferred: 4.
Clean0
Partial5
Manual3
Lost4
Mapping route8 of 10 fields have a destination path

This timeline assumes

  • You are leaving a base for spreadsheets. The site already documents Airtable → Notion and Airtable → Coda, and the way back is Google Sheets → Airtable.
  • You can open the grid on the web or the desktop app. Airtable says CSV download is not a mobile feature.
  • A filtered view exports the filtered rows. An unfiltered view, with fields visible, is the full table.
  • You will rebuild links yourself. Collin Gates did that with VLOOKUP, INDEX/MATCH, and array formulas for a client base.
  • The Airtable base stays up until the Sheets are checked and any attachment files are downloaded.
02What transfers

What survives the move.

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

ItemOutcomeImpactWhat happensMitigation
One tablepartialcriticalAirtable says you cannot export a base as one file. Each table is its own CSV. The control is the view menu, Download CSV, on the web or desktop app.Export every table from a view with no filters and with the fields you need visible.
What the CSV containspartialcriticalThe views article says the CSV has the field values visible in that view. It omits record comments, field descriptions, the base guide, and data that lives only in an extension.Copy comments and extension data before you cancel the base.
Filters and hidden fieldspartialhighAirtable says a filtered view exports the filtered records. Hidden fields are not in the file. A shared view can have CSV download turned off by its creator.Make a private unfiltered grid for the export. Do not export the shared view if the menu is missing.
AttachmentspartialcriticalThe views article says an attachment field exports as a filename and a URL, and that as of 8 November 2022 those URLs expire after a few hours. A second Airtable article says attachments are not in the CSV and that you download each file from the attachment. The two pages disagree.Download the files themselves the day you export. Do not treat either sentence as a file archive.
Linked records, lookups, and formulasmanualcriticalThe CSV is the values on screen. It is not a live link to another table. Collin Gates wrote that moving a client base to Sheets meant rebuilding the links between clients, campaigns, and briefs with spreadsheet formulas.Import every table, then rebuild the relationships you still use.
Automations and interfaceslosthighDownload CSV does not export automations. Interfaces are separate. Airtable says an interface can offer its own CSV export if the creator turned that on. Collin replaced client access, which he priced at $15 per client on Airtable, with a custom portal because sharing the whole sheet would show every client.List automations and interfaces. Sharing the Sheet is not the same as an interface.
Excel as a direct exportlostlowAirtable says it does not export .xlsx. You download CSV and open that. Google can import an Excel file, and that is a second conversion you do not need if you import the CSV.Import the CSV.
Sheets importpartialcriticalGoogle's import help says File, Import, Upload, choose the file, choose an import location and a separator, then Import data. Import location can replace or append. For an Excel file, the separate Excel help offers create a spreadsheet, insert sheets, or replace the spreadsheet.Import into a new spreadsheet first. Append only when you mean to add rows.
A file Sheets will not takemanualhighGoogle says a file that is too large shows: This file is too large to import directly into Google Sheets. The same help points at Connected Sheets and BigQuery for a large CSV.Split the CSV, or use the Connected Sheets path Google names, before you call the import broken.
Comments and revision historylostmediumRecord comments are not in the CSV. Airtable's record history is not a Sheets version history.Copy comments that are part of the work. Sheets history starts at the import.
PermissionsmanualcriticalA base's creator, editor, and interface-only rules do not become Sheet protections. Collin's reason for a custom portal was that a shared sheet would expose other clients' rows.Set sharing and protected ranges after the import. Do not share the master sheet with every reader.
Sync back to AirtablelostmediumThis export is a file. Airtable's Google Sheets import page, used in the other direction, says edits in Airtable do not flow back to the original sheet. The CSV you downloaded is also a snapshot.Pick one writer after cutover.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
TableCSV, then a sheetmanualOne table per download. A base is several files.
Visible fieldColumnautomaticHidden fields are omitted.
Filtered viewOnly those rowstransformClear filters for a full table.
Linked recordText of the value you could seemanualRebuild the link in Sheets if you still need it.
Formula or lookupThe value on screentransformNot the formula.
AttachmentFilename and URL, or nothingmanualThe two Airtable articles disagree. Download the file.
Record commentNo destinationunsupportedOmitted from the CSV.
Automation or interfaceNo destinationunsupportedNot in Download CSV.
CSV fileSheets importtransformFile, Import, Upload. Choose the separator.
Base permissionSheet sharing you setmanualDo this after the values look right.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep every table's CSV and the Airtable base until the Sheets are signed off.

  1. Duplicate a grid with filters off and fields shown.
  2. Download CSV for each table.
  3. Download attachment files the same day.
  4. Export interface pages separately if that export is enabled.
  5. Leave the base in place.

Proof to capture: One CSV per table on disk, plus the files, with Airtable still open.

Transformation · Grid view, Download CSV

Per-table CSV

Get the rows Airtable will actually put in the file.

  1. Use the web or desktop app.
  2. Clear filters and show fields.
  3. Download each table.
  4. Download attachments yourself. Do not wait on the URL.

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

Transformation · File, Import in Google Sheets

Import and relink

Land each CSV in its own spreadsheet, then rebuild links.

  1. Import into a new spreadsheet.
  2. If Sheets says the file is too large, split it or follow Google's Connected Sheets note.
  3. Rebuild links with formulas. Collin used VLOOKUP, INDEX/MATCH, and array formulas.
  4. Protect ranges before you share the file.

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.

Backup

A filtered view is treated as the table

criticallikely likelihood

The working view has a filter, and that is the view you downloaded.

Consequence
Sheets is missing every hidden row and every hidden field.
Mitigation
Export a grid with no filters and the fields visible.

Stop if: You have not compared the CSV row count with the unfiltered table.

Pilot

Attachment URLs are the archive

criticalpossible likelihood

The CSV has filenames and URLs, and the files were not downloaded.

Consequence
Airtable's views article says those URLs expire after a few hours. The other article says the files are not in the CSV at all.
Mitigation
Download each file the same day.

Stop if: A required file exists only as a URL in the sheet.

Cutover

The shared sheet is the client portal

highpossible likelihood

Everyone gets the spreadsheet because the interface did not export.

Consequence
Collin avoided that because each client would see the other clients' rows.
Mitigation
Share a filtered view or a separate file per audience.

Stop if: A reader can open a row that Airtable had hidden from them.

06Precise timeline

Do the work in this order.

Estimate forA base of several tables exported to CSV and imported into Sheets
Total elapsed1 to 3 weeks
Active work12 to 35 hours
BufferAdd time for attachments and for formulas that replace linked records.
01
Days 1 to 2Tables and links1 to 2 days
02
Days 2 to 4CSV and files1 to 2 days
03
Days 4 to 9One spreadsheet3 to 5 days
04
Days 9 to 12Switch the writer2 to 3 days
05
Days 12 to 18Keep the baseabout a week
  1. Days 1 to 2 · inventory

    Tables and links

    3 to 6 hours active1 to 2 days elapsedBase owner waiting
    • List tables, links, and interfaces.
    • Note who must not see the whole sheet.

    Depends on: Base access on the web

    Stop / go checkpoint

    Download?

    Go when: Each table has an unfiltered view ready.

    Stop when: A shared view is the only grid you can open.

  2. Days 2 to 4 · backup

    CSV and files

    3 to 8 hours active1 to 2 days elapsedDownloads waiting
    • Download one CSV per table.
    • Download attachments the same day.

    Depends on: Unfiltered grids

    Stop / go checkpoint

    Import?

    Go when: Row counts match the unfiltered tables.

    Stop when: A table was skipped.

  3. Days 4 to 9 · pilot

    One spreadsheet

    4 to 12 hours active3 to 5 days elapsedFormula review waiting
    • Import CSVs into new spreadsheets.
    • Rebuild one link.
    • Try sharing with one restricted reader.

    Depends on: CSV files

    Stop / go checkpoint

    Import the rest?

    Go when: The pilot counts match and the reader cannot see other people's rows.

    Stop when: Sheets refused the file as too large and you have no split.

  4. Days 9 to 12 · cutover

    Switch the writer

    2 to 6 hours active2 to 3 days elapsedA final export waiting
    • Stop edits in Airtable.
    • Export once more.
    • Share the Sheets you mean to share.

    Depends on: Pilot accepted

    Stop / go checkpoint

    Edit in Sheets?

    Go when: The final CSV counts match.

    Stop when: Airtable is still being edited.

  5. Days 12 to 18 · observe

    Keep the base

    2 to 4 hours activeabout a week elapsedPeople using Sheets waiting
    • Leave the base up.
    • Fix formulas that replaced links.
    • Confirm attachments open from Drive, not from Airtable URLs.

    Depends on: Sheets in use

    Stop / go checkpoint

    Leave Airtable?

    Go when: Files open without Airtable.

    Stop when: An automation you still need exists only in the base.

07The point of change

Cut over with a way back.

Go live

Cutover

Make Sheets the editor, with a final unfiltered CSV for every table.

Recommended window: A day when nobody is editing the base.

  1. Stop edits in the base.
  2. Download each table again.
  3. Import into the spreadsheets you will keep.
  4. Rebuild the links you still use.
  5. Set sharing.
  6. Leave the base available.

Proof to capture: Each sheet's row count matches its table, and the base is unchanged.

Return to safety

Rollback

Go back to the Airtable base.

Deadline: Before the Airtable base is deleted.

  1. Tell people to edit Airtable.
  2. Stop sharing the Sheet if it is missing rows.
  3. Keep the CSVs.
  4. Note which view was filtered.
  5. Export that table again with the filter off.

Proof to capture: The base is the working copy, and the CSV is still on disk.

Rollback immediately when
  • A table is missing
  • Row counts are short because of a filter
  • Attachments do not open
  • A reader can see another group's rows
  • Sheets rejected the file as too large
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-01BlockingEvery tableCompare the table list with the CSV files.One file per table.File list.
V-02BlockingUnfiltered countCompare Airtable's unfiltered count with the CSV.They match.Count note.
V-03BlockingHidden columnsLook for a field that was hidden in the working view.It is in the export grid.Header row.
V-04BlockingAttachmentsOpen three files from the copy you downloaded, not from a URL in the CSV.They open a day later.File check.
V-05BlockingSheets rowsImport and compare the row count, minus the header.It matches, or you split a file Sheets called too large.Sheet count.
V-06One relationshipCheck a formula that replaced a linked record.It returns the same neighbor the base showed.Formula note.
V-07BlockingA restricted readerOpen the sheet as that person.They cannot see other groups' rows.Share check.
V-08BlockingBase still upOpen the base.It still has the tables.Base check.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Sheets have been edited for a few days and attachment files open from your own storage.

  1. Store the CSVs with the spreadsheet links.
  2. Remove expired Airtable URLs from the sheets so nobody trusts them.
  3. Write down the formulas that replaced links.
  4. Keep the base until automations are rebuilt or dropped.
  5. Share per audience, not one master sheet to every reader.
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 accountCollin Gates · Logicweave

From $300 a month to a Google Sheets campaign system2025

Collin Gates describes a client project, not his own product. A marketing agency kept campaigns in Airtable, and client portal access was $15 per client. At about 20 clients that was $300 or more a month, which he puts at $3,600 or more a year. He exported the tables to Google Sheets and rebuilt the links among clients, campaigns, and briefs with VLOOKUP, INDEX/MATCH, and array formulas. Apps Script sent updates to the existing n8n agents. He did not share the master sheet with clients, because that would expose other clients' rows, and built a separate portal for row-level links instead.

What they recommend
  • Rebuild linked records after the CSV import. He used VLOOKUP, INDEX/MATCH, and array formulas for those relationships.
  • Do not share the whole spreadsheet with every reader. Client access was the feature he replaced with a separate portal.
Worth noticing
  • The cost he left was Airtable's per-client portal, at $15 a client on a launch set of about 20 clients.
  • Automations did not come across. Apps Script had to call n8n after the rows were in Sheets.
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. Airtable: export a grid view as CSVAccessed 2026-11-02
  2. Airtable: download tables as CSVAccessed 2026-11-02
  3. Google Sheets: import a fileAccessed 2026-11-02
  4. Google: download a Sheets file, and import ExcelAccessed 2026-11-02
  5. Collin Gates: rebuilding an Airtable portal in Google SheetsAccessed 2026-11-02