Productivity & Project Management

Google Sheets connector

Read, append, and update rows in a Google Sheet from any Neblex workflow or agent, with the header row mapped to field names and rows identified by a key you choose, so a sheet can serve as a routing table, a review queue, or a lightweight export target, all under the same governance and audit trail as every other connector.

OAuth 2.0
Authentication
Sheets API v4, Drive API
API surface
Spreadsheets, sheets, rows, ranges
Objects supported
Poll or inbound webhook
Change events

Overview

The Google Sheets connector lets a Neblex workflow or agent treat a spreadsheet as a small, human-editable data source: read a lookup table a business team maintains, append rows for review, or write a report a stakeholder opens without a login. It is the common bridge to work that does not justify a database, used with a clear eye on where a sheet stops being the right tool.

  • The first row is treated as headers, so downstream steps use owner_email, not column D
  • Rows are matched on a key column you choose, or a content hash, never the row number, which shifts when rows are inserted or sorted
  • There is no native change event: a flow polls on a schedule, or an Apps Script trigger in the sheet pushes edits to Neblex
  • The connector flags a sheet that grows past a working threshold, where a database is the better home

Why teams use the Google Sheets connector

The three jobs this connector is picked for most often, and what each one gets you.

  • Let a business team own the config.
  • Give a stakeholder a view without a login.
  • Catch the exceptions a flow cannot resolve.

Worked example

A real flow revenue ops teams turn on early, with the actual field-level detail.

Lead assignment driven by a sheet the sales ops team owns

A lead-routing flow reads the owner from a Google Sheet keyed on country and segment. Rows it cannot match append to an exceptions tab for sales ops to fix, and a follow-up flow reprocesses them.

  1. 1Upstream: an enriched lead arrives with email, country, segment (one of smb, mid, ent), and employee_count.
  2. 2Read the table: Find row in Routing!A:D where country matches and segment matches, returning owner_email.
  3. 3Fallback: if there is no country match, retry Find row with country = ANY and the same segment, so the table needs one catch-all row per segment, not one per country.
  4. 4No match at all: Append row to Unrouted!A:E mapping now() → timestamp, email → email, country → country, segment → segment, "no rule" → reason, then stop.
  5. 5Assign: on a match, write owner_email to the CRM lead and post the lead link to that owner.
  6. 6Reprocess: a second flow polls Unrouted, and once sales ops adds a matching rule to Routing and clears the row, it runs the assignment again.

Example flows

Common patterns other teams start from with this connector.

  • CRM export for review. A weekly flow refreshes a Google Sheet of open pipeline for the sales leader, with a last-updated stamp and no CRM login needed. (RevOps)
  • Bulk contact intake. Rows added to an event sign-up sheet are validated, deduped, and created as HubSpot contacts, with bad rows flagged in place. (Marketing)
  • Approval tracker. Each expense over a threshold appends to a review sheet, and a status change in the sheet releases or rejects the payment. (Finance)
  • Sheet to warehouse. A reference table maintained in Sheets loads into Snowflake on a schedule, so models can join against it. (Data)

Supported objects

A spreadsheet is a shallow structure, and that is the point. The connector works at the row and range level, with the header row as the schema.

What you can work with

Spreadsheet, Sheet (tab), Header row, Row, Cell, Range, Named range, Computed value, Formula

The connector reads computed values by default, so a formula column comes back resolved. It can read the underlying formula instead when a flow needs to copy logic rather than results.

Security and access

The connection uses Google OAuth, scoped to the spreadsheets you share with it, not your whole Drive.

  • OAuth 2.0. Authorize with a Google account or a service account. A service account only sees sheets that are explicitly shared with its address.
  • Per-file access. Scope the connection to specific spreadsheets. It cannot open a sheet that has not been shared with the connected identity.
  • Read-only where that is enough. A routing-table flow authorizes read-only, so the connection cannot alter the sheet even if a step is misconfigured.
  • Full audit trail. Every read, append, and update, with the spreadsheet ID, the range, and the values written, flows into the same Neblex audit trail as every other connector.

Limits, as the vendor publishes them

The shape of the vendor's limits, as published at the time of writing. Verify the exact figures for your plan; they change without notice. Neblex honors the vendor's own rate-limit and retry signals and backs off within them.

  • The Sheets API allows about 300 read and 300 write requests per minute per project, and 60 per minute per user. The connector batches cells and paces to fit
  • There is no push notification for edits: polling has a floor of about one minute, and an Apps Script trigger is the on the next poll option
  • A spreadsheet is capped at 10 million cells across all tabs
  • A single read or write request handles up to roughly 10 MB of values, so a very wide or very long range is paged
  • Past about 50,000 rows, or when several flows write the same sheet, the connector recommends moving the data to Postgres or a warehouse and keeping only a view in Sheets

What a flow can do in Google Sheets

Append rows, read and update ranges, look up rows by a key column, clear ranges, create spreadsheets and sheets, update several ranges in one batch, and many more.

The connector exposes 17 operations, generated from Google Sheets as it ships, and 100% of them describe their output so later steps can map fields without guessing. Authentication: OAuth2.

How flows react to changes in Google Sheets

Google Sheets does not push change events to Neblex. A flow reacts to changes either with a Poll for changes trigger that reads the connector on a schedule and detects inserts, updates, and deletes, or by giving Google Sheets a Neblex webhook endpoint to call when it supports outbound notifications on your plan.

Frequently asked questions

Can it react to sheet edits on the next poll?

Google Sheets does not push change events to Neblex. A Poll for changes trigger reads the connector on the schedule you set and detects inserts, updates, and deletes, including deletes, through a cursor or a snapshot comparison. If Google Sheets can send webhooks on your plan, point them at a Neblex webhook endpoint for an event-driven start instead.

How does it identify a row to update?

By a key column you choose, such as an ID or an email, or by a hash of the row contents. It does not use the row number, which changes when rows are inserted, deleted, or sorted.

What happens with formula columns?

The connector reads the computed value by default, so a formula result comes back as data. It can read the raw formula when a flow needs the logic instead.

Is a Google Sheet a safe place for important data?

For a small, human-maintained table or a review queue, yes. Past tens of thousands of rows, or with concurrent writers, move the data to a database and keep the sheet as a view. The connector flags this.

How do I separate environments?

Use a separate spreadsheet per environment and bind each connection to its own file, so a test run cannot write the production sheet.

See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.