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.
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
Google Sheets
- Shared spreadsheets that most teams can open, comment on, filter, and download
- Structured ownership, status, and workflow views improve operational visibility
- Relations, attachments, and automations have to be rebuilt with formulas or scripts
- Custom fields, automations, history, and reporting are difficult to reproduce exactly
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.
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
Know the shape of the move.
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.
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 |
|---|---|---|---|---|
| One table | partial | critical | Airtable 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 contains | partial | critical | The 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 fields | partial | high | Airtable 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. |
| Attachments | partial | critical | The 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 formulas | manual | critical | The 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 interfaces | lost | high | Download 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 export | lost | low | Airtable 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 import | partial | critical | Google'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 take | manual | high | Google 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 history | lost | medium | Record 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. |
| Permissions | manual | critical | A 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 Airtable | lost | medium | This 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. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Table | CSV, then a sheet | manual | One table per download. A base is several files. |
| Visible field | Column | automatic | Hidden fields are omitted. |
| Filtered view | Only those rows | transform | Clear filters for a full table. |
| Linked record | Text of the value you could see | manual | Rebuild the link in Sheets if you still need it. |
| Formula or lookup | The value on screen | transform | Not the formula. |
| Attachment | Filename and URL, or nothing | manual | The two Airtable articles disagree. Download the file. |
| Record comment | No destination | unsupported | Omitted from the CSV. |
| Automation or interface | No destination | unsupported | Not in Download CSV. |
| CSV file | Sheets import | transform | File, Import, Upload. Choose the separator. |
| Base permission | Sheet sharing you set | manual | Do this after the values look right. |
Make the move recoverable.
Create the source-of-truth backup
Keep every table's CSV and the Airtable base until the Sheets are signed off.
- Duplicate a grid with filters off and fields shown.
- Download CSV for each table.
- Download attachment files the same day.
- Export interface pages separately if that export is enabled.
- Leave the base in place.
Proof to capture: One CSV per table on disk, plus the files, with Airtable still open.
Per-table CSV
Get the rows Airtable will actually put in the file.
- Use the web or desktop app.
- Clear filters and show fields.
- Download each table.
- 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.
Import and relink
Land each CSV in its own spreadsheet, then rebuild links.
- Import into a new spreadsheet.
- If Sheets says the file is too large, split it or follow Google's Connected Sheets note.
- Rebuild links with formulas. Collin used VLOOKUP, INDEX/MATCH, and array formulas.
- Protect ranges before you share the file.
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.
A filtered view is treated as the table
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.
Attachment URLs are the archive
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.
The shared sheet is the client portal
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.
Do the work in this order.
- 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 checkpointDownload?
Go when: Each table has an unfiltered view ready.
Stop when: A shared view is the only grid you can open.
- 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 checkpointImport?
Go when: Row counts match the unfiltered tables.
Stop when: A table was skipped.
- 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 checkpointImport 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.
- 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 checkpointEdit in Sheets?
Go when: The final CSV counts match.
Stop when: Airtable is still being edited.
- 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 checkpointLeave Airtable?
Go when: Files open without Airtable.
Stop when: An automation you still need exists only in the base.
Cut over with a way back.
Cutover
Make Sheets the editor, with a final unfiltered CSV for every table.
- Stop edits in the base.
- Download each table again.
- Import into the spreadsheets you will keep.
- Rebuild the links you still use.
- Set sharing.
- Leave the base available.
Proof to capture: Each sheet's row count matches its table, and the base is unchanged.
Rollback
Go back to the Airtable base.
- Tell people to edit Airtable.
- Stop sharing the Sheet if it is missing rows.
- Keep the CSVs.
- Note which view was filtered.
- Export that table again with the filter off.
Proof to capture: The base is the working copy, and the CSV is still on disk.
- 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
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Every table | Compare the table list with the CSV files. | One file per table. | File list. | |
V-02Blocking | Unfiltered count | Compare Airtable's unfiltered count with the CSV. | They match. | Count note. | |
V-03Blocking | Hidden columns | Look for a field that was hidden in the working view. | It is in the export grid. | Header row. | |
V-04Blocking | Attachments | Open three files from the copy you downloaded, not from a URL in the CSV. | They open a day later. | File check. | |
V-05Blocking | Sheets rows | Import and compare the row count, minus the header. | It matches, or you split a file Sheets called too large. | Sheet count. | |
V-06 | One relationship | Check a formula that replaced a linked record. | It returns the same neighbor the base showed. | Formula note. | |
V-07Blocking | A restricted reader | Open the sheet as that person. | They cannot see other groups' rows. | Share check. | |
V-08Blocking | Base still up | Open the base. | It still has the tables. | Base check. |
Remove the scaffolding safely.
Safe after: Sheets have been edited for a few days and attachment files open from your own storage.
- Store the CSVs with the spreadsheet links.
- Remove expired Airtable URLs from the sheets so nobody trusts them.
- Write down the formulas that replaced links.
- Keep the base until automations are rebuilt or dropped.
- Share per audience, not one master sheet to every reader.
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.
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.
- 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.
- 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.
Verify against the primary material.
Platform behavior changes. Check these sources and the review dates above before executing a production migration.
- Airtable: export a grid view as CSVAccessed 2026-11-02
- Airtable: download tables as CSVAccessed 2026-11-02
- Google Sheets: import a fileAccessed 2026-11-02
- Google: download a Sheets file, and import ExcelAccessed 2026-11-02
- Collin Gates: rebuilding an Airtable portal in Google SheetsAccessed 2026-11-02