TradesSync.
All documentation
  1. Overview
  2. Getting started
  3. What syncs
  4. Pipeline stages
  5. Field mapping
  6. Tags
  7. If/then rules
  8. Leads into ServiceM8
  9. Reading the sync log
  10. Common setups
  11. Troubleshooting

Home / Docs

Moving jobs through a GoHighLevel pipeline

ServiceM8 sorts jobs four different ways. One of them drives your GoHighLevel pipeline stage. Choosing which is the most consequential decision in a pipeline setup.

You do not have to use a pipeline at all.

Opportunities are switched off on a new account, and plenty of trades leave them that way — their clients sync as contacts, tagged by job status, and GoHighLevel workflows do the rest. If that is you, none of this page applies. See Tags.

Everything below is for when you do want jobs moving through pipeline stages. Turn Create opportunities on in Step 1 first, or none of it takes effect.

The four ways ServiceM8 sorts a job

SortValuesPer job
StatusFive fixed: Quote, Work Order, In Progress, Completed, UnsuccessfulOne
QueueYour own, whatever you have createdOne
CategoryYour own, usually the type of workOne
BadgeYour ownSeveral at once

Exactly one of status, queue or category can drive the pipeline stage. Badges never drive a stage, because a job can carry several at once and an opportunity can only be in one place.

All four can apply tags, whichever one you pick as your driver. That part is independent, and it works whether opportunities are on or off.

Choosing your driver

Job status

The simplest option, and the right one if your GoHighLevel pipeline broadly mirrors quote → work → done. The limitation is that there are only five values and you cannot add to them, so if your real process has more steps than that, the pipeline will feel coarse.

Queue

This is what most trades should pick. If you drag jobs between queues during the day — Awaiting Parts, Booked In, Needs Certificate — then your queues already are your pipeline, and pointing GoHighLevel at them means the CRM mirrors how you actually work rather than how the software thinks you should.

Category

Right when your pipeline is organised by type of work rather than progress through it. Less common, but if your GoHighLevel pipelines are split by service line, this is the one.

You can change your mind later.

Switching drivers applies from the next sync onwards. It will not retrospectively rearrange opportunities already sitting in GoHighLevel — those move when their job next changes in ServiceM8.

Mapping the values

The choice is made on Step 1, Setup of Sync Settings. The mapping itself happens on Step 2, Pipeline, and only the option you chose offers pipeline and stage columns there. Work down it and, for each ServiceM8 value, pick the GoHighLevel pipeline and the stage within it. These cannot be pre-filled for you — your pipelines are unique to your account.

Opportunities can move between different pipelines, not just between stages of one, so you can send urgent work into one pipeline and routine work into another.

A value with no stage against it creates no opportunity.

This is the single most common setup problem. Map four of your five statuses on Step 2 and the job sitting in the fifth will sync its contact and quietly skip its opportunity. If contacts are appearing but opportunities are not, this is almost always why — see Troubleshooting.

The two you did not pick

They are not wasted. They sit on the same Step 2 page, and whichever of status, queue and category is not driving your stage can still apply tags in GoHighLevel. So can badges. That is how information like EICR or needs certificate reaches your contacts so workflows can trigger from it.

Tags behave differently depending on where they come from, and the difference matters. See Tags.

Check before you commit

Use Sync Preview on a real job card. It applies exactly the same stage logic the live sync uses, so what it shows you is what would happen — including which pipeline and stage the opportunity would land in, and which tags would go on the contact.