ServiceM8 integration
ServiceM8 is cloud job-management software for trade businesses.

ServiceM8 is cloud job-management software for trade businesses. Connecting it to TrainAR turns ServiceM8 jobs into training tasks — and posts session completion notes straight back to the job's diary in ServiceM8.
What syncs
Into TrainAR (real-time, webhook-driven):
- ServiceM8 jobs become tasks in TrainAR (
Open,In Progress, orCompleted). - Job title, description, customer, address, status, assignee, and due date are mapped automatically.
- Staff members from ServiceM8 are available for task assignment in TrainAR.
After OAuth completes, you're shown a staff allocation step. Tick the ServiceM8 staff you want to sync work for — only jobs assigned to allocated staff are imported. You can change this later in the integration card's Settings.
Back to ServiceM8 (when Sync direction = Import + Export): when an engineer completes a training session against a task that came from ServiceM8, TrainAR posts a diary note onto the job with the task title, the trainee's name, session duration and score, a link to the recording, and any session notes. The note appears in the job diary within seconds.
What you'll need
- Admin access to ServiceM8.
- Admin access to TrainAR.
- A ServiceM8 subscription that supports add-ons (most paid tiers).
- Both systems open in adjacent browser windows.
Step 1 — Connect ServiceM8
- In TrainAR, go to Dashboard → Integrations, find ServiceM8, and click Connect.
- Sign in with your ServiceM8 admin account in the OAuth window.
- Authorise the scopes: read jobs, manage jobs, read staff, manage notes (for diary writeback).
- Click Authorize. You're redirected back to TrainAR and 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.
- The card shows Connected and an initial job sync runs. Within 30–60 seconds your active jobs appear under Dashboard → Tasks.
Step 2 — Install the TrainAR add-on in ServiceM8 (real-time sync)
OAuth alone gives one-way import on initial sync + manual re-sync. For real-time updates, install the TrainAR add-on inside ServiceM8:
- In ServiceM8, log in as an admin and go to Settings → Add-Ons (may be labelled Extensions / Integrations / Marketplace).
- Search for TrainAR, open it, and click Install / Activate; confirm permissions if asked.
- Back in TrainAR's card, Last Sync starts updating continuously as job events flow in.
Step 3 — Choose sync direction
By default sync is Import-only. To send session notes back to ServiceM8 job diaries: Dashboard → Integrations → ServiceM8 card → Settings, set Sync direction = Import + Export, and Save.
Most teams choose Import + Export so dispatchers see training has happened without anyone logging it manually.
Step 4 — Test it
Import: create a ServiceM8 job TEST — TrainAR integration check, wait 30s (or click Re-sync), then find it under Dashboard → Tasks.
Writeback (if Import + Export): run a real training session against the test task on the glasses (writeback fires on session.completed), then check the ServiceM8 job diary for the TrainAR note (session ID, score, duration, video link). Delete the test task + job when done.
ServiceM8 MCP — voice control from the glasses
ServiceM8 publishes an official MCP server. When the integration is connected, TrainAR's AI assistant can talk to ServiceM8 directly — engineers can say "log two hours on this job" or "mark this job complete" without opening the ServiceM8 app. The MCP connection is automatic once the integration is connected.
Sync mode
| Mode | What happens |
|---|---|
| Real-time (recommended) | The TrainAR add-on pushes job changes the moment they happen. Latency: seconds. |
| Manual re-sync | Click Re-sync on the card (rate-limited to once every two minutes). Useful after a long offline period. |
There is no polling for ServiceM8 — the integration is webhook-driven only.
Status mapping
| ServiceM8 | TrainAR |
|---|---|
Work Order |
open |
In Progress |
in_progress |
| (anything else) | open |
When a training session marks the task completed, the ServiceM8 job is not auto-completed — writeback only posts a note; your team controls the job lifecycle in ServiceM8.
Troubleshooting
Card shows "Error" after connecting. The OAuth token exchange failed — disconnect and reconnect.
Jobs aren't appearing. Either the TrainAR add-on isn't installed (no real-time webhooks) or the initial sync errored — click Re-sync and check the sync history. Your subscription may not include add-on support.
Diary note isn't showing. Confirm Sync direction = Import + Export and that the task has an external_id (the ServiceM8 job UUID, set automatically).
The integration disconnected itself. OAuth refresh failed — reconnect from the card.
Disconnecting & privacy
Disconnect any time from the card. Imported tasks remain in TrainAR (you keep training history) but stop receiving updates, and writeback stops immediately. Only sync-related job fields flow between systems — TrainAR doesn't access ServiceM8 billing or time tracking, and ServiceM8 only ever sees the note posts writeback produces.