Events
Every webhook event type, when it fires, and the fields it carries.
Each notification's eventType says what happened, and its event object carries the data. The envelope around it is the same for every event.
| Event type | Sent when |
|---|---|
MachineStopClassificationCreated | A machine stop is classified. |
MachineStopClassificationUpdated | A stop's classification changes. |
MachineStopClassificationDeleted | A stop's classification is removed. |
Ping | Pulsar tests your endpoint. |
Machine stop classifications
When a machine stops, Pulsar records the stop. Classifying it means recording why it happened: a general cause, optionally a more specific cause and the component involved, and a free-text description. A classification is entered by a person or applied automatically by a rule.
All three classification events carry the same event object:
| Field | Type | Description |
|---|---|---|
machine | string | The machine's name in Pulsar. |
machineExternalName | string | null | The machine's external name, for example its ID in your ERP. null if it has none. |
start | string | When the stop started, as an ISO 8601 UTC timestamp. |
end | string | null | When the stop ended, as an ISO 8601 UTC timestamp. Can be null. |
operator | string | null | Full name of the operator on the machine when the stop started. null if nobody was logged in. |
generalCause | string | null | Name of the general cause. |
specificCause | string | null | Name of the specific cause. |
component | string | null | Name of the component involved. |
description | string | null | Free-text description of the stop. |
isAutomated | boolean | true if the classification was applied automatically by a rule, false if a person entered it. |
A stop is identified by its machine and its start. Use that pair to match an update or deletion to a stop you already know about.
Names, not IDs
Machines, causes, components and operators are sent by name. If one is renamed in Pulsar, later events carry the new name.
Created
MachineStopClassificationCreated is sent when a stop is classified for the first time.
{
"eventId": "8d2f6c1e-4b7a-4f0e-9a3c-5e1d7b9f2a64",
"eventTimestamp": "2026-09-25T14:03:12.482Z",
"eventType": "MachineStopClassificationCreated",
"event": {
"machine": "Injection molder 4",
"machineExternalName": "INJ-004",
"start": "2026-09-25T13:41:07.000Z",
"end": "2026-09-25T13:58:30.000Z",
"operator": "Ana Torres",
"generalCause": "Mechanical failure",
"specificCause": "Mold jam",
"component": "Ejector pin",
"description": "Part stuck in cavity 2, cleared manually",
"isAutomated": false
}
}Updated
MachineStopClassificationUpdated is sent when an existing classification changes, for example when someone corrects the cause. The event object carries the classification's current values.
{
"eventId": "c41a7e09-2d6b-4f38-9e15-7b0c3a9d4f22",
"eventTimestamp": "2026-09-25T14:20:45.117Z",
"eventType": "MachineStopClassificationUpdated",
"event": {
"machine": "Injection molder 4",
"machineExternalName": "INJ-004",
"start": "2026-09-25T13:41:07.000Z",
"end": "2026-09-25T13:58:30.000Z",
"operator": "Ana Torres",
"generalCause": "Mechanical failure",
"specificCause": "Ejector failure",
"component": "Ejector pin",
"description": "Ejector pin bent, replaced",
"isAutomated": false
}
}Deleted
MachineStopClassificationDeleted is sent when a classification is removed, leaving the stop unclassified. The causes, component, description and isAutomated describe the classification as it was before it was deleted. The machine, stop times and operator come from Pulsar's current records.
{
"eventId": "5e93b0d7-8a14-4c6f-b2e8-1d7f0a3c9b56",
"eventTimestamp": "2026-09-25T15:02:09.804Z",
"eventType": "MachineStopClassificationDeleted",
"event": {
"machine": "Injection molder 4",
"machineExternalName": "INJ-004",
"start": "2026-09-25T13:41:07.000Z",
"end": "2026-09-25T13:58:30.000Z",
"operator": "Ana Torres",
"generalCause": "Mechanical failure",
"specificCause": "Ejector failure",
"component": "Ejector pin",
"description": "Ejector pin bent, replaced",
"isAutomated": false
}
}Event data is read at delivery time
For created and updated events, Pulsar reads the classification when it first prepares the notification, not at the instant of the change. If a classification changes twice in quick succession, both events can carry the newer values. Treat each event as "this stop's classification now looks like this", not as a record of one particular edit.
A retry or replay resends exactly the same body as the first attempt, so it never picks up later changes.