How to create a Google Sheets dashboard that updates automatically
Building a dashboard in Google Sheets is the easy part. Keeping it current without manual exports or copy-paste is where most people get stuck. Here's how to do both.
Building a dashboard in Google Sheets is the easy part. The real challenge is keeping it updated.
A dashboard people stop trusting is worse than no dashboard at all. Once someone opens it and the numbers look stale, they stop checking it entirely. The goal isn’t just to visualize data—it’s to create something that stays in sync with reality without requiring someone to manually maintain it.
This guide walks through two approaches. The first builds a fully automated dashboard inside Google Sheets using formulas and live data connections. The second uses GoodTaco AI to connect directly to your systems when the spreadsheet approach starts to strain.
Want to skip the formula juggling?
If your data lives across multiple tools—a CRM, a support platform, a database—GoodTaco AI can connect directly to all of them and generate a live dashboard from a plain-language description. No IMPORTRANGE, no QUERY syntax, no maintenance. Jump to Part 2 to see how it works.
What “automatically updating” actually means
In practice, an automatically updating dashboard is one where data flows in without manual effort, and everything built on top of it—charts, summaries, calculated metrics—refreshes as that data changes. In Google Sheets, this comes down to using formulas that pull data from other places instead of pasting it in yourself.
The key shift is moving from a static document (paste data, format it, share it) to a connected one (formulas pull from sources, visuals update automatically). The dashboard becomes an output rather than a container.
Part 1: Building an auto-updating dashboard in Google Sheets
Step 1: Start with a structured data source
Everything depends on how your raw data is organized. Your dataset should be consistent and predictable—each row represents a single record, and each column represents a field like date, revenue, status, or region. If the structure shifts frequently, formulas and charts built on top of it will break silently.
Most people keep raw data in one of two places: a separate tab in the same spreadsheet, or a separate spreadsheet entirely. Keeping it separate is usually better—it prevents accidental edits and makes the data layer easier to reason about.
Structure your raw data like a database table
Every column should have a header. No merged cells. No summary rows mixed into the data. Dates in a consistent format. If you treat the raw data sheet like a database table, formulas and pivot tables will behave much more predictably.
Step 2: Pull data in with IMPORTRANGE instead of copying it
This is the most important change you can make. Instead of exporting data and pasting it into your dashboard sheet, use IMPORTRANGE to create a live connection between spreadsheets.
=IMPORTRANGE("spreadsheet_url", "Sheet1!A:Z")
The first argument is the URL of the source spreadsheet. The second is the range you want to pull in—you can reference a specific range like A1:D100, or use an open-ended column reference like A:Z to capture everything. The first time you use IMPORTRANGE with a new source, Sheets will prompt you to allow access. After that, the connection stays live.
For data that comes from outside Google Sheets entirely, a few other functions are worth knowing:
IMPORTDATApulls in CSV or TSV files from a public URL and refreshes periodically:=IMPORTDATA("https://example.com/export.csv")IMPORTXMLcan pull structured data from public web pages using XPath queries, though it’s more fragile in practice.
IMPORTRANGE has rate limits
Google throttles how often IMPORTRANGE syncs—typically every few minutes, not every few seconds. For most business dashboards this is fine, but if you need near-real-time data, you’ll hit the ceiling quickly. Also note that if the source spreadsheet is edited while someone is viewing the dashboard, they may see a brief “Loading…” state.
Step 3: Transform raw data with QUERY and pivot tables
Once your data is flowing in, the next step is shaping it into something readable. This is where QUERY and pivot tables come in. Instead of manually filtering or summarizing data, you define the logic once and let Sheets handle the rest.
QUERY is particularly powerful because it lets you use SQL-like syntax directly in a cell. Here are a few common patterns:
Filter rows by a condition:
=QUERY(A:D, "SELECT A, B, C WHERE D = 'Closed'", 1)
Group and aggregate (e.g., total revenue by region):
=QUERY(A:D, "SELECT B, SUM(D) WHERE A IS NOT NULL GROUP BY B LABEL SUM(D) 'Total Revenue'", 1)
Filter by date range:
=QUERY(A:D, "SELECT A, B, D WHERE A >= DATE '2026-01-01' AND A <= DATE '2026-03-31'", 1)
The third argument (1) tells the function that your data has one header row. For more complex aggregations—grouping by multiple dimensions, calculating percentages, adding subtotals—pivot tables are often easier to set up and maintain than a long QUERY formula.
QUERY vs. pivot tables
Use QUERY when you need the output to be dynamic and formula-driven, or when you want to feed the result into another formula. Use pivot tables when you want an interactive summary that non-technical teammates can explore and adjust. They solve slightly different problems.
Step 4: Build charts and summary metrics on top
With processed data in place, you can now add charts and headline metrics. Line charts work well for trends over time. Bar or column charts make comparisons across categories easier to read. Pie charts are useful for showing composition, though they get hard to read with more than five or six slices.
For headline numbers at the top of a dashboard—total revenue, active deals, open tickets—use SUMIF, COUNTIF, or AVERAGEIF to pull a single aggregated value:
=SUMIF(status_column, "Closed Won", revenue_column)
=COUNTIF(priority_column, "High")
=AVERAGEIF(region_column, "West", deal_size_column)
Because every chart and metric is tied back to formulas pointing at your source data, the entire dashboard refreshes whenever the underlying data changes. You don’t need to update anything manually.
Where this approach starts to strain
This setup works well, especially for smaller workflows where data already lives in Google Sheets. But a few patterns tend to emerge as dashboards grow.
If your data lives in tools like a CRM, support platform, or database, you’ll usually need to export it into Sheets first. That export step is often manual, or requires a third-party sync tool that needs its own configuration and maintenance. The dashboard looks automated, but there’s still a brittle connection somewhere upstream.
As the dashboard grows more complex, formula chains become harder to debug. A small change to the structure of the source data—a renamed column, an added field, a changed date format—can break things in ways that aren’t immediately obvious. And because everything is interconnected, one broken formula can cascade.
Part 2: Connecting directly to your systems with GoodTaco AI
GoodTaco AI takes a different approach. Instead of building a dashboard inside a spreadsheet and pulling data into it, you create a small internal app that connects directly to your systems and displays live data there.
Connecting your data sources
The starting point is connecting the tools your team already uses. This might include Google Sheets, but it could also be a CRM, support platform, project management tool, or database. GoodTaco handles the connection directly, so you don’t need to set up API credentials, manage OAuth tokens, or write any integration code.
Once connected, those systems become queryable data sources that the AI can work with.
Describing what you want
Instead of writing formulas, you describe the dashboard you need in plain language. For example:
“Show me a dashboard with deals grouped by pipeline stage, with a breakdown of total value per stage and a trend line for closed deals over the last 90 days.”
“Create a view that shows open support tickets by priority, with SLA status and time since creation.”
The system uses that description to generate an app that queries the connected data and lays it out in a readable structure. You’re not defining the logic step by step—you’re describing the outcome.
Start narrow
The best first prompt is usually a single, specific question about your data. Once you see how the output looks, you can iterate and add panels. Trying to describe a full multi-section dashboard in one prompt often results in something that needs more refinement.
How updates work
Because the app connects directly to your systems, there’s no import step to manage. When data changes in your CRM, spreadsheet, or database, the dashboard reflects it. There’s no manual refresh, no scheduled export, no sync job to monitor.
This is particularly useful when your data lives across multiple systems. A GoodTaco dashboard can pull from Airtable and HubSpot simultaneously without requiring you to first consolidate everything into a single spreadsheet.
Sharing with your team
Once the app is ready, you can publish it and control who has access—similar to sharing a Google Doc. Everyone on the team sees the same live data, and there’s no risk of someone working off a stale copy they downloaded and forgot to update.
This makes the dashboard easier to treat as a shared operational tool rather than a file that gets forwarded around, modified locally, and slowly drifts out of sync.
When each approach makes sense
Google Sheets is still a strong choice when your data already lives in spreadsheets, your team is comfortable with formulas, and the scope is manageable. The IMPORTRANGE + QUERY approach is well-understood, easy to audit, and doesn’t require any additional tooling. If your dashboard has three or four data sources and a few charts, Sheets is probably the right place to build it.
GoodTaco AI is more useful when your data is spread across multiple systems, when you want to avoid maintaining a chain of formulas over time, or when the people who need the dashboard aren’t comfortable editing spreadsheets. In those cases, a small connected app is easier to manage than a complex workbook with imports and queries layered on top of each other.
They're not mutually exclusive
Google Sheets can be one of several data sources in a GoodTaco dashboard. If some of your data lives in Sheets and some lives elsewhere, you don’t have to choose—connect both and let the app pull from each.
The real goal
You can absolutely build an automatically updating dashboard in Google Sheets. The key is to stop treating it as a static document and start treating it as a connected system—where data flows in through formulas rather than manual exports, and visuals are outputs rather than manually maintained content.
At a certain point, the question shifts from “how do I keep this spreadsheet updated?” to “is a spreadsheet the right place for this dashboard at all?” For simple cases, the answer is often yes. For anything more complex—multiple systems, cross-functional teams, data that needs to stay in sync across tools—that’s exactly the gap GoodTaco was built to fill.
Ready to build faster?
Start building internal tools in minutes, not months. Free to start.
Start Building Free