Alertmanager has no phone call receiver of its own. Add Edesy OnCall as a webhook_configs receiver and route critical alerts to it: each firing alert opens an incident that calls your team in English or Hindi until someone presses 1, and send_resolved closes it again. Detection and routing stay in your Prometheus setup.
webhook_configs
Receiver type
send_resolved
Closes incidents
Fingerprint
Groups repeats
Free
For 3 monitors
Webhook v4 payload
Repeats grouped by fingerprint
Calls in English or Hindi
How OnCall reads the webhook payload
| Item | Edesy OnCall |
|---|---|
| Receiver | webhook_configs with url = your alert webhook monitor's URL and send_resolved: true |
| Payload | Alertmanager webhook (version 4): status, alerts[] with status, labels, annotations and fingerprint |
| Grouping | One incident per fingerprint; without one, alertname + instance + job |
| Spoken text | annotations.summary, or the alertname label |
| Incident detail | annotations.description, annotations.message or the instance label |
| Responses | 202 with the number of alerts accepted; 400 for a payload that isn't JSON or has no alerts; 404 for an unknown URL |
| Limits | 120 requests a minute per IP, 1 MB body |
One receiver and one route
In OnCall, add an Alert webhook monitor, attach an escalation policy and copy its URL.
Add an edesy-oncall receiver with webhook_configs, the URL and send_resolved: true.
Match your critical alerts (for example severity = "critical") and send them to edesy-oncall.
Reload the config and check that the receiver loads without errors.
Send a test alert with amtool or a temporary rule, and watch the incident and call in OnCall.
Critical alerts go to OnCall; everything else stays on your existing receiver. Replace the URL with the one from your OnCall monitor.
# alertmanager.yml
route:
receiver: default-chat
routes:
- matchers:
- severity = "critical"
receiver: edesy-oncall
receivers:
- name: default-chat
# your existing email or chat receiver
- name: edesy-oncall
webhook_configs:
- url: https://oncall.edesy.in/ingest/<token>
send_resolved: trueThe on-call engineer hears your summary annotation, so keep it short and speakable:
- alert: CheckoutErrorRateHigh
expr: sum(rate(http_requests_total{job="checkout",code=~"5.."}[5m])) / sum(rate(http_requests_total{job="checkout"}[5m])) > 0.05
for: 5m
labels:
severity: critical
annotations:
summary: Checkout error rate above 5 percent
description: More than 5% of checkout requests returned 5xx for 5 minutes
The description is shown in the incident and the email. Full field mapping: Alertmanager ingest docs.
Explore more comparisons, alternatives, and resources
Use cases
Integrations
Tell us how your alerting is set up. We reply within one working day with a suggested setup.
Create an alert webhook monitor on the Free plan and add it as a receiver. Prices exclude 18% GST.