Events
Three events exist in v1:Subscribing
POST /webhooks with a url (HTTPS required) and the events you want. The response includes a secret — shown once, at creation. Store it: it’s what you use to verify every delivery to this subscription.
The delivery
Every event is delivered as aPOST to your subscribed URL, with this envelope:
data’s shape depends on type — a Lead for lead.created, a Run for run.completed, an Automation for automation.status_changed.
id is unique per event, not per delivery attempt. Use it to deduplicate — the same event can be redelivered after a retry.
Verifying the signature
Every delivery carries anX-Agentova-Signature header:
t— a Unix timestampv1— an HMAC-SHA256 hex digest, computed over the string{t}.{raw request body}, using your subscription’ssecret
- Reject it if
tis more than 5 minutes from the current time — this stops replay attacks. - Recompute the HMAC over
{t}.{raw body}with yoursecret. - Compare it to
v1using a constant-time comparison — never a plain===, which leaks timing information.
Official Agentova connectors (the n8n node and the Zapier app) verify this for you automatically — you don’t need to do anything extra if you’re using one of them. This section is for a direct HTTP integration.
Reliability
Agentova expects a2xx response within 10 seconds. A failing or slow endpoint gets retried with exponential backoff. After prolonged failures, the subscription is disabled — there’s no dedicated event for this, check disabled_at on GET /webhooks.