A signal no longer waits on you
Close the loop on a signal.action_required: the signal no longer waits on you — you confirmed or accepted, or the signal was paused or deleted.
Output: event, eventId, signalId, signalName, signalTypeId, code (the code of the ask it closes) and createdAt.
Your signal's webhookUrl receives leads, and also these events. Every event carries a top-level event key, which no lead has: route on it, and ignore event types you do not handle — new ones may be added. Signed exactly like leads (X-Webhook-Signature, X-Webhook-Timestamp) when the signal has a webhook secret. An event is not a lead: it is free and never counted as a delivered lead.
Payload
Example payload
{
"code": "MATCHING_CONFIRMATION_REQUIRED",
"createdAt": "2026-10-09T11:02:40+00:00",
"event": "signal.action_resolved",
"eventId": "9e1d7c3b-2a4f-4b6e-8d0c-1f5a3e7b9c26",
"signalId": "d4bab73d-5c1e-4b7a-9f2e-3a6b8c0d1e2f",
"signalName": "Key accounts - new decision makers",
"signalTypeId": "new_decision_maker_watchlist"
}Response
Any 2xx acknowledges the event. Other answers are recorded in your webhook deliveries; they never pause lead delivery.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.