WakeHook ← wakehook.com

Integration guide

Custom webhook → WakeHook

Uptime Kuma, Alertmanager, Grafana, and Sentry have named presets, but nothing about WakeHook requires one. A cron job, a health-check script, an internal service, a one-off curl — anything that can make an HTTP request can ring a phone. Point it at your source's webhook URL and send plain JSON in WakeHook's own shape.

Set it up

  1. In your WakeHook dashboard, open Sources → Add source, name it whatever you're wiring up, and leave the preset as Generic JSON (the default). Copy the Webhook URL — shown once, in full.

  2. POST JSON to it with a Content-Type: application/json header. Every field is optional except that at least a title is worth sending — nothing you omit fails the request.

  3. Send the same alert again later with the same dedup_key to update the existing incident instead of opening a duplicate, and "status": "resolved" to close it.

The fields WakeHook understands

FieldTypeNotes
titlestringDefaults to "Untitled alert" if omitted — you'll want to set this
bodystringOptional detail shown under the title
severitystringcritical / high / low / info — anything else (or omitted) defaults to high, a safe middle ground that rings but respects quiet hours
statusstringfiring (default) or resolved
dedup_keystringRepeated alerts with the same key update one incident instead of paging again — omit it and every call opens a new one
linkstring (URL)Shown as a tap-through from the incident
tagsobjectFree-form key/value pairs, shown on the incident

Example: a cron job's health check

curl -X POST '<your webhook URL>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Nightly backup failed",
    "body": "pg_dump exited 1 — disk quota exceeded on backup-01",
    "severity": "critical",
    "dedup_key": "nightly-backup",
    "link": "https://ci.example.com/jobs/8821"
  }'

Once backup-01's disk is cleared and the job succeeds, resolve the same incident by reusing the key:

curl -X POST '<your webhook URL>' \
  -H 'Content-Type: application/json' \
  -d '{ "dedup_key": "nightly-backup", "status": "resolved" }'

Ready to wire it up?Free while WakeHook is in beta — one source, one device.

Join the waitlist

Other integrations