Send Grafana alerts to Acked

Grafana evaluates alert rules. Acked turns each notification group into an on-call page.

This setup uses Grafana's default webhook body. No custom payload feature required, so it works without depending on features that differ between Grafana editions.

1. Create the Acked source

Under Services → your service → Sources → Add, choose Custom. Paste this inbound template:

{
  "title": "{{ title }}",
  "event_key": "grafana:{{ groupKey }}",
  "body": "{{ message | default(\"Grafana alert notification\") }}",
  "priority": "high",
  "action": "{{ status | map({\"resolved\":\"resolve\",\"*\":\"trigger\"}) }}"
}

Save it and copy the ingest URL. Acked maps one Grafana notification group to one alert. Repeated notifications with the same groupKey deduplicate; a resolved status closes it.

2. Add a Grafana contact point

  1. Open Alerts & IRM → Alerting → Contact points.
  2. Add a contact point and choose Webhook.
  3. Paste the Acked ingest URL into URL. Leave the default JSON body intact.
  4. Save, then connect the contact point to the notification policy that should page this service.

3. Test both directions

Use Grafana's contact-point test, then trigger a real rule. Confirm the alert reaches the expected phone. Resolve the rule and confirm the matching Acked alert closes.

Grafana groups alerts before notification. This mapping intentionally produces one Acked alert per notification group, not one per item inside Grafana's alerts array. Tune Grafana grouping if those need separate pages.