On this page
Alerts group risk occurrences that need attention. Investigations are the owned
human-review records opened from one or more alerts. The product and API use the
name Investigation. Webhook event names retain the established case.* prefix
so existing receivers do not break.
Alert events
| Event | When it fires | Recommended handling |
|---|---|---|
alert.created | A new actionable alert opens. | Create a linked review item. |
alert.updated | Decision, score, occurrence count or status changes. | Update the existing item by alertId. |
json
{
"version": "2026-08-11",
"id": "evt_alert_01",
"type": "alert.created",
"createdAt": "2026-08-15T17:32:00.000Z",
"deliveryId": "del_alert_01",
"data": { "alertId": "alt_01", "entityId": "ent_01", "status": "OPEN", "decision": "REVIEW", "riskScore": 86, "occurrences": 1, "resolution": null }
}json
[
{ "type": "alert.updated", "data": { "alertId": "alt_01", "entityId": "ent_01", "status": "IN_REVIEW", "decision": "REVIEW", "riskScore": 89, "occurrences": 3, "resolution": null } },
{ "type": "alert.updated", "data": { "alertId": "alt_01", "entityId": "ent_01", "status": "RESOLVED", "decision": "ALLOW", "riskScore": 22, "occurrences": 3, "resolution": "FALSE_POSITIVE" } }
]Investigation events
| Event | When it fires |
|---|---|
case.created | An investigation opens from related evidence. |
case.assigned | An owner is assigned. |
case.review_started | Human review begins. |
case.escalated | Priority or review tier is escalated. |
case.resolved | An analyst records a disposition. |
case.closed | Operational work closes. |
case.reopened | A closed investigation returns to review. |
case.sla_at_risk | The due time is approaching. |
case.overdue | The due time has passed. |
Every event uses the standard webhook envelope. Route it by data.caseId, then
retrieve /api/v1/investigations/{caseId} when your workflow needs the complete
current Investigation. caseId is retained inside webhook payloads as a stable
compatibility field.
json
{
"version": "2026-08-11",
"id": "evt_investigation_01",
"type": "case.assigned",
"createdAt": "2026-08-15T17:35:00.000Z",
"deliveryId": "del_investigation_01",
"data": {
"id": "evt_case_assigned_inv_01_current",
"caseId": "inv_01",
"entityId": "ent_01",
"subject": { "type": "entity", "id": "ent_01" },
"assigneeId": "usr_reviewer_01",
"occurredAt": "2026-08-15T17:35:00.000Z"
}
}Field reference
| Field | Type | Nullable | Meaning |
|---|---|---|---|
alertId, caseId, entityId | string | No where present | Stable alert, investigation and subject IDs. |
status | string | No | Current lifecycle status shown in the examples. |
decision | string | Yes | Alert decision such as ALLOW, REVIEW or BLOCK. |
riskScore | number | Yes | Alert risk score. |
occurrences, alertCount | integer | No | Grouped evidence or linked alert counts. |
resolution, disposition | string | Yes | Recorded alert resolution or investigation outcome. |
priority | string | No | For example LOW, MEDIUM, HIGH or CRITICAL. |
assigneeId | string | Yes | Assigned user ID. |
dueAt | ISO 8601 string | Yes | SLA deadline. |
Private notes, attachments, analyst evidence and SAR filing state are not included. There are no customer-facing sar.* events in the current catalogue.