Dashboards: live reporting pages that refresh themselves
A dashboard is a self-contained HTML page generated from your connected accounts. Seven templates cover the common platforms; anything else, you describe in a task and the agent builds it. Once saved, a dashboard can refresh on a schedule — and a refresh replays the same queries through the same renderer rather than asking a model to rebuild the page, so the numbers move while the structure stays fixed. Every dashboard lives at a permanent URL you can publish and revoke.
Two ways to make one
| Template dashboard | Agent-built (custom) | |
|---|---|---|
| How you create it | Pick a template + an account on the Reporting page | Turn on Dashboard mode in a task and describe what you want, then Save to Reporting |
| What it looks like | A fixed layout we render — charts, KPI tiles, tables | Whatever the agent designed: tabs, filters, interactive charts |
| Refresh | Re-runs the template's queries every time | Only if the agent declared a query plan with the page — otherwise it stays a saved snapshot |
| Best for | The standard weekly/monthly view of one account | A question no template answers, or a client-specific layout |
The built-in templates
| Template | What it shows |
|---|---|
| Google Ads Overview | 30-day spend / clicks / conversions trend, CPA, top campaigns by cost |
| GA4 Traffic & Conversion | 30-day sessions / users / key-events trend, channel mix, top pages |
| Meta Ads Overview | 30-day spend / impressions / clicks trend, CTR & CPC, top campaigns by spend |
| AdSense Earnings | 30-day earnings / page views / RPM trend, top sites, top ad units |
| AdMob App Monetization | 30-day earnings / impressions trend, eCPM, per-app and per-format split |
| Ad Manager AdX Revenue | 30-day Ad Exchange revenue / impressions trend and per-site split |
| Search Console Performance | 30-day clicks / impressions trend, avg position, top queries and pages |
Refresh schedules
Pick a cadence when you create the dashboard or any time after. Presets cover the common ones — daily at 09:00, twice daily, every 6 hours, hourly, weekdays only, weekly on Monday — and there's a raw cron field if you need something else. Times run in the dashboard's timezone.
- A refresh runs no model. It replays the template's queries (or, for a custom dashboard, the query plan the agent declared) and re-renders. Nothing reinterprets the page, so a scheduled refresh can't quietly change what the dashboard means.
- A failed refresh never blanks the page. The error is recorded on the dashboard where you can see it, and the previous snapshot keeps serving.
- The last 10 snapshots are kept, so you can see what the page looked like before.
- Template dashboards can email recipients after each successful refresh.
Sharing — and un-sharing
Every dashboard has a permanent URL under `/r/`. While it's a draft, only members of your organization can open it. Publish it and anyone with the link can — the slug isn't guessable, and publishing is what makes it readable, not the URL itself.
Unpublishing takes effect immediately: the page is served with no caching precisely so a revoked dashboard can't keep being served from a CDN after you've pulled it. Shared dashboards are also marked no-index, so they don't turn up in search results — a client link is a private share, not a public web page.
What a dashboard page actually is
- Template dashboards are static HTML with the charts drawn as inline SVG — no scripts, no external requests, nothing loaded from anywhere else. That's enforced by the response headers, not just by convention.
- Agent-built dashboards may include their own scripts for interactivity, so they're served inside a sandboxed frame that can run code but can't reach cookies, storage or any app API.
- Either way the page is self-contained, which is why it stays readable when you send it to someone outside your organization.
Costs
Building a dashboard through a task costs credits like any other task, because a model plans it. Refreshes don't: the replay path runs platform reads with no model in the loop, and reads are free. A dashboard on an hourly schedule doesn't quietly accumulate model spend.
Related surfaces
For a one-off deck or written report rather than a standing page, see reports & decks. To run the task that builds a dashboard on a cron (as opposed to refreshing an existing one), see schedules. To kick a rebuild off from your inbox, see Agent Mail.
Frequently asked questions
- What is a dashboard in Agent Planners?
- A self-contained HTML reporting page generated from a connected account — either from one of seven built-in templates or designed by the agent from your description. It lives at a permanent URL, and can refresh itself on a schedule.
- Does refreshing a dashboard use AI credits?
- No. A refresh replays the same platform reads and re-renders with no model involved, and reads are free. Only the initial build through a task costs credits, because a model plans that.
- Can a scheduled refresh change what my dashboard shows?
- Not structurally. A refresh re-runs the same queries through the same renderer, so it can change the numbers but not the layout or the meaning. No model reinterprets the page.
- What happens if a refresh fails?
- The previous snapshot keeps being served and the error is recorded on the dashboard so you can see it. A broken refresh never blanks a page someone might be looking at.
- Can I share a dashboard with a client who doesn't have an account?
- Yes — publish it and send the link. They don't need to sign in. Unpublish and the link stops working immediately, with no cached copy left serving.
- Will a shared dashboard show up in Google?
- No — shared dashboards are marked no-index deliberately. The link is a private share, not a public page.
- Can I build a dashboard that isn't one of the templates?
- Yes — turn on Dashboard mode in a task and describe what you want. The agent builds the page, you iterate in the chat, then save it to Reporting. If the agent declares a query plan alongside it, that custom dashboard can auto-refresh too.