Events API
Record what happened and when - duty start, duty end, check-in, check-out - as a queryable operational timeline.
Where it's used
Use cases, value and how it works
Overview & Solution
A GPS track tells you where someone was. It does not tell you what they were doing, or what the business considers a completed action.
The Events API captures those moments explicitly. A field app raises an event when a shift starts, when a technician checks in at a site, when a form is submitted. Each event carries a type and action code, and can be tied to a specific record in your data layers - so the timeline links back to the customer, asset or job it belongs to.
Key Value Propositions
- Structured, not free text -
typeCode/actionCodepairs mean events can be counted, filtered and reported on, not just read. - Linked to your data - attach an event to a record so "checked in" means "checked in at this customer".
- One timeline - attendance, visits and custom milestones sit in the same queryable stream.
Industry Use Cases
1. Workforce Attendance & Shift Management
- Duty accounting - derive worked hours from on-duty and off-duty events instead of a separate attendance system.
- Shift compliance - surface late starts and early finishes without a manager reviewing tracks by hand.
2. Field Service & Inspections
- Check-in / check-out at site - establish time on site per job, and flag visits that were too short to be plausible.
- Milestone capture - record job stages as they happen rather than reconstructing them from a closing report.
3. Audit & Dispute Resolution
- Event trail - answer "when did this actually happen" with a timestamped record rather than a recollection.
- Operational reporting - count events by type, user or period to see throughput and where it drops.
Works well with
| Pair it with | To get |
|---|---|
| Tracking API | The route between two check-ins |
| PJP API | Planned visits alongside what actually occurred |
| Employee Management API | Events attributed to a known workforce record |
| Custom Data Layers API | Events linked to your own customer or asset records |
This API records and queries events. It does not push outbound webhooks to your systems - if you need Intelomatic to call your endpoint when something happens, talk to us about your requirements.
API reference
Field Force Mobility Execution APIs · Requires Intelomatic tenant
Quick try
curl -X POST 'https://api-gw.sovereignsolutions.com/gateway/$TENANT/api/ndms2/events?api-key=$API_KEY' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{"typeCode": "DUTY", "actionCode": "on_duty", "layerCode": "<optional layer>", "recordNodeId": "<optional record id>"}'
Endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /api/ndms2/events | Record an event |
POST | /api/ndms2/events/search | Search events |
Record an event
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
typeCode | body | string | - | |
actionCode | body | string | - | |
layerCode | body | string | - | |
recordNodeId | body | string | - |
{
"typeCode": "DUTY",
"actionCode": "on_duty",
"layerCode": "<optional layer>",
"recordNodeId": "<optional record id>"
}
Errors: non-2xx responses use the standard status codes listed on Errors.
Search events
Request parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
filter | body | object | - | |
filter.createUser | body | string | - |
{
"filter": {
"createUser": "<username>"
}
}
Errors: non-2xx responses use the standard status codes listed on Errors.
Notes
Observed typeCode/actionCode pairs: DUTY/on_duty, DUTY/off_duty.
This is an event ingestion endpoint: your devices and apps push events here. Outbound delivery (webhooks to your own systems) is a separate integration to design with the team if you need it.
Accepted events:
| No. | Action | Type ID | Type Code | Action Code |
|---|---|---|---|---|
| 1 | Turn off duty to on duty | 1 | DUTY | on_duty |
| 2 | Turn on duty to off duty | 1 | DUTY | off_duty |
| 3 | Login | 4 | AUTHENTICATION | login |
| 4 | Log out | 4 | AUTHENTICATION | logout |
| 5 | Create a local record | 2 | COLLECTOR | create_local_record |
| 6 | Edit a local record | 2 | COLLECTOR | edit_local_record |
| 7 | Remove local record | 2 | COLLECTOR | remove_local_record |
| 8 | Publish a new record | 2 | COLLECTOR | publish_new_record |
| 9 | Edit an online record | 2 | COLLECTOR | edit_online_record |
| 10 | Publish an edited version of an online record | 2 | COLLECTOR | publish_replacement_record |
| 11 | Remove an online record | 2 | COLLECTOR | remove_online_record |
| 12 | Launch app | 3 | APP_EVENT | launch_app |
| 13 | Resume app | 3 | APP_EVENT | resume_app |
| 14 | Have bad app setting | 6 | APP_SETTING | bad_setting |
| 15 | Submit evidence when setting up the app | 7 | EVIDENCE | initial_setup |
| 16 | Submit evidence when providing missing permission | 7 | EVIDENCE | missing_permissions |
| 17 | Check in a visit | 9 | VISIT | check_in |
| 18 | Check out a visit | 9 | VISIT | check_out |
| 19 | Cancel a visit | 9 | VISIT | cancel |
| 20 | Create order | 10 | ORDER | create_order |
| 21 | Create customer | 11 | CUSTOMER | create_customer |
| 22 | Expense submitted | 12 | EXPENSE | submitted_expense |
This list is not fixed - new event types and action codes can be declared through the Intelomatic User interface.