Alert Source Setup Guides
Step-by-step guides for wiring Zabbix, Datadog, Grafana Alerting, Prometheus Alertmanager, Sentry, or any custom webhook to Uptimeify Incident Management.
Each guide below walks through configuring one monitoring/alerting tool to send its alerts to an Uptimeify alert source: a per-tool ingest endpoint with a built-in field mapping, so alerts land in Incident Management already normalized (title, severity, status, host) without writing a custom integration.
Guides
The Email guide works differently from the rest: an email source has no JSON webhook payload, so the "How ingestion works" and "Severity mapping" sections below (both webhook-specific) don't apply to it; see that guide directly.
How ingestion works
-
In the Uptimeify dashboard, go to Incident Management → Alert Sources → New and pick the preset matching your tool. Give it a name and, optionally, assign it to a team.
-
Uptimeify generates a unique ingest URL:
https://<your-domain>/api/im/ingest/<token>The
<token>is shown once, immediately after the source is created. Copy it right away. It is never shown again in cleartext. If you lose it, open the source's Settings tab and rotate the token to get a fresh URL (also shown only once). -
Configure your tool (see the tool-specific guide) to send an HTTP
POSTrequest with a JSON body to that URL whenever it fires or resolves an alert. -
Uptimeify parses the payload using the preset's field mapping (or your own edited mapping, from the source's Payload Mapping tab) and queues it for asynchronous processing into Incident Management.
This is a different mechanism from the Events Ingest endpoint (POST /api/im/events): that endpoint is authenticated with an organization-wide API token and has no preset field mapping (every request maps through a single auto-provisioned api-type source). The per-tool ingest URL above has no separate authentication (the token embedded in the URL is the credential, so treat the full URL like a password), but comes with a ready-made mapping for the tool you picked.
Request limits
The same limits apply to every ingest URL, regardless of preset:
| Limit | Value | Failure |
|---|---|---|
| Body size | 256 KB | 413 Payload Too Large |
| JSON nesting depth | 20 levels | 422 Unprocessable Entity (payload_too_deep) |
| Body must be valid JSON | — | 422 Unprocessable Entity (invalid_json) |
An empty request body is treated as {}.
Response
A successful request always returns 202 Accepted immediately: the alert is queued, not yet processed:
{ "accepted": true }An unknown, wrong, or rotated-away token returns 404 Not Found (not_found). Every kind of authentication failure returns this same response, by design. It never reveals whether a token used to exist. A 503 Service Unavailable (unavailable) means the alert could not be queued and is safe to retry.
Severity mapping
Every preset except Custom webhook (which has no severity selector) maps the vendor's raw severity value onto one of Uptimeify's four incident severities:
| Uptimeify severity | Meaning |
|---|---|
sev1 | Worst / critical |
sev2 | High |
sev3 | Warning |
sev4 | Low / informational |
A vendor severity value that isn't in the map, or a missing severity field, falls back to the alert source's own configured default severity, not automatically to sev4.
Events Ingest
Public alert-ingest endpoint for Incident Management. Post any JSON alert payload from your own monitoring or alerting system; it is queued and processed asynchronously into an incident.
Zabbix
Send Zabbix trigger alerts to Uptimeify Incident Management via a Webhook media type, using the ready-made script Uptimeify generates for you.