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

Troubleshooting

The things that come up most often, and what to check first. Almost all of them are answered by running Sync Preview on the job that is misbehaving.

Start with the sync log.

Almost everything below can be confirmed in a few seconds by opening the Sync Log and reading the entry for the job in question. It says what came in, what was sent, and what happened to it. Reading the sync log explains what you are looking at.

My jobs aren't appearing in GoHighLevel

Check both connections show green on the Credentials tab, then look at the Sync Log — it shows every sync and any errors against it.

Remember that only jobs changed since the last check are picked up. If nothing has happened in ServiceM8, nothing will sync. Edit a job and wait five minutes.

Contacts are syncing but not opportunities

There are three reasons, and your sync log entry says which one it was. Open the entry and read section 3.

Opportunities are switched off. New accounts start that way on purpose. Turn them on in Step 1, Setup. If you meant to be on contacts and tags only, nothing is wrong and the log will say “opportunity sync is turned off”.

No stages are mapped at all. GoHighLevel will not create an opportunity without knowing which pipeline and stage it belongs to, so it is skipped and the contact syncs on its own. Map them in Step 2, Pipeline.

Some values are mapped and some are not. The most common one by far. Check the section that matches your stage driver — Job Statuses, Queues or Categories. It is easy to map the obvious values and miss one, and the one you missed is usually the one the job is sitting in. Any value with no stage against it produces nothing.

My tag is syncing but my workflow is not firing

Almost always a spelling difference. GoHighLevel creates whatever tag it is given, so quote-sm8 and quote sm8 are two different tags and a workflow listening for one will ignore the other. Nothing errors — the tag applies perfectly, just not the one your workflow wants.

Open Step 2, Pipeline, clear the tag box and start typing again. Your existing GoHighLevel tags appear as you type — pick from that list rather than typing it out. Then check the tag on the contact in GoHighLevel matches the workflow trigger character for character.

The log says a lot of tags are “no longer applying”

That list is every tag in the same group that does not apply to this job — the other queues, the other statuses. It looks alarming because the list is as long as the number of queues you have.

GoHighLevel only removes the ones the contact actually had, which is usually one or none. It is how a job moving from Quote to Work Order loses its Quote tag rather than wearing both. Tags TradesSync knows nothing about are never touched, and a job with no queue or category set clears nothing at all.

A job failed saying the contact could not be created

GoHighLevel needs an email address or a phone number before it will create a contact. If the ServiceM8 client has neither — or has something in the email field that is not really an email — there is nothing to send.

An invalid email is dropped so the rest still goes across, but a client with a junk email and no phone number genuinely cannot sync. Add a phone number or fix the email in ServiceM8 and it will come through on the next change. The sync log entry names the actual reason GoHighLevel gave.

My badges show as “none named in your sync settings”

ServiceM8 sends badges as internal reference numbers rather than names, so TradesSync can only put a name to them once you have opened the Badges section of Step 2, Pipeline at least once.

Open it, press Save all mappings, and badges will be named from then on. You do not have to give any of them a tag.

Only one opportunity per customer is appearing

Contacts sync, the first job for each customer becomes an opportunity, and every job after that never arrives. This is almost always one GoHighLevel setting.

In GoHighLevel go to Settings → Objects → Opportunities and switch on “Allow more than one opportunity per contact in the same pipeline”. It is off by default. While it is off, GoHighLevel refuses every repeat job with “Can not create duplicate opportunity for the contact”.

Your Sync Log will show those syncs in red with that wording, so you can confirm it is this before changing anything.

Turning it on fixes new jobs straight away. The ones already refused will not come across by themselves — they only sync again when they next change in ServiceM8 — so get in touch and we will push them through for you.

Opportunities are failing with a "locationId" error

Your Location ID is missing from the Credentials tab. GoHighLevel needs to know which location an opportunity belongs to, so without it the contact syncs and the opportunity cannot be created. Grab the ID from your browser's address bar while you are in the location — the part after /v2/location/ — and save it.

My tag rule isn't showing up in GoHighLevel

Check the rule fires at all: run Sync Preview on a job card that should match and look for the tag under the fields sent. If it is not there, the condition is not matching.

Watch for exact spelling, and remember equals is an exact match — use contains if you are only matching part of a value. Tags added by rules stack rather than replace, so several rules can each add their own without wiping each other.

My older jobs haven't come across

That is expected. The sync runs from the day you connect, watching for jobs and clients created or changed from that point on. Jobs that have sat untouched since before you signed up will not appear on their own, because as far as ServiceM8 is concerned nothing has happened to them.

Two ways round it. Edit anything on the job in ServiceM8 and it will come through on the next check, which is fine for a handful. Or get in touch and we will bring your history across in one go.

A field is empty in GoHighLevel

Only what is actually there gets sent. If a job has no category, or the client has no email address, that field is simply skipped and the rest still syncs. Run Sync Preview on that job to see exactly what ServiceM8 holds for it.

Will this change or delete anything in my ServiceM8?

By default, no. The sync is one-way and read-only on the ServiceM8 side — nothing in your ServiceM8 account is changed or deleted.

There is one thing you can switch on, described in Leads into ServiceM8. Even with it on, existing clients are matched and linked, never modified. It is off until you turn it on and you can turn it off again at any time.

I have got in a muddle and want to start again

Open the Setup Wizard from the menu. It asks what you want TradesSync to do and sets it up cleanly, rather than leaving you to work out which of the four settings steps needs changing.

It will tell you first if you already have stages or tags configured, so you can see what you are about to change. Your field mappings and if/then rules are never touched by it, and turning opportunities off does not delete the stages you had mapped — it pauses them, and they are still there if you turn opportunities back on.

Can I change my mappings later?

Any time. Changes apply to the next sync — they will not rewrite anything already in GoHighLevel until that job changes again. Always worth a Sync Preview after editing.

Still stuck?

Get in touch at support@gcsoftwaresystems.co.uk and we will take a look. A real person reads it.