Skip to main content

Configuration

Webhooks are configured per-brand via the webhook_configs table. The dashboard UI for this lives in Content → Webhook settings. Required fields:
  • webhook_url — your endpoint
  • webhook_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

If webhook_secret is set, Ansvisor signs each payload with HMAC-SHA256:
Verification (Node example):
Reject any payload where:
  • 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 (newsentin_progressdone / 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
After 4 failed attempts, the delivery is marked failed and logged to 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 synthetic content_brief.sent event so you can validate your endpoint before going live.

Help center

Common questions and troubleshooting.