Skip to content
Nowlark
API reference menu

Webhook templates

POST /v1/hooks/{template} takes the body another tool already sends and renders it, so that tool needs no script. Templates: github, alertmanager, grafana, uptime-kuma.

Template Renders Priority
github
push, pull_request (opened, reopened, merged, closed, ready), issues (opened, reopened, closed), workflow_run (completed), release (published), ping. Needs the X-GitHub-Event header GitHub sends
A failed workflow is 1, a passing one -1
alertmanager, grafana
A firing or resolved group, up to 5 alerts summarised
severity: critical 2, warning or error 1, resolved 0
uptime-kuma
Up, Down, Pending, Maintenance, and the Test button
Down 1, Up 0
  • Resolved replaces firing. An alert group, an Uptime Kuma monitor and a GitHub workflow on a branch each carry a replace_key that is the same in every state, so the phone shows what is true  now.
  • Noise is not a notification. An event a template does not render (a GitHub star, a label change) answers 200 {"ignored": true, "reason": …}, is not charged against the key's hour, and does not make the sender retry.
  • A body that is not that tool's shape is a 400, never a 500. A body over 256 KB is 413.
  • ?source= and ?priority= override the template's.
  • Auth. The usual headers. For a sender that cannot set one (GitHub's webhooks among them), ?key=nlk_… is accepted on this endpoint only. Nowlark's access log is off, so it does not write the URL down, but a URL travels further than a header: make a key for that one sender, and revoke it if the URL leaks.

Step-by-step guides#

Uptime Kuma alerts on your iPhone.