Opinion
From Google Sheets to Airtable for forms
Google Sheets is the lazy default for form submissions. After a year of clients hitting its limits, I moved everything to Airtable. Here's why.
Google Sheets is the lazy default for storing WordPress form submissions. New row per submission. Open it in any browser. Free.
I ran client forms into Google Sheets for four years. Last year, on a third client in a row, the sheet broke in a way I couldn’t untangle. So I moved everything to Airtable. Here’s why, and where the tradeoffs land.
What kept breaking in Google Sheets
The sheet wasn’t a database, but I was using it as one.
Three failures, in escalating order:
1. Column drift. When a form field gets renamed or added, Sheets doesn’t auto-add a column. The new field’s data shows up under whatever column was at that index, silently misaligning rows. I caught one case where two months of leads had email addresses in the “company” column. Recovering was tedious.
2. Fragile formulas. Clients add a formula to compute “lead score” or “follow-up date.” A new submission’s row doesn’t carry the formula down because Sheets’ “auto-fill” stops on row insert. Half the rows have the formula, half don’t, no one notices until reporting day.
3. Permissions confusion. A virtual assistant gets edit access. Six months later, no one remembers which client they were working for, and the VA has access to three competing companies’ lead pipelines. Audit and revoke is painful.
None of these are Sheets bugs. They’re all “using a spreadsheet as a database” bugs. But they happen, and they cost real time.
What Airtable does differently
Schema is real. Each column has a type: single-line text, email, phone, single-select, multi-select, date, attachment. Submitting a string into a date column rejects, doesn’t silently corrupt. The type system prevents the column-drift problem at insert time.
Linked records. A “Lead” row can link to a “Company” row, which links to “Industries.” Try doing that in Sheets. You can’t. You hack it with VLOOKUP and pray.
Per-table permissions. Share one base. Grant a VA access to one specific table inside it. The other tables stay invisible.
Filters as first-class views. “Leads from this week” is a saved view, not a manual filter. Three people can each look at the same data through different views without stepping on each other.
API parity. Airtable’s API treats the schema like a real database. Reads and writes are predictable. Formulas, automations, integrations — all part of the platform, not bolted on.
What Airtable gives up
Cost. Sheets is free, Airtable’s free tier caps at 1,000 records per base. For a small contact form, fine. For a job board form that gets 5,000 submissions, you’ll hit the cap and need a paid plan.
Familiarity. Every client knows Sheets. Airtable has a learning curve. I usually run a 30-minute walkthrough with a new client to show them the views, the filters, and how to add a comment to a row.
True spreadsheet calculations. If the client’s team builds heavy formulas across many columns, Sheets is still better. Airtable’s formula language is solid but less universal. Fewer people speak it.
Offline. Sheets has decent offline mode. Airtable’s offline story is weaker.
For most lead-gen and contact-form use cases, none of these tradeoffs matter. For finance teams who live in spreadsheets, they do.
The Core Forms wire-up
Both Google Sheets and Airtable are bundled with Core Forms. The setup difference is small:
Google Sheets needs a Google Cloud service account JSON, the sheet shared with the service account email. Setup time: about 10 minutes the first time, 2 minutes after that.
Airtable needs a Personal Access Token granted access to the base. Setup time: about 3 minutes.
Mapping form fields to columns is identical in both. Core Forms maps by column header name (Sheets) or field ID (Airtable), so reordering columns doesn’t break things in either.
The decision tree
Go with Sheets if:
- The client team already lives in Sheets and it’d be a fight to migrate.
- The form gets less than 100 submissions a year.
- You need offline-first access to the data.
Go with Airtable if:
- You want filtered views as a triage UI.
- The form data has structure (status, owner, tags) you’ll use.
- You’ll need API access for downstream automation.
- You’re going to grow past 1,000 records and the team will pay for it.
For everything else, Notion is a third option worth considering. Notion’s strength is comments and threading per row, which neither Sheets nor Airtable does well.
The next step
Pick one client form that’s been on Sheets for a year. Open the sheet. Find the column drift. Migrate that one form to Airtable.
The act of migrating forces a schema cleanup. The result is a database the client team can actually run their pipeline on, instead of a spreadsheet they keep “fixing.”