Skip to main content

Webhooks

Webhooks let you receive real-time notifications when events happen in your workspace.

Creating a Webhook

  1. Go to SettingsManage Webhooks
  2. Click Register Webhook
  3. Enter the URL where notifications should be sent
  4. Optionally add a secret for signature verification
  5. Click Create

Screenshot of the webhook registration form with URL and secret fields

Event Types

Webhooks are triggered for these events:

EventWhen It Fires
ingestion.completedA data ingestion job finishes
ingestion.failedA data ingestion job fails
kpi.computedA KPI value is computed
kpi.alertA KPI anomaly is detected
analysis.completedAn investigation finishes
dashboard.readyA dashboard build completes

Payload Format

{
"event": "ingestion.completed",
"timestamp": "2025-01-15T10:30:00Z",
"tenantId": "tenant_abc123",
"data": {
"jobId": "job_xyz",
"table": "sales_data",
"rowsIngested": 15234,
"duration": 3200
}
}

Signature Verification

If you configured a secret, each webhook includes an X-Webhook-Signature header with an HMAC-SHA256 signature of the body:

X-Webhook-Signature: sha256=abc123...

Verify it in your service:

const crypto = require('crypto')
const signature = crypto
.createHmac('sha256', YOUR_SECRET)
.update(requestBody)
.digest('hex')
const isValid = signature === receivedSignature

Managing Webhooks

Screenshot of the webhooks table with URL, status, and action buttons

Actions

ActionDescription
TestSend a test event to verify connectivity
Delivery HistoryView past deliveries with status codes and timestamps
DeleteRemove the webhook

Delivery History

Each delivery shows:

  • Status code — 200 = success, other = failure
  • Timestamp — When the event was sent
  • Response time — How long your server took to respond
  • Resend — Re-deliver a specific event

Dead Letter Queue (DLQ)

Failed deliveries go to the Dead Letter Queue after multiple retry attempts. From the DLQ you can:

  • View failed events with error messages
  • Replay individual events
  • Replay All to retry all failed events
info

Retry policy: Failed deliveries are retried up to 3 times with exponential backoff (1min, 5min, 15min). After all retries fail, the event goes to the DLQ.