Send Datadog alerts to Acked
Datadog detects the problem. Acked wakes whoever is on call.
One Datadog webhook feeds one Acked service. Re-alerts deduplicate on Datadog's aggregation key, recoveries close the same alert, and your Acked schedule decides who gets paged.
1. Create the Acked source
Under Services → your service → Sources → Add, choose Custom. Paste this inbound template:
{
"title": "{{ title }}",
"event_key": "{{ event_key }}",
"body": "{{ body }}",
"priority": "{{ severity | map({\"error\":\"critical\",\"warning\":\"high\",\"info\":\"info\",\"success\":\"info\",\"*\":\"high\"}) }}",
"action": "{{ transition | map({\"Recovered\":\"resolve\",\"*\":\"trigger\"}) }}"
}
Save it and copy the generated ingest URL. Treat that 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",
"event_key": "$AGGREG_KEY",
"body": "$EVENT_MSG",
"severity": "$ALERT_TYPE",
"transition": "$ALERT_TRANSITION"
}
$AGGREG_KEY stays stable for one monitor group. That gives Acked a reliable deduplication and recovery key. Datadog's P1–P5 values are not Acked priority values, so this mapping uses alert type instead.
3. Route and test
- Add
@webhook-<name>to the Datadog monitor notification. - Send a test alert and confirm it reaches the expected phone.
- 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.