We shipped an agent that writes the reports Attio dashboards cannot
Open your Attio dashboards. They are good at one thing: showing you the workspace as it is right now. Count of deals by stage. Sum of pipeline by owner. A live view you can filter.
Now ask a different question. What will fees look like quarter by quarter for the next year? Where do deals actually stall, not just where they sit today? Which open opportunities are at risk, ranked by revenue at stake? A dashboard cannot answer any of these. They need computation over time, and they need a narrative a person can read.
We built an Attio reporting agent that writes those reports. It reads the workspace, computes the numbers, writes them into a report with the reasoning behind each figure, saves the file, and can attach it as a note on the record it is about. It runs on a schedule and it never changes your data.
This post is what it produces, how it computes without inventing numbers, how it runs, and how to put it on your workspace.
Why a dashboard is not a report
An Attio dashboard is a live query. It counts, sums, and groups what exists at the moment you look. That is exactly right for a pipeline board or a leaderboard.
It falls down the moment the question involves time or money that has to be computed.
- Time in stage. A dashboard shows you which stage a deal is in. It does not show you the median number of days deals spend in that stage, so it cannot tell you where your funnel is actually slow.
- A forecast. A dashboard sums today's pipeline. It cannot project revenue quarter by quarter across a window, because that projection depends on terms and dates it has to reason over, not just add up.
- Weighting by what matters. A dashboard can sort stale deals by date. It cannot rank them by revenue at stake, so the big stalled deal sits in the same list as the small one.
- A narrative. A dashboard is numbers. Nobody forwards it to a client. A report says what moved, what is at risk, and what to do about it, in sentences.
The report is the job. It is real work every time, which is why it usually does not happen on a schedule. That is the agent.
What it produces
The five core reports below are one setup. The report types are tuned to how a team works, but the shape is the same for any Attio workspace: computed, time-aware, and written to be read.
| Report | What it answers |
|---|---|
| Fee forecast | Revenue projected quarter by quarter across the full window, plus the fees due in the next 90 days |
| Conversion and velocity | Stage-to-stage conversion rate and the median time in each stage, so you see where deals stall, not just where they sit |
| Stale and at-risk | Open opportunities past a no-movement threshold, weighted by size so the big stalled deals surface first |
| Renewal and elapse calendar | The next 90 days ranked by revenue at stake |
| Data quality and duplicates | Duplicate records and likely-duplicate people, so the native numbers stay honest |
Beyond the five, it answers ad-hoc questions over the same data. "What does the pipeline look like this quarter." "Where are we losing deals." It computes the answer and presents it the same way: headline, table, then the narrative, then a note on the method and any caveats.
How it computes without guessing
A report is only useful if the numbers are right, so the agent has two rules.
Every number traces to a query. Aggregates come from Attio's own report engine. Detail rows come from targeted record queries, pulling only the columns needed. Time in stage, which no dashboard exposes, is computed from each record's status-change history over the API. You can redo any figure by hand and get the same answer.
Thin data gets flagged, not fudged. Where a field the report depends on is sparse or mistyped, the agent says so in the report rather than printing a confident wrong total. A report that admits a gap is worth more than one that hides it. Realised numbers and weighted expectations never share a column, so nobody mistakes a forecast for money in the bank.
An optional hosted dashboard
The same reports can render as a live web dashboard instead of, or alongside, a document. We call it the Cockpit: a two-tab page with the KPIs up top, the pipeline and at-risk views below, and a source chip on every panel so you always know where a number came from.
When it runs on a schedule, each fire recomputes the reports and redeploys the page to the customer's own Vercel account, behind a login gate. The dashboard lives on your infrastructure, refreshes itself, and never depends on us. Because it can carry names and figures, it never goes to an unauthenticated URL: production runs behind a per-person login, and any public demo is anonymized.
How it runs
The reporting agent ships as a Claude Code skill. You install it once, schedule it once, and never touch the infrastructure again.
- The skill is a single markdown file we install on your Claude Code. No Python runner. No Anthropic API key. No server to host.
- The reader is the Attio MCP server, already connected to your Claude Code, plus an Attio API key only for the status history that time-in-stage needs. The agent reads. It writes files to Google Drive and, when asked, one note on a record. It never edits, creates, or deletes record data.
- The schedule is
/scheduleinside Claude Code. Weekly for the at-risk and renewal reports, monthly for velocity and data quality, quarterly for the fee forecast. The run happens as a Claude Code routine on Anthropic's cloud, so the report writes itself whether or not anyone's laptop is open.
Your Claude Code subscription is the entire runtime. We do not host the agent, we do not hold an API key, and we do not see your data. If we disappear tomorrow, the reports keep writing themselves.
What it costs
Build. A one-time build inside your workspace: the reports scoped to how your team works, the thresholds and rates confirmed, the schedule live, and the optional dashboard deployed to your Vercel.
Run. An optional monthly retainer if you want us tuning the reports and adjusting them as your process changes.
Claude Code consumption. The agent runs on your existing Claude Code subscription. No separate Anthropic API key, no usage-based bill from us.
Pricing for both options is on the pricing page.
Want to set up AI agents in your Attio?
Start here if your reporting is a monthly scramble
Most teams build the report by hand when someone asks for it. It takes an afternoon, the numbers are slightly different each time, and it happens far less often than it should.
The fix is not a better dashboard. Dashboards already show the live view. The fix is a report that computes over time, admits what it does not know, and writes itself on a schedule. That has always been too much work to do every week by hand. It is the right amount of work for an agent.
If you run Attio and your reporting lives in a spreadsheet someone rebuilds each month, the reporting agent is the one to ship.
Need help with your Attio setup?
We migrate teams, build data models, wire automations, and train Claude agents inside your workspace. Discovery call is free.
Book a free discovery callReady when you are.
Two ways in. Pick the friction that fits.