How to Sync Airtable to Google Sheets: 4 Real Methods

Four ways to sync Airtable to Google Sheets: CSV export, Airtable automations, a Sheets add-on, and Zapier or Make. Real steps, real limits, honest picks.

Title card for the guide, showing an Airtable table panel connected by a downward arrow to a Google Sheets panel on a dark background

You keep your operational data in Airtable. Someone on your team lives in Google Sheets, because that is where the pivot tables, the QUERY formulas, and the finance model already are. You want the Sheet to show what Airtable shows, without a person copying and pasting every Monday morning.

There are four ways to do it. Each is real, each has a limit nobody advertises, and only one keeps working after you look away. This guide walks all four with the actual steps, then tells you which situation each belongs in.

One thing to settle first: Airtable has no native Airtable-to-Sheets sync. Its Sync integrations pull data into Airtable, not out of it, and they are gated to the Business and Enterprise Scale plans. Airtable's native automations can push rows to a Sheet, but they are one-way and append-only. That gap is why this category of tools exists.

Everything below moves data in one direction, from Airtable into Google Sheets.

Flow diagram in which one Airtable base branches into four routes labelled CSV export, Airtable automations, Sheets add-on, and Zapier or Make. Each route lists what it suits, its setup time, and how current it stays. All four end in a single Google Sheets tab.

Method 1: Export a CSV from Airtable and import it into Sheets

The zero-cost, zero-setup option. Good for a one-time snapshot, bad for anything you need again next week.

Steps

  1. Open the table in Airtable and select the view you want, then click the down arrow to the right of the view name and choose Download CSV. The export follows the view, so any filters, sorts, and hidden fields you have applied are what you get. Remove the filters first if you want every record. Grid view CSV export is web and desktop only, and the file leaves out attachments, record comments, and field descriptions.
  2. Open the view menu and choose Download CSV. The file lands in your downloads folder.
  3. In Google Sheets, open the target spreadsheet and go to File, Import.
  4. Choose Upload, drop in the CSV, and pick an import location. Replace current sheet overwrites what is there. Append to current sheet adds rows below.
  5. Confirm the separator type and import.

That is the whole method. It takes about ninety seconds.

What breaks

It breaks on every refresh. A CSV is a photograph, not a window. The moment a record changes in Airtable, the Sheet is stale, and there is no mechanism that will tell you. To update it, you repeat all five steps and then repair whatever downstream formulas were pointing at the old rows.

Attachments degrade. An attachment cell exports as a URL, and Airtable only guarantees that URL stays live for at least 2 hours. The link that worked when you exported will return an error later. This is Airtable behavior, not something the export is doing wrong, and it applies to every method in this guide. We wrote a separate breakdown of what happens to Airtable attachments in Google Sheets because it catches almost everyone once.

Linked records lose their meaning. A linked-record field exports as the display value of the linked record, so "Acme Corp, Globex" arrives as a comma-separated string in a single cell. The relationship is gone. Rollups and lookups export as their computed value at export time, which is fine as a number and useless as a live reference.

Re-importing destroys structure. Import with Replace current sheet and any formulas, conditional formatting, or extra columns on that tab are wiped. Append instead and you get duplicates.

Use a CSV export for a snapshot you will never repeat. Do not build a recurring report on it.

Method 2: Airtable's native automations

Airtable can push to Google Sheets on its own. This is the method most people find first, and it is worth understanding exactly what it does before you build on it.

Steps

  1. In your Airtable base, open Automations and create a new automation.
  2. Pick a trigger. The usual choices are When a record is created, When a record matches conditions, or When a record enters a view.
  3. Add the Google Sheets action and connect your Google account through OAuth.
  4. Select the spreadsheet and tab, then map each Airtable field to a spreadsheet column.
  5. Choose the action Google Sheets: Append a new row to a spreadsheet, then fill in Spreadsheet, Worksheet, and Row data. Test the automation, then turn it on.

From that point on, records that fire the trigger get written to the Sheet.

What breaks

It appends rows. It does not sync tables. The action adds a new row at the bottom. Edit a record you already pushed and the automation does not go back and correct the row it created. You end up with a stale row and a fresh one describing the same record, with no way to tell them apart without a key column and a deduplication formula you now maintain.

Deletions never propagate. Delete a record in Airtable and its row sits in the Sheet forever.

It is one-way, with no return path. Edit a cell in the spreadsheet and Airtable will never learn about it. This is the most common question in the Airtable community forums, and for native automations the answer is a flat no.

Existing rows are not backfilled. The automation only acts on records that fire the trigger after you switch it on. Everything already in the table stays out of the Sheet.

Automation runs are metered. Airtable counts every trigger firing against a monthly workspace allowance, success or failure: 100 runs on Free, 25,000 on Team, 100,000 on Business, and 500,000 on Enterprise Scale. A high-churn table can burn through the Free tier in a day.

Native automations are the right call for one specific shape of problem: an append-only log. New form submissions landing in a tracking sheet, new orders appended to a running list, events piling up in date order. If nothing ever gets edited or deleted after it is created, this works and costs nothing extra.

For anything where records change after creation, this method quietly produces a wrong spreadsheet.

Method 3: A Google Sheets add-on

An add-on runs inside Google Sheets itself, in the sidebar, next to the data. You pick a base, a table, optionally a view, and the fields you want, and it writes them into a tab. This is what Airtable to Sheets does.

Steps

  1. Install the add-on from the Google Workspace Marketplace and open a spreadsheet.
  2. Open the sidebar and connect your Airtable account. The connection uses Airtable OAuth, so you authorize it the same way you authorize any app, with no personal access token to generate, paste, and rotate by hand.
  3. Choose the base, then the table.
  4. Optionally choose a view instead of the full table. If you have a view in Airtable that filters to this quarter's active clients and sorts by owner, the Sheet receives exactly that, filtered and sorted, with no formula work on the Sheets side.
  5. Pick which fields to bring across. You do not have to take all of them.
  6. Run the sync. The data lands in the tab you selected.

What is different about this method

Field IDs, not field names. The add-on stores Airtable's internal field IDs in a protected system row at the top of the sheet. Renaming a field in Airtable does not break the mapping, because the mapping was never based on the name. Every method that maps by column header breaks the moment someone renames a column.

Side-by-side diagram of an Airtable field list and a synced Google Sheets tab. The Airtable field Client has been renamed to Account, yet both sides still carry the field ID fldA1b2C3D4e5F6, which sits in a protected first row of the sheet above the visible column headers.

View scoping. You sync a view, not just a table. The filtering logic stays in Airtable where your team already maintains it, instead of being duplicated as spreadsheet formulas that silently drift out of agreement.

Three panels in sequence: an Airtable table of 412 records across seven fields, a view that filters to active Q3 clients sorted by owner with two fields hidden, and the synced tab that results, holding 38 rows and five columns.

No record ceiling. Airtable's API returns 100 records per page and the add-on pages through them automatically, with no hard record limit. A first sync on a very large table takes a while.

Scheduled sync. On the Pro and Business plans, the sync runs every 3 hours without anyone opening the spreadsheet.

Multiple bases into multiple sheets. Set up several syncs pointing at different tabs, in the same spreadsheet or different ones.

The honest limit: Google caps scheduled runs

Here is the constraint that shapes every Google Sheets add-on in this category, ours included.

Google Apps Script caps add-on scheduled triggers at roughly one run per hour. Not one run per minute. Not real-time. Roughly hourly, as a platform ceiling that no add-on can code its way around. Any Marketplace add-on advertising "real-time sync" or "every 5 minutes" is bound by exactly the same limit as everything else on the platform.

Our current setting is every 3 hours. That is a deliberate choice, paced to sit comfortably inside Airtable's API rate limit of 5 requests per second per base, which large tables can otherwise run into.

If your work depends on the Sheet reflecting Airtable within seconds, no Sheets add-on is the right tool, and you should be suspicious of any that claims otherwise. If a spreadsheet that is current within a few hours is fine, which covers most reporting, dashboards, and client-facing views, scheduled sync solves the problem and you stop thinking about it. We go deeper on scheduling in how to update Google Sheets from Airtable automatically.

One rule to follow

Do not delete or rearrange columns in a synced sheet. The sync relies on field-ID metadata in the header rows. Resizing and hiding columns are both safe. For a custom layout, build it on a separate tab and pull from the synced tab with QUERY or FILTER, so your layout survives every sync.

Method 4: Zapier, Make, and other automation platforms

Automation platforms sit between apps. You build a scenario that watches Airtable for new or updated records and writes rows to a Google Sheet. On Zapier that is the New Record or New or Updated Record trigger paired with Create Spreadsheet Row. On Make it is the Watch Records module paired with Add a Row. Updating an existing row rather than appending means adding a lookup step first, Lookup Spreadsheet Row on Zapier or Search Rows on Make.

Where they are the right answer

If the Google Sheet is one stop in a longer chain, this is what these platforms are built for. A new Airtable record creates a Sheets row, posts to a Slack channel, generates an invoice, and sends an email, all in one scenario with branching and conditions. No sync tool competes with that, because it is not trying to.

Multi-app workflow logic is the whole product. If that is what you need, use it.

Where they are the wrong answer

They think in records, not tables. A scenario fires per record. Keeping a 4,000-row table in agreement with a spreadsheet means either an operation per record on every run, or building your own matching logic with a search step, a router, and a key column you maintain by hand. People do build this. It takes an afternoon, and then it breaks when somebody renames a field.

Pricing is metered per run, and a busy table generates a lot of runs. Zapier bills in tasks, starting from $19.99 per month, with the task allowance chosen separately from the plan on a sliding scale that begins at 100 and climbs into the millions. Make replaced operations with credits in August 2025, and the swap matters: most modules cost 1 credit, but advanced ones cost 2 or 10 and up, so a scenario's real cost is no longer its step count. Make's free tier covers 1,000 credits a month with a 15 minute floor between runs, and paid tiers start at 10,000 credits.

Field mapping is manual and name-based. Add a field in Airtable and you go back into the scenario to wire it up. Rename one and the mapping breaks.

It lives somewhere else. The scenario sits in a third tool, separate from both Airtable and the spreadsheet, and that is where you go when the Sheet looks wrong.

One forum post captures it: "I know there is a zapier integration but I can't get my head around it, mainly because what happens if someone creates a new page in the source data." That question has an answer, and the answer is more configuration.

Comparing the four methods

CSV export Airtable automations Sheets add-on Zapier or Make
Setup time 90 seconds 10 minutes 5 minutes 30+ minutes
Stays current No New records only Yes, on schedule Yes, with custom logic
Handles edits to existing records Only on full re-export No Yes Only if you build matching logic
Handles deletions Only on full re-export No Yes Only if you build it
Sync a filtered view Yes, per export Via trigger conditions Yes, native Via trigger conditions
Survives field renames No No Yes, field IDs No
Record limit Practical file size Per-run allowance None Task or operation cost
Where you manage it Nowhere Airtable The Sheets sidebar A third platform
Best for One-off snapshots Append-only logs Keeping a Sheet current Multi-app workflows

Which one you should pick

CSV export for a one-time need. Do not overbuild a snapshot.

Airtable automations for append-only logs where records never change after creation, if you want to stay inside Airtable with no extra tool.

A Sheets add-on if you want a spreadsheet that keeps matching a base, table, or view without anyone maintaining it. This is the common case, and the case the other three handle worst.

Zapier or Make if the Sheet is one step in a workflow touching several apps with branching logic. Not for keeping a whole table in agreement with a spreadsheet.

Frequently asked questions

Does Airtable have a built-in Google Sheets sync?

No. Airtable's Sync integrations bring data into Airtable from other sources, not out of it, and they require the Business or Enterprise Scale plan. Airtable's native automations can push rows to a Sheet, but they are one-way and append-only, so they add new rows without ever updating or removing existing ones.

How often can Airtable data update in Google Sheets?

Google caps Apps Script add-on scheduled triggers at roughly one run per hour. That ceiling applies to every add-on on the Marketplace. Our scheduled sync runs every 3 hours on the Pro and Business plans, paced to respect Airtable's API rate limit of 5 requests per second per base. Anything advertising real-time refresh from inside Google Sheets is working against the same platform limit.

Can I sync only one view instead of a whole table?

Yes, with the add-on. Point the sync at an Airtable view and the Sheet receives exactly what that view shows, filters and sorts included. The filtering logic stays in Airtable rather than being rebuilt as spreadsheet formulas.

What happens to attachments?

They arrive as URLs, and Airtable only guarantees those URLs stay live for at least 2 hours. This is Airtable behavior and it applies to every export and sync method, not just ours. Never treat a synced attachment cell as a permanent copy of the file. Full explanation in Airtable attachments in Google Sheets.

What happens to linked records, rollups, and lookups?

Linked records come across as display names, so you get readable text without the underlying relationship. Rollups and lookups come across as their computed value at sync time. Both are useful to read and to chart, and neither carries the link back to the source record.

Will renaming a field in Airtable break my sync?

Not with the add-on. Airtable's field IDs are stored in a protected system row in the sheet, so the mapping survives a rename. Methods that map by column header do break.

Is there a limit on how many records I can sync?

No hard limit on our side. A first sync on a very large table can take a while. Pricing is flat per account, with no per-user charge and no record cap. See pricing.

The limit that does bite is Airtable's own record cap on your plan, and syncing does not raise it. If you are up against it, what happens when you hit the free plan record limit covers the archive pattern that buys the room back.

Can I edit the synced sheet?

Read it, chart it, and reference it freely. Do not delete or rearrange columns in the synced tab, because the sync depends on field-ID metadata in the header rows. Resizing and hiding columns are safe. For a custom layout, pull from the synced tab into another sheet with QUERY or FILTER. The two-tab rule explains why that separation is what keeps a report alive, and sharing Airtable data with a client covers the case where the second sheet is the one you hand over.

Do edits in the spreadsheet flow back to Airtable?

Every method in this guide moves data one way, from Airtable into Google Sheets. Edits you make in the spreadsheet are not part of these flows.

What does it cost?

Starter is $9/month for manual sync of up to 3 tables or views. Pro is $19/month for unlimited syncs, scheduled sync every 3 hours, and priority support. Business is $39/month, adding two-way sync so edits in the Sheet push back to Airtable. There is a 7-day free trial with no credit card and a 30-day money-back guarantee. Full details on the pricing page.

Getting started

Short version: CSV for snapshots, Airtable automations for append-only logs, an add-on for keeping a Sheet current, Zapier or Make when the Sheet is one step in a bigger workflow.

For the third case, install the add-on from the Google Workspace Marketplace, connect Airtable through OAuth, pick your base, table, and view, and run the first sync. Seven-day trial, no credit card.

Questions about a specific field type, a large table, or a sync that stopped running are answered on the support page.