Skip to main content
SVDY Logo
Developer guide
Available now
Professional tier

Get notified the moment something happens

Your backend gets a POST within seconds of a worker clocking in or a leave request being approved — no polling, no scheduled jobs. Signed deliveries, automatic retries, dead-letter queue if your endpoint goes down.

What you can do

The day-one wins. No engineering required for SMB admins to set this up.

Real-time, not polling

Worker clock-ins, leave approvals, process status changes — your endpoint receives a POST within seconds. No need to poll the API every 5 minutes (cheaper and faster).

Tamper-proof deliveries

Each request includes X-SVDY-Signature: sha256=… computed over the JSON body with your secret. Verify the signature in your endpoint to reject any forged requests cold.

Retries + dead-letter queue

Non-2xx responses retry at 1m, 5m, 30m, 2h, 12h. After 5 failures the delivery lands in the dead-letter queue, viewable in /system/integrations/webhooks. You don't lose events when your endpoint has a bad day.

Set up in 4 steps

Estimated time: under 5 minutes for an admin who has the credentials handy.

1

Create the webhook in your organization admin

Integrations → Webhooks → Add Webhook. Enter your endpoint URL + pick the events you care about. SVDY shows the signing secret ONCE — save it now.

2

Build the receiver

Your endpoint accepts POST application/json. Verify the HMAC signature before processing. Return 200 within 10 seconds (otherwise SVDY assumes failure and retries).

# Python receiver — Flask sketch
import hmac, hashlib, json
from flask import request, abort

SVDY_SECRET = b"<paste-from-svdy-admin>"

@app.post("/webhooks/svdy")
def receive():
    sig = request.headers.get("X-SVDY-Signature", "")
    expected = "sha256=" + hmac.new(
        SVDY_SECRET, request.data, hashlib.sha256
    ).hexdigest()
    if not hmac.compare_digest(sig, expected):
        abort(401)
    event = json.loads(request.data)
    # ... handle event["type"], event["data"]
    return "", 200
3

Test with the "Send test event" button

Inside the webhook detail panel — fires a synthetic event to your endpoint. The response code + body shows up in the delivery log immediately.

4

Replay failed deliveries

Each delivery shows in the activity panel with its status (delivered / retrying / dead). Click "Replay" on a dead delivery to re-fire it after fixing your endpoint.


Ready to connect?

Open your organization admin → Integrations and connect this integration in under 5 minutes.