Skip to content

Events

One set of events drives three things: the toasts in the console, the realtime stream, and outbound webhooks.

Field
typeThe event type, listed below
messageA short human-readable line, shown in the toast
stickyWhether the toast stays until dismissed
dataStructured payload: ids, loan number, person name
atISO timestamp
TypeFires when
submission.createdA repair is lodged. Sticky when lodged by a client
submission.statusIts status changes
submission.vendorIt is sent to, or updated by, an external repair vendor
TypeFires when
ticket.createdA ticket is raised
ticket.statusIts status changes
ticket.commentA public reply is added. Internal notes do not fire
ticket.mergedTwo tickets are merged
TypeFires when
loan.assignedA loan is issued
loan.returnedA loan comes back
loan.registeredA device is added to a pool
loan.removedA device is removed
loan.bulkA bulk action runs
loan.syncedA pool syncs from an MDM smart group
TypeFires when
sla.breachA response or resolution target is missed. One shot per item
automation.matchAn automation rule matched a new submission
TypeFires when
monitor.upA monitored service recovers
monitor.downIt goes down
monitor.alertAn alert threshold is reached
TypeFires when
backup.successA backup completes
backup.failedOne does not
TypeFires when
kiosk.requestAn assistance request is raised at the kiosk
kiosk.resolvedIt is approved or denied
security.resolvedA security approval request is decided

In the console. Automatic. This is what makes the desk update itself.

In your own system. Register an outbound webhook. Signed with HMAC-SHA256, and you can filter to specific types.

In a browser client of your own. Subscribe to /api/events with EventSource, inside an authenticated session.

ticket.comment only fires on public replies. Internal notes never generate an event, and never send an email. That is the same rule everywhere: an internal note is for the desk.

sla.breach fires once per item. A breach that stays breached does not generate a new event every minute, because people mute an alert that repeats.

submission.created is sticky when the source is a client. A booking made at the kiosk while nobody was looking at the screen is still there when somebody is.

Order is not guaranteed. Two events fired close together can arrive in either order at a webhook receiver. Build for that.

Events are filtered by tenant before delivery. A subscriber receives only their own tenant’s events, and a webhook endpoint only receives its own tenant’s.