Google Sheets
Connect Google Sheets to the rest of your business: accounts, files, mail and calendars kept in step.
15 ways to read, 14 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Google Sheets, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create developer metadataApproval by rule
- Insert rows or columnsApproval by rule
- List banded rangesRead
Example flow
- Google Sheets · List banded rangesDone
- Google Sheets · Create developer metadataNeeds approval
- Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Google Sheets.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Google Sheets
- Google Sheets's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a Google test account before you go live.
For developers
Technical detail
Read spreadsheets, ranges, header-keyed rows and tables; append and update rows and values; add and rename sheets and named ranges; tag rows with developer metadata.
Google API docs- Source actions
- 15
- Destination actions
- 14
- Data types
- 15
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
Banded ranges1
- List banded rangesSource
Alternating-colour (banded) ranges on every sheet.
Charts1
- List chartsSource
Embedded charts on every sheet with their titles and chart types.
Developer metadata4
- Create developer metadataDestinationProvider duplicate protectionApproval before production
Tags a row, column, sheet or the spreadsheet with a key/value pair, for example an external record ID, so later flows can find it by metadata instead of by position.
- Get developer metadataSource
One developer metadata entry by ID.
- Search developer metadataSource
Developer metadata (key/value tags that integrations attach to rows, columns or sheets) by key.
- Update developer metadataDestinationProvider duplicate protectionApproval before production
Changes the value (and optionally the visibility) of one developer metadata entry.
Dimensions1
- Insert rows or columnsDestinationNot retried automaticallyApproval before production
Appends empty rows or columns to the end of a sheet, or inserts them at a position.
Filter views1
- List filter viewsSource
Saved filter views on every sheet.
Metadata ranges1
- Get values by developer metadataSource
Values of the rows, columns or sheets tagged with a developer metadata key (and optional value), so tagged records are found even after rows move (spreadsheets.values.batchGetByDataFilter).
Named ranges3
- Add named rangeDestinationProvider duplicate protectionApproval before production
Names a grid range so formulas and flows can refer to it.
- List named rangesSource
Named ranges defined in a spreadsheet with their grid coordinates.
- Update named rangeDestinationProvider duplicate protectionApproval before production
Renames a named range or moves it to a different grid range.
Protected ranges1
- List protected rangesSource
Protected ranges on every sheet, with editors and warning-only flags.
Range batches1
- Update several rangesDestinationProvider duplicate protectionApproval before production
Writes values into several A1 ranges in one request (spreadsheets.values.batchUpdate).
Ranges3
- Get range valuesSource
Values in one A1 range.
- Get several rangesSource
Values for several A1 ranges in one request (spreadsheets.values.batchGet).
- Update range valuesDestinationProvider duplicate protectionApproval before production
Writes values into one A1 range, overwriting existing cells.
Rows3
- Append rowsDestinationNot retried automaticallyApproval before production
Appends rows after the last row of the table found in the range (spreadsheets.values.append).
- List rowsSource
Rows of a sheet keyed by the header row, read in windows. Each record carries its row number so it can be updated later.
- Update rowDestinationProvider duplicate protectionApproval before production
Overwrites one row by its row number (as returned by List rows), starting at column A.
Sheet copies1
- Copy sheet to spreadsheetDestinationNot retried automaticallyApproval before production
Copies a sheet (tab) into another spreadsheet, for example a monthly template.
Sheets4
- Add sheetDestinationProvider duplicate protectionApproval before production
Adds a sheet (tab) with an optional position, grid size and frozen rows.
- Get sheetSource
One sheet (tab) by its sheet ID, with position, grid size and frozen rows.
- List sheetsSource
Every sheet (tab) in a spreadsheet with its ID, position and grid size.
- Update sheet propertiesDestinationProvider duplicate protectionApproval before production
Renames, moves, hides or freezes rows and columns on a sheet (tab).
Spreadsheets3
- Create spreadsheetDestinationNot retried automaticallyApproval before production
Creates a spreadsheet with a title and optional sheet (tab) names.
- Get spreadsheetSource
Spreadsheet title, locale, time zone and every sheet (tab) with its grid size.
- Update spreadsheet propertiesDestinationProvider duplicate protectionApproval before production
Renames a spreadsheet or changes its locale, time zone or recalculation setting.
Tables1
- List tablesSource
Structured tables on every sheet with their name, range and typed columns (useful to find a table's header and column types).
Access and limits
- Authentication
- Google OAuth client and refresh token
- Plans and access
- Personal Google accounts and all Google Workspace editions. Requires a customer-owned Google Cloud OAuth client. Sensitive and restricted scopes need Google verification before external users can authorise them.
- Test environment
- Use a test Google account and an OAuth client in testing mode.
- Rate limits
- 300 read and 300 write requests per minute per project, 60 of each per minute per user; HTTP 429 (or 403 rate-limit reasons) with exponential backoff.
- Pagination
- Row windows: rows.list reads a fixed number of rows per page and returns the next start row as the cursor. Other reads return a single response.
- Provider events
- None in the Sheets API; change notifications come from Drive push notifications (files.watch). Flows run on demand, on a schedule, or when a scheduled check finds new or changed records.
Before you build a flow
- Spreadsheets cannot be listed through the Sheets API; find spreadsheet IDs with the Google Drive connector (files.search with mimeType application/vnd.google-apps.spreadsheet).
- The connection test reads Google's public sample spreadsheet from the Sheets quickstart, so it proves the token works without needing a customer spreadsheet ID.
- Appending values, creating spreadsheets, copying sheets and inserting rows or columns have no idempotency key; uncertain writes are not repeated automatically.
- Range writes (ranges.update, range_batches.update) overwrite cells, so repeating them converges on the same content.
- Sheet names containing a slash cannot be addressed in a range path; rename the sheet or use its sheet ID with batchUpdate operations.
- Cell formatting, conditional formats, pivot tables, slicers and data validation are not exposed as operations. Tables are read-only (tables.list).
- Developer metadata create derives a metadata ID from the flow step when none is supplied, so a repeated step is rejected by Google instead of creating a second tag. Deleting developer metadata is not implemented.
- Values by developer metadata (metadata_ranges.search) only returns ranges whose metadata is attached to rows, columns or sheets; spreadsheet-level metadata has no cell range.
- Not implemented by design: values.clear and values.batchClear, deleteSheet, deleteDimension, deleteNamedRange, deleteProtectedRange, deleteDeveloperMetadata, deleteBanding, deleteTable and Drive file deletion.
- Google reports some quota errors as HTTP 403 with a rate-limit reason; Nexra classifies those as rate limits.
Developer reference
- Create the Google credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Google Sheets, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/google-sheets and the Connections API.