CooVexCooVex
Back to docs

Webhooks

Get real-time notifications when things happen in CooVex — leads, competitor changes, content published.

What are webhooks?

Webhooks push data to your server the moment something important happens — no polling needed.

Setting up

  1. Go to Settings → Webhooks → Add Endpoint
  2. Enter your HTTPS server URL
  3. Choose which events to subscribe to
  4. CooVex immediately sends a test event

Payload format

{
  "event": "lead.hot",
  "timestamp": "2026-07-06T10:30:00Z",
  "workspace_id": "abc-123",
  "data": { "lead_id": "xyz-456", "score": 87 }
}

Verifying the signature

const crypto = require('crypto');
app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
  const sig = req.headers['x-coovex-signature'];
  const expected = crypto.createHmac('sha256', process.env.COOVEX_SECRET)
    .update(req.body).digest('hex');
  if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig)))
    return res.status(401).send('Invalid signature');
  const payload = JSON.parse(req.body);
  res.sendStatus(200);
});

Available events

  • lead.created / lead.hot / lead.score_changed / lead.status_changed
  • competitor.change_detected
  • content.published
  • audit.completed
  • signal.created
  • report.ready

Retry policy

Failed deliveries retry at: 1 min → 5 min → 30 min → 2 h → 6 h. After 5 failures you get an in-app alert.

Webhooks | CooVex