
When an agent fails, your team already has a dashboard they look at. It's probably Datadog, Axiom, or a logs view in Grafana. Delivery history in the Hooksbase dashboard is useful for deep inspection, but on-call wants every signal in one place.
Event drains stream Hooksbase delivery lifecycle events to external sinks without coupling those sinks to the delivery path. If a drain fails, deliveries keep moving — the drain just pauses and surfaces an issue.
Lifecycle events that get streamed
Each drain receives these event types:
delivery.created— event accepted, about to be dispatchedattempt.completed— an attempt finished (success or failure)delivery.succeeded— terminal successdelivery.failed— terminal failure (retries exhausted)delivery.dlq_entered— delivery moved to DLQ
Each event carries the delivery ID, webhook ID, attempt count, response status, duration, and provider metadata where applicable.
Pick a sink
Hooksbase supports five drain targets:
- HTTP webhook — your own ingest endpoint for full control, optionally HMAC-signed with the
x-signature-sha256header - Axiom — direct integration with Axiom's ingest API
- Datadog — direct integration with Datadog logs
- Object storage (S3-compatible) — one JSON object per drain event, useful for cold archival
- OTLP HTTP — OTLP logs over HTTP with JSON payloads, for OpenTelemetry-native stacks
Tier limits
Event drains are available starting on Pro ($79/mo):
- Free, Starter: 0 drains
- Pro: 1 drain
- Business: 3 drains
- Enterprise: unlimited
A single Axiom or Datadog drain on Pro is usually enough to start. Business and Enterprise tiers add headroom if you stream to multiple sinks.
Configure a drain
In the dashboard:
- Navigate to Event drains under your project
- Click Create drain, pick the sink type
- Paste the sink config (Axiom API token, Datadog API key, S3 credentials, etc.)
- Optionally filter by webhook ID or event type (both-or-null applies globally)
- Save
The drain starts receiving events on the next delivery lifecycle transition.
Drain isolation
If a drain fails repeatedly (configurable: default 10 consecutive failures), Hooksbase auto-pauses it. A persisted drain_paused issue appears in your issue history. Resume it from the API once the sink is healthy again.
What next
- Recover failed agent events with DLQ and replay
- Verify provider webhooks before they reach your agent