Webhooks push decision and case activity into your own systems. You register the endpoint under Settings → Webhooks.

Event types

The three that alert a person

The last three exist to alert whoever works the queue, not to move data into another system. Slack, Teams, email and SMS connections are driven from these events too: Settings → Integrations. case.assigned is separate from case.updated. An analyst who wants to be told when work lands on their plate should not have to subscribe to every edit of every case to find out — a channel that receives everything gets muted, and after that nothing is heard at all. decision.review_required is likewise separate from decision.created: the overwhelming majority of decisions are approvals, and a channel that receives all of them is a channel nobody reads.
decision.review_required does not look at the request’s with_decision_webhooks field. That field is the caller saying whether they want their own webhooks; a caller must not be able to silence the compliance team’s alerting by omitting a field from their payload.
The escalation sweep records the breach and raises this event — but it still does not reassign or reroute. Telling somebody is not the same as deciding who picks it up.

Verifying the signature

Krino follows the Standard Webhooks format. Every request carries three headers: The signed string is:
Sign the raw body — parsing the JSON and re-serialising it will not match. In most frameworks, reading the body raw takes an explicit setting.

Node.js example

What your endpoint must honour

1

Answer quickly

Return 2xx and queue the work. Do not do anything slow inside the request.
2

Tolerate duplicates

The same event can arrive more than once. Store webhook-id and ignore ids you have already seen.
3

Do not rely on ordering

Events may not arrive in the order they were produced. Decide from the timestamp in the body, not from arrival order.

Retries

If your endpoint returns anything other than 2xx or times out, Krino retries with increasing intervals. Endpoints that keep failing are surfaced under Settings → Webhooks.