Exact Online and Microsoft Power BI integration
Exact Online stores your accounting, purchasing, sales, and project data. Power BI turns that data into dashboards and reports that your team can explore. Connecting the two keeps your Power BI dashboards always in sync with Exact Online without re-keying data or running manual exports. Sales invoices, purchase orders, GL transactions, and cost centers flow from Exact Online into Power BI on a schedule you control.
What moves between them
Sales invoices, purchase orders, GL transactions, cost centers, and items flow from Exact Online into Power BI push datasets on a polling schedule. Exact Online webhooks can optionally notify ml-connector of changes, but the authoritative sync direction is pull from Exact Online, transform, and push into Power BI. After each dataset update, ml-connector optionally triggers a Power BI dataset refresh so reports reflect the latest data within minutes.
How ml-connector handles it
ml-connector stores Exact Online OAuth credentials and manages token refresh before the 10-minute access token expires, using the refresh token to re-authenticate without user interaction and handling the 30-day refresh token rotation. On Power BI, ml-connector stores the service principal client credentials encrypted and refreshes the Bearer token before expiry. ml-connector polls Exact Online using OData queries to filter and page results, then maps fields to Power BI table schemas defined in ml-connector configuration. Since Exact Online publishes region-specific base URLs, ml-connector accepts the region per customer and constructs the correct API endpoint. Power BI requires table schema to be defined before pushing rows, so ml-connector creates or updates the schema on first sync and then appends rows. Exact Online webhooks provide near-real-time notification of entity changes, but polling remains the primary sync method because webhook payloads contain only entity keys and must still be fetched via REST API. ml-connector tracks Exact Online division ID per customer and validates webhook HMAC-SHA256 signatures using the webhook secret.
A real-world example
A mid-sized European consulting firm uses Exact Online to manage project accounting, client billing, and payroll across three countries. The CFO team needs dashboards showing billable hours by client, project profitability, and monthly GL summaries by cost center, but currently exports data from Exact Online into Excel monthly, then re-keys it into Power BI dashboards. With Exact Online and Power BI connected, project transactions, invoices, and GL posts flow into Power BI automatically, and the dashboards refresh daily at night. The finance team stops managing Excel exports and starts exploring actual project margins in Power BI within hours of month-end close.
What you can do
- Push Exact Online GL accounts, cost centers, and transaction lines into Power BI datasets so finance dashboards show live accounting data.
- Sync sales and purchase invoices from Exact Online into Power BI for order-to-cash and procure-to-pay visibility.
- Map Exact Online projects, time transactions, and cost transactions to Power BI for project profitability and margin analysis.
- Handle Exact Online OAuth 2.0 token refresh and rotation, and Power BI service principal credentials, without manual re-authorization.
- Validate Exact Online webhook signatures (HMAC-SHA256) and poll on a schedule you set, with full audit trail and error replay.
Questions
- Which direction does data move between Exact Online and Power BI?
- Data flows from Exact Online into Power BI only. ml-connector polls Exact Online (and can receive webhook notifications), transforms the data, and pushes rows into Power BI datasets. Power BI is a reporting and analytics destination, not a source-of-truth system, so ml-connector never writes data back into Exact Online.
- How does ml-connector handle Exact Online's region-specific base URLs and OAuth token expiry?
- Exact Online publishes different base URLs for each region (Netherlands, Belgium, UK, Germany, France, Spain, USA). ml-connector accepts the region per customer and constructs the correct API endpoint. OAuth access tokens expire in 10 minutes, so ml-connector refreshes them automatically using the refresh token, which is valid for 30 days. ml-connector re-requests a new refresh token before the 30-day window expires to avoid forcing the user to re-authorize.
- Does Power BI table schema need to be set up before ml-connector pushes data?
- Yes. Power BI requires you to define the table schema (column names and data types) before pushing rows. ml-connector creates or updates the schema on first sync based on configuration, then appends rows on subsequent syncs. This avoids schema drift and ensures Power BI dashboards read consistent data types.
Related integrations
More Exact Online integrations
Other systems that connect to Microsoft Power BI
Connect Exact Online and Microsoft Power BI
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started