All documentation
What comes across from ServiceM8
TradesSync syncs two things and attaches everything else to them. Once you understand that, the rest of the setup makes sense.
The two things
| In ServiceM8 | Becomes in GoHighLevel |
|---|---|
| Client | Contact |
| Job card | Opportunity — if you have opportunities switched on |
Opportunities are optional and off on a new account. With them off you still get every client as a contact, kept up to date, with tags driven by the job's status, queue, category or badges. Plenty of trades run it that way and build the rest with GoHighLevel workflows.
That is the whole model. Everything else attached to a job — line items, payments, notes, job contacts, attachments, checklists, form responses, badges, category and queue — is gathered up and becomes fields on that contact or opportunity.
Nothing turns into a separate GoHighLevel record. Your materials list does not become five GoHighLevel objects; it becomes a field on the opportunity containing the materials. That keeps your CRM readable instead of drowning it in records nobody looks at.
Everything that can come across
There are around 160 ServiceM8 fields available to map, grouped by where they live:
- Job — status, job number, description, address, dates, quote and invoice totals, payment state, PO number
- Client — name, full address broken into parts, website, payment terms, tax details
- Contacts — first name, last name, email, phone, mobile
- Category and queue — name, colour, timeframe
- Payments — amount, date, method, notes
- Materials — name, quantity, price, cost
- Notes — the note text and who wrote it
- Activities — scheduled start and end
- Attachments — file names
- Form responses — checklist and form data captured on site
- Badges — the badge names on the job
You decide which of those actually travel. See Field mapping.
How often
ServiceM8 is checked every five minutes for anything created or changed. There is nothing to press and no schedule to configure.
Nothing is ever duplicated. TradesSync remembers which ServiceM8 job matches which GoHighLevel opportunity, so the same job is updated over and over rather than creating a new opportunity every five minutes.
What does not come across
The sync starts the day you connect. It watches for jobs and clients that are created or changed from that point onwards. A job that has sat untouched since before you signed up will not appear on its own, because as far as ServiceM8 is concerned nothing has happened to it. Edit anything on it and it comes through on the next check — or ask us and we will bring your whole history across in one go.
Empty fields. Only what is actually there gets sent. If a job has no category, or the client has no email address, that field is skipped and everything else still syncs.
Anything you have not mapped. Unmapped fields simply do not travel. If you map nothing to a pipeline stage, no opportunity is created and the contact syncs on its own — which is a perfectly valid way to run it.
The direction of travel
The sync does not change, move or delete anything in your ServiceM8 account. If TradesSync stopped existing tomorrow your ServiceM8 would be exactly as you left it.
There is one optional exception, off unless you switch it on, covered in Leads into ServiceM8.
One consequence worth knowing: because ServiceM8 is the source of truth, if a client's name differs between the two systems, the ServiceM8 version wins and overwrites the GoHighLevel one on the next sync.