Google Sheets
Append each submission as a new row in a Google Spreadsheet.
The Google Sheets integration appends a new row to a spreadsheet on every submission using a Google service account.
Required fields
| Field | Description |
|---|---|
| Spreadsheet ID | Found in the sheet URL: https://docs.google.com/spreadsheets/d/<ID>/edit |
| Sheet Name | The tab name to append rows to (e.g. Sheet1). Case-sensitive. |
| Service Account Email | The email address of the service account (e.g. [email protected]). |
| Private Key | The private_key value from the service account JSON file. |
Setup
1. Create a Google Cloud project
- Go to console.cloud.google.com and create a new project (or use an existing one).
- Enable the Google Sheets API for the project: APIs & Services → Library → search "Google Sheets API" → Enable.
2. Create a service account
- Go to APIs & Services → Credentials → Create Credentials → Service account.
- Give it a name and click Create and continue.
- No role is required — click Done.
- Open the service account, go to the Keys tab, click Add Key → Create new key → JSON.
- Download the JSON file. You need two values from it:
client_email→ Service Account Emailprivate_key→ Private Key (the entire value including-----BEGIN RSA PRIVATE KEY-----and-----END RSA PRIVATE KEY-----)
3. Share the spreadsheet
Open your Google Sheet and click Share. Add the service account email as an Editor. The integration cannot append rows without write access.
4. Find your Spreadsheet ID
Copy the ID from the URL:
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is your Spreadsheet ID5. Add the integration
- Open your form → Integrations → Add next to Google Sheets.
- Fill in all four fields.
- Save.
Row format
The first time NBForms appends a row to a new sheet, it writes a header row with the field names. Subsequent submissions append data rows in the same column order.
If the sheet already has data, NBForms appends after the last row without modifying existing content.