Overview
Outgoing webhooks send HTTP POST requests to your endpoint when events occur in your Stover account.Setup
- Go to your Stover Dashboard
- Navigate to Settings > Webhooks > Outgoing
- Click Create Webhook
- Enter your endpoint URL and select events
- Copy the webhook secret for signature verification
Available Events
CRM Events
Social Media Events
Fired for every platform (LinkedIn, X, Instagram, Threads, TikTok, YouTube). The payload carries aplatform field. An event fires when a post enters the
state, so re-syncing metrics on an already-published post does not re-fire it.
Attribution Events
Meeting Events
Proposal Events
Payload Format
Signature Verification
Every webhook includes a signature header for verification:t is the Unix timestamp at which the request was signed, and v1 is
HMAC-SHA256(secret, "<t>.<raw body>") in lowercase hex. The timestamp is part
of the signed material, so a captured delivery cannot be replayed later with a
fresh header.
Verify against the raw request body, exactly as received. Re-serialising the
parsed JSON can reorder keys and change the bytes you hash.
The secret is shown once, when the webhook is created. It is never sent with a delivery — the
signature is the only credential in the request.
Verify in Node.js
Retry Policy
Failed deliveries are retried automatically:
After 5 failed attempts, the delivery is marked as failed.
Best Practices
- Respond quickly - Return 200 within 30 seconds
- Process async - Queue heavy processing for later
- Verify signatures - Always validate webhook authenticity
- Handle duplicates - Use
idfield for idempotency