Send Datadog alerts to Acked

Datadog detects the problem. Acked wakes whoever is on call.

One Datadog connection can route monitors across Acked services. Re-alerts deduplicate on Datadog's alert-cycle key. Recoveries close the same alert.

1. Create the Acked connection

Open Integrations → Sources → Add vendor connection and choose Datadog. Select a fallback service. Add ordered routing rules for Datadog tags when the connection serves several services. Create the connection and copy its ingest URL and displayed payload. Treat the URL as a credential.

2. Add the Datadog webhook

Open Integrations → Webhooks, create a webhook, and use the Acked ingest URL. Set its payload to:

{
  "title": "$EVENT_TITLE",
  "alert_cycle_key": "$ALERT_CYCLE_KEY",
  "aggreg_key": "$AGGREG_KEY",
  "body": "$EVENT_MSG",
  "alert_type": "$ALERT_TYPE",
  "alert_priority": "$ALERT_PRIORITY",
  "transition": "$ALERT_TRANSITION",
  "source": "datadog",
  "routing": {
    "service": "$TAGS[service]",
    "team": "$TAGS[team]",
    "environment": "$TAGS[env]"
  }
}

$ALERT_CYCLE_KEY follows one alert cycle and is Acked's preferred deduplication and recovery key. $AGGREG_KEY is the fallback. Routing rules match the expanded tag values. Unmatched events use the Acked fallback service.

Acked maps Datadog P1 to critical, P2 to high, P3 to medium, P4 to low, and P5 to informational. Existing payloads without alert_priority keep their alert-type mapping.

3. Route and test

  1. Add @webhook-<name> to the Datadog monitor notification.
  2. Send a test alert and confirm it reaches the expected phone.
  3. Recover the monitor and confirm the Acked alert resolves.

Datadog retries webhook failures only for its documented error cases. Keep your existing paging destination active until this end-to-end test passes.