ServiceM8 setup guide
This is the full step-by-step for connecting TrainAR to ServiceM8.
This is the full step-by-step for connecting TrainAR to ServiceM8. For an overview of what the integration does, see the ServiceM8 integration page.
Before you start
Confirm:
- You have admin access to ServiceM8.
- You have admin access to TrainAR.
- Your ServiceM8 subscription includes the ability to install add-ons (most paid tiers).
- You have both systems open in adjacent browser windows.
Step 1 — Connect ServiceM8
- In TrainAR, log in and go to Dashboard → Integrations.
- Find ServiceM8 in the list of available integrations and click Connect.
- You'll be redirected to ServiceM8's sign-in page.
- Sign in with your ServiceM8 admin account.
- You'll see a permissions screen from ServiceM8 asking to authorise:
- Read access to jobs.
- Manage access to jobs (status, custom fields).
- Read access to staff.
- Manage access to notes (for writeback to job diaries).
- Click Authorize.
- You're redirected back to TrainAR. A Post-connection Setup modal opens — tick which ServiceM8 staff to sync work for, and toggle Writeback enabled if you want session notes flowing back to ServiceM8.
- The card shows Connected, and an initial job sync runs for the staff you allocated.
Within 30–60 seconds, your active ServiceM8 jobs appear under Dashboard → Tasks.
Step 2 — Install the TrainAR add-on in ServiceM8 (real-time sync)
The OAuth connection alone gives you one-way import on initial sync + manual re-sync. For real-time updates (jobs created in ServiceM8 appear in TrainAR within seconds), install the TrainAR add-on inside ServiceM8.
- In ServiceM8, log in as an admin.
- Go to Settings → Add-Ons (sometimes labelled Extensions, Integrations, or Marketplace depending on your ServiceM8 version).
- Search for TrainAR.
- Click the TrainAR add-on result.
- Click Install or Activate.
- Confirm permissions if asked.
- The add-on status should change to Installed or Active.
Back in TrainAR's Integrations card, the Last Sync timestamp will start updating continuously as job events flow in.
Step 3 — Choose sync direction
By default, sync runs Import-only — ServiceM8 jobs become TrainAR tasks, but training completion stays in TrainAR.
To have session notes flow back to ServiceM8 job diaries:
- Dashboard → Integrations → ServiceM8 card → Settings.
- Set Sync direction to Import + Export.
- Click Save.
Now whenever a training session is completed in TrainAR against a task that came from ServiceM8, a diary note posts back to the ServiceM8 job.
Tip: Most teams choose Import + Export so dispatchers see training has happened without anyone manually logging it. Choose Import only if you prefer to keep TrainAR's activity invisible to the rest of your ServiceM8 workflow.
Step 4 — Test the integration
Test import (ServiceM8 → TrainAR):
- In ServiceM8, create a test job titled
TEST — TrainAR integration check. - Wait 30 seconds (or click Re-sync on the TrainAR card to force an immediate pull).
- In TrainAR, go to Tasks and search for
TEST — TrainAR. - Confirm the task appears with the correct title and the assignee carried over.
Test writeback (TrainAR → ServiceM8), if you set Sync direction = Import + Export:
- In TrainAR, open the test task in Dashboard → Tasks.
- Run a real training session against it on the glasses (writeback fires on
session.completed, not on marking the task manually). - After the session pipeline finishes, open the ServiceM8 job.
- Check the diary — you should see the TrainAR note with session ID, score, duration, and a video link.
Clean up:
- Delete the test task in TrainAR (Tasks → row → Delete).
- Delete the test job in ServiceM8.
You're ready for production.
Re-syncing manually
If you change a lot of jobs in bulk in ServiceM8 (or you've been offline for a while), trigger a manual sync rather than waiting for the next webhook:
- Dashboard → Integrations → ServiceM8 card → Re-sync.
- The card shows Syncing… then Last sync: just now.
The Re-sync button is rate-limited to once every two minutes to avoid hitting ServiceM8's rate limits.
Disconnecting
If you need to remove the integration:
- Dashboard → Integrations → ServiceM8 card → Disconnect.
- Confirm in the dialog.
Tasks that were imported remain in TrainAR (so you don't lose training history). They simply stop receiving updates and writeback stops immediately. You can reconnect later by clicking Connect again.