Each pricebook item in Run a Call needs to correspond to a Product or Service in QBO. Map them once and every invoice's line items land on the right income account.
How mapping works
When a Run a Call invoice syncs:
- For each line item, Run a Call looks up the matching QBO product by name.
- If found, the line posts using that QBO item.
- If not found, the sync logs an error: "Item 'X' not found in QBO."
There's no in-app auto-create toggle — every QBO product needs to exist on the QBO side first (either created in QBO directly or pushed from the pricebook on a successful sync).
Match by name — keep them identical
The integration matches purely on the item name. To avoid mismatches:
- Keep item names consistent between Run a Call and QBO.
- Avoid trailing whitespace, double spaces, or inconsistent capitalization.
- If you rename in one place, rename in the other.
Pricebook → QBO direction
When you connect QBO, Run a Call pushes the pricebook to QBO as part of the initial sync — items in your pricebook get created as QBO Products & services.
After that:
| Source | Behavior |
|---|---|
| New items added in Run a Call | Push to QBO on the next sync window. |
| Price changes in Run a Call | Propagate to QBO. |
| Price changes in QBO | Do not propagate back — Run a Call is the source of truth for customer-facing pricing. |
When a sync fails on an unmapped item
If you see "Item 'Capacitor 35/5' not found in QBO" in the sync log:
- Create the matching item in QBO Products & services with the exact same name.
- Open the failed invoice in Run a Call.
- Click Retry sync.
The line will resolve and the invoice will post.