Google Sheets
Read, write, append, update, and manage Google Sheets spreadsheets directly from BizFirst workflows. Automate data entry, reporting, roster management, and operational tracking without manual copy-paste.
Authentication
All Google Sheets operations authenticate via OAuth2. Each node instance references a CredentialId — an integer key that resolves to a stored Google credential in the BizFirst Credentials Manager. Two credential types are supported:
| Credential Type | When to Use | Setup Notes |
|---|---|---|
| Google Service Account | Server-to-server automation, scheduled workflows, nightly reports, CI/CD pipelines, any process that runs without a human present. | Download the service account JSON key from Google Cloud Console. Store it in Credentials Manager. Share the target spreadsheet with the service account email (e.g. bot@project.iam.gserviceaccount.com) before use — the service account must have at minimum Editor permission for write operations. |
| User OAuth2 | Workflows that act on behalf of a specific human user, or when accessing sheets owned by that user without explicit file sharing. | Requires the user to complete the Google OAuth consent flow once. The refresh token is stored in Credentials Manager and renewed automatically by the node. Suitable for personal productivity automation and user-initiated workflows. |
CredentialId reference. Raw credentials stored in workflow configuration fields are written to the execution audit log in plaintext and are visible to any user with audit access.
API Quota Limits
The Google Sheets API enforces per-project and per-user quotas. Exceeding them produces 429 Too Many Requests errors that will route the workflow to the error port:
| Quota | Default Limit | Mitigation |
|---|---|---|
| Read requests per minute per project | 300 req/min | Add a Delay node between high-frequency read loops. Prefer one sheet/get call that returns all rows over many filtered single-row fetches. |
| Write requests per minute per project | 100 req/min | Pass arrays to sheet/append rather than looping single-row writes. Add 600–1000 ms delay between write bursts in loop nodes. |
| Requests per minute per user | 60 req/min | In multi-tenant workflows with many concurrent users, distribute load across multiple service accounts or introduce exponential backoff via a Retry node. |
HttpRequest node, or apply column filters in sheet/get to reduce result size. The Sheets API returns all matching rows in a single response — very large payloads can exhaust the workflow engine's memory buffer and cause timeout errors.
sheet/get
Read rows from a sheet tab with optional column filter conditions. Supports multi-condition filtering, header row configuration, and value rendering format.
sheet/append
Append one or more rows to the end of a sheet. Supports auto-mapping from upstream data or explicit column-to-field mappings for precise control.
sheet/appendOrUpdate
Upsert: match existing rows via lookup filters and update in place, or append a new row if no match is found. The recommended idempotent write pattern for deduplication.
sheet/update
Update existing rows that match lookup filter criteria. Only the specified columns are overwritten — all unaffected columns retain their values.
sheet/clear
Clear all cell values in a sheet tab or a specific row range. The sheet tab itself and its structure are preserved — only values are removed.
sheet/create
Add a new named tab to an existing spreadsheet. Supports tab color and hidden visibility flag. Useful for dynamic monthly report tab generation.
sheet/delete
Permanently delete a tab and all its data from a spreadsheet. The spreadsheet file itself remains. This operation is irreversible.
sheet/deleteRowsOrColumns
Delete a contiguous range of rows or columns by 0-based start index and count. Remaining data shifts to fill the gap. Irreversible.
spreadsheet/create
Create a new Google Sheets file in Google Drive with optional initial tab definitions, locale, and recalculation interval settings.
spreadsheet/delete
Permanently delete an entire spreadsheet file from Google Drive. All tabs and all data are irreversibly destroyed. Use with extreme caution in automated workflows.