QuickBooks Desktop and ServiceNow integration
QuickBooks Desktop runs accounting on-premise; ServiceNow handles procurement and AP in the cloud. Connecting them keeps vendor master data and bill records aligned across systems. New vendors added in QuickBooks Desktop flow into ServiceNow's procurement tables, and bills and payments sync into ServiceNow's accounts payable module so the AP team works from a single source of truth. ml-connector manages the SOAP polling agent at the customer site and bridges it to ServiceNow's REST API, hiding the transport differences.
What moves between them
The main flow runs from QuickBooks Desktop into ServiceNow. Vendors, accounts, and bill records are pulled from QuickBooks on a 5 to 15 minute QBWC cycle, then posted into ServiceNow's procurement staging tables and general ledger. Bill payments flow the same direction so the AP team in ServiceNow can see the full bill-to-pay lifecycle. Account codes and cost centers are mapped between systems so bills land on valid GL dimensions in ServiceNow. QuickBooks is read-only in this direction; ml-connector does not write back to QuickBooks.
How ml-connector handles it
ml-connector runs a SOAP endpoint that QBWC calls on the customer's machine. It receives QBXML queries, manages the session token lifecycle, and runs ModifiedDateRangeFilter queries to extract only changed records since the last poll cycle. On the ServiceNow side, ml-connector stores the OAuth 2.0 credentials encrypted and presents them with every REST call, refreshing the token when necessary. The mapping layer matches QuickBooks account codes to ServiceNow GL accounts and cost centers so bills post to the correct expense ledger. Because QBWC operates sequentially and has a 60-second timeout, ml-connector batches large vendor or bill extracts into paginated chunks and spreads the load across multiple QBWC cycles to avoid timeouts. Every vendor and bill record carries a full audit trail and can be replayed if a downstream ServiceNow call fails.
A real-world example
A mid-sized accounting firm manages client books in QuickBooks Desktop on Windows servers at their office and uses ServiceNow's AP module in the cloud for centralized bill approval and payment across all clients. Before the integration, accounts payable staff manually entered bill details from QuickBooks into ServiceNow each week, creating duplicate entry work and mismatches when vendors updated their information in QuickBooks but not in ServiceNow. With QuickBooks Desktop and ServiceNow connected, vendors and bills flow into ServiceNow automatically on QBWC's polling schedule, eliminating re-entry and keeping both systems aligned. When a vendor adds a new address in QuickBooks, it appears in ServiceNow's vendor table within one QBWC cycle, and the AP team always bills from current vendor data.
What you can do
- Sync vendors, accounts, and bill records from QuickBooks Desktop into ServiceNow's procurement and AP modules on a 5 to 15 minute QBWC polling cycle.
- Map QuickBooks account codes and cost centers to ServiceNow GL accounts so bills post to the correct ledger dimensions.
- Manage QBXML session tokens and handle QBWC authentication so the integration works transparently behind SOAP polling.
- Handle large bill and vendor extracts by paginating within QBWC's 60-second timeout to avoid request failures.
- Maintain a full audit trail on every vendor and bill record and replay failed ServiceNow calls without duplicating data.
Questions
- Does the integration work with QuickBooks Online or only QuickBooks Desktop?
- Only QuickBooks Desktop. The integration relies on the QBWC Web Connector agent, which runs locally on Windows and polls your SOAP endpoint. QuickBooks Online uses a different REST API and does not require QBWC. If you use QuickBooks Online, a different integration pattern is needed.
- What happens if QuickBooks is not open when QBWC tries to poll?
- QBWC requires QuickBooks to be open and logged into the company file to process requests. If QuickBooks is closed, QBWC will queue the poll and retry on the next scheduled interval. The integration waits for QuickBooks to come online and resumes syncing; no data is lost, but there will be a delay until the app is running again.
- How does the integration handle the 60-second QBXML timeout when syncing large datasets?
- ml-connector breaks large vendor and bill extracts into smaller batches and spreads them across multiple QBWC cycles so each individual request stays well under the 60-second limit. Every batch maintains the same session token and picks up from the ModifiedDateRangeFilter where the prior batch ended, ensuring no records are skipped or duplicated.
Related integrations
More QuickBooks Desktop integrations
Other systems that connect to ServiceNow
Connect QuickBooks Desktop and ServiceNow
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started