Integrations
Webhook signature verification and retry handling
XOOZLY has two webhook directions and they behave differently. Inbound deliveries are signature-verified on arrival; outbound deliveries retry on a bounded schedule and then stop, marked as exhausted rather than retried forever.
Open Webhooks in the consoleInbound and outbound are not the same feature
“Webhooks” here covers two different things that behave differently, and conflating them is the usual source of confusion.
Inbound
A request arriving from outside is verified against its signature before it is acted on. An unsigned or mis-signed request is refused — treat the signature as the whole credential.
Outbound
A delivery to your endpoint retries on a bounded schedule with exponential backoff, then stops and is marked exhausted. It does not retry forever, and an exhausted delivery is a thing you can see rather than a silent drop.
Verifying what you receive
An inbound delivery carries a signature computed over its body with a shared secret. Verify it before acting on the payload — the signature is the whole credential, so an unsigned or mis-signed request should be refused rather than logged and processed.
Outbound delivery and its retry schedule
A delivery to your endpoint is attempted, and on failure retried on a bounded schedule with exponential backoff. After the attempts are used up it stops and is marked exhausted — it does not retry forever, and an exhausted delivery stays visible rather than disappearing.
- Attempts
- 3 retriesThen marked exhausted
- Spacing
- ExponentialBackoff between attempts
- After that
- VisibleNot silently dropped
The part that is honestly not built
Put it into practice
Run a fleet with these guardrails on from day one.
Hard cost caps, one audited gateway in front of every tool call, and versioned rule files — the defaults, not an enterprise add-on.