---
title: "Google Sheets AI agent in Slack: read a range, update rows | Chickpea"
description: "Give a Slack channel an AI teammate connected to Google Sheets. Ask what a range says, append a row from a thread, or update a column. Open source."
canonical: https://chickpea.co/connectors/google-sheets
keyword: "Google Sheets AI agent in Slack"
verified: 2026-09-17
---

# A Google Sheets teammate in Slack that reads a range and writes only the cells you name.

> Chickpea gives a channel a named AI teammate that holds its own Google Sheets connection. It signs in with Google, then works from a fixed list of nine capabilities: find a spreadsheet, read an A1 range, append rows, replace the cells you name. Most of what people call a Google Sheets Slack integration writes a row into a sheet when something happens in a channel. This one goes the other way. Ask what the tracker says and the rows come back in the thread.

Facts checked against the sources on September 17, 2026. The HTML page is at https://chickpea.co/connectors/google-sheets; every connector is listed at https://chickpea.co/connectors; the site index for agents is at https://chickpea.co/llms.txt.

**Google Sheets** (Google LLC, https://sheets.google.com): Find spreadsheets, read ranges, and make bounded table updates. Category: Docs and files. Lane: Hosted sign-in. Sign in: OAuth, managed.

**Chickpea**: an open source Slack app that gives a workspace named AI teammates, each with its own handle, instructions, memory, connected accounts, schedules, and model, deployed to your own Cloudflare account or a Node host.

## What people ask it
The teammate in these examples is @revops, published to #growth.

### Ask what a range says
- @revops what does the pipeline tracker say for September, by region
- @revops read Forecast!A1:F40 and tell me which rows are behind plan

Reads never need confirmation. Name the spreadsheet and the range, and the teammate reads that range and nothing around it. A long answer comes back as a table in the thread. It can read values as they are formatted, raw, or as the formula behind them, and by row or by column.

### Find the spreadsheet, or a row inside one
- @revops find the sheet called Q3 pipeline tracker and tell me what tabs it has
- @revops which row in the vendor sheet has Northwind Freight in it

Search returns at most 100 spreadsheets the signed-in account can already open. Metadata gives the tabs and their grid sizes, so the teammate knows where a range ends before it reads one. A lookup finds the first row holding an exact cell value, inside a range you name or across the sheet.

### Append a row from a thread
- @revops add this request to the intake sheet, owner Priya, status Triage
- @revops log today's numbers at the bottom of the Weekly Metrics tab

One appended row is a small reversible write, so it applies at once and the reply says which sheet and which cells it filled. The message you send has to name the write; thread history and memory cannot authorize one. An append carries at most 500 rows of at most 100 cells.

### Update many cells or a whole column
- @revops set Status to Closed for every row that shipped in August
- @revops replace Forecast!C2:C60 with the numbers from the new model

A broad change comes back as a list of what would move, and it waits for a yes. An update replaces one explicit A1 range, and an upsert matches rows on one named key column instead of guessing. Nothing in the list deletes a row, a tab, or a file.

### On a schedule
- @revops every Monday at 9am Pacific, post what the tracker sheet says for last week
- @revops every weekday at 8am Eastern, read the rota tab and post who is on call

A schedule saves on the spot. It needs an explicit time zone and runs under the Google Sheets connection of the person who asked. Before each run Chickpea re-reads the teammate, the channel grant, and that connection, and a missing one fails the run with a named reason.

### Example conversations

**What does the sheet say**
> **Dana:** @revops what does the Q3 pipeline tracker say for September? Region and amount.
> **@revops:** September holds $1.42m across five regions. Two rows have no close date, so they are in the total but not in any week.
>
> | Region | Open | Amount | Close date |
> |---|---|---|---|
> | EMEA | 11 | $462,000 | Sep 30 |
> | West | 9 | $388,000 | Sep 26 |
> | Northeast | 7 | $271,000 | Sep 30 |
> | Central | 5 | $186,000 | none |
> | APAC | 4 | $113,000 | none |

**Add a row**
> **Marco:** @revops add this to the intake sheet: Northwind Freight, EMEA, $48k, owner Priya, status Triage.
> **@revops:** Added one row at Intake!A47:F47. Northwind Freight, EMEA, $48,000, owner Priya, status Triage, raised today. I left Close date empty, because nobody named one. Open the sheet

**Update a column**
> **Sofia:** @revops set Status to Closed for every row in the tracker that shipped in August.
> **@revops:** Twenty-three rows shipped in August, the oldest Pipeline!D12 on Aug 4. Each Status cell would go from Won to Closed and nothing else moves. That writes to a whole column, so I will wait. Go ahead?
> Buttons: Yes, update all 23 · List them first

**Every Monday**
> **Priya:** @revops every Monday at 9am Pacific, post what the tracker says for last week, by region.
> **@revops:** Saved. Every Monday at 9:00 AM Pacific I'll read the Q3 pipeline tracker and post last week by region in #growth. First run is Mon Sep 21. It runs on your Google Sheets connection, so say "pause the Monday digest" if you want it to stop.

## Connect Google Sheets
1. In Chickpea Admin, open the teammate, then **Connections**, find **Google Sheets**, and choose **Connect**. Or ask in Slack, `@revops connect Google Sheets`, and follow the link it posts.
2. Choose who uses it. **Team** is one shared Google account that everyone who can use the teammate works through. **Personal** means each member signs in as themselves and reaches the spreadsheets their own account can open.
3. Choose **Continue to sign in**. A hosted Google sign-in opens in a second tab. There is no token to paste anywhere in this connector, nothing goes into Slack, and the attempt stays open for 30 minutes.
4. Read what Google asks for on its consent screen. The grant there can be wider than the nine capabilities Chickpea exposes, and a connection that only reads does not narrow what you approved with Google.
5. Ask something. Sheets has nothing to pick after sign-in, unlike Analytics or Search Console, so the teammate is usable straight away. `@revops find the sheet called Q3 pipeline tracker` is a good first question, because it reads and changes nothing.

A connection belongs to one teammate. Giving a second teammate Google Sheets means a second sign-in with its own consent. Each Google service is its own connection and its own consent screen too, so Sheets and Drive are connected separately even when the same person signs in for both.

## What the teammate is handed with Google Sheets
A managed connector has no discovered tool list. The teammate is handed a fixed list of capabilities that Chickpea curates, not the whole Sheets API. Nine cover Google Sheets. Four read: search the spreadsheets the account can open, read a spreadsheet and its sheets, read one bounded A1 range, and find the first row holding an exact value. Five write, and every one of them is reversible: create a spreadsheet, replace the values in one explicit range, append rows to one sheet-qualified range, update or append rows against one named key column, and add a sheet. Deleting, sharing, changing permissions, and arbitrary Sheets API requests are all absent.

The capability list is in the product source: https://github.com/pejmanjohn/chickpea/blob/main/src/connections/catalog/google-productivity.ts

## Beside Google Sheets
- **Airtable:** A base for the work that repeats, a sheet for the numbers that do not
- **Google Drive:** Drive finds the file and reads what is around it, Sheets reads the cells
- **HubSpot:** Deals on the CRM side, the forecast tab on the sheet side, one teammate reading both
- **Google Analytics:** Last week from GA4, written into the tracker the team already looks at
- All 37 connectors: https://chickpea.co/connectors

## Questions people ask

### Does it use Google's Sheets MCP server?
No. Google Sheets is a managed connector here. The teammate calls a fixed, curated list of nine capabilities, and no MCP server is involved anywhere in it. Google does run one: a remote server at sheetsmcp.googleapis.com/mcp/v1 over streamable HTTP, which Google says lets an agent read cell values and metadata and take action such as updating cells, setting formulas, and inserting rows. Using it takes a Google Cloud project, an OAuth client you create yourself, and an MCP host such as Antigravity or Claude. That puts Sheets in one person's client. This puts it in a channel.

### Is this Gemini in Sheets?
No, and they do different jobs. Google describes Gemini in Sheets as a way to create tables and formulas, generate analysis and insights, and build charts, and says it needs an eligible Google Workspace or Google AI plan. Google also ships an AI function you type into a cell as =AI() or =Gemini(), which Google says cannot see your other files in Drive. Both of those live inside the spreadsheet. A teammate lives in a Slack channel, holds other accounts beside Sheets, and answers where the conversation already is.

### Does Slack integrate with Google?
In several ways, and they do not overlap much. The Google Drive app for Slack creates Docs, Slides, and Sheets files, posts updates when someone comments or asks for access, and lets you reply to a comment from Slack. Workflow Builder has Google Sheets steps that write a row when a workflow runs. A Chickpea teammate is the third way: it holds a Google Sheets connection of its own and answers questions about a sheet in the channel.

### Do I still need the Google Drive app for Slack?
Keep it. Sheets files ride on that app, and it does things a teammate does not. Slack lists creating new Docs, Slides, and Sheets files, importing files into a channel or a DM, searching inside Drive files shared in Slack, granting access to the right people, updates on comments, access requests, and new files, and replying to a comment notification so the reply lands on the file. All of that is Slack reacting to Drive. A Chickpea teammate hears nothing from Google and posts nothing unprompted. It waits to be asked, reads the range, and answers in the thread.

### What about Slack's Google Sheets step in Workflow Builder?
It is a good fit for a fixed form, and Slack names its limits on the help page. It is available on paid plans, Slack can only add workflow data to an empty row, and the timezone cannot be adjusted, so dates and times land in UTC+0. A workflow also runs on a trigger with the fields you set when you built it. A teammate is asked in words, picks the range itself, and can read a sheet as easily as write to one. Teams run both.

### Can it delete a row, a tab, or a spreadsheet?
No. Nothing in the nine capabilities deletes anything, and there is no sharing or permissions capability either. The widest change one ask can make is replacing the values in a range you named. Under that judgment sits a gate that does not consult the model: during a Slack turn Chickpea refuses any managed capability whose effect is not read unless the message you just sent names that action.

### What does bounded mean on this connector?
Limits written into the input schema rather than left to the model. A write carries at most 500 rows of at most 100 cells each, no single cell longer than 10,000 characters, and the whole batch under 100,000 characters. A read takes one A1 range and an optional row window between 1 and 1,000,000. A search returns at most 100 spreadsheets. A new sheet is capped at 100,000 rows and 18,278 columns. Every result is capped at 256 KB before it goes back to the model.

### Which spreadsheets can it see?
The ones the account it signed in as can already open. Sheets asks for no selection after sign-in, unlike Google Analytics and Search Console, where an Admin picks properties or sites before the teammate gets any tools. A personal connection is used only for your own requests and a team connection is one shared sign-in that everyone with access to the teammate works through. In Chickpea the binding is a ceiling: it can be narrowed to fewer capabilities but never widened by talking to the teammate.

### Does it change a sheet without asking?
A small reversible write goes through, such as appending one row you asked for in the message. A broad or consequential change is written down first and waits for a yes. Saved instructions on the teammate are the only text that can pre-authorize a class of write, and a conversation cannot edit them. Nothing retrieved during the turn counts as permission, including a pasted document or the sheet the teammate just read.

### Can it post a Monday digest from a tracker sheet?
Yes. Ask for it in the channel and name a time zone. The schedule saves on the spot and runs under the Google Sheets connection of whoever asked for it. Every run re-reads the teammate, the destination grant, and that connection, so a disconnected account stops the digest with a named reason instead of posting something stale.

## Sources
- [Chickpea docs: connector catalog, the managed lane and the Google Sheets row](https://docs.chickpea.co/reference/connector-catalog/)
- [Chickpea docs: managed connectors, the sign-in flow and what each connector selects](https://docs.chickpea.co/agents/managed-connectors/)
- [Chickpea docs: connections, team and personal accounts, the binding as a ceiling](https://docs.chickpea.co/agents/connections/)
- [Chickpea docs: authority and confirmation, including the managed-capability effect gate](https://docs.chickpea.co/security/authority-and-confirmation/)
- [Chickpea docs: connect a service, the sign-in flow and the Slack link](https://docs.chickpea.co/agents/connect-a-service/)
- [Chickpea docs: schedules, time zones and what each run rechecks](https://docs.chickpea.co/agents/schedules/)
- [Chickpea source: the nine Google Sheets capabilities and their input schemas](https://github.com/pejmanjohn/chickpea/blob/main/src/connections/catalog/google-productivity.ts)
- [Chickpea source: the Google Sheets preset (managed toolkit, category, description)](https://github.com/pejmanjohn/chickpea/blob/main/src/config/presets.ts)
- [Google: configure the Sheets MCP server, its address, prerequisites and clients](https://developers.google.com/workspace/sheets/api/guides/configure-mcp-server)
- [Google: Gemini in Google Sheets, what it does and the plans it needs](https://support.google.com/docs/answer/14356410)
- [Google: the AI function in Google Sheets and what it cannot see](https://support.google.com/docs/answer/15877199)
- [Slack Marketplace: the Google Drive app and its feature list](https://slack.com/marketplace/A6NL8MJ6Q-google-drive)
- [Slack: Google Drive for Slack, notifications, previews and comment replies](https://slack.com/help/articles/205875058-Google-Drive-for-Slack)
- [Slack: use Google Sheets with Workflow Builder, its plan and its limits](https://slack.com/help/articles/11086384874259-Use-Google-Sheets-with-Workflow-Builder)
- [Chickpea source on GitHub](https://github.com/pejmanjohn/chickpea)

## More
- [Ahrefs MCP in Slack](https://chickpea.co/connectors/ahrefs.md)
- [Airtable MCP in Slack](https://chickpea.co/connectors/airtable.md)
- [Asana AI agent in Slack](https://chickpea.co/connectors/asana.md)
- [Jira and Confluence MCP in Slack](https://chickpea.co/connectors/atlassian.md)
- [BugSnag MCP in Slack](https://chickpea.co/connectors/bugsnag.md)
- [Cloudflare MCP in Slack](https://chickpea.co/connectors/cloudflare-api.md)
- [Exa MCP in Slack](https://chickpea.co/connectors/exa.md)
- [Firecrawl MCP in Slack](https://chickpea.co/connectors/firecrawl.md)
- [Fireflies MCP in Slack](https://chickpea.co/connectors/fireflies.md)
- [Gamma MCP in Slack](https://chickpea.co/connectors/gamma.md)
- [Gmail AI agent in Slack](https://chickpea.co/connectors/gmail.md)
- [Gong AI agent in Slack](https://chickpea.co/connectors/gong-managed.md)
- [Google Ads AI agent in Slack](https://chickpea.co/connectors/google-ads.md)
- [Google Analytics AI agent in Slack](https://chickpea.co/connectors/google-analytics.md)
- [Google Calendar AI agent in Slack](https://chickpea.co/connectors/google-calendar.md)
- [Google Docs AI agent in Slack](https://chickpea.co/connectors/google-docs.md)
- [Google Drive AI agent in Slack](https://chickpea.co/connectors/google-drive.md)
- [Google Search Console AI agent in Slack](https://chickpea.co/connectors/google-search-console.md)
- [Google Slides AI agent in Slack](https://chickpea.co/connectors/google-slides.md)
- [Granola MCP in Slack](https://chickpea.co/connectors/granola.md)
- [HubSpot AI agent in Slack](https://chickpea.co/connectors/hubspot-managed.md)
- [Hugging Face MCP in Slack](https://chickpea.co/connectors/huggingface.md)
- [incident.io MCP in Slack](https://chickpea.co/connectors/incident-io.md)
- [Intercom MCP in Slack](https://chickpea.co/connectors/intercom.md)
- [Linear MCP in Slack](https://chickpea.co/connectors/linear.md)
- [LunarCrush MCP in Slack](https://chickpea.co/connectors/lunarcrush.md)
- [Meta Ads MCP in Slack](https://chickpea.co/connectors/meta-ads.md)
- [Monday.com MCP in Slack](https://chickpea.co/connectors/monday.md)
- [Neon MCP in Slack](https://chickpea.co/connectors/neon.md)
- [Notion Slack integration with an AI agent](https://chickpea.co/connectors/notion-managed.md)
- [PostHog MCP in Slack](https://chickpea.co/connectors/posthog.md)
- [Sentry MCP in Slack](https://chickpea.co/connectors/sentry.md)
- [Stripe MCP in Slack](https://chickpea.co/connectors/stripe.md)
- [Supabase MCP in Slack](https://chickpea.co/connectors/supabase.md)
- [YouTube AI agent in Slack](https://chickpea.co/connectors/youtube-managed.md)
- [Zendesk AI agent in Slack](https://chickpea.co/connectors/zendesk.md)
- [All connectors](https://chickpea.co/connectors.md)

## Try Chickpea
- Site: https://chickpea.co/
- Deploy to Cloudflare: https://deploy.workers.cloudflare.com/?url=https://github.com/pejmanjohn/chickpea
- Source, Apache 2.0: https://github.com/pejmanjohn/chickpea
- Docs: https://docs.chickpea.co
