Case 03 / 04Job system + accounting
ServiceM8 to Xero: before and after
How I'd fix the gap between ServiceM8 and Xero for an 11-technician plumbing and electrical business, so every completed job is billed once and the totals tie out.
Worked example on representative data.
- Area
- Job system + accounting
- Tools
- ServiceM8 · Xero
- Typical scope
- US$2,000–3,500
- Timeline
- About 5 weeks · 4 fixed milestones
01Context
A field services business with about 11 technicians (plumbing and electrical), one owner, one office administrator and an outside accountant.
Three months of completed ServiceM8 jobs, checked against Xero one by one.
The systems in play
| System | What it does for the business |
|---|---|
| ServiceM8 | Job cards, queues, scheduling, job sheets and invoices from the field. Where technicians and the office meet. |
| Xero | The ledger, bank feeds, tax reports and the accountant’s workspace. |
02Problem
What the owner sees
- Finished jobs that were never billed
- Customers invoiced the wrong amount
- The same customer in Xero three times
- An accountant who cannot trust the job numbers
The two systems are meant to agree, but they drift. Nobody notices until month-end, when the numbers do not tie out and the questions start.
| Everyday situation | What goes wrong |
|---|---|
| Completed jobs never invoiced | The job closes in ServiceM8 and nobody raises the invoice |
| Invoices keyed by hand | A typo changes the amount or the customer |
| Customers created again | Three contacts for the same account in Xero |
| Price list out of step | The job sheet and the Xero item disagree |
| Payments not matched | Bank lines wait for someone to find the invoice |
03Approach
Four steps, in this order. Each one ends with something you can read and check.
- LookA read-only review of ServiceM8 and Xero. Nothing is changed. Three months of completed jobs and invoices are pulled from both sides.
- MatchEvery completed job is looked for in Xero and sorted into four piles: matched, never invoiced, different amount, or invoiced twice.
- FixCustomers are merged to one contact, the price list is reviewed, and completed jobs reach Xero once. It is tested on your own jobs before go-live.
- WatchAnything that still does not tie out lands on a short weekly list with a named owner. The same three months are re-checked at handover.
| Item | What is wrong | Owner | What happens |
|---|---|---|---|
| Job 20418 | Completed, never invoiced in Xero | Office administrator | Invoice it or record why not |
| Job 20377 | Invoiced at US$95 less than the job sheet | Office administrator | Correct the invoice and note it |
| Customer: property manager account | Three contacts in Xero | Owner | Merge, keep the one with history |
| Job 20352 | Invoiced twice in Xero | Accountant | Void the duplicate |
| Payment US$2,260 | Not yet matched to a bank line | Accountant | Check next feed and mark cleared |
04What was built
What was set up, and why each piece is there. The detail of how it is configured is agreed in the scoping call.
Show the build, layer by layer
| Layer | What was set up and why |
|---|---|
| Job queues | Queues for each stage: quote, work order, completed, needs invoice. A job moves on only when the stage is done, so “completed” always means ready to bill. |
| Badges | Job badges flag what blocks billing (awaiting parts, needs approval, needs invoice), so the office sees exceptions on the board rather than in a spreadsheet. |
| Add-ons | The ServiceM8 add-ons that matter are switched on and tested: accounting, payments and forms, with the rest left off so there is less to maintain. |
| ServiceM8 to Xero sync | Completed jobs reach Xero once, with the right customer, items and tax. The mapping is tested on your own jobs before go-live. |
| Xero tracking categories | Tracking categories for service line and team, set from the job, so margin by line is a report. |
| Xero items | One item list that matches the ServiceM8 price list, each item tied to the right account. |
| Xero bank rules | Bank rules for the repeat payments, so most receipts match on their own and the rest land on a short list. |
How the data moves
- Job moves through the queues
- Completed and checked
- Invoice reaches Xero once
- Tracking categories and items applied
- Bank rules match the payment
- Exceptions list reviewed weekly
05Outcome
The aim is not a tidier spreadsheet. It is money that is billed once, numbers that agree and a short list that shows when something breaks. The figures below show the shape of a good result.
- Every completed job is billed once.
- Customers get the right invoice first time, so fewer disputes and late payments.
- Margin by service line and team is a report, from tracking categories.
- Most receipts match on their own; the rest are on a short list.
- Written rules for the office, so the set-up survives staff changes.
06Before and after
The same three months, checked at the start and re-checked at hand-over.

| Check | Before |
|---|---|
| Completed jobs in the period | 1,215 (US$842,300 invoiced) |
| Matched to a Xero invoice, same amount | 1,098 (90.4%) |
| Completed in ServiceM8, never invoiced in Xero | 52 (US$31,700) |
| In both, but the amounts differ | 39 (net difference US$4,980) |
| Invoiced twice in Xero | 26 (US$14,300 counted twice) |
| Customers in Xero with duplicate records | 74 |
| Office time spent retyping and chasing | About 9 hours a week |
| Month-end close | About 5 working days |
| Check | After |
|---|---|
| Completed jobs in the period | 1,215 (US$842,300) |
| Matched, same amount | 1,215 of 1,215 |
| Never invoiced in Xero | 0 |
| Invoiced twice | 0 |
| Amounts differ | 0 unexplained (2 listed as agreed adjustments) |
| Customers with duplicate records | 0 |
| Weekly exceptions list | About 9 items, reviewed in about 15 minutes |
| Office time spent retyping and chasing | Under 1 hour a week |
| Month-end close | About 2 working days |
07Scope and milestones
A fixed scope agreed in writing before anything starts. Each milestone is paid when you sign off its deliverable.
| Area | Included |
|---|---|
| Health Check | Read-only review of ServiceM8 and Xero, a 45-minute call, written findings and a fixed quote |
| Billing check | Three months of completed jobs compared with Xero invoices one by one |
| Customers | One clean customer list across both systems |
| Price list | Jobs billed at the agreed prices, with a margin review |
| Invoice flow | Completed jobs reach Xero once, correct and complete, tested on your own jobs before go-live |
| Exceptions | A weekly list of anything that does not tie out |
| Handover | Written SOPs, a recorded walkthrough and files you own, plus 14 days of fixes after go-live |
| Not included | Tax filing or payroll. |
| Also outside the scope | Changes to how jobs are priced. Moving to different accounting software. Software subscriptions (billed to you by the vendors). |
| Milestone | Deliverable | Timing | Share |
|---|---|---|---|
| M1 Health Check and billing check | Findings list and a fixed quote | Week 1 | 20% |
| M2 Clean-up | One customer list, price list reviewed, differences listed | Weeks 2 to 3 | 30% |
| M3 Invoice flow live | Completed jobs reach Xero once, tested on your own jobs | Weeks 3 to 4 | 35% |
| M4 Handover | SOPs, walkthrough, weekly exceptions list, 14 days of fixes | Week 5 | 15% |
Typical scope for this kind of project: US$2,000–3,500
About 5 weeks across 4 fixed milestones. The Systems Health Check (US$300, fixed) comes first and confirms the scope.
Tell me what’s bugging you and I’ll tell you where I’d look first.
Send a short note on Upwork about what is slowing the business down. I’ll reply with where I’d start, and whether the US$300 Systems Health Check is the right first step.