packages/pieces/community/quickbooks-desktop-conductor/README.md
Syncs invoices, bills, customers, vendors, and payments with QuickBooks Desktop — the installed Windows application, not QuickBooks Online. QuickBooks Desktop has no cloud API of its own, so this piece bridges through Conductor, a paid intermediary that talks to QuickBooks Desktop via its QuickBooks Web Connector (QBWC).
Because of that bridge, every sync depends on the QuickBooks Desktop machine being on, QuickBooks running with the right company file open (or configured to open without it — see below), and the Web Connector reachable. This piece cannot see or change that from the Activepieces side — if the tenant's machine is off, syncs simply don't happen until it's back.
Run turbo run build --filter=@activepieces/piece-quickbooks-desktop-conductor to build the piece.
.qwc file and importing it into the QuickBooks Web Connector (QBWC) — a small
utility that ships with QuickBooks Desktop. Importing the .qwc file makes QuickBooks Desktop
show a one-time authorization prompt.end_usr_) from the End-Users page.Multi-tenant considerations. If one Conductor account/secret key ends up serving many tenants (rather than one Conductor account per tenant), keep in mind:
Error message contains "QuickBooks Desktop connection failed" / code QBD_CONNECTION_ERROR.
The bridge to that specific QuickBooks Desktop machine is down — almost always because the machine
is off, asleep, QuickBooks Desktop isn't running with the right company file open, or (see above)
the Web Connector authorization was set to prompt-every-time and nobody's there to approve it. This
piece treats this as a normal, expected condition for QuickBooks Desktop (not a bug) — actions throw
so the failed run is visible, and the two triggers simply produce zero results that poll cycle
rather than erroring, since "the machine is off tonight" isn't a flow failure worth alerting on.
A customer/vendor/item name isn't matching even though it exists in QuickBooks. Name matching
is exact and case-sensitive against QuickBooks Desktop's own name field. Check for a trailing
space, a different capitalization, or a sub-account/sub-customer syntax mismatch (QuickBooks
Desktop uses Parent:Child for hierarchy).
transactionTypes set to the bill-payment types
instead.created_at and updated_at
fields in its output.