NBForms

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

FieldDescription
Spreadsheet IDFound in the sheet URL: https://docs.google.com/spreadsheets/d/<ID>/edit
Sheet NameThe tab name to append rows to (e.g. Sheet1). Case-sensitive.
Service Account EmailThe email address of the service account (e.g. [email protected]).
Private KeyThe private_key value from the service account JSON file.

Setup

1. Create a Google Cloud project

  1. Go to console.cloud.google.com and create a new project (or use an existing one).
  2. Enable the Google Sheets API for the project: APIs & Services → Library → search "Google Sheets API" → Enable.

2. Create a service account

  1. Go to APIs & Services → Credentials → Create Credentials → Service account.
  2. Give it a name and click Create and continue.
  3. No role is required — click Done.
  4. Open the service account, go to the Keys tab, click Add Key → Create new key → JSON.
  5. Download the JSON file. You need two values from it:
    • client_emailService Account Email
    • private_keyPrivate 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 ID

5. Add the integration

  1. Open your form → IntegrationsAdd next to Google Sheets.
  2. Fill in all four fields.
  3. 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.

On this page