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. 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. 2

    Choose directions

    Even after connecting, every record type starts off. Nothing moves until you choose and press a button.

  3. 3

    Push what you decide to push

    A bid becomes a new QuickBooks estimate. It only ever adds a document.

  4. 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 rest

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.