← Back to blog

Building a dashboard on Exact Online data with AI

TL;DR With Ledger Botje you build a dashboard in Claude or ChatGPT on your own Exact Online data: revenue per month and per customer, P&L per cost centre, outstanding receivables and payables. The connection adds up on the server (groupBy) instead of sending thousands of rows, and every reporting tool reports how old its figures are. For dozens of users or several source systems a BI tool remains the better choice.

"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

KPISource in Exact OnlineTool
Revenue per month, this year and last yearrevenue listfinancial_revenue_list
Revenue per customertransaction lines on the revenue accountsfinancial_revenue_by_customer
P&L per cost centre, account or periodtrial balance (ReportingBalance)financial_reporting_balance_search with groupBy
Result for the current year and periodprofit and loss overviewfinancial_profitloss_get
Outstanding receivables by agereceivables agingfinancial_aging_receivables
Outstanding payables by agepayables agingfinancial_aging_payables
Balance per GL accounttransaction linesfinancial_balance_get

Step by step: from question to dashboard

  1. 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.
  2. 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.
  3. 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."
  4. Show the freshness. "Show under each tile the date on which the figures were updated." The reporting tools return that themselves as dataFreshness.
  5. 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:

SourceRefreshed
Transaction lines, invoices, orderson use, when the cache is older than a few hours, plus the nightly synchronisation
Revenue per customeron use, when the cache is older than an hour
Trial balance, revenue list, P&L overviewdaily, 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 connectionExact Online with Ledger Botje (MCP)
New chartexport a report and build it in Excela sentence in the conversation
P&L per cost centre per monthexport and pivot the trial balanceadded up on the server, with a total as a check
Freshnessmoment of the exportvisible per tile through dataFreshness

More examples are in making reports with Claude Desktop and in the prompt library.

Frequently asked questions

Can I make a live dashboard on Exact Online with AI?

Yes, within limits. A dashboard in Claude or a scheduled task in ChatGPT calls the connection again when you refresh it. The figures come from an encrypted cache that Ledger Botje keeps up to date; transactions are usually at most a few hours old, reports such as the trial balance are refreshed daily. Every reporting tool reports how old its figures are.

Which KPIs can I get out of Exact Online?

Among others revenue per month, revenue per customer, profit and loss per GL account or cost centre, outstanding receivables and payables by age, bank balances, order book and stock value. Anything that is in your administration can go into a dashboard.

Why does the revenue in my dashboard not match the trial balance?

Often it is a sign or source difference. In the trial balance revenue is a credit and therefore negative; in the Exact Online revenue list it is positive. Freshness differs too: the trial balance is refreshed daily, transaction lines more often. Fix the sign and the source in the prompt.

When do I still need Power BI or another BI tool?

When you have to combine several source systems, want to keep years of history outside Exact Online or want to share a fixed dashboard with dozens of colleagues with their own permissions. For a monthly report or a daily overview for management an AI dashboard is usually enough.

FW
Frank Woutersen is the founder of Ledger Botje and writes about AI, MCP and Exact Online. He helps businesses manage their administration smarter with AI assistants.

Ready to use AI with Exact Online?

Try Ledger Botje for free and discover how AI simplifies your daily work.

Try free