Webhook management is available under /api/v2/webhooks. Treat webhook URLs and signing material as secrets.
Before you begin
Create an API key with the minimum workspace access and decide which event family your integration needs.
Steps
- Open Settings → Integrations.
- Create or select a webhook destination.
- Record the configured event IDs and endpoint status.
- Send a test request to a non-production receiver.
- Verify the response and inspect delivery attempts before enabling production processing.
Keep the receiver idempotent. Store the event identifier and acknowledge only after validating the payload. Do not assume that every internal application event is a supported customer webhook.
Configure and verify a webhook
- Create an endpoint that accepts the event payload and records the event identifier before returning a success response.
- In Settings → Integrations, create a webhook with the visible Name, Target hook URL, Event type, and optional Campaign or custom interest value.
- Save it, open the destination, and use Test. Confirm the receiver records the event and the API reports
success: true. - Review Webhook events for
status_code,success,retry_count,will_retry, anderror_message. - Remove or update the destination when its URL changes; deleting a destination does not erase historical delivery attempts.
Use cursor pagination (limit and starting_after) for event history. Treat retries as at-least-once delivery and make the consumer idempotent.
Failure recovery
A 4xx receiver response usually needs a payload or authentication fix; a 5xx or timeout can be retried with bounded backoff. Confirm the next attempt in Webhook events and escalate with the event ID and redacted status.
Webhook field reference
| Field | Required | Meaning |
|---|---|---|
| Name | Yes | Workspace label for the destination. |
| Target hook URL | Yes | HTTPS endpoint that accepts the delivery. |
| Event type | Yes | Event identifier returned by the event-types endpoint. |
| Campaign | Optional | Limits events to one campaign when selected. |
| Custom interest value | Conditional | Required when the selected event is a custom interest label. |
Delivery verification
After Test, verify the receiver stored the event ID, returned a success response, and did not create a duplicate record on retry. In Webhook events, inspect status_code, success, retry_count, will_retry, error_message, and timestamp_next_retry.