Google Workspace integration
Send form responses to Google Sheets
Create a Google service account, enable the Sheets API and share your spreadsheet with the service-account email as Editor. Each submission then appends a row to the tab you name, in the column order you set.
What the Google Sheets integration does
- Set the column order by listing your question labels, so existing formulas and pivots keep working.
- Credentials belong to your own Google Cloud project, and access is revoked by unsharing the sheet.
- Rate limits and transient Google errors are retried automatically, with each attempt logged.
What it looks like
One appended row per submission, in your configured column order (or form order by default).
HelloForms — response
Removals enquiry · #4821
- Full name
- Priya Raman
- priya@northgate.co
- Service needed
- Office move
- Budget
- £2,000 – £5,000
Google Sheets — new row
| Full name | Service needed | Budget | |
|---|---|---|---|
| Priya Raman | priya@northgate.co | Office move | £2,000 – £5,000 |
| — | — | — | — |
How to connect Google Sheets to your form
- 1
Create a Google Cloud service account and download its JSON key.
- 2
Enable the Google Sheets API for that project.
- 3
Share the spreadsheet with the service-account email address as Editor.
- 4
Paste the JSON key and spreadsheet ID below, then send a test event — a row appears immediately.
What you’ll need
- Google service-account key (JSON).
- Spreadsheet ID — Between /d/ and /edit in the spreadsheet URL.
- Tab name (optional) — Defaults to the first tab.
- Column order (optional) — Question labels in the order your columns appear. Leave blank to append every answer in form order.
Credentials are stored server-side and never rendered in your published form. Every delivery attempt is logged, transient failures are retried with backoff, and repeated failures disable the destination instead of retrying forever.
Configuration template and sample payload
Download a filled-in checklist of every value the Google Sheets destination asks for, plus an example of exactly what Google Sheets receives for one submission — useful for planning a mapping or handing the setup to a developer.
Every field the "Add integration" dialog asks for, with placeholders to fill in. Keep it as documentation of your Google Sheets mapping — do not commit a completed copy to a public repository.
{
"$schema": "https://helloforms.net/integrations/config-template.schema.json",
"helloforms": {
"destination": "google_sheets",
"label": "Google Sheets",
"docs": "https://helloforms.net/integrations/google-sheets"
},
"enabled": true,
"events": [
"submission.created"
],
"credential": {
"label": "Google service-account key (JSON)",
"value": "<paste-your-token-here>"
},
"config": {
"spreadsheetId": "1AbCdEf… (the long id in the sheet URL)",
"sheetName": "Sheet1",
"columns": "Full name, Email, Phone"
},
"includedQuestions": [
"Full name",
"Email",
"How can we help?"
],
"notes": [
"Never commit a filled-in copy of this file to a public repository.",
"Values are entered in HelloForms → your form → Integrations; this file is a checklist and a record of your mapping."
]
}Google Sheets integration FAQs
Who uses it
- Teams that report on submissions in Sheets rather than a dashboard.
- Order, booking and stock forms feeding an operational spreadsheet.
- Anyone migrating from Google Forms who wants the same sheet, better forms.
Works well with
Airtable
Creates a record in one of your Airtable tables.
Airtable integrationGoogle Calendar
Creates a calendar event from a booking or appointment answer.
Google Calendar integrationSlack
Posts a formatted submission card into a Slack channel.
Slack integration
Build a form that feeds Google Sheets today
Every destination is included on every plan — no per-integration add-ons.