How to connect Google Sheets to Claude, and ask it alongside your warehouse
Hi, this is Vivek, building Contextflo. I share practical notes on getting answers from your data, a couple of times a month.

Not all your data is in the warehouse. Targets, budgets, forecasts and the marketing calendar live in a Google Sheet someone updates every week, and they rarely get ingested anywhere. The questions that matter usually need both: are we on plan this month?
Contextflo now connects Google Sheets. Share a sheet once, and anyone on your team can ask about it in Claude or ChatGPT, right alongside the warehouse. No ETL project, and nobody to hire to set it up.
What this looks like with a real question
The demo uses RunGear, a running-apparel brand we keep as a test dataset. Its orders live in BigQuery. Its plan lives where most plans live: a sheet called "RG Ops Master" with a monthly targets tab and a marketing calendar tab, next to five other tabs nobody has cleaned up in years.
The question was one line:
How are we pacing against September's plan by channel? Check the events calendar too. Which channel is actually behind?
Claude pulled September actuals from BigQuery, read the targets tab and the calendar tab, and came back with this:
| Channel | Month to date | September target | % of target | With the calendar |
|---|---|---|---|---|
| Online | $249.8k | $320k | 78% | On plan, ~102% projected |
| Retail store | $69.1k | $115k | 60% | Behind, about $26k short |
| Pop-up | $34.1k | $75k | 46% | On track if the Portland expo lands |
On a straight-line basis pop-up looks like the worst channel. Claude called that a timing illusion: most of the pop-up target lands at a marathon expo later in the month, and the calendar tab says so. Retail is the real problem, because its big in-store launch weekend had already happened and there was nothing left on the calendar to close the gap.
It also flagged things nobody asked about. The launch weekend brought in $11.4k against the $15k in the calendar, and the fall email produced no visible lift on the day it went out. Neither number exists in the warehouse or the sheet alone.
How to connect a sheet
- Share the sheet with your workspace's Contextflo address. The connect dialog shows it. Give it viewer access, the same way you would share with a colleague.
- Paste the sheet link and pick the tabs you want. Each tab becomes its own table. Leave the scratch tabs unticked.
- Add a line of context for each tab. What it contains, and anything a new hire would need to be told, like "pop-up sales happen at race expos." This is what lets the agent read the tab the way your team does.
Then ask in Claude or ChatGPT. Those three steps are the whole setup, the same ones in the video above.
What happens under the hood
Each tab you pick is imported as a table that Contextflo can query with SQL. The context you add is stored with it, and served to your agent together with your warehouse schema, metric definitions and saved queries, so the agent sees one picture of your data instead of a warehouse and a stray spreadsheet.
When a question spans both, the agent queries the warehouse and the sheet separately and combines the results in its answer. A single SQL join across a sheet and a warehouse table is not supported. For the kinds of sheets this is built for (plans, targets, calendars, mappings) that has not mattered, but a sheet with hundreds of thousands of rows belongs in the warehouse.
Access stays narrow. Each workspace gets its own read-only Google account, so Contextflo only sees sheets you explicitly share with it, and never another workspace's. Every question against the sheet is logged to the person who asked, like any warehouse query.
Keeping it current
Your team keeps editing the sheet the way it always has. Contextflo checks each connected sheet once a day and re-imports it only when something changed. If you just updated a target and want to ask about it right away, hit Sync on the data sources page.
It is not live to the second. For plans and calendars that change a few times a week, a daily refresh plus a sync button has been enough.
Try it on your own sheet
If your team's numbers live in a sheet the warehouse never sees, this is the fastest way to ask about both at once. You can get started free with one user and one data source, or book 20 minutes and I will set it up with you.
The CSV version of this, for a one-off file rather than a sheet your team keeps editing, is in query a CSV and your warehouse together.
FAQ
Can Claude read a Google Sheet directly? Claude can read a sheet you paste or upload into a chat, but that copy goes stale and nobody else on your team sees it. Connecting the sheet through Contextflo turns each tab into a table your whole team's Claude or ChatGPT can query, next to your warehouse, and it refreshes daily.
Can I combine a Google Sheet with data from my warehouse in one question? Yes. Ask one question and the agent queries the warehouse and the sheet separately, then combines the results in its answer. It does not run a single SQL join across the two, which is fine for plan, target and calendar sheets.
How often does a connected Google Sheet refresh? Contextflo checks each connected sheet once a day and re-imports it only when something changed. You can also sync on demand from the data sources page right after an edit.
See it on your own data.
Connect your warehouse and your team can ask Claude about it the same day, without waiting on a data team. Want a walkthrough first? Grab 20 minutes.
Book a 20-minute callSee how teams use Contextflo
Related posts
Keep reading

Conversational analytics: 5 ways to set it up, compared
7 min read

How to connect Claude to BigQuery? What works and what doesn't in 2026
8 min read

How to connect Claude to Postgres without giving it write access
7 min read

How to build a BI dashboard with Claude that your team can actually trust
8 min read

How to give Claude read-only access to your database (it isn't always the default)
7 min read

You connected your warehouse to Claude, now what?
5 min read

The official Postgres server for Claude is archived. Here's what to use instead.
7 min read

Why is the team missing sprint goals? How to analyze Jira data with AI
8 min read

Are my ads actually profitable? How to analyze Facebook and TikTok ads together with AI
7 min read




