APSync Documentation

What happens during rollout product push

This is where the product list comes from, and what "refreshing the catalog from MOM" actually does today. It is a three-step flow, and only the last step touches HubSpot.

flowchart LR
  MOM[MOM warehouse database] -->|1. load| QBO[QuickBooks]
  QBO -->|2. export| CSV[Product sheet]
  CSV -->|3. apply| QBO2[QuickBooks]
  CSV -->|3. apply| HS[HubSpot]

Step 1: MOM into QuickBooks

The developer runs a load from the MOM database into the QuickBooks company. It is not on the Items page; it needs a live connection to MOM and runs from the developer's machine.

What it carries for each product: SKU, name, description, price and price tiers, unit cost, whether it is a service or a stocked item, stock on hand, the income, inventory and cost accounts, and how bundles and breakout kits are made up.

What it selects: only products MOM marks as active. MOM holds thousands of discontinued products; those never leave MOM. Measured at rollout, MOM held 6,868 stock records of which 371 were active, and 371 is what went into QuickBooks.

What it does not do: it never removes anything from QuickBooks. If a product was loaded once and later marked discontinued in MOM, it stays in QuickBooks as it was until someone deactivates it deliberately. This is recorded as issue SKU-1 on the issues page, and it is why the QuickBooks list can be a little longer than MOM's active count.

Step 2: QuickBooks into the sheet

On the Items page, Export Items from QBO reads the QuickBooks product list and writes the product sheet. This is the list everyone works from; see How to Get the Product List.

Two things happen to it on the way out: every row is stamped with an Export ID saying which company and which moment it came from, and the placeholder SKU -- (QuickBooks' stand-in for invoice lines with no product) is dropped so it can never be pushed into HubSpot as if it were a product. By default the export is active products only; there is an "Include inactive items" option.

Why export from QuickBooks and not straight from MOM: QuickBooks is the accounting record. Going through it means the sheet always reflects account assignments QuickBooks actually accepted.

Step 3: the sheet into QuickBooks and HubSpot

Apply on the Items page pushes the sheet to both companies from the same file, so they cannot disagree afterwards. Before writing, it compares every row with what each system holds right now and shows the differences for you to confirm. For the rollout push this is what put the catalog into HubSpot; for day-to-day changes it is the same button.

Rules that hold for every apply, rollout or not:

The one real rollout push so far

On 2026-08-26 the catalog, 371 active products, was applied to the Staging QuickBooks company and the production HubSpot portal. Every product already existed in QuickBooks, so that side was pure update; in HubSpot it also cleaned 265 descriptions that carried stray internal text. Afterwards, 16 products that MOM had discontinued were deactivated in QuickBooks by hand so that later exports match MOM's active set.

What is not part of this flow