QuickBooks Desktop and Microsoft Power BI integration
QuickBooks Desktop stores your company's vendors, bills, invoices, and general ledger entries on a Windows machine. Microsoft Power BI is where your finance team analyzes that data and shares insights across the business. Connecting the two means your Microsoft Power BI reports always show the latest QuickBooks Desktop transactions without manual export-and-load cycles. New invoices, bills paid, and journal entries in QuickBooks Desktop appear in Microsoft Power BI within minutes of the QBWC poll cycle.
What moves between them
Financial records flow one direction: from QuickBooks Desktop into Microsoft Power BI. On each QBWC poll cycle, ml-connector executes QBXML queries (Vendor, Bill, Invoice, BillPaymentCheck, JournalEntry, Account) and receives XML results. These records are transformed into rows matching the Microsoft Power BI push dataset schema and posted via REST API. The poll interval is configured in QBWC and is typically 5 to 15 minutes; ml-connector does not poll QuickBooks Desktop directly, but instead receives and processes the queries initiated by QBWC from your configured service URL.
How ml-connector handles it
ml-connector runs a SOAP web service that receives QBWC poll requests from the customer's Windows QuickBooks Desktop machine. When QBWC calls ml-connector, it provides a username and password; ml-connector authenticates and returns a session ticket, then QBWC executes QBXML queries within that session. ml-connector translates QBXML responses into structured data, maps QuickBooks Desktop account codes and transaction types to Microsoft Power BI column names, and POSTs the rows to the Microsoft Power BI push dataset endpoint using a service principal bearer token. Because Microsoft Power BI bearer tokens expire after one hour, ml-connector refreshes the token before it expires and includes it on every POST. If a Microsoft Power BI push fails (network error, rate limit, dataset offline), ml-connector retries with exponential backoff and logs the failure in the audit trail so it can be replayed once Microsoft Power BI is responsive. QBWC operates sequentially and polls your configured SOAP endpoint on a minimum interval of 1 minute; ml-connector queues requests and responds within the 60-second QBXML timeout. Because QuickBooks Desktop pro and premier editions cap list entries at 14,500, ml-connector paginates large vendor or customer queries to avoid timeouts.
A real-world example
A mid-sized accounting and bookkeeping firm manages QuickBooks Desktop for 30 small and mid-market client businesses. Each client file runs on a separate Windows machine with QBWC polling every 15 minutes. Before the integration, the firm's finance analyst exported monthly trial balances and transaction reports from each client's QuickBooks Desktop file by hand, loaded them into Excel, consolidated them, and uploaded consolidated summaries to Microsoft Power BI once a month. With QuickBooks Desktop and Microsoft Power BI connected, each QBWC poll automatically pushes that client's vendors, bills, invoices, and journal entries into a dedicated Microsoft Power BI dataset. The analyst now opens Microsoft Power BI and sees consolidated transaction activity across all clients updated every 15 minutes, eliminating the manual export cycle and enabling real-time variance analysis and cash flow visibility.
What you can do
- Push QuickBooks Desktop vendors, bills, invoices, and journal entries into Microsoft Power BI datasets on every QBWC poll cycle.
- Authenticate QBWC with a session-token handshake and Microsoft Power BI with service principal OAuth2 credentials.
- Translate QuickBooks Desktop chart-of-accounts codes and QBXML entity fields into Microsoft Power BI dataset column schemas.
- Handle QBWC 60-second request timeouts and Microsoft Power BI one-hour token expiry with automatic refresh and retry logic.
- Maintain a full audit trail of every poll, transformation, and push so failed records can be replayed without duplication.
Questions
- How does QuickBooks Desktop data get to Microsoft Power BI if there are no webhooks?
- ml-connector runs a SOAP web service that receives poll requests from QBWC (the customer-hosted agent on the Windows machine running QuickBooks Desktop). When QBWC calls ml-connector on its configured schedule, ml-connector returns the QBXML query results, transforms them, and immediately pushes the rows to Microsoft Power BI via REST API. The poll interval is set in QBWC (typically 5 to 15 minutes) and is customer-controlled.
- What happens if Microsoft Power BI is unavailable during a poll cycle?
- ml-connector logs the failure in the audit trail and retries with exponential backoff. If a push fails (network error, rate limit, or dataset offline), the record is queued for replay and retried the next time the endpoint is responsive. The full audit trail means no records are lost, and you can manually replay specific transactions if needed.
- Does ml-connector support multi-company QuickBooks Desktop setups?
- QuickBooks Desktop and QBWC operate one company file per session. To integrate multiple QuickBooks Desktop company files with Microsoft Power BI, each file requires its own QBWC registration and ml-connector service registration. ml-connector can push results from all registrations into the same or separate Microsoft Power BI datasets depending on your reporting structure.
Related integrations
More QuickBooks Desktop integrations
Other systems that connect to Microsoft Power BI
Connect QuickBooks Desktop and Microsoft Power BI
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started