ml-connector
Microsoft Dynamics NAVTableau

Microsoft Dynamics NAV and Tableau integration

Microsoft Dynamics NAV runs your financials and operations. Tableau visualizes that data for stakeholders and analysts. Connecting the two keeps your dashboards fed with fresh GL postings, invoice detail, and master records without manual export-and-import. NAV's general ledger entries, sales and purchase invoices, customers, vendors, items, and dimensions flow into Tableau automatically, where they populate the data sources underlying your financial reports and drill-down dashboards. Because both systems treat GL data as read-only, ml-connector handles the subscription and authentication mechanics and ensures dimensions and reference tables are aligned so Tableau's filters work correctly.

How Microsoft Dynamics NAV works

Microsoft Dynamics NAV (including Dynamics 365 Business Central online) exposes financial data, transactional records, and master data through OData v4 REST services. Cloud instances authenticate with OAuth 2.0 client credentials via Microsoft Entra ID against tenant- and company-specific URLs. NAV supports both webhooks (push, 3-day subscription expiry, up to 200 subscriptions per online environment) and polling. Webhook events are available for GL entries, invoices, sales orders, customers, vendors, items, employees, accounts, and dimensions, though purchase orders are polling-only. General ledger accounts and posted GL entries are immutable and read-only in the API. On-premises deployments require OData port 7048 opened through the firewall and administrator enablement of API services.

How Tableau works

Tableau (Cloud and Server) provides a REST API for managing workbooks, data sources, users, projects, and extract refreshes. Authentication uses Personal Access Tokens (PAT) exchanged for a session token valid 240 minutes on Server (shorter on Cloud), or Connected App with JWT. Tableau supports webhooks only (no polling) across 24 event types covering datasource, workbook, user, and site lifecycle events. Tableau views are read-only derived objects; extracts are refreshed via API endpoints. Webhooks do not include HMAC signatures, so secret tokens must be embedded in the webhook URL path or query string. Tableau API is site-scoped, requiring a site ID in the request path.

What moves between them

Data flows one direction, from NAV into Tableau. Sales invoices, purchase invoices, general ledger entries, customers, vendors, items, and dimensions stream from NAV and populate Tableau data sources on a daily or weekly schedule (configurable). Dimension reference tables (departments, cost centers, item categories, payment methods) sync first so Tableau extracts and dashboards can slice GL data by the same hierarchies NAV uses. Since both GL accounts and Tableau views are read-only, no data flows back into NAV.

How ml-connector handles it

ml-connector stores NAV OAuth 2.0 credentials and Tableau PAT encrypted, then exchanges credentials for tokens on each run. NAV webhooks expire every 3 days, so ml-connector monitors subscription health and renews before expiry to avoid missed updates; in parallel it polls NAV at your schedule cadence (daily, weekly) to catch any records that slip through batching (NAV bundles >1000 changes into a single notification). Tableau session tokens refresh automatically before the 240-minute window closes. Dimension tables sync first (job codes, departments, customer types) so Tableau workbook filters reference only valid GL account and cost center combinations that exist in NAV. NAV GL entries arrive immutable, so ml-connector upserts them into Tableau without checking for changes. Retries back off and capture full audit trails, so failed extracts can replay without re-keying data.

A real-world example

A mid-market food distributor uses NAV for procurement, sales order management, and accounting across three regional warehouses. Finance and operations teams rely on Tableau dashboards to monitor daily sales trends, AP aging, GL account balances by warehouse, and inventory turns. Before the integration, someone ran a NAV report export each night and manually uploaded it to Tableau, a 20-minute task that slipped on holidays and sick days. With NAV and Tableau connected, the dashboards refresh automatically each morning with the previous day's invoices and GL postings, aligned by warehouse and product category, and month-end close starts with accurate, up-to-date financial summaries.

What you can do

  • Stream NAV GL entries, sales invoices, and purchase invoices into Tableau data sources on a schedule you control, with full audit trails and replay on failure.
  • Sync NAV customer and vendor master records to Tableau so reporting can slice by customer type, vendor category, and payment terms.
  • Keep dimension reference tables (departments, cost centers, item categories) aligned between NAV and Tableau so filters in Tableau reports reference valid GL accounts.
  • Manage NAV webhook subscriptions (3-day expiry renewal) and Tableau session tokens so the data pipeline stays live without manual re-authentication.
  • Handle OAuth 2.0 credential exchange for NAV cloud and Personal Access Token refresh for Tableau, with encrypted credential storage.

Questions

What data moves from NAV to Tableau and how often?
Sales invoices, purchase invoices, general ledger entries, customers, vendors, items, and dimensions flow from NAV to Tableau on a daily or weekly schedule you configure. Reference tables (cost centers, item categories, departments) sync first to ensure Tableau filters align with NAV account hierarchies. Since NAV GL entries are immutable, ml-connector upserts them without checking for changes.
Does ml-connector handle NAV's 3-day webhook subscription expiry?
Yes. ml-connector monitors NAV webhook subscription health and renews subscriptions before the 3-day window closes to prevent missed updates. In parallel, it polls NAV at your schedule cadence (daily, weekly) to catch any records that slip through batching when >1000 changes occur within a 30-second window.
Can ml-connector write data back from Tableau into NAV?
No. Both NAV GL accounts and Tableau views are read-only in their respective APIs, so the integration is read-only from NAV to Tableau. This enforces the separation between the transactional source (NAV) and the analytics layer (Tableau).

Related integrations

Connect Microsoft Dynamics NAV and Tableau

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

Get started