ml-connector
QuickBooks DesktopPipedrive

QuickBooks Desktop and Pipedrive integration

QuickBooks Desktop handles your accounting, but your sales pipeline lives in Pipedrive. Connecting the two keeps your customer and invoice records in sync across both systems. New customers added in QuickBooks automatically appear in Pipedrive as organizations, invoices become deals, and payment receipts flow back as notes so your sales team stays current on what has shipped and been paid. ml-connector bridges the gap between QuickBooks Desktop's SOAP-based architecture and Pipedrive's REST API, handling the polling, transformation, and real-time sync.

How QuickBooks Desktop works

QuickBooks Desktop is a Windows-installed accounting product that exposes customers, vendors, invoices, bills, purchase orders, payments, accounts, items, and journal entries through QBXML, an XML-based query language. Access requires a customer-hosted SOAP Web Connector agent (QBWC) running on the same machine as QuickBooks. The QBWC polls a remote SOAP endpoint you provide on a configurable interval (minimum 1 minute) and exchanges QBXML requests and responses. Authentication uses a session-token handshake where your SOAP service receives a username and password, validates them, and returns a session GUID for the duration of that polling cycle. QuickBooks Desktop offers no webhooks, so all data movement is polling-based. Modifications require the current EditSequence value to prevent concurrent edit conflicts, and large result sets must be paginated due to a 60-second request timeout.

How Pipedrive works

Pipedrive is a cloud CRM that exposes organizations, persons, deals, activities, products, pipelines, stages, tasks, and notes via REST JSON APIs. It supports two authentication methods: API tokens (scoped to a user account) or OAuth2 bearer tokens with refresh capability. The API uses a daily token budget based on the customer's plan (30,000 tokens base, multiplied by plan tier), with single reads costing 2 tokens and writes costing 10. Rate limiting varies by plan and auth type, from 20 to 480 requests per 2-second window. Pipedrive supports both webhook delivery for real-time events and polling via REST calls. Webhooks use HMAC-SHA256 signature verification and deliver events in two formats: v1 (action.object) and v2 (separate action and entity fields). Custom fields are exposed as opaque hashes and require separate API calls to retrieve field definitions.

What moves between them

The main flow is from QuickBooks Desktop into Pipedrive. Customers in QuickBooks map to organizations in Pipedrive, invoices to deals, and payments received to activity notes on the matching deal. A secondary flow returns Pipedrive deal closure and win/loss status back into QuickBooks as custom fields or memos, so accounting sees which invoices have closed in the sales pipeline. Reference data such as customer types and payment terms are aligned where supported by both systems.

How ml-connector handles it

ml-connector implements a SOAP web service that accepts QBWC polling calls, authenticates incoming requests with your configured credentials, and returns QBXML queries that fetch customer and invoice data from your QB instance. Because QuickBooks Desktop is polling-only and customer-hosted, ml-connector translates each QB query response into REST payloads for Pipedrive, creating organizations and deals as needed. Customer records in QB are matched to Pipedrive organizations by email or company name to avoid duplicates, and invoices are created as deals in a designated Pipedrive pipeline. Payment records received in QB are pushed to Pipedrive as activity notes linked to the matching deal, timestamped with the payment date. The EditSequence requirement in QB means updates must be re-fetched before modification; ml-connector tracks these values per customer so edits do not collide. Because Pipedrive uses a daily token budget, ml-connector batches updates and prioritizes recent changes to stay within plan limits. Webhook signatures from Pipedrive are validated before acting on events, and the integration tracks Pipedrive's rate-limit headers to back off before hitting hard limits.

A real-world example

A mid-sized wholesale distributor runs QuickBooks Desktop at the head office and Pipedrive across five regional sales teams. Before the integration, the sales team had no visibility into whether invoices had shipped or been paid, and the accounting team manually exported customer lists and invoices from QB weekly to check against Pipedrive deal progress. With the integration in place, every new customer added in QuickBooks appears in Pipedrive the next polling cycle as a new organization, invoices automatically become deals in the sales pipeline, and when a payment is received in QB, a note appears on the deal so the sales rep knows the transaction is closed. Month-end reconciliation is faster because payment records flow automatically, and the sales team no longer relies on email updates to know which deals have shipped.

What you can do

  • Sync customers from QuickBooks Desktop to Pipedrive organizations, using email and company name to match and avoid duplicates.
  • Create and update deals in Pipedrive from QuickBooks Desktop invoices, with amount, due date, and line-item details.
  • Post payment receipts from QuickBooks Desktop as activity notes on Pipedrive deals, timestamped with the payment date.
  • Handle QuickBooks Desktop SOAP polling and the EditSequence version counter required for safe updates.
  • Manage Pipedrive API token budgets and rate limits, batching updates and backing off to stay within plan allocation.

Questions

How does the integration handle QuickBooks Desktop's SOAP polling requirement?
ml-connector implements a SOAP web service that accepts QBWC polling calls from the customer's QuickBooks Desktop machine. When QBWC calls the service, it provides a username and password; ml-connector validates these credentials, returns a session GUID, and then sends back QBXML queries that fetch customer and invoice data from the QB instance. Because QuickBooks Desktop is installed locally and must remain open for QBWC to operate, the polling is asynchronous and typically runs every 5 to 15 minutes depending on customer configuration.
How are QuickBooks Desktop customers and invoices mapped to Pipedrive organizations and deals?
Customer records in QB are matched to Pipedrive organizations by email address first, then by company name as a fallback, to avoid creating duplicate organizations. When a new customer is found in QB, a new organization is created in Pipedrive with the QB customer name, email, and other details. Invoices in QB are created as deals in a designated Pipedrive sales pipeline, with the deal amount set to the invoice total, the deal title set to the invoice number, and the deal stage set to a default stage such as Negotiation or Sent.
What happens when payment information changes in QuickBooks Desktop?
Payment records received in QB are pushed to Pipedrive as activity notes (comments or timeline entries) linked to the matching deal, showing the payment amount, method, and date. If a deal has multiple invoices, the payment is linked to the primary invoice deal and referenced in notes so the sales team sees the full payment status. Custom fields in QB can also be updated to reflect deal closure or pipeline stage changes from Pipedrive, creating a two-way sync where applicable.

Related integrations

Connect QuickBooks Desktop and Pipedrive

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

Get started