Skip to main content
SkedX
Docs · API reference

Webhooks

Updated 13 March 20262 min read

Set up webhooks to receive real-time notifications for CRM events with payload details and retry logic.

Webhooks notify your external systems in real time when events occur in SkedX. Instead of polling the API for changes, register a webhook URL and SkedX will send an HTTP POST request with event data whenever a subscribed event fires.

Creating a webhook

Navigate to Settings > API & Webhooks > Webhooks and click + Add Webhook. Provide a destination URL (HTTPS required), select the events you want to subscribe to, and optionally set a secret key for signature verification.

curl -X POST "https://api.skode.ai/v1/webhooks" \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/skode",
    "events": ["lead.created", "lead.updated", "deal.stage_changed", "deal.closed"],
    "secret": "whsec_your_signing_secret"
  }'

Available events

  • lead.created, lead.updated, lead.deleted, lead.assigned
  • deal.created, deal.updated, deal.stage_changed, deal.closed
  • contact.created, contact.updated, contact.deleted, contact.merged
  • invoice.created, invoice.sent, invoice.paid, invoice.overdue
  • task.created, task.completed, task.overdue
  • message.received, message.sent, conversation.assigned

Payload format

{
  "id": "evt_abc123",
  "event": "lead.created",
  "created_at": "2026-03-15T10:30:00Z",
  "data": {
    "id": "lead_xyz789",
    "name": "John Smith",
    "email": "[email protected]",
    "company": "Example Corp",
    "source": "website",
    "created_at": "2026-03-15T10:30:00Z"
  }
}

Signature verification

If you set a secret key, SkedX includes an X-Skode-Signature header with each delivery. Verify it using HMAC-SHA256:

const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Retry logic

If your endpoint returns a non-2xx status code or times out (30 seconds), SkedX retries the delivery using exponential backoff: 1 minute, 5 minutes, 30 minutes, 2 hours, and 24 hours. After 5 failed attempts, the webhook is marked as failing and you receive an email notification. Fix the issue and re-enable the webhook from the settings page.

Webhook logs

View delivery history for each webhook under Settings > Webhooks > Logs. Each log entry shows the event type, payload, response status code, response body, and delivery duration. Use logs to debug integration issues and verify payloads.

Keep reading

READY WHEN YOU ARE

One record
Start there

Free plan, no card. Five tools replaced in an afternoon; your data stays yours.

pick a slot. we call you, on your clock.
pick a slot.
we call you,
on your clock.

No card. We only use your details to set you up or call you back.

A 20-minute call with a real person, on your clock.
SetupUnder 5 min
CardNot required
Replaces5 tools
Your dataExport anytime