Skip to content
Office and managers

IoT alerts that create jobs

Declan Byrne · Last updated 10 Nov 2026 · 2 min read

Who this is for: dispatchers, managers and administrators who receive device alerts.

What you will learn: how a device alert becomes a job in the queue, how to triage it, and how to keep device credentials safe.

How an alert arrives

A device sends an authenticated alert to:

POST /api/v1/iot/alerts

The alert creates an unassigned job with source IoT alert. The job is deliberately not assigned: a person decides who attends and when.

Jobs with an IoT alert

What the job contains

Field Meaning
Title The alert title, or the device name and alert type
Priority critical → Urgent, warning → High, info → Normal
Description The alert text, device identity and sensor reading
Dispatch notes The sensor reading at the time of the alert
Source IoT alert
Status The default new-job status, normally Pending
Assets Linked when the alert identifies an asset

The alert is also recorded as a job note, so the original device wording is never lost. A retried alert with the same alert_id returns the original job instead of creating a second one.

Triage the alert

  1. Open Jobs and filter Source: IoT alert.
  2. Open the job and read the device, sensor and reading.
  3. Check whether the site is safe and whether stock or customers are affected.
  4. Set the visit window and priority.
  5. Assign a worker, or raise a case if the alert is a safety event.
  6. Record what you found. The alert is not a diagnosis.

Warning: A device alert is not an emergency call. If there is a risk to life, follow the emergency procedure first, then record it.

Credentials and retries

  • Each device has a serial and a secret. The secret is stored as a hash.
  • A wrong secret returns 401 and creates nothing.
  • The device may retry. Send the same alert_id to stay idempotent.
  • Rotate the secret if a device is lost or replaced.
  • Use HTTPS in production so the secret is never sent in clear text.

Example

php scripts/demo-iot-alert.php --serial=DEMO-DEVICE-002 \
  --secret=demo-device-secret-DEMO-DEVICE-002 \
  --severity=critical --alert-id=coldroom-2-001

The response includes the job public id, priority, status, whether it is assigned and whether it was a duplicate.

Check your understanding

  1. Why is an alert job left unassigned?
  2. How do you stop a retry from creating two jobs?
  3. What priority does a warning alert get?

Related: Jobs and workflow · Scheduling and dispatch · Devices and sensors

Was this helpful?

Did this answer your question?