Case StudiesRetreat
AboutCareersBook a Conversation
Workflows/OperationsBuilt

QuickBooks Invoice Sync

A weekly sync pulls every invoice out of QuickBooks and maps it to the CRM, so revenue truth lives in one place. The books stay the source of truth; the CRM stays current without anyone copying numbers.

Cadence Every Monday, 12:30 (+07)Manual copying 0Source of truth QuickBooks

Four steps, once a week, unattended

This is the automation behind our Monthly Invoicing cadence: humans run the billing rhythm, the sync keeps every system telling the same story.

0112:30 (+07), after the token keepalive
Monday Sync Fires
System
02Automatic
Pull from QuickBooks
System
03Automatic
Map to CRM Companies
System
04Always current
Revenue Dashboard
System
Runs every week. Unmapped customers are the only thing a human ever touches.

How each step works

01
The sync fires on scheduleSystemMonday, 12:30 (+07)

Two routines run every Monday. At 12:00 a token keepalive refreshes each connected company's QuickBooks connection, because Intuit retires an idle refresh token after about a hundred days; it warns the ops Lark chat if a refresh fails or the token has under two weeks left. At 12:30 the invoice sync runs on the fresh tokens. Weekly is deliberate: fresh enough that the dashboard is trusted, calm enough that the books close before the numbers move. An admin can also press Sync on the invoices page between runs.

02
Invoices come out of QuickBooksSystem

Every invoice dated since January 2025 is pulled from each connected company, Edge8 and AIO: new ones, updated ones, payments applied. Each is upserted by its QuickBooks id and its status is derived from the balance and due date, so nothing is ever deleted and a paid invoice flips on the next pass. QuickBooks remains the accounting source of truth. The sync never writes back to it.

03
Each invoice maps to a CRM companySystem

The mapping from QuickBooks customer to CRM company lives on the company record, set once by an admin from the invoices page, so each invoice lands on the right company's page. A customer without a mapping is stored with no company and counted in the run result instead of being guessed; mapping it later attaches its invoices on the next pass. Most AIO customers are individuals and stay unmapped by design.

04
Revenue reads from one placeSystem

Dashboards, client pages, and revenue reviews all read from the synced ledger. When someone asks what a client is worth this year, the answer comes from one system, and it agrees with the books.

The seven elements

Every workflow we document has the same anatomy: seven elements, each assigned to a human, a machine, or both. This is the Centaur Map from our workflow design method.

01 TriggerMachine

Two routines fire every Monday: the token keepalive at 12:00 (+07), the invoice sync at 12:30. No one remembers to run them because no one has to.

02 InputsMachine

Invoices since January 2025 from each connected QuickBooks company (Edge8 and AIO), and the customer-to-company mapping kept on each CRM company record.

03 DecisionBoth

Which QuickBooks customer belongs to which CRM company. Mapped by a human once, from the invoices page, applied by the machine forever.

04 RoutingMachine

Every invoice is upserted by its QuickBooks id, nothing is ever deleted, and an unmapped customer is stored with no company and reported rather than guessed.

05 OutputMachine

A complete, current invoice ledger inside the admin, attached to the right companies, with paid, open, overdue and voided derived from the balance.

06 DeliveryMachine

The revenue dashboard and the invoices page read directly from the synced ledger. No exports, no spreadsheets.

07 MeasurementMachine

Every run logs fetched, upserted and unmapped counts per company on Settings → Agents; a failed sync or a dying token warns the ops Lark chat.

The standing rules

  • QuickBooks is the source of truth; the sync only reads
  • Mapping decisions are made by humans, once, and remembered
  • Unmapped customers get reported, never guessed; a company that is not connected stays quiet
  • Nobody copies invoice numbers between systems, ever

Why it works

  • One truth ends the weekly “which number is right?” conversation
  • Client revenue history sits next to the relationship, where decisions happen
  • A weekly pass catches drift the week it appears, not at year end
  • The finance team's tool stays theirs; everyone else gets a live view