TradesSync

Home / Blog

TradesSync is live

Integrations · · 5 min read · Gary Pratten
A ServiceM8 job card joined to a GoHighLevel pipeline card by a three core cable, under the words TradesSync is live.

Eight months. Somewhere around 300 hours. And a lot of patience from a handful of electricians who let me poke about inside their systems while I worked out what this thing actually needed to be.

TradesSync is live.

Why I built it

ServiceM8 is brilliant at running jobs. Quotes, scheduling, materials, invoices, photos from site, the lot. What it does not do is marketing. It was never built to nurture a lead for six weeks, chase a quote that went quiet, or fire off a review request the moment a job gets paid.

GoHighLevel does all of that beautifully. What it does not know is anything about your actual work.

So you end up running two systems with a person sat in the middle copying between them. Usually that person is you, at nine o'clock at night, half watching the telly, retyping a customer's address into a CRM because you know if you do not do it now the follow up will never happen.

That is the gap. That is the whole product.

What it actually does

TradesSync is job first. It does not try to mirror everything in ServiceM8 into GoHighLevel, because nobody wants a CRM full of line item records. It syncs two things.

Your company records become GoHighLevel contacts. Your jobs become opportunities in your pipeline.

Everything hanging off a job then gets pulled in and written onto those two records as fields. Materials, payments, notes, job contacts, attachments, checklists, badges, the queue it sits in, the category. So when you open a contact in GoHighLevel you can see the job value, what stage it is at, what was quoted, what has been paid, and what the last note said. All without opening ServiceM8.

Then it keeps it that way. Job moves in ServiceM8, opportunity moves in GoHighLevel. You do nothing.

Three things the trades taught me

I would have got all three of these wrong on my own.

Queues beat statuses. ServiceM8 gives you five fixed job statuses. Quote, Work Order, Completed, and so on. When I started, I assumed everyone would map their pipeline to those. Wrong. Almost every trade business I spoke to runs their real workflow in queues. Waiting on parts. Awaiting deposit. Booked in. Needs a revisit. That is where the actual state of the job lives. So now you choose what drives your pipeline stages: status, queue or category. Whichever one matches how you actually work.

Contacts only is a proper setup, not a broken one. One of my testers does not use opportunities at all. He syncs contacts and tags, then builds everything he needs with GoHighLevel workflows off the back of those tags. First time I looked at his account I thought something had failed. It had not. He was just doing it his way, and his way works. So that is now a supported setup and the system stops nagging him about it.

One setting in GoHighLevel will quietly ruin your day. There is an option buried in Settings, Objects, Opportunities called "Allow more than one opportunity per contact in the same pipeline". It ships turned off. Which means your customer's first job creates an opportunity and every repeat job after that gets refused. For a trade business with regular customers that is most of your work missing. It is now in the setup guide, in the help section and on the credentials screen, because I lost an evening to it and you should not have to.

Built for people who never log in

Here is the thing I keep reminding myself. Most people will set this up once and never open it again. That is not a failure, that is the point. If you are logging into a sync tool every week then the sync tool is not doing its job.

So the platform chases you rather than the other way round. If your pipeline is not mapped, it emails you. If jobs are failing to sync, there is a panel telling you what broke, in English, and whether it is something you can fix or something I need to fix. Not a stack trace. Not an error code. An actual sentence.

That took longer to build than the sync itself, and it was worth every hour.

What it costs

£37 a month, flat. Not per user, not per job, not per contact. There is a 14 day trial so you can connect it to your real accounts and see your real jobs land in your real pipeline before you pay anything.

What is next

Lead capture the other way round is built and going through testing now. New enquiry lands in GoHighLevel, and a client plus a job card appears in ServiceM8 at quote stage, ready for you to price. It is off by default while I put it through its paces on live accounts, because I would rather be slow than break someone's job list.

After that, better handling of cancelled bookings, more documentation, and whatever the next round of feedback throws up.

Thank you

Genuinely, thank you to the sparkies who spent their own time on this. Who screenshotted the weird thing at half seven in the morning. Who told me the bit I was proud of was useless and the bit I nearly cut was the reason they would pay for it. This is a better product than the one I set out to build, and that is entirely down to them.

If you run ServiceM8 and you have been meaning to sort out your follow up for about two years now, come and have a look.

Stop retyping jobs into your CRM

TradesSync keeps ServiceM8 and GoHighLevel in step on its own. Fourteen days free, then £37 a month.

Start free trial
Share this Facebook LinkedIn X