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.
- Click Connect with OAuth in SignalSmith
- Sign in with your Google account
- Authorize SignalSmith to access Google Sheets and Google Drive (file-level access)
- SignalSmith receives
spreadsheetsanddrive.filescopes
Required OAuth Scopes
https://www.googleapis.com/auth/spreadsheets— read and write spreadsheet datahttps://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
| Field | Type | Required | Description |
|---|---|---|---|
| Spreadsheet ID | Text | Yes | The ID of the Google Sheets spreadsheet. Found in the spreadsheet URL: https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/edit |
| Worksheet Name | Text | No | The 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:
- The first row of the worksheet is treated as the header row (column names)
- For Insert mode, new rows are appended below existing data
- For Upsert mode, existing rows are matched by the primary key column and updated; new rows are appended
- 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.