ServiceM8 integrates with Xero out of the box. The standard connection syncs your customers, sends invoices raised in ServiceM8 to Xero, and brings payments back, so the office does not key the same invoice twice. What it does not do is everything a bookkeeper eventually asks for: the site address on the invoice, tracking categories, purchase order numbers, control over the state an invoice arrives in, and anything to do with supplier bills or job costs. Those gaps are filled with a custom integration built on the two APIs, from $2,000 plus GST.

What the standard sync does

ServiceM8 has a built in connection to Xero (and to QuickBooks and MYOB). Once it is linked, as ServiceM8 describes it, customers are matched or created in Xero, invoices you raise in ServiceM8 flow into Xero, and payments recorded in Xero come back so the job shows as paid. Items and tax rates are mapped so the lines land in the right accounts.

For a business that quotes, does the work, invoices from the job and gets paid, that is most of the accounting admin gone. If you have not set it up, do that first. It is free and it is the right foundation for anything custom.

The gaps people hit

These are the questions that come up again and again in the ServiceM8 community and in my own inbox. The exact behaviour depends on your settings and on the version you are running, so check your own account before assuming any of them applies to you.

How a custom integration fills them

Both systems have well documented APIs. ServiceM8's reads and writes jobs, clients, sites, form responses and attachments, and it can notify a program when a job changes through webhooks. Xero's API reads and writes invoices, contacts, tracking categories, attachments and bills.

A custom integration is a small program that sits between them. A typical build listens for an invoice being raised in ServiceM8, reads the job and its site, then writes or updates the invoice in Xero with the site address in the description, the PO number in the reference, the right tracking category, and the signed docket attached. It logs every invoice it touched so the bookkeeper can see what happened.

Sometimes that runs alongside the standard sync, filling in the fields the sync leaves blank. Sometimes it is cleaner for the custom build to take over invoice creation entirely and leave the standard sync for customers and payments. Which one is right depends on how your office works, and it is the first thing to settle in the scoping call.

The job cost side works the other way. The program reads bills in Xero that carry a job number in the reference, and writes the cost back to the ServiceM8 job so that job profit is visible where the work is managed.

Questions to answer before building

Most of these take a sentence each to answer. Getting them written down before any code is written is most of what makes an integration reliable.

What it costs

An integration is from $2,000 plus GST, fixed price, with a 50% deposit and the balance when it has run on your real invoices for a week and your bookkeeper is happy. You keep the code and the documentation. Care at $252 a month covers monitoring and fixes when either ServiceM8 or Xero changes something.

If you are not sure whether your problem is a settings fix or a build, a 15 minute call will tell you, and I will say so if it is the cheaper answer.