Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Power BI teams in Dutch SMEs keep running into the same wall: “We want Exact Online data in our reports, but IT says we need Premium and a gateway, and the refresh keeps failing.” The options are confusing, the documentation is scattered, and the stakes are high because finance depends on these numbers.
This article walks through four realistic ways to connect Exact Online to Power BI, shows where the Premium and gateway pain comes from, and helps you pick the right setup for one concrete scenario: a finance and operations report that needs daily Exact Online data without turning into a maintenance nightmare.
Assume this setup:
We’ll use this scenario to compare four methods:
Each method is technically viable. The trade-offs are around:
This is the “pure” approach: Power Query calls the Exact Online REST APIs directly from Power BI Service. No gateway, no intermediate database.
Exact Online exposes OData/REST endpoints per division (administration). The basic flow:
Power BI supports OAuth2 for web APIs via Power Query, and the Power BI Service can use stored OAuth2 credentials for scheduled refresh when the source is configured as a Web data source with OAuth2 authentication.
Below is a simplified pattern that:
GetExactAccessToken() (you implement this once)let
// Configuration
BaseUrl = "https://start.exactonline.nl/api/v1",
Division = "12345", // use your division ID
ResourcePath = "/salesinvoice/SalesInvoices",
GetExactAccessToken = () as text =>
let
// You implement the OAuth2 flow here.
// The function must return a valid bearer token as text.
// Common pattern: call a token endpoint using client ID/secret
// and refresh token stored in parameters.
token = "" // placeholder: replace with your own token acquisition logic
in
token,
GetPage = (skip as number) as table =>
let
Token = GetExactAccessToken(),
Url = BaseUrl & "/" & Division & ResourcePath & "?$skip=" & Text.From(skip),
Source = Json.Document(
Web.Contents(
Url,
[
Headers = [
Authorization = "Bearer " & Token,
Accept = "application/json"
]
]
)
),
Value = if Record.HasFields(Source, "value") then Source[value] else null,
TableValue = if Value = null then #table({}, {}) else Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
TableValue,
GetAllPages = () as table =>
let
PageSize = 60, // Exact Online default page size for many endpoints
FirstPage = GetPage(0),
Generate = List.Generate(
() => [Page = FirstPage, Skip = 0],
each Table.RowCount([Page]) > 0,
each [
Skip = [Skip] + PageSize,
Page = GetPage([Skip])
],
each [Page]
),
Combined = Table.Combine(Generate)
in
Combined
in
GetAllPages()
Key points:
GetExactAccessToken using Exact Online’s OAuth2 token endpoint, client credentials, and refresh token handling.For our finance & operations report:
Here you pull Exact Online data into a SQL database first (e.g. Azure SQL Database or SQL Server), then connect Power BI to that database.
Assume your ETL has created a table dbo.FactSalesInvoice in Azure SQL.
SELECT
InvoiceID,
Division,
InvoiceDate,
DebtorID,
AmountDC,
AmountFC,
Status
FROM dbo.FactSalesInvoice;
In Power BI Desktop:
For Azure SQL, scheduled refresh runs without a gateway as long as the service can reach the database.
For our finance & operations report:
Several integration platforms and vendors provide Exact Online → Power BI connectivity, usually via:
Typical pattern:
Power BI itself doesn’t care that the source is “Exact Online” at this point; it just sees a supported connector.
For the finance & operations report:
Here you build a Power Query custom connector (.mez) for Exact Online and deploy it with the on-premises data gateway. This is the “engineering-heavy” option.
ExactOnline.SalesInvoices()).mez in the gateway’s custom connectors folder).The gateway hosts the connector and handles all calls to Exact Online during refresh.
.mez file deployed and kept in sync.Inside Power BI Desktop, the connector might expose a function like this:
let
Source = ExactOnline.Contents(),
SalesInvoices = Source{[Name = "SalesInvoices"]}[Data]
in
SalesInvoices
The connector implementation (outside Power BI Desktop) handles:
From the BI developer’s perspective, this is much cleaner than raw REST calls.
For the finance & operations report:
From the scenario and the four methods, the pain points usually cluster around:
Premium requirement misunderstanding:
Gateway friction:
The core decision is less about “Premium vs Pro” and more about “direct cloud vs gateway + custom/SQL”.
For the finance & operations scenario, a practical decision flow:
Do you have Azure SQL or are you willing to set it up?
Do you have engineering capacity for ETL or custom connectors?
Data volume and complexity:
For most Dutch SMEs in the described scenario, a realistic path is:
If you’re stuck between “we don’t have Premium” and “IT doesn’t want another gateway”, focus on cloud-native patterns: either call Exact Online directly from Power BI with a well-implemented OAuth2 flow, or land the data in Azure SQL and connect from there. Both keep you in Power BI Pro territory and avoid turning a finance report into an infrastructure project.
This article reflects a shift from ad hoc exports and opaque connector setups towards deliberate Exact Online–Power BI integration patterns that matter most for SME finance and BI teams balancing Pro licensing with minimal gateway overhead.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power BI Reporting programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power BI
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering