DestinationsOtherGoogle Sheets

Google Sheets

Sync data to a Google Sheets spreadsheet. Use SignalSmith to populate spreadsheets with model results, audience lists, or enriched data for teams that work in Google Sheets.

Prerequisites

  • A Google account with access to Google Sheets
  • A Google Sheets spreadsheet to write to
  • The spreadsheet must be accessible by the authenticated Google account

Authentication

Google Sheets uses Google OAuth 2.0 with PKCE authentication.

  1. Click Connect with OAuth in SignalSmith
  2. Sign in with your Google account
  3. Authorize SignalSmith to access Google Sheets and Google Drive (file-level access)
  4. SignalSmith receives spreadsheets and drive.file scopes

Required OAuth Scopes

  • https://www.googleapis.com/auth/spreadsheets — read and write spreadsheet data
  • https://www.googleapis.com/auth/drive.file — access files created by or opened with SignalSmith

Configuration

Google Sheets does not require additional configuration fields beyond authentication.

Target Settings

FieldTypeRequiredDescription
Spreadsheet IDTextYesThe ID of the Google Sheets spreadsheet. Found in the spreadsheet URL: https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/edit
Worksheet NameTextNoThe name of the worksheet tab to sync data to. Default: Sheet1

Supported Operations

Sync Modes: Insert, Upsert, Mirror

Audience Sync Modes: Add, Remove, Mirror, Upsert

Features

  • Field Mapping: Yes
  • Schema Introspection: Yes — SignalSmith reads the first row of the worksheet as column headers

How It Works

SignalSmith writes data to the specified worksheet in the Google Sheets spreadsheet:

  1. The first row of the worksheet is treated as the header row (column names)
  2. For Insert mode, new rows are appended below existing data
  3. For Upsert mode, existing rows are matched by the primary key column and updated; new rows are appended
  4. For Mirror mode, the worksheet is cleared and replaced with the complete dataset (header row is preserved)

Schema Introspection

SignalSmith reads the first row of the target worksheet to discover available columns. This enables field mapping — you can map source fields to specific spreadsheet columns.

If the worksheet is empty, SignalSmith creates the header row from the mapped fields on the first sync.

Troubleshooting

Spreadsheet not found

Verify the spreadsheet ID is correct. The ID is the long string in the spreadsheet URL between /d/ and /edit. Ensure the authenticated Google account has access to the spreadsheet.

Authentication expired

Google OAuth tokens expire periodically. If you see authentication errors, reconnect the Google Sheets integration in SignalSmith by re-authorizing with OAuth.

Worksheet not found

If the specified worksheet name does not exist, SignalSmith may not be able to write data. Verify the worksheet tab name matches exactly (case-sensitive). Use Sheet1 for the default first tab.

Rate limited

Google Sheets API has quotas of 60 requests per minute per user. For large datasets, SignalSmith batches writes to stay within limits. Very large syncs may take longer due to rate limiting.

Spreadsheet too large

Google Sheets has a limit of 10 million cells per spreadsheet. If your data exceeds this limit, consider using a warehouse destination (BigQuery, Snowflake) instead.

Permission denied

The authenticated Google account must have Editor access to the spreadsheet. View-only access is not sufficient. Share the spreadsheet with the Google account used for OAuth.