Configuration
Webhooks are configured per-brand via thewebhook_configs table. The dashboard UI for this lives in Content → Webhook settings.
Required fields:
webhook_url— your endpointwebhook_secret— used to HMAC-sign payloads (recommended)events— array of subscribed events (currently:content_brief.sent,opportunity.created,opportunity.status_changed,daily_pulse.created)is_active— toggle without deleting
Payload format
All webhooks use the same envelope:Signature verification
Ifwebhook_secret is set, Ansvisor signs each payload with HMAC-SHA256:
- Signature mismatches
- Timestamp is older than 5 minutes (replay protection)
Event reference
content_brief.sent
Fired when a user clicks “Send to workflow” on a content opportunity.
opportunity.created
Fired when the content optimization worker generates a new opportunity.
opportunity.status_changed
Fired when an opportunity moves between statuses (new → sent → in_progress → done / dismissed).
daily_pulse.created
Fired after a brand’s daily tracking run when a Daily Pulse digest is generated. Sent as a flat payload (works on cloud and self-host):
Retries
Failed deliveries (non-2xx response, timeout, connection error) retry with exponential backoff:- Attempt 1 — immediately
- Attempt 2 — after 30 seconds
- Attempt 3 — after 5 minutes
- Attempt 4 — after 30 minutes
webhook_response. No further retries are attempted automatically — you can resend manually from the dashboard.
Testing
The Content → Webhook settings page includes a Test webhook button that fires a syntheticcontent_brief.sent event so you can validate your endpoint before going live.
Help center
Common questions and troubleshooting.