Tasks · Last updated 18 May 2026 · 3 min read

Tasks from integrations

When you've connected a field-service or job-management integration (ServiceM8, Jobber, Commusoft, Simpro), jobs from that system flow into TrainAR as tasks au…

When you've connected a field-service or job-management integration (ServiceM8, Jobber, Commusoft, Simpro), jobs from that system flow into TrainAR as tasks automatically. Engineers see them in the Core App on their glasses without anyone in dispatch touching the Dashboard.

How the sync works

  1. A job is created or updated in the source system (your FSM).
  2. TrainAR receives the change — webhook for FSMs that support it (ServiceM8, Jobber, Simpro), polling for Commusoft.
  3. A task is created or updated in TrainAR using the synced job's title, description, assignee, status, scheduled date, and external reference ID.
  4. The engineer sees it on the glasses on their next sync.

Direction is shown on the integration card — Import, Export, or Import + Export. Tasks from integrations are an Import; writeback (see below) is the Export.

Staff allocation

When you connect an integration, you don't sync every job for every staff member at the FSM. You pick which FSM staff to sync work for. After OAuth completes, the Post-Connection Setup modal lists the FSM's staff with checkboxes — toggle on the staff you want jobs synced for.

Only jobs assigned to allocated staff are imported.

User-matching

TrainAR matches FSM staff to TrainAR users by email address (case-insensitive). The flow:

  1. On sync, TrainAR looks up integration_user_mappings for each FSM staff UUID — if a mapping exists, use it.
  2. If no mapping, TrainAR falls back to matching by email: the FSM staff member's email vs your tenant users' emails.
  3. On match, the task's assignee is set to the matched TrainAR user.

If no match (your FSM uses a personal email, TrainAR uses work email), tasks come in unassigned. Two fixes:

  • Update one side so the emails match
  • Invite the engineer's FSM email as a tenant user

Status sync

When a job is updated in the FSM after task creation:

  • Rescheduleddue_date updates on the TrainAR task.
  • Reassigned to a different engineer — TrainAR task assignee updates.
  • Job notes / description updated — TrainAR task description updates.

Cancellation in the FSM may or may not propagate depending on the integration — see the per-integration page for specifics.

Writeback to the FSM

The other direction — TrainAR pushing session results back to the FSM — is controlled by a single Writeback enabled toggle in the Post-Connection Setup modal (and in the integration's Settings modal afterwards). See Tasks → sessions writeback.

Filtering tasks by source

In Dashboard → Tasks, the Completed By filter (on the All / Completed tabs) lets you split by completion source — Session / Manual / Integration. Useful for spotting tasks that were closed in the FSM directly vs. completed via a TrainAR session.

The source-of-creation badge on each row (Manual / API / Integration with provider name) tells you where the task originated.

Re-syncing

If you suspect a webhook missed (rare — TrainAR retries on failure), you can force a re-sync:

  1. Dashboard → Integrations → [integration] → Re-sync button
  2. Or open the Settings modal and trigger from there

A re-sync re-fetches the visible window of jobs and reconciles changes. Already-synced tasks update in place; new jobs become new tasks.

Common edge cases

Tasks come in unassigned. Email mismatch between FSM and TrainAR — see User-matching above.

A job exists in the FSM but no task appears in TrainAR. Most common cause: the FSM staff member it's assigned to isn't allocated in the integration settings.

Duplicate tasks. Usually only if the same job has somehow been imported via two integrations (rare). Disconnect one.

Webhook silently failing. Check the integration card — it'll show an error badge with the last-sync error message. Click Re-sync to force a fresh pull.

Where to next