Google Sheets → Airtable
Airtable can import a Google Sheet into a new or existing table. The copy does not stay in sync, and a CSV merge is a separate extension with a 25,000 row cap.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
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
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
Airtable: Approachable relational tables combine spreadsheet familiarity with lightweight apps. This removes a major source-side concern: Relations, attachments, and automations have to be rebuilt with formulas or scripts.
What you lose: Shared spreadsheets that most teams can open, comment on, filter, and download. What you inherit: Scale, automation, and permission needs can become expensive or awkward.
Jump to a section
Know the shape of the move.
This timeline assumes
- The sheet is the source of truth on the day you import. The site already documents Airtable → Google Sheets, which is the other direction, and Airtable → Notion.
- An Owner or Creator imports into an existing base. Airtable says the import is on the web, not the mobile apps.
- You take a base snapshot before a merge. Airtable recommends that for the CSV extension.
- The first row is headers, unless you turn that off in the import panel.
- The Google Sheet stays shared until the Airtable counts match. Edits in Airtable do not write back.
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 |
|---|---|---|---|---|
| A Google Sheet as a new table | partial | critical | Airtable's path is Add or import, Google Sheets, connect a Google account, pick the sheet, then adjust fields. You can turn Auto-select field types and Use the first row as headers on or off. The same article has steps for a new base, a new table in a base, and an existing table. | Import into a new table first. Check field types before you import into a table that already has records. |
| No ongoing sync | lost | critical | Airtable says that after the import, changes in Airtable are not reflected in the original Google Sheet. The article points at a separate automation if you later want new sheet rows added. | Freeze the sheet, import, then let only Airtable take edits. |
| Who can import | manual | high | Owner or Creator is required to import into an existing base. The import UI is the web app or a browser. Airtable says it is not on the iOS or Android app. An interface-only user cannot map new columns that were not in an earlier import. | Use an Owner or Creator on the web. |
| CSV size | partial | high | If you download the sheet and import the file, Airtable's native limit on that page is 100 MB for a CSV and 5 MB for an Excel file. Over that, they say to split bases and sync. File, Download in Sheets can produce the CSV or Excel file. | Prefer the Google Sheets connector when the account connect works. Split a CSV that is over 100 MB. |
| CSV extension merge | partial | high | The CSV import extension adds records or merges on a field you choose, such as an id or an email. It allows 25,000 rows and 5 MB. Airtable says to snapshot the base first. Create records starts the load. | Use the extension only when you must update existing records. Otherwise the native import is the documented add. |
| Field types | partial | high | Auto-select field types is a toggle, not a guarantee. You can include or exclude fields in Adjust your import. A column of mixed values can become the wrong type if you leave the guess on. | Turn the guess off for dates and selects, and set the type yourself. |
| Formulas | manual | high | The import reads the sheet's values into fields. A Google formula does not become an Airtable formula. | Decide which columns should be values and which you will rebuild as formulas after the load. |
| Several tabs | manual | high | The Google Sheets steps say you select a spreadsheet by name. They do not say every tab becomes a table. A CSV download is one sheet's file when you download that sheet. | Import one tab, check it, then import the next. Do not assume a workbook arrives whole. |
| Comments, notes, and protected ranges | lost | medium | The import articles describe fields and rows. They do not say notes, comments, or protected ranges become Airtable comments or field permissions. | Copy comments you need. Set Airtable permissions after the import. |
| A second load | manual | critical | The native Google Sheets and CSV steps add records into the table you picked. The extension can merge, and only if you chose a unique field. Without that, a second import duplicates rows. | Snapshot, then either merge on a key or import into an empty table. |
| Sharing | manual | high | A sheet's link sharing does not become base collaborators. Drive also treats a same-name upload as a revision unless you keep both files, which matters if you are staging CSVs in Drive. | Invite Airtable collaborators on purpose. |
| The original sheet | clean | medium | Airtable's warning is that Airtable edits do not flow back. The import does not describe deleting the Google Sheet. | Keep the sheet read-only until the counts match. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Spreadsheet | Table in a base | manual | Add or import, Google Sheets. Check one tab at a time. |
| Header row | Field names | transform | Toggle Use the first row as headers. |
| Column | Field | transform | Include or exclude it in Adjust your import. |
| Cell value | Cell | automatic | Auto-select field types is optional. |
| Formula | The value, then a formula you rebuild | manual | The formula text is not the import. |
| CSV download | Native CSV import | transform | 100 MB CSV, 5 MB Excel, on the web. |
| Id column | Merge key in the CSV extension | transform | 25,000 rows and 5 MB. Snapshot first. |
| Second import without a key | Duplicate records | manual | The native import adds rows. |
| Comment or note | No destination | unsupported | Not in the import steps. |
| Sheet sharing | Base collaborators you invite | manual | Not copied. |
Make the move recoverable.
Create the source-of-truth backup
Keep the sheet and a base snapshot until the new table is accepted.
- Name the tab you will import.
- Download a CSV with File, Download as a second copy.
- Snapshot the base if it already has records.
- Stop edits on the sheet, or accept that later edits are a new import.
- Leave the sheet shared to you.
Proof to capture: A CSV on disk, a base snapshot, and the sheet still open.
Native Google Sheets import
Create a table from the spreadsheet without a CSV, when the account connect works.
- Sign in as an Owner or Creator on the web.
- Connect the Google account and pick the spreadsheet.
- Set headers and field types in Adjust your import.
- Import into a new table and compare the row count.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Merge by key
Update existing records instead of adding a second copy.
- Snapshot the base.
- Download a CSV at or under 5 MB and 25,000 rows.
- Map a unique field such as email or an id.
- Click Create records only after the match column is the one you meant.
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.
The sheet keeps changing
People still edit Google Sheets after the import.
- Consequence
- Airtable says those edits do not flow back, and the sheet edits are not in the base either.
- Mitigation
- Make the sheet read-only before the final import.
Stop if: You cannot stop editors.
Auto-select guesses a type
A date or a select column imports as text, or a text column imports as a number and drops leading zeros.
- Consequence
- The field is the wrong type in a table you then build on.
- Mitigation
- Set types in Adjust your import, on a new table.
Stop if: The pilot column types are wrong and you were about to import into the live table.
A second import duplicates everyone
You run the native import again to pick up a fix.
- Consequence
- Rows are added. The extension merge is the path that updates, and only on the key you chose.
- Mitigation
- Snapshot, and merge on a unique field, or delete the bad table.
Stop if: The live table already contains the first import.
Do the work in this order.
- Days 1 to 2 · inventory
Tabs and keys
2 to 5 hours active1 to 2 days elapsedSheet owner waiting- List tabs.
- Pick an id column if you must merge.
Depends on: Sheet access, Airtable Owner or Creator
Stop / go checkpointConnect Google?
Go when: Each tab is either in or out.
Stop when: You need the mobile app to do the import.
- Day 2 · backup
CSV and snapshot
1 to 3 hours active1 day elapsedNone waiting- Download a CSV.
- Snapshot the base if it has data.
Depends on: Inventory
Stop / go checkpointImport a pilot tab?
Go when: You can restore the snapshot and you still have the sheet.
Stop when: There is no snapshot and the table already has records.
- Days 2 to 5 · pilot
New table
3 to 8 hours active2 to 3 days elapsedReview waiting- Import one tab into a new table.
- Check types and the row count.
- Do not share the base yet.
Depends on: Google account connected
Stop / go checkpointImport the other tabs?
Go when: The pilot count matches the sheet, minus nothing unexpected.
Stop when: Field types are wrong.
- Days 5 to 7 · cutover
Freeze the sheet
2 to 5 hours active1 to 2 days elapsedEditors confirming they stopped waiting- Make the sheet read-only.
- Import the final copy into the tables you will keep.
- Invite Airtable users.
Depends on: Pilot accepted
Stop / go checkpointEdit in Airtable?
Go when: Counts match and the sheet is read-only.
Stop when: The sheet is still changing.
- Days 7 to 12 · observe
Keep the sheet
1 to 3 hours active3 to 5 days elapsedUse in Airtable waiting- Leave the sheet readable.
- Rebuild formulas you still need.
- Do not import the same file again without a key.
Depends on: Base in use
Stop / go checkpointStop using the sheet?
Go when: You can still open it if a column type is wrong.
Stop when: The snapshot is gone and the table looks short.
Cut over with a way back.
Cutover
Load a frozen sheet into Airtable once.
- Make the Google Sheet read-only.
- Import each tab into its table.
- Compare counts.
- Invite collaborators.
- Leave the sheet readable.
Proof to capture: Airtable row counts match the frozen sheet, and the sheet is still there.
Rollback
Use the Google Sheet again, and restore the base snapshot if the table is wrong.
- Send editors back to the sheet.
- Restore the snapshot if you merged into a live table.
- Leave a bad new table in place only if you are sure nobody is editing it, or delete it.
- Keep the CSV.
- Fix field types before the next import.
Proof to capture: The sheet is editable again, and the base is the snapshot or an untouched new table.
- The sheet was still edited after import
- Field types are wrong
- A second import duplicated rows
- A tab never arrived
- The CSV extension was over 5 MB or 25,000 rows
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Owner or Creator | Confirm the importer's role and that you are on the web. | Add or import is available. | Role check. | |
V-02Blocking | One tab | Compare the imported table with the tab you named. | You can point at the source tab. Other tabs are separate imports. | Tab note. | |
V-03Blocking | Count | Compare sheet rows, minus the header, with Airtable records. | They match. | Count note. | |
V-04Blocking | Dates and ids | Open a date, a select, and an id that has leading zeros. | The type matches what you set in Adjust your import. | Field list. | |
V-05Blocking | Key | If you used the extension, find one existing record that should have updated. | It updated. A missing key means you should see a duplicate instead, and that is a failure. | Record check. | |
V-06Blocking | CSV limits | If you used a file, check 100 MB native CSV or 5 MB on the extension. | The file is under the limit you used. | File size. | |
V-07Blocking | Sheet is read-only | Try an edit as a normal editor. | The sheet rejects it, so the copies cannot drift in silence. | Share setting. | |
V-08Blocking | Snapshot | Confirm the snapshot or the untouched sheet exists. | You can return to it. | Snapshot note. |
Remove the scaffolding safely.
Safe after: The base has been edited on its own for a few days and the sheet is still readable.
- Keep the CSV and the snapshot until you trust the types.
- Rebuild formulas that arrived as values.
- Invite people in Airtable rather than forwarding the sheet link.
- Do not run the native import a second time on the same table.
- Leave the sheet until someone has used the base for a real edit.
Verify against the primary material.
Platform behavior changes. Check these sources and the review dates above before executing a production migration.
- Airtable: import Google Sheets and CSVAccessed 2026-11-02
- Airtable: CSV import extensionAccessed 2026-11-02
- Google Sheets: download a copyAccessed 2026-11-02
- Google Drive: upload and same-name filesAccessed 2026-11-02