Integrations
Google Sheets
Send every submission to a Google spreadsheet as a new row. Map fields to custom columns, connect multiple Google accounts, and backfill past responses.
What you get
- One row per submission, synced in real time
- Field-level column mapping with custom labels
- Metadata columns (submitted at, respondent email, submission ID, form name, submission status, PDF link, channel, request ID)
- Auto-created spreadsheet per form
- Backfill existing submissions on connect
- Multiple Google accounts per workspace
- Test row to verify the connection before real submissions arrive
Connect Google Sheets
- 1
Open Form settings → Integrations
Choose Google Sheets from the integration list.
- 2
Connect a Google account
Pick an existing connected Google account, or authorize a new one. You'll be redirected to Google to grant formbase access to create and edit spreadsheets. You can set a custom spreadsheet name (defaults to the form name).
- 3
Map fields to columns
Choose which form fields and metadata to include as columns. Rename any column label to match your workflow. All fields are included by default.
- 4
Finalize
Review your setup. Enable "Export existing submissions" to backfill past responses. A new spreadsheet is created when the first submission arrives. After saving, open the integration from the list to send a test row.
Column mapping
Toggle Export all form fields to include every question, or turn it off to pick specific fields and set custom column headers.
Column labels default to the question title but can be overridden — helpful when your spreadsheet feeds into another tool that expects specific header names.
Values are written by column position, never by matching the header text. Renaming a header in Google Sheets is harmless; reordering or deleting a column is not, and puts values in the wrong place. When your mapping or your form’s questions change, formbase rewrites row 1 of the spreadsheet it created so the header keeps matching what it appends.
Repeating groups
A repeating group lets respondents add as many entries as they need — like a list of guests, each with a name and age. In the field picker you choose how to map it:
The whole group maps to one column. Every entry shows as numbered, labeled rows, like “1. Full name: Jane Appleseed, Age: 34, 2. Full name: Marcus Lee, Age: 29”.
Each member field maps to its own column. The values from every entry join with
·, so the Full name column reads “Jane Appleseed · Marcus Lee”.
Pick one, the other, or both. If you remove a member field from your form later, it still appears in the picker so past submissions keep their column — your mapping never breaks.
Metadata columns
| Column | What it contains |
|---|---|
| Submitted at | The date and time the response was submitted. |
| Submitter | The respondent's email address when one was captured, otherwise “Anonymous”. |
| Submission ID | A unique identifier for the submission. |
| Form name | The internal name of your form. |
| Submission status | "Completed", "Partial" for an abandoned draft, or "Updated" when the respondent edited it. |
| PDF Link | A link to the generated submission PDF. |
| Submission language | BCP 47 code for the language used when the response was submitted. |
| Channel | "Public link" when the response came through a share link, "Request" when it answered a request. |
| Request ID | The id of the request the response answered. Empty for a share-link response. |
By default, Submitted at and Submitter are included. Add or remove any metadata column during setup, and rename any of them like a normal column header.
Multiple Google accounts
A workspace can have multiple Google accounts connected, and each form picks one. This works well when different teams manage their own Google Drive or you want client spreadsheets in separate accounts.
To add another account, start a new integration setup and authorize with a different Google email. Existing integrations keep their current account.
Backfill existing submissions
When you first connect, you can export all existing submissions into the spreadsheet. The backfill runs in the background in batches of 50 rows, with progress shown in the integration panel.
Rows are written in submission order (oldest first) so the spreadsheet reads chronologically.
Auto-created spreadsheets
formbase creates a spreadsheet in your Google Drive when the first submission arrives (not on save). The spreadsheet uses your form’s name, or the custom name you set during setup. If you delete the spreadsheet, formbase creates a new one on the next submission — you don’t lose any data.
Test event
The integration detail panel has a Send test button. It appends a placeholder row to the spreadsheet so you can verify
column mapping without waiting for a real submission. Question columns show
[Question Title] placeholders; metadata columns show synthesized values.
Abandoned response events
If a respondent starts your form but doesn’t finish, formbase can still sync the partial data. On the Abandoned submissions step, set Send abandoned event after to 12 hours, 1 day, 3 days, or 1 week. An hourly sweep then appends a row with whatever the respondent filled in, using the same column mapping. The Submission status column reads “Partial” so you can filter incomplete responses.
Only drafts from a share link are swept, and Required fields narrows it further: the row is appended only when at least one of the fields you pick was filled in.
Pro feature
Abandoned response delivery requires a Pro or Business plan. The core Google Sheets integration is available on all plans. See plans & pricing.
Error handling
| Error | What happens |
|---|---|
| Token expired | formbase refreshes automatically — if the refresh token is revoked, the integration pauses and asks you to reconnect |
| Spreadsheet deleted | formbase creates a new spreadsheet, re-writes the header row, and appends the submission — no data lost |
| Permission denied | The Google account lost access to the spreadsheet — reconnect the account to restore |
| Sheet tab renamed | Appends stop with an error. The tab name is fixed at creation — rename it back, or recreate the integration |
| Rate limit (429) | Retried automatically with exponential backoff |
| Google outage (5xx) | Retried automatically — after 5 consecutive failures, the integration pauses and the person who set it up receives a notification email |
After 5 consecutive failures of any kind, the integration auto-pauses with an error status and the person who set it up receives a notification email. Fix the underlying issue and re-enable the integration — it will resume from the next new submission.
FAQ
No. formbase creates one in your Google Drive when the first submission arrives.
formbase creates a new one on the next submission with the same column headers. No data is lost.
Yes. Google accounts are connected at the workspace level. Any member can use any connected account when setting up an integration — no re-authorization needed.
Yes. Authorize additional accounts during new integration setups. Each form picks which account to use.
Permission to create and edit spreadsheets (Google Sheets API), create files in Google Drive (files only), and read your email and profile name. formbase cannot read your other Drive files or access anything outside the spreadsheets it creates.
Both appear as rows in the same spreadsheet. The “Submission status” metadata column shows “Completed” or “Partial”, so you can filter or sort by it.
Yes. Open the integration and re-map fields. The next delivery rewrites the header row to match; existing rows keep the values they were written with.
No. The spreadsheet is fixed once the integration is created. Delete it and create a new one.
Go to Form settings → Integrations → Google Sheets and delete the integration. To also revoke formbase’s access to your Google account, visit your Google account permissions page.