Google Sheets
Google Sheets operations — read, append, and update rows, clear ranges, and manage spreadsheets.
The node authenticates through a Google connection. No API key setup is needed — connect a Google account once and pick it in the node's settings.
Use Google Sheets when:
- A form or webhook should append rows to a spreadsheet
- A workflow should read rows for lookups or sync them elsewhere
- You want to give an AI Agent tool access to your spreadsheets
Google Account — required. Pick a Google connection from the Connections page.
| Handle | Type | Description |
|---|---|---|
input | any | Upstream data for {{ input.field }} template references in settings. |
| Handle | Type | Description |
|---|---|---|
result | object | Google Sheets operation result |
The result (accessed as {{ google_sheets.* }}) shape:
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the operation succeeded |
response | object | Raw Google Sheets API response (rows, values, or spreadsheet metadata depending on operation) |
Each node run executes a single operation. Set Operation, then configure the fields shown for that operation.
| Setting | Type | Default | Description |
|---|---|---|---|
operation | enum | read_rows | Sheets action to perform: read_rows, append_rows, update_rows, clear_range, get_spreadsheet, create_spreadsheet, or add_sheet. |
| Setting | Type | Default | Description |
|---|---|---|---|
allowed_operations | multi-select | All operations | Which operations are available when this plugin is used as an AI agent tool. |
| Setting | Type | Default | Description |
|---|---|---|---|
spreadsheet_id | string | — | Google Sheets spreadsheet ID (the long value in the sheet URL). Supports {{ }} bindings. |
sheet_name | string | — | Worksheet tab name (e.g. Sheet1). Supports {{ }} bindings. |
range | string | A1:Z1000 | A1 notation range (e.g. A1:D10). Supports {{ }} bindings. |
Shown for append/update/create operations:
| Setting | Type | Default | Description |
|---|---|---|---|
data | code editor (JSON) | [] | Row data as a JSON array (append/update) or spreadsheet config (create). Supports {{ }} bindings. |
Append form submissions to a sheet:
Webhook Trigger → Google Sheets (append_rows)
Google Sheets settings:
- Operation:
append_rows - Spreadsheet ID:
1Bxi... - Sheet Name:
Responses - Data:
[ ["{{ webhook.body.name }}", "{{ webhook.body.email }}"] ]
- Spreadsheet ID, not URL: use the ID between
/d/and/editin the sheet URL. - Range defaults to A1:Z1000: set a tighter range for large sheets to avoid reading empty cells.
- The connected account must have access: the spreadsheet must be shared with the Google account chosen in the node's settings.
- Connections — connect the Google account the node runs as
- Google Sheets Trigger — start a workflow when rows are appended
- PostgreSQL — relational alternative for larger datasets