Fix Salesforce → QuickBooks Sync Issues (Not Working, Errors, Duplicates)
Diagnose and resolve common sync problems. We've documented the 4 most common issues, their root causes, and exactly how to fix them. See step-by-step fixes for duplicates, missing fields, rate limit errors, and connection issues.
Closed-Won Opportunity fails to create Invoice in QuickBooks: error 'Customer not found' or 'Item Ref Missing'
Also searched as: "Salesforce QuickBooks closed-won opportunity fails to create invoice in quickbooks: error 'customer not found' or 'item ref missing'"
#1 Opportunity Account name doesn't match any QB Customer name exactly (case-sensitive, spaces matter) 90% likely
📋 How to Diagnose
- 1. Find the Closed-Won Opportunity.
- 2. Note the Account name (e.g., 'Acme Corp').
- 3. In QB, search Customers for exact match. Try variations: 'Acme', 'Acme Inc', 'Acme Corp Inc'.
- 4. Check connector logs for 'Customer not found'.
✓ Solution
Create a mapping key: store Salesforce AccountId in QB as a custom field. Upsert Customer by external ID, not name.
⏱️ Est. time: 90 min
Use Make → ->QB has 5 versions of 'Acme' (Acme, Acme Inc., Acme Corp, etc.) from the same Salesforce Account
Also searched as: "Salesforce QuickBooks qb has 5 versions of 'acme' (acme, acme inc., acme corp, etc.) from the same salesforce account"
#1 Matching algorithm uses Display Name only. Name formats vary (typos, extra spaces, punctuation). 85% likely
📋 How to Diagnose
- 1. In QB, search 'Acme'.
- 2. Count results. If >1 for the same company, name-based matching failed.
- 3. Check if they share the same email address or domain.
✓ Solution
Stop matching by name. Match by email domain or Salesforce Account ID. This requires conditional logic (available in Make/n8n, limited in Zapier).
⏱️ Est. time: 45 min
Use Make → ->Only the first product from a multi-item Opportunity becomes an Invoice line item
Also searched as: "Salesforce QuickBooks only the first product from a multi-item opportunity becomes an invoice line item"
#1 Zapier's array handling is weak; it flattens or skips iterations. Make handles arrays natively. 70% likely
📋 How to Diagnose
- 1. Create Opportunity with 3 OpportunityLineItems (different products).
- 2. After sync, check QB Invoice. How many line items?
- 3. If just 1, array iteration failed.
✓ Solution
Use Make's Array Iterator module to loop through OpportunityLineItems and create a QB Invoice line for each.
⏱️ Est. time: 60 min
Use Make → ->Invoice totals differ between Salesforce and QuickBooks for multi-currency deals
Also searched as: "Salesforce QuickBooks invoice totals differ between salesforce and quickbooks for multi-currency deals"
#1 Exchange rate applied twice (or not applied at all) depending on connector configuration 60% likely
📋 How to Diagnose
- 1. Check Salesforce Opportunity CurrencyIsoCode and Amount.
- 2. Check QuickBooks invoice currency + exchange rate on that date.
- 3. Look for a second conversion in middleware mapping.
✓ Solution
Choose where conversion happens (Salesforce or QuickBooks) and make the other system accept the converted amount as-is. Store exchange rate used for auditability.
⏱️ Est. time: 60 min
Use Make → ->Ready to automate? We have a template for you.
Copy this Salesforce → QuickBooks blueprint, open Make.com, paste it into the canvas, and your workflow is ready to configure.
{
"name": "Salesforce → QuickBooks Sync",
"flow": [
{
"id": 1,
"module": "salesforce:WatchRecords",
"version": 1,
"parameters": {},
"mapper": {},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {},
"expect": [
{
"name": "body",
"type": "text",
"label": "Body"
}
]
}
},
{
"id": 2,
"module": "quickbooks:CreateRecord",
"version": 1,
"parameters": {},
"mapper": {},
"metadata": {
"designer": {
"x": 300,
"y": 0
}
}
}
],
"metadata": {
"instant": false,
"version": 1,
"scenario": {
"roundtrips": 1,
"maxErrors": 3,
"autoCommit": true,
"sequential": false
}
}
} Blueprint copied to clipboard — open Make.com and paste it into the canvas to activate your workflow.
Step 1: Try the Official Integration
Direct connection
Start with the native integration if available. It's usually the most reliable, but may have limitations.
View Setup GuideFree with your subscription
Step 2: Use Make for Custom Flows
No code automation
Create custom integration workflows with Make's visual designer. It works with almost any API.
Try Make Free ->1000 ops/mo free. No credit card.
Step 3: Self-Hosted with n8n
Full data control
Need complete data privacy? n8n is open-source and self-hostable. Build custom integrations with full control over your data.
Try n8n Free ->Open source. Self-host or cloud. Unlimited ops.
Step 4: Add Human Review
Approval automation
Relay adds human-in-the-loop approvals, Slack/Teams alerts, and conditional logic to your automation.
Try Relay Free ->1000 actions/mo free. No credit card.