Signals

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.

postWebhooksignal.action_resolved

Payload

eventstring required

Always signal.action_resolved.

eventIdstring required

Unique id of this event (X-Webhook-Id).

signalIdstring required
signalNamestring required
signalTypeIdstring required
codestring required

The code of the signal.action_required it closes.

createdAtstring required

When the event was sent, ISO 8601 UTC.

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.