QuickBooks Online and Microsoft Dynamics 365 Sales integration
QuickBooks Online holds your customer list, invoices, and payment history. Dynamics 365 Sales runs your sales pipeline with opportunities and quotes. Connecting them keeps the same customer data in both places without manual re-entry. New customers in QuickBooks Online appear in Dynamics 365 Sales, and invoice details flow from QuickBooks into the sales record so the sales and finance teams work from the same facts.
What moves between them
Customer records flow from QuickBooks Online into Dynamics 365 Sales. Each QB customer maps to a Dynamics 365 account record with contact details populated from the QB customer address and name. Invoices issued in QuickBooks Online are read and mapped to sales orders or invoice records in Dynamics 365 Sales so sales staff see the payment history and outstanding balances tied to each customer. The flow runs on a daily schedule but responds immediately to webhook notifications from either system. The integration is read-mostly; ml-connector does not write customer changes back to QuickBooks.
How ml-connector handles it
ml-connector stores OAuth 2.0 credentials encrypted for both systems and refreshes QuickBooks tokens before they expire, monitoring the twenty-four-hour refresh token rotation window so a stale token does not cause an outage. On the QuickBooks side, it polls via the CDC endpoint and subscribes to customer and invoice webhooks, but since QB webhook payloads contain only the entity ID, ml-connector fetches the full record after every webhook fires. For Dynamics 365 Sales, it uses the Client Credentials grant to obtain tokens directly without user interaction and registers webhooks for account and contact changes. Customer names, billing addresses, and contact information are mapped between QB and D365, and QB customer classes can tag accounts for filtering in Dynamics. Invoice dates, amounts, and payment status are read from QB and stored as associated records in D365. ml-connector retries on transient failures with exponential backoff and maintains a full audit trail of every record synced, including timestamps and change summaries.
A real-world example
A mid-sized SaaS company runs QuickBooks Online for invoicing and accounting. Their sales team uses Dynamics 365 Sales to track prospects and manage the pipeline. Before integration, the sales team manually checked QB customer records to verify payment history before closing deals, and finance sent customer master data updates via email to sync contact information. With QuickBooks Online and Dynamics 365 Sales connected, new customers appear in the sales pipeline automatically, and the sales team sees payment status and invoice history directly in the customer record. Finance updates roll through without manual hand-off, and the two teams work from one source of truth on who owes what.
What you can do
- Sync customers from QuickBooks Online to Dynamics 365 Sales accounts, with name, billing address, and contact details automatically mapped.
- Display invoice dates, amounts, and payment status in Dynamics 365 Sales tied to each customer account for visibility across sales and finance.
- Monitor both QuickBooks webhooks and Dynamics 365 webhooks for real-time updates, with polling as a fallback to catch any missed events.
- Handle QuickBooks OAuth 2.0 token refresh before expiry and client credentials authentication for Dynamics 365 Sales.
- Audit every customer and invoice sync with timestamps and change tracking, with replay capability if a downstream write fails.
Questions
- What customer data moves from QuickBooks Online to Dynamics 365 Sales?
- Customer name, billing address, phone, email, and customer class flow from QuickBooks Online into Dynamics 365 Sales as account records. Contact details populate from the QB customer data. Associated invoices are pulled and stored as linked records in D365 so the sales team can see payment history and outstanding amounts without switching systems.
- Does ml-connector write changes back to QuickBooks Online?
- No. The integration is read-mostly from QuickBooks Online to Dynamics 365 Sales. Customer and invoice data flows from QB into D365, but ml-connector does not write updates back to QB. Changes in Dynamics 365 Sales remain in that system only.
- How does ml-connector handle QuickBooks OAuth token expiry and Dynamics 365 authentication?
- ml-connector monitors the QuickBooks twenty-four-hour refresh token rotation and obtains new access tokens before they expire, preventing outages from stale credentials. For Dynamics 365 Sales, it uses the OAuth 2.0 Client Credentials flow with Microsoft Entra ID, eliminating the need for user consent. Both credentials are stored encrypted and managed automatically.
Related integrations
More QuickBooks Online integrations
Other systems that connect to Microsoft Dynamics 365 Sales
Connect QuickBooks Online and Microsoft Dynamics 365 Sales
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started