QuickBooks Online
QuickBooks integration built so it cannot quietly overwrite you
Customers, items, estimates, invoices and payments kept aligned, with every inbound change staged as a reviewable diff instead of written to your data behind your back.
The two ways an accounting sync goes wrong
It creates duplicates, because the same customer exists in both systems with slightly different names and nothing tried to match them first. And it overwrites, because a change made in one system landed silently in the other and nobody saw it happen until a number was wrong.
Both are recoverable and both are miserable, and the second one is worse because you find out weeks later.
What you get
What it does
Adoption before creation
Before creating a QuickBooks record we look for the natural key and link to what is already there. A near-duplicate customer is warned about before it exists, not cleaned up after.
Inbound changes are staged, not applied
A pull computes the exact field-level difference and stages it for a person who reads the diff and types APPLY. There is no auto-apply setting: deliberately absent, not merely switched off.
No echo loops
Content fingerprints mean our own write coming back as a webhook is recognised and dropped before it becomes work.
Direction per record type
Off, push, pull or both, chosen per entity. A one-way direction is a hard gate, not a preference.
One number end to end
The estimate number becomes the job number and the invoice number, clear of the QuickBooks range and never zero-padded, so the two systems reconcile without anybody matching by hand.
Money guards
A push is refused for a job that is not invoiced, has a pending change order, or whose lines do not sum to its total. Imported history is never pushed back by default.
How it works
Start to finish
- 1
Turn it on deliberately
An organisation that never opens the settings card has no connection, no queue, no links and no log rows. The card is a single "set up QuickBooks" switch until somebody presses it.
- 2
Choose directions
Even after connecting, every record type starts off. Nothing moves until you choose and press a button.
- 3
Push what you decide to push
A bid becomes a new QuickBooks estimate. It only ever adds a document.
- 4
Review what comes back
Inbound changes queue as diffs. You read them and apply them, and a stale approval is refused if the underlying record moved since.
Opulence is the source of truth, structurally
That posture is enforced by the design rather than by a checkbox. Nothing leaves without a button press, nothing lands here on its own, there is no auto-apply setting to find, and an approval that has gone stale is re-checked against the record before it is applied, so approving yesterday's diff can never discard today's edit.
Read the restShow less
Existing QuickBooks history comes in through a separate reviewed data import, not through this sync. Pushing years of imported history back into your accounting system is the worst available outcome here, so it is off by default and guarded.
A pull never writes a job's status. The job state machine owns transitions and the change-order gate rides on it; an accounting system telling a job it is paid would drive both. Paid-in-full arrives as an advisory on the log instead.
Common questions
- The integration is built and wired, and it activates when the Intuit credentials are configured for your account. Until then every call short-circuits and the settings card says so in plain words rather than failing quietly.
See it on your own jobs.
A 20-minute walkthrough, on your real pipeline. No slide deck, no pressure.