Here’s a conflict nobody warns you about.
Good job costing needs structure in the chart of accounts — revenue separated by service line, costs coded so margin is visible per job. That’s the whole point of doing it.
And at least one widely used field service integration will fail to sync an invoiceif the products and services on it are allocated to an income account other than the default. Categorize them into product and service types, make them sub-items, or point them at anything other than ‘Sales’, and the sync errors.
So the accounting structure that makes job costing meaningful is the accounting structure that breaks the connector.
That’s documented, not inferred. And it’s the shape of the whole problem: field service tools and accounting systems have different ideas about what a job is, and the integration is where those ideas collide.
Start with the direction
Most field service integrations run one way, from the operations tool into QuickBooks. Jobber, ServiceTitan, Workiz and Housecall Pro all work this way. Kickserv, mHelpDesk and Service Autopilot offer two-way sync.
One-way isn’t automatically worse. It means the field tool is the system of record for jobs and QuickBooks receives the accounting consequences — which is coherent, and arguably correct. What it means practically is that changes made in QuickBooks don’t flow back, so the two systems can disagree without anything flagging it.
Taking Jobber as the worked example — chosen because it documents its own limitations unusually openly, which is a point in its favor — the sync carries clients, products and services, timesheets, invoices, payments, refunds, tips and payouts. QuickBooks Online only; there’s no Desktop integration.
Worth noting one thing that has changed: under Jobber’s newer QuickBooks integration, costs sync fromQuickBooks into Jobber on initial import, after which Jobber becomes the source of truth for costs and subsequent changes flow to QuickBooks. Older accounts of this integration describe expenses not syncing at all. Check which version an existing client is on before repeating anything you’ve read.
Related: When the native connector isn’t enough
Five documented breakages
All from vendor documentation. Each one has a job costing consequence.
1. Income account allocation breaks the sync
Allocate a product or service to an income account other than the default, make it a sub-item, or categorize it by type, and the invoice will fail to sync. Separating revenue by service line is exactly what job costing needs — and exactly what the integration won’t carry.
That’s a genuine architectural fork, and it should be a decision rather than a discovery.
2. Sub-customers don’t sync
3. Markups and unit costs don’t sync on some tiers
4. Deletions don’t propagate
5. Client matching is by name
View data
| Data type | Crosses? | Note |
|---|---|---|
| Clients | Yes | Matched on display name. |
| Products and services | Yes | Only if left on the default income account. |
| Invoices | Yes | To customers, not sub-customers. |
| Payments, refunds, tips | Yes | Requires a Bank / Checking account. |
| Timesheets | Yes | Entries spanning midnight must be split first. |
| Payouts | Yes | Requires a Bank / Checking account. |
| Markups | No | Tier-dependent — not on the Grow plan. |
| Unit costs | No | Tier-dependent — not on the Grow plan. |
| Sub-customers / properties | No | Invoices sync to customers only. |
| Overnight shift entries | No | QuickBooks cannot hold an entry spanning midnight. |
| Deletions | No | The integration can add and change, not delete. |
Related: The duplicate transaction problem
Two more worth knowing
Overnight shifts have to be split. QuickBooks doesn’t support timesheet entries that span midnight. A technician working 10pm to 3am needs two entries: 10:00pm–11:59pm and 12:00am–3:00am. For emergency call-outs and any overnight work, that’s a recurring manual correction, and if nobody’s doing it, labor cost on those jobs is wrong.
Payment sync needs a specific account type. Syncing Jobber Payments payouts and fees requires a bank account in the chart of accounts set as account type Bank with detail type Checking. Without it, fees and payment records don’t sync. It’s a small configuration detail with a silent failure mode.
The exclusion lists are the real specification
A general point that applies well beyond one vendor.
Field service tools publish what their integration syncs. The more useful document is what it doesn’t— and those lists are long. One field service platform’s exclusions from its QuickBooks sync run to estimates, general journal entries, expenses, time tracking and payroll, bank and reconciliation data, item costs, statement charges, discounts on payments, cost on non-inventory products, and balance adjustments.
Read as a feature list, the integration syncs a great deal. Read as an exclusion list, half of job costing isn’t in it.
Read as a feature list, that integration syncs a great deal. Read as an exclusion list, half of job costing isn’t in it.
Ask for the exclusion list before you connect anything. A vendor that publishes one clearly is being straight with you. A vendor that doesn’t have one has just told you something too.
Related: Nine questions to ask before buying any QuickBooks integration
Setting it up so job costing actually works
- Decide where job costing lives before you connect anything. In the field service tool, or in QuickBooks. Trying to do it properly in both is how the conflicts above become month-end problems.
- If it lives in the field tool, keep the QuickBooks chart of accounts simple. Flat revenue, default income account, no sub-items. QuickBooks holds the accounting; job margin comes from the operations tool. This is the configuration most integrations expect.
- If it lives in QuickBooks, expect to fight the connector. Structured revenue accounts, sub-customers per property, and cost detail per line are exactly what several integrations don’t carry. Budget for manual work or choose a two-way connector that supports it.
- Check the plan tier. The QuickBooks connection often sits behind a higher plan, and specific fields — markups, unit costs — can be tier-dependent. That changes the real cost of the stack.
- Standardize client naming across both systems before the first sync, and agree who creates new clients and where. Name-matched integrations duplicate quietly.
- Create the checking-type bank account the payment sync requires, and confirm fees and payouts are actually landing.
- Establish who splits overnight timesheets, and check it’s happening. Labor cost on emergency work depends on it.
- Reconcile job margin against the P&L monthlyfor the first quarter. If job-level profit in the field tool doesn’t tie to gross margin in QuickBooks, something in the list above is the reason.
The reviews contradict each other, and both are right
Worth addressing, because anyone researching this will hit it.
Reviews of the same integration describe it as seamless — running quietly in the background, eliminating re-keying — and as unusable, with at least one describing unsyncing it entirely and managing QuickBooks manually.
Both are accurate, and the difference is almost certainly configuration. A business with flat revenue accounts, no sub-customers, consistent client naming and daytime shifts will find the sync invisible. A contractor with revenue split by service line, properties as sub-customers, markup-based pricing and overnight call-outs will hit every constraint above at once.
The integration isn’t good or bad. It fits a particular accounting structure, and whether that’s yours determines everything.
The short version
- Allocating products and services to a non-default income account can break the invoice sync outright. Structured revenue accounts and the connector are in conflict.
- Most field service integrations are one-wayinto QuickBooks — Jobber, ServiceTitan, Workiz, Housecall Pro. Kickserv, mHelpDesk and Service Autopilot are two-way.
- Sub-customers don’t sync. Properties under a parent client — the standard contractor structure — don’t survive.
- Markups and unit costs are tier-dependent. Without them, job margin can’t be calculated in QuickBooks.
- Deletions don’t propagate, and client matching is by name, so drift and duplicates accumulate.
- QuickBooks can’t hold an overnight timesheet entry. Split at midnight or labor cost is wrong.
- The exclusion list is the real specification. Ask for it before connecting.
- Decide where job costing lives— the field tool or QuickBooks — before configuring either.
Frequently asked questions
Is Jobber's QuickBooks integration one-way or two-way?
One-way from Jobber into QuickBooks Online for clients, products and services, timesheets, invoices, payments, refunds, tips and payouts. Under the newer integration, costs sync from QuickBooks into Jobber on initial import, after which Jobber becomes the source of truth for costs and changes flow back. There is no QuickBooks Desktop integration.
Why won't my Jobber invoice sync to QuickBooks?
The most common documented cause is customization of the products and services used on the invoice. If an item has been made a sub-item, categorized into a product or service type, or allocated to an income account other than the default, the sync will error and the invoice won’t transfer.
Do sub-customers sync from field service software to QuickBooks?
Frequently not. Invoices sync to customers rather than sub-customers, and properties have no active sync, so only the billing address appears on the QuickBooks invoice. That matters because sub-customers are how QuickBooks natively tracks jobs or properties under a parent client.
How do I track job costing between field service software and QuickBooks?
Decide first where job costing lives. If it lives in the field service tool, keep the QuickBooks chart of accounts simple so the sync works and derive margin in the operations tool. If it lives in QuickBooks, expect to work around integration constraints on income accounts, sub-customers, markups and unit costs, or choose a two-way connector that carries them.
Why doesn't my job margin match my QuickBooks profit and loss?
Usually because cost detail isn’t crossing. Markups and unit costs are tier-dependent on some integrations, expenses are excluded entirely on others, and overnight timesheets that weren’t split at midnight understate labor. Reconcile job-level margin against gross margin monthly for the first quarter after connecting anything.
Can QuickBooks handle overnight shifts in timesheets?
No. QuickBooks doesn’t support timesheet entries spanning midnight. A shift from 10pm to 3am has to be entered as two entries, one ending at 11:59pm and one starting at 12:00am. For businesses with regular overnight or emergency work, that’s a recurring manual correction.
What should I check before connecting field service software to QuickBooks?
Ask for the exclusion list — what the integration doesn’t sync, which is more informative than what it does. Then check sync direction, which plan tier the integration requires, whether markups and unit costs are included at that tier, how clients are matched between systems, and whether sub-customers are supported.
QuickBooks Online ProAdvisor and Xero Certified Advisor. Leads delivery for US CPA firm engagements at Nimblechapps Finance.
Job margin never ties to the books?
We make the call on where job costing lives before the connector goes on, not after.
Book a call