splitforms.com

Feature · Google Sheets

Form to Google Sheets — one new row for every submission

Updated · plan facts checked against /pricing

Send form submissions to Google Sheets with no Apps Script and no Zapier: sign in with Google once, splitforms creates the spreadsheet, and each submission is appended as a new row, with new fields added as new columns. Included on Pro ($5 per month) and Annual.

  • 500 free to start
  • No credit card
  • 30-sec setup
splitforms google sheets — Send form submissions to Google Sheets with no Apps Script and no Zapier: sign in with Google once, splitforms creates the spreadsheet, and each submission is appended as a new row, with new fields added as new columns. Included on Pro ($5 per month) and Annual.

No backend to build

Your form posts to one splitforms endpoint — no server, API route, or SDK. splitforms is the backend.

Straight to your dashboard

Every submission is saved to a searchable dashboard and emailed to you — spam filtered before it lands.

Google Sheets, built in

No glue code, no third-party middleman — it ships as part of splitforms and works from your first submission.

Copy-paste ready

Drop this into any project.

Replace YOUR_ACCESS_KEY with the key from your splitforms dashboard. No SDK to install, no build step — the same html you already write.

Generate access key
google-sheets.html
// 1. In your splitforms dashboard, open Integrations → Google Sheets.
// 2. Pick the scope (this form, or all forms) and sign in with Google.
// 3. splitforms creates a spreadsheet for you (a "Submissions" tab with a
//    starter header row) — you don't pick a sheet or configure a mapping.
// 4. The form below appends one row per submission — automatically, in real time.

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />

  <!-- Each form field gets its own column, labelled with the field's
       "name" attribute. New fields become new columns automatically. -->
  <input type="text"  name="full_name" placeholder="Full name" required />
  <input type="email" name="email"     placeholder="Email"     required />
  <input type="text"  name="company"   placeholder="Company" />
  <input type="text"  name="source"    value="Landing page" />
  <textarea           name="message"   placeholder="What can we help with?" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Send</button>
</form>

{/*
  Every row also carries system columns automatically: Submitted at (UTC),
  Form, Submission ID, Referer, and IP address — useful for ranking traffic
  sources or building cohort sheets without any configuration.
*/}

How to set it up

How to set up Google Sheets.

How google sheets flows through splitforms — what you do, what we do, and what lands in your inbox.

Open Integrations → Google Sheets in the dashboard

Choose the scope — one form, or all forms on your account — and click Connect. Sign in with the Google account that should own the spreadsheet. splitforms uses Google's non-sensitive drive.file OAuth scope, which only grants access to files splitforms itself creates — it cannot see, list, or modify anything else in your Drive.

splitforms creates the spreadsheet for you

A new spreadsheet appears in your Drive with a 'Submissions' tab and a starter header row: Submitted at, Form, Submission ID, Referer, and IP address. Each form field gets its own column automatically — the first time a new field name appears in a submission, splitforms adds a column for it. No mapping screen, nothing to maintain.

Submit a test — watch the row appear in real time

Click Send test row on the Google Sheets integration page, or submit your form. A new row appears at the bottom of the sheet within a few seconds. Every subsequent submission appends in real time, so non-technical teammates can sort, filter, and pivot leads straight from the spreadsheet — and you can pipe that sheet into Looker, Geckoboard, or Notion.

Google Sheets

What happens on each submission

1. The submission arrives at https://splitforms.com/api/submit and passes the spam checks. Submissions the filter quarantines stay in the Spam folder and are never written to the sheet.

2. The submission is saved to your dashboard and the response goes back to the visitor. The Google Sheets write runs right after, so a slow Google API never delays your form.

3. splitforms picks the connection: a sheet connected to this exact form wins; otherwise the account-wide sheet is used. If the submission has a field the sheet hasn't seen, splitforms adds a column and rewrites the header row first.

4. The row is appended to the 'Submissions' tab with the system columns plus one cell per field. Long values are capped at 49,000 characters, and checkbox groups or other non-text values are written as JSON text.

Google Sheets

If a write fails

A failed write (an expired Google grant, a deleted spreadsheet, a Google API error) is not retried. The error is shown as Last error on the Google Sheets integration page, and the next successful write clears it. The submission itself is never lost: it stays in your dashboard, and on paid plans you can export it to CSV.

Rows are added from the moment you connect; earlier submissions are not copied into a new sheet. To bring older leads across, export them to CSV from the Submissions page and import the file into the sheet.

Google Sheets

Form to Google Sheets vs. Apps Script or Zapier

Apps Script: you write and deploy a doPost() web app, handle CORS, and maintain the script yourself. It costs nothing, but it has no spam filtering, and when the script breaks, submissions are lost unless something else stored them.

Zapier or another automation tool: no code, but each submission runs as a task on that tool's plan, and you add a second account and bill to the chain.

splitforms: spam-filtered submissions are stored first, then written to the sheet as part of your plan, with no per-row or per-task charge. If you need conditional logic (only some submissions, or rows updated instead of appended), a splitforms webhook into your own code or an automation tool is still the better fit.

How google sheets works

How does splitforms handle Google Sheets?

Form to Google Sheets in splitforms is a native integration: one Google sign-in, and every submission to your form becomes a new row in a spreadsheet splitforms creates for you, with no Apps Script, no copy-pasted webhook URLs, and no Zapier step. In the dashboard, click Integrations → Google Sheets, choose the scope (one form, or every form on your account), and sign in with Google. Route the same submission to an email inbox or a webhook at the same time — nothing here is one-or-the-other.

  • One Google sign-in — no Apps Script, no copy-pasting webhook URLs into formulas
  • Zero configuration — splitforms creates the spreadsheet and adds a column per field automatically
  • System columns on every row (Submitted at, Form, Submission ID, Referer, IP address)
splitforms google sheets in action

What you get

What do you get with Google Sheets?

Every reason below is the boring, reliable kind — the fundamentals of google sheets, built once and tested in production so you never have to.

  • Pushed on every submission — the row is written as the submission is processed, not on a polling schedule
  • Scoped Drive access (drive.file) — splitforms can only touch the sheet it creates
  • Formula-injection safe — submitted values starting with =, +, -, or @ are escaped before writing
Why teams pick splitforms for google sheets

How SplitForms works

What happens after someone submits your form?

splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Where can submissions go besides email?

On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more
NewTake payments on your formsDeposits, bookings, order forms — submitters check out through Stripe and the money goes straight to your Stripe account. Included on every paid plan.See payment forms →Need time slots? Online booking →

Setup guides for the stacks you use

Common questions

Google Sheets questions.

View all FAQs
How does form to Google Sheets work in splitforms — do I need Apps Script or Zapier?

No to both. splitforms has a native Google Sheets integration on paid plans: Dashboard → Integrations → Google Sheets → choose the scope (one form or all forms) → sign in with Google. splitforms creates the spreadsheet itself and from then on every submission appends a new row as it is processed, with no Apps Script to maintain and no Zapier task fees. Columns are created automatically from your field names, and writes don't count against any external task quota.

What plan includes the Google Sheets integration?

Google Sheets is included on the paid plans with no row caps and no per-write fees beyond your monthly submission limit: Pro ($5 per month) covers 5,000 submissions a month and Annual ($49 per year) covers 15,000. On Free (500 submissions total) the connect button asks you to upgrade, and CSV export isn't available either, but every submission stays viewable in the dashboard. Forms are unlimited.

How do I enable form to Google Sheets and what permissions does it ask for?

Open the dashboard → Integrations → Google Sheets → Connect. The OAuth flow requests only Google's drive.file scope, which is non-sensitive: it grants access solely to files splitforms itself creates, never your existing spreadsheets or the rest of your Drive — that's why the consent screen is clean, with no 'Google hasn't verified this app' warning. After you sign in, splitforms creates the spreadsheet and starts appending rows; there is nothing else to configure. To revoke access at any time: Google Account → Security → Third-party apps → splitforms → Remove access, or disconnect from the splitforms dashboard.

What happens if I rename, reorder, or delete a column in the sheet?

Treat the splitforms-managed 'Submissions' tab as append-only. splitforms writes rows in its own recorded column order and rewrites the header row whenever a new form field needs a column — so a header you rename by hand can be overwritten, and manually inserting, deleting, or reordering columns can misalign future rows against the headers. If you want to sort, annotate, or restructure the data, do it on a second tab or spreadsheet that references the managed one. Nothing is ever lost either way: every submission stays saved on the splitforms side and visible in the dashboard regardless of what happens in the sheet.

Can I send only certain submissions to the sheet, or send different forms to different sheets?

Different forms to different sheets: yes. Connect Google Sheets with no form selected and every form on your account writes to one shared spreadsheet; connect it scoped to a specific form and that form gets its own dedicated spreadsheet instead — a form with its own sheet never double-writes into the account-wide one. Filtering which submissions get written (e.g. 'only append rows where source = careers') isn't supported today — every submission on a connected form becomes a row. If you need conditional routing, point a signed splitforms webhook at your own endpoint (or a Zapier filter step) and write to the Sheets API from there.

Simple pricing

How much does splitforms cost?

Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.

Free

$0— 500 submissions
 

No card, no time limit

Best for testing

For side projects and indie devs.

  • 500 free submissions
  • Unlimited forms
  • Email notifications included
  • Smart spam filtering
  • Submissions dashboard
  • Redirect after submit
  • MCP server included

Annual

$49/ year
About $4.08 per month, billed yearly
Best value

Every Pro feature with triple the volume — $0.27 per 1,000 at full use.

  • 15,000 submissions per month
  • Unlimited forms
  • Everything in Pro
  • File uploads with 5 GB storage
  • 3 team seats
  • Priority email support

No credit card required on Free • Cancel anytime • Full pricing and FAQ