01
An endpoint in the portal.
An endpoint links to a scenario — the routing rules that decide who gets called. Creating one returns a unique URL immediately.
No integration to install
There’s no integration to install, no authorization screen to click through, no app to approve. Setup is a CallPing webhook URL pasted into whatever tool is already generating your alerts, plus one test alert. That’s the entire integration.
Setup
01
An endpoint links to a scenario — the routing rules that decide who gets called. Creating one returns a unique URL immediately.
02
Most monitoring and uptime tools call the field a “webhook URL,” “outgoing webhook,” or “webhook integration” in their alert settings. The CallPing URL goes in there. Nothing gets installed.
03
If your tool sends a field named severity,
status, level, priority,
alert_type, or similar, we read it automatically and
normalize it to critical/major/minor/info. If it doesn’t,
a routing rule can match on whatever field or message text your
tool actually sends.
The last step is a test alert: if the routing rule matches, the phone assigned to that rule rings within a few seconds — the round-trip is webhook in, queue, Asterisk, SIP, carrier. Most of any delay you’ll notice is on the carrier side, not ours.
Compatible sources
Note on “compatible with”: these are tools that send webhooks in shapes we already parse, or that expose a generic outgoing-webhook in their own settings. There is no partnership, integration marketplace, certification, or vendor relationship implied anywhere on this page — every tool below is your existing vendor, sending an HTTP request to a URL CallPing generates.
A webhook integration in Datadog’s alert settings, pointed
at a CallPing URL. Datadog’s priority field
maps to severity automatically.
A Webhook contact point in Grafana Alerting. Grafana’s
status and commonLabels.severity fields
are picked up out of the box.
A webhook_config receiver pointed at a CallPing
endpoint. Reads status and
labels.severity.
A webhook integration on a project’s alert rules.
Sentry’s level field maps directly.
A webhook destination on a Workflow notification. The default
payload’s priority field is read as severity.
A Web-Hook alert contact using UptimeRobot’s default POST format.
An outgoing webhook on an incident policy. The structured payload parses cleanly out of the box.
A webhook URL on a test’s contact group.
A Webhook integration on a project; the grace-period-expired payload is what triggers the call.
A Webhook channel on a project’s notification settings.
A webhook endpoint under Developers → Webhooks, filtered to
the events worth a phone call
(charge.dispute.created,
radar.early_fraud_warning.created, and similar).
A curl step in a workflow that POSTs to a
CallPing endpoint on job failure. Useful for nightly build or
deploy failures nobody’s watching the Actions tab for.
A webhook action on an automation rule, pointed at a CallPing URL, fired on whatever condition is worth a phone call — an issue moving to a Highest-priority status, or a specific label being applied.
An HTTP module at the end of a scenario, POSTing to a CallPing URL. Useful when the alert-worthy event isn’t a monitoring tool at all — a form submission, a spreadsheet row, a status change somewhere else in a workflow you’ve already built.
CloudWatch doesn’t POST webhooks directly, so this one goes through a small Lambda forwarder triggered off an Amazon SNS (Simple Notification Service) topic. Heavier setup than the others on this page, but still a one-time wire-up, not an ongoing integration to maintain.
If it can run curl, call fetch, or fire
an HTTP POST from a cron job, a continuous integration (CI)
pipeline, or a five-line script, it works. The minimum viable
payload is one field:
curl -X POST \
https://api.callping.app/api/wh/YOUR_ENDPOINT_UUID \
-H "Content-Type: application/json" \
-d '{"severity": "critical",
"message": "Backup job failed"}'
We accept any HTTP method and any payload shape. JSON bodies and query-string parameters are parsed into individual fields you can route on; anything else — including form-encoded bodies — is captured whole as the alert message text.
Any JSON shape works
Routing rules don’t require a specific field name. If your
payload has a recognizable severity field, we read it
automatically. If it doesn’t — or if what you actually
want to route on is the alert’s message text, not a severity
code — routing rules can match directly on the alert content:
contains, starts_with,
exists, gt, and eight more operators,
applied to any field your tool sends, including the message body
itself.
Concretely: a payload with
{"client": "acme-retail", "text": "…5xx…"}
and no severity field anywhere can still route
correctly — one rule matches client with
equals acme-retail and routes to that client’s
team; another matches the message text
contains "5xx" and routes to critical-only phones.
You’re not stuck rewriting your monitoring tool’s alert
format to satisfy ours.
This is also what makes tools with nested or unusual payload shapes workable without a code change on your side — see the wrapper note below for the handful that need one.
One extra step
A small number of tools nest severity inside an object rather than sending it as a top-level field. CallPing’s field matching (including content-based matching) reads any field path it’s pointed at; the only extra step is confirming the exact field name once during setup:
event.severity field, or a rule matches directly on
the field path CallPing exposes.
contains rule on Opsgenie’s
details.priority field.
Scope, honestly
Coming next
Quick access to your alert history and shift handoffs, without opening the portal.
Additional alert channels alongside phone calls, for alerts that don’t need to wake someone up.
No agent, no SDK, no plugin to approve — one webhook URL in the alert config you already have.
Nothing rings for visitors yet — we’re gathering interest ahead of launch. Use the button above to get on the list.