---
title: "Datadog"
description: "Send Datadog Monitor alerts to Uptimeify Incident Management via a Datadog webhook integration, pre-mapped to title, alert type, and transition state."
---

Uptimeify's Datadog preset maps Datadog's Monitor webhook notification payload directly: alert title, alert type, transition state, and hostname are pre-mapped.

## 1. Create the alert source in Uptimeify

Go to **Incident Management → Alert Sources → New**, pick the **Datadog** preset, name it, and create it. On the success screen, copy the ingest URL (`https://<your-domain>/api/im/ingest/<token>`). It is shown once and never displayed again in cleartext. If you lose it, rotate the token from the source's **Settings** tab.

## 2. Add a Webhooks integration in Datadog

1. In Datadog, go to **Integrations → Webhooks** and click **New**.
2. Give the webhook a name (for example `uptimeify`) and set the **URL** to the ingest URL you copied in step 1.
3. Set the **Payload** to Datadog's default monitor-notification payload, unchanged, since Uptimeify's preset expects the standard fields (`alert_id`, `alert_title`, `alert_type`, `alert_transition`, `hostname`, …). If you have customized the payload template on this webhook before, reset it to Datadog's default, or edit your Uptimeify source's **Payload Mapping** tab to match your custom fields instead.
4. Save the webhook.

## 3. Notify the webhook from your monitors

Datadog only calls a webhook integration when a monitor's notification message references it explicitly:

1. Open (or create) a Datadog **Monitor**.
2. In the **Notify your team** section of the monitor's message, add `@webhook-uptimeify` (replace `uptimeify` with whatever name you gave the webhook in step 2).
3. Save the monitor. Datadog now calls the webhook on every state transition (Triggered, Warn, Recovered, …) the monitor's notification rules cover.

Repeat steps 2 and 3 for every monitor you want to appear in Uptimeify, or add `@webhook-uptimeify` to a notification default your monitors already share.

## Default field mapping

| Datadog field | Normalized field |
|---|---|
| `alert_title` | Title |
| `alert_type` | Severity (via the map below) |
| `alert_transition` | Status: `Recovered` resolves the alert, anything else keeps it open |
| `hostname` | Host |
| `alert_id` | Dedup key: groups notifications for the same monitor event |

### Severity map

| Datadog `alert_type` | Uptimeify severity |
|---|---|
| `error` | `sev1` |
| `warning` | `sev3` |
| `success` | `sev4` |
| `info` | `sev4` |

## Sample payload

This is the shape of payload Uptimeify's Datadog preset expects:

```json
{
  "id": "4707056510925961466",
  "alert_id": "1234567",
  "alert_title": "[Triggered] High CPU usage on host web-01",
  "alert_type": "error",
  "alert_transition": "Triggered",
  "alert_status": "Alert",
  "alert_metric": "system.cpu.user",
  "date": "1752739200000",
  "event_type": "metric_alert_monitor",
  "hostname": "web-01.prod.example.com",
  "org": { "id": "123456", "name": "Example Org" },
  "priority": "normal",
  "tags": "env:prod,service:web",
  "title": "[Triggered] High CPU usage on host web-01",
  "url": "https://app.datadoghq.com/event/event?id=4707056510925961466"
}
```

You can send this exact payload against your source's mapping from the **Payload Mapping** tab in the dashboard to verify the setup before wiring up a real monitor.
