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 SourcesAdd 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