Overview
Ingests an alert from an external monitoring provider and creates an incident in CauseFlow AI. Each supported provider has its own expected payload format — see Webhook payload formats for the full schema per provider.
This is a public endpoint — no JWT required. Authentication is via API key and HMAC signature.
Authentication: API key (X-API-Key header) and HMAC-SHA256 signature (X-Webhook-Signature: sha256=... header). Both must be valid for the request to be accepted.
Path parameters
Your CauseFlow tenant identifier. Found in Settings → General in the dashboard.
The monitoring provider sending the alert. One of: datadog, grafana, cloudwatch, sentry, custom.
Your tenant API key. Create one in Settings → API Keys.
HMAC-SHA256 signature of the raw request body, prefixed with sha256=. Computed using your webhook signing secret.
Must be application/json.
Request body
The request body is provider-specific. Below is the expected payload for Datadog alerts. See Webhook payload formats for all supported providers.
Unique identifier for the alert in Datadog.
Alert title as configured in Datadog.
Full alert message body, including threshold values and context.
Datadog alert type. One of: error, warning, info, success.
Alert priority. One of: P1, P2, P3, P4. Used to seed initial severity classification.
Array of Datadog tag strings (e.g. ["env:production", "service:checkout"]). Used to enrich incident context.
Response
201 Created
Alert was accepted and an incident was created (or the existing incident was updated).
{
"incidentId": "inc_01HX9VTPQR3KF8MZWBYD5N6JCE",
"title": "P1 - Checkout service error rate above 5% threshold",
"severity": "critical",
"status": "open"
}
| Field | Type | Description |
|---|
incidentId | string | CauseFlow incident identifier |
title | string | Incident title derived from the alert payload |
severity | string | Initial severity: critical, high, medium, low |
status | string | Always open for newly ingested alerts |
Error responses
| Status | Error code | Description |
|---|
401 | invalid_api_key | The X-API-Key header is missing or does not match a valid key |
401 | invalid_signature | The X-Webhook-Signature HMAC does not match the request body |
409 | alert_already_exists | Alert already ingested — deduplicated by sourceAlertId |
Examples
# Datadog webhook example
curl https://api.causeflow.ai/v1/webhooks/tenant_01HX9VTP/datadog \
-X POST \
-H "X-API-Key: cfak_live_abc123" \
-H "X-Webhook-Signature: sha256=a4b2c3d4e5f6..." \
-H "Content-Type: application/json" \
-d '{
"alert_id": "1234567890",
"title": "P1 - Checkout service error rate above 5% threshold",
"text": "The error rate for checkout-service has exceeded 5% for 5 consecutive minutes. Current value: 7.3%. Threshold: 5.0%.",
"alert_type": "error",
"priority": "P1",
"tags": ["env:production", "service:checkout", "team:payments"]
}'