ml-connector
Microsoft Dynamics GPLooker

Microsoft Dynamics GP and Looker integration

Microsoft Dynamics GP stores your financial and operational records on-premises. Looker turns those records into dashboards and reports for stakeholders who need real-time insight into GL balances, payables aging, inventory turns, and revenue trends. Connecting the two keeps your analytics layer fed directly from the source of truth, eliminating manual exports and ensuring every report reflects the latest transaction state.

How Microsoft Dynamics GP works

Microsoft Dynamics GP exposes vendors, payables invoices, purchase orders, GL accounts, GL journal entries, customers, receivables invoices, and inventory items through REST Service Based Architecture (SBA) at a tenant- and company-specific URL, or via SOAP Web Services for older deployments. Authentication uses Windows domain credentials (Negotiate/Kerberos or NTLM) tied to Active Directory, with no OAuth2 or API key option. GP supports polling only; there are no webhooks or push notifications. Polling is done with ModifiedDate filters and 100-200ms delays to avoid overwhelming the customer's SQL Server.

How Looker works

Looker exposes data through REST APIs authenticated with OAuth2 client credentials, exchanging client_id and client_secret for a bearer token that expires after one hour and must be re-requested on each call. Looker models data from connected warehouses and stores that data in queries, looks, dashboards, and scheduled plans. It supports scheduled delivery to webhooks, email, S3, and SFTP, but has no native inbound webhook system. Maximum response is 5000 rows per query call without streaming. Looker does not store ERP data natively, so the integration enriches Looker's warehouse connection with GL and transactional context from Dynamics GP.

What moves between them

The main flow runs from Microsoft Dynamics GP into Looker. ml-connector polls GL accounts, GL journal entries, payables invoices, receivables invoices, and inventory items from Dynamics GP on a customer-defined schedule using ModifiedDate filters. Those records are transformed into Looker queries or uploaded as table data that feeds dashboards and scheduled plans. The direction is one-way into Looker; Looker is read-only for analytics, so ml-connector does not write financial records back into Dynamics GP.

How ml-connector handles it

ml-connector stores the Windows domain credentials needed for Microsoft Dynamics GP in encrypted form and accepts the customer's full SBA or SOAP service URL per deployment, since each Dynamics GP instance runs on a customer-managed server. Because Dynamics GP supports polling only, ml-connector polls on a schedule tied to the customer's financial close cycle, using ModifiedDate filters to avoid fetching records that have not changed. It handles the one-hour OAuth2 token expiry in Looker by requesting a new token before each batch, and it respects Looker's 5000-row limit by breaking large result sets into multiple queries. Dynamics GP requires write operations to target unposted (Work) transactions only, so ml-connector reads only from GL Accounts and GL Journal Entries, which are posted and read-only. Every record carries an audit trail and can be replayed if a downstream call to Looker fails.

A real-world example

A mid-sized distribution company runs Microsoft Dynamics GP on-premises for accounts payable, receivables, and inventory, and uses Looker to build KPI dashboards for finance leadership and operations. Before the integration, the accounting team exported payables aging, GL trial balances, and inventory turnover by hand each month and uploaded the files to Looker, a manual step that delayed close reporting and introduced transcription errors. With Dynamics GP and Looker connected, payables aging refreshes daily into Looker dashboards, GL balances update automatically, and inventory reports reflect current stock without re-keying. Month-end close reporting starts with accurate numbers already loaded, and the finance team spends less time on manual data moves.

What you can do

  • Pull GL accounts, GL journal entries, and invoice data from Microsoft Dynamics GP via polling with ModifiedDate filters.
  • Push payables aging, receivables analysis, and GL balance reports into Looker dashboards and scheduled delivery plans.
  • Authenticate Dynamics GP with Windows domain credentials and Looker with OAuth2 client credentials, handling one-hour token expiry.
  • Map Dynamics GP GL dimensions and cost centers to Looker query parameters so reports aggregate correctly across company structures.
  • Respect Dynamics GP's posted-transactions-only constraint and Looker's 5000-row limits, splitting large result sets and retrying on failure.

Questions

What records move from Microsoft Dynamics GP to Looker?
GL accounts, GL journal entries, payables invoices, receivables invoices, and inventory items flow from Dynamics GP into Looker on a schedule you control. The direction is one-way: Dynamics GP is the source of truth, and Looker is the analytics layer that models and visualizes that data for reporting and dashboards.
Why does ml-connector poll Dynamics GP instead of using webhooks?
Dynamics GP does not support webhooks or push notifications. Polling is the only available pattern, using ModifiedDate filters to fetch only records that have changed since the last run. ml-connector handles the timing and retry logic so you get a consistent refresh cadence without manual intervention.
How does ml-connector handle the differences in authentication between Dynamics GP and Looker?
Dynamics GP uses Windows domain credentials (Negotiate/Kerberos or NTLM) tied to Active Directory, while Looker uses OAuth2 client credentials. ml-connector stores both credential sets encrypted and handles the authentication handshake for each system independently, refreshing Looker's bearer token before it expires.

Related integrations

Connect Microsoft Dynamics GP and Looker

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

Get started