"An AI assistant is not a dashboard" is something you hear often, and it is half true. A chat gives you an answer at the moment you ask. But the same assistant can also build a dashboard: a page with charts and key figures that calls the connection again when you refresh it. In this post: which KPIs you get out of Exact Online, how you set up such a dashboard and where it stops.
What an AI dashboard is, and what it is not
An AI dashboard is a page the assistant writes for you, for example an artifact in Claude, containing the questions it asks Exact Online. Refresh the page and it asks those questions again. The difference with a BI tool:
- There is no data model to maintain: the connection already knows the Exact Online tables.
- A new chart is a sentence, not a development job.
- It is a dashboard per user, with the permissions of the user who refreshes it. A fixed report for dozens of colleagues with different permissions is something else.
Which KPIs come out of Exact Online
| KPI | Source in Exact Online | Tool |
|---|---|---|
| Revenue per month, this year and last year | revenue list | financial_revenue_list |
| Revenue per customer | transaction lines on the revenue accounts | financial_revenue_by_customer |
| P&L per cost centre, account or period | trial balance (ReportingBalance) | financial_reporting_balance_search with groupBy |
| Result for the current year and period | profit and loss overview | financial_profitloss_get |
| Outstanding receivables by age | receivables aging | financial_aging_receivables |
| Outstanding payables by age | payables aging | financial_aging_payables |
| Balance per GL account | transaction lines | financial_balance_get |
Step by step: from question to dashboard
- Start with the question, not the dashboard. "What was revenue per month this year, next to last year?" Check the answer against a figure you know.
- Fix the definitions. "Revenue is accounts 8000 to 8999, shown positive, excluding VAT." Without that sentence the assistant chooses for itself, and that can differ from time to time.
- Ask for the dashboard. "Make a dashboard of this with four tiles: revenue this month, revenue year to date, outstanding receivables and outstanding payables. Below that a line chart of revenue per month and a table with the top 10 customers. Fetch the figures again on every refresh."
- Show the freshness. "Show under each tile the date on which the figures were updated." The reporting tools return that themselves as
dataFreshness. - Schedule it, if you want the overview every morning or every hour without opening it yourself: see automating checks with scheduled tasks.
Reporting per cost centre without exports
A P&L per cost centre and per month used to mean hundreds of individual trial balance rows, which the assistant had to add up itself. Since October 2026 the connection adds that up on the server: financial_reporting_balance_search with groupBy on costCenter, costUnit, glAccount, year and/or period, and balanceType W for profit and loss only. You then get an amount, debit, credit and the number of rows per group, up to 1,000 groups per call. A prompt:
- "Give the 2026 P&L per cost centre per month, profit and loss accounts only, and put it in a pivot table with the cost centres as rows."
The total (totals) always counts all rows that match the filter, even if you only request some of the groups. That is how you check that the dashboard adds up.
How fresh are the figures?
The connection reads from an encrypted cache of your administration, which Ledger Botje keeps up to date. Not every source refreshes equally often:
| Source | Refreshed |
|---|---|
| Transaction lines, invoices, orders | on use, when the cache is older than a few hours, plus the nightly synchronisation |
| Revenue per customer | on use, when the cache is older than an hour |
| Trial balance, revenue list, P&L overview | daily, or immediately through Load changes in the app |
Every reporting tool returns dataAsOf and the age in hours, and from four hours a note. Anyone who wants to see today's revenue at three in the afternoon therefore looks at the transaction lines, not at the trial balance.
Two pitfalls
- The sign. In the trial balance revenue is a credit and therefore negative; in the Exact Online revenue list revenue is positive. Two tiles from different sources then look like each other's opposite. Put in the prompt how you want to see it.
- Several administrations. A dashboard over two administrations switches between them with
admin_switch. Refresh them one after the other and not at the same time, and put the administration in the title of each tile.
When a BI tool is better
An AI dashboard does not replace a data warehouse. If you have to combine Exact Online with a web shop and a time registration system, keep years of history that is no longer in Exact Online or roll out a fixed report with permissions per department, then Power BI or a comparable tool is the better choice. The trade-off is in business intelligence from Exact Online with AI.
Exact Online without and with an AI connection
| Exact Online without an AI connection | Exact Online with Ledger Botje (MCP) | |
|---|---|---|
| New chart | export a report and build it in Excel | a sentence in the conversation |
| P&L per cost centre per month | export and pivot the trial balance | added up on the server, with a total as a check |
| Freshness | moment of the export | visible per tile through dataFreshness |
More examples are in making reports with Claude Desktop and in the prompt library.