ml-connector
Microsoft Dynamics NAVMicrosoft Power BI

Microsoft Dynamics NAV and Microsoft Power BI integration

Microsoft Dynamics NAV runs your finance and operations; Power BI visualizes the insights. Connecting the two brings your general ledger, invoices, orders, and inventory data into Power BI dashboards and reports without manual export, so your finance team and operations can see the current state of the business in real time. NAV data flows one direction into Power BI, updated on a schedule that matches your reporting rhythm.

How Microsoft Dynamics NAV works

Microsoft Dynamics NAV exposes vendors, customers, purchase orders, purchase invoices, sales invoices, sales orders, general ledger accounts, general ledger entries, items, employees, dimensions, and journals through OData v4 REST (primary) or SOAP web services on a per-tenant base URL. It authenticates with OAuth 2.0 client credentials via Microsoft Entra ID for cloud instances (Business Central online) or on-premises servers. NAV can push notifications via webhooks with 3-day subscription expiry and 30-second batching, or data can be read by polling. Webhook subscriptions auto-expire and must be renewed; general ledger accounts and entries are read-only.

How Microsoft Power BI works

Microsoft Power BI is a cloud-only analytics destination that accepts data pushed to it via REST API and exposes it in workspaces, datasets, reports, and dashboards. It authenticates with OAuth 2.0 service principal credentials from Microsoft Entra ID. Power BI does not push events outbound, so it cannot initiate a sync; the data always flows in one direction from an external source. Push datasets require a schema defined in advance (table name and column types) before rows can be added. Service principals must be assigned workspace access, and Power BI Admin settings must enable APIs for service principals.

What moves between them

Financial records from Microsoft Dynamics NAV flow one direction into Power BI. General ledger entries, sales invoices, purchase invoices, purchase orders, inventory items, and vendor and customer master data are read from NAV and pushed into Power BI datasets on a schedule you define. No data flows back from Power BI to NAV. ml-connector polls NAV for changes at regular intervals tied to your month-end close or reporting cadence.

How ml-connector handles it

ml-connector encrypts and stores both credential sets: the Entra ID client ID and secret for Microsoft Dynamics NAV OAuth 2.0, and the service principal client ID and secret for Power BI. On the NAV side, it reads from the OData v4 REST endpoint at the tenant-specific base URL provided per customer, and it validates every record path against that URL since NAV publishes no shared hostname. On the Power BI side, it first ensures the push dataset schema exists in the target workspace, then transforms NAV records to match that schema and POSTs rows to the dataset via the REST API. Because NAV webhooks expire after 3 days and require renewal, ml-connector defaults to polling on a schedule you set rather than relying on subscription maintenance. Power BI tokens expire after approximately one hour, so ml-connector refreshes the service principal bearer token before each request. Every record transformation and API call is logged with a full audit trail for troubleshooting and replay if a downstream dataset refresh fails.

A real-world example

A mid-sized distributor operates Microsoft Dynamics NAV for purchasing, invoicing, and general ledger, and wants to monitor cash flow, inventory turnover, and supplier trends in real time. Before the integration, the finance team ran manual NAV reports every week and rebuilt Power BI dashboards by hand, a process that took three hours and was out of date by the next day. With Microsoft Dynamics NAV and Power BI connected, the critical financial and inventory data flows automatically every night after the NAV close, and the dashboards refresh at the same time, so the leadership team always sees current cash and inventory position without waiting for exports.

What you can do

  • Stream sales invoices, purchase invoices, and general ledger entries from Microsoft Dynamics NAV into Power BI datasets on your schedule.
  • Authorize NAV with Entra ID OAuth 2.0 and Power BI with service principal OAuth 2.0, handling credential encryption and token refresh.
  • Transform NAV financial records to match your Power BI dataset schema, so finance data lands in the right columns and tables.
  • Poll Microsoft Dynamics NAV on a cadence tied to your reporting calendar, with automatic retries and a full audit trail on every record.
  • Monitor data flow status and audit every transformation from NAV to Power BI, with the ability to replay failed records without duplication.

Questions

Does the integration require Microsoft Dynamics NAV to be online or on-premises?
ml-connector works with both Microsoft Dynamics NAV cloud (Business Central online) and on-premises installations. Cloud NAV uses the standard Entra ID OAuth 2.0 flow. On-premises NAV requires the OData endpoint to be exposed and the server firewall to allow traffic to the OData port (7048 by default), and the NAV administrator must enable the OData and API services via the NAV Server Administration tool.
Can data flow back from Power BI to Microsoft Dynamics NAV?
No. Power BI is a reporting destination, not a source system. The connector reads financial and operational data from Microsoft Dynamics NAV and pushes it into Power BI one direction only. Updates to Power BI dashboards or reports do not affect NAV data.
How often does the data sync between Microsoft Dynamics NAV and Power BI?
ml-connector polls Microsoft Dynamics NAV on a schedule you define, typically after your daily or weekly NAV close. Power BI tokens are refreshed automatically before each request, and the full dataset is re-loaded on every sync cycle so Power BI always reflects the latest NAV records.

Related integrations

Connect Microsoft Dynamics NAV and Microsoft Power BI

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started