Sentry
Send Sentry issue alerts to Uptimeify Incident Management via an internal integration webhook, mapped from the event's level, message, and environment.
Uptimeify's Sentry preset maps Sentry's issue-alert webhook payload directly: the event message/culprit, level, action, server, issue link, environment and project are pre-mapped.
1. Create the alert source in Uptimeify
Go to Incident Management → Alert Sources → New, pick the Sentry preset, name it, and create it. On the success screen, copy the ingest URL (https://<your-domain>/api/im/ingest/<token>). It is shown once and never displayed again in cleartext. If you lose it, rotate the token from the source's Settings tab.
2. Create an internal integration in Sentry
Sentry sends issue-alert webhooks through an internal integration, not a plain webhook URL field:
- In Sentry, go to Settings → Developer Settings → New Internal Integration.
- Give it a name (for example
Uptimeify). - Enable the Alert Rule Action toggle, and under Webhooks set the Webhook URL to the ingest URL you copied in step 1.
- Save. This creates an alert-rule action you can attach to any alert rule in the organization.
3. Attach it to an alert rule
- Go to Alerts → Rules, and create a new rule (or edit an existing one) for the project(s) you want to forward.
- Under Then perform these actions, add Send a notification via an integration and select the internal integration you created in step 2.
- Save the rule. Sentry now calls the webhook whenever the rule's conditions match, for both newly triggered issues and, if the rule includes a resolve condition, resolutions.
Default field mapping
| Sentry field | Normalized field |
|---|---|
data.event.message (falls back to data.event.culprit) | Title |
data.event.level | Severity (via the map below) |
action (top-level) | Status: resolved resolves the alert, anything else (triggered, created, ignored, assigned, …) keeps it open |
data.event.server_name | Host. No fallback: an environment name like production names no system, so an event without server_name has no host |
data.event.web_url | Link back to the issue in Sentry |
data.event.environment, data.event.project | Custom fields environment, project, shown as details on the incident |
data.event.issue_id | Dedup key: groups all notifications for the same Sentry issue |
Severity map
Sentry level | Uptimeify severity |
|---|---|
fatal | sev1 |
error | sev2 |
warning | sev3 |
info | sev4 |
debug | sev4 |
Sample payload
This is the shape of payload Uptimeify's Sentry preset expects:
{
"action": "triggered",
"data": {
"event": {
"event_id": "fe208ee2e2e74ae08b3d4b7cdb9b4e3d",
"issue_id": "123456789",
"level": "error",
"culprit": "raven.scripts.runner in main",
"message": "This is an example python exception",
"platform": "python",
"environment": "production",
"server_name": "web-01.prod.example.com",
"web_url": "https://sentry.io/organizations/example/issues/123456789/",
"issue_url": "https://sentry.io/api/0/issues/123456789/"
}
},
"actor": { "type": "application", "id": "sentry", "name": "Sentry" }
}You can send this exact payload against your source's mapping from the Payload Mapping tab in the dashboard to verify the setup before wiring up a real alert rule.
Prometheus Alertmanager
Send Prometheus Alertmanager notifications to Uptimeify Incident Management via a webhook receiver, mapped from commonLabels and the first alert.
Beszel
Send Beszel server alerts to Uptimeify Incident Management through a Shoutrrr generic webhook, with host, link, severity and automatic recovery for every Beszel alert type.