Sentry
Route Sentry alert rules to the right Runframe service.
How it works
Sentry Alert Rule Action -> Runframe webhook -> selected Runframe service -> incidentRunframe uses a Sentry App alert rule action. Each Sentry alert rule can choose a Runframe service from the action settings, so one Sentry integration can route alerts to multiple Runframe services.
The current setup uses a Sentry internal integration created inside your Sentry organization. A public Runframe Sentry App is a future path.
Setup from Runframe
- Go to Integrations Hub.
- Open Sentry.
- Link the Runframe services that should receive Sentry alerts.
- Copy the Webhook URL.
- Copy the Sentry App JSON.
The webhook URL should look like:
https://runframe.io/api/integrations/sentry/se_12345abcde67890f12345abcde67890f/webhookThe se_... value is your Runframe Sentry integration routing key.
Create the Sentry internal integration
In Sentry:
- Go to Settings.
- Open Developer Settings.
- Create a Custom Integration / Internal Integration.
- Set Name to
Runframe. - Set Webhook URL to the Runframe webhook URL.
- Enable Alert Rule Action.
- Paste the Sentry App JSON from Runframe into Schema.
- Leave Authorized JavaScript Origins empty.
- Save the integration.
Recommended permissions:
Project: Read
Team: No Access
Release: No Access
Distribution: No Access
Issue & Event: Read
Organization: Read
Member: No Access
Alerts: No Access
Continuous Integration (CI): No AccessLeave the broad Webhooks event checkboxes unselected unless you intentionally want non-alert-rule issue/error events to create Runframe incidents.
Keep your webhook URL secure
The routing key in your webhook URL is a secret token. Treat it like a password and avoid pasting it in public tickets, logs, or docs.
Sentry App JSON
Use the exact JSON generated by Runframe. It should look like this:
{
"elements": [
{
"uri": "/api/integrations/sentry/se_12345abcde67890f12345abcde67890f/webhook",
"type": "alert-rule-action",
"title": "Route to Runframe",
"settings": {
"uri": "/api/integrations/sentry/se_12345abcde67890f12345abcde67890f/settings",
"type": "alert-rule-settings",
"description": "Choose the Runframe service for alerts from this rule.",
"required_fields": [
{
"name": "service_id",
"type": "select",
"label": "Runframe service",
"options": [
["svc_PROD12345", "Production API"],
["svc_CHECKOUT1", "Checkout"],
["svc_INFRA6789", "Internal Infrastructure"]
]
}
]
}
}
]
}Do not manually change the service IDs unless you are debugging a known Runframe service key. The Runframe UI generates the correct values from linked services.
Configure a Sentry alert rule
After saving the internal integration, add Runframe to an alert rule.
- Go to Alerts in Sentry.
- Create or edit an issue alert.
- Under Source, select the Sentry projects that should route alerts to Runframe.
- Choose Alert on all issues in selected projects, unless you intentionally want monitor-specific routing.
- Under Filter Issues, choose the environments that should create Runframe incidents.
- In Alert Builder, configure the trigger. For example:
When an issue event is captured and any of the following occur:
A new issue is created- Add the action Route to Runframe.
- In Action Settings, select the target Runframe service.
- Click Send Test Notification and confirm Runframe creates an incident for the selected service.
- Set Action Throttle, for example
24 hours. - Save the alert rule.
The important part is that the Runframe service is selected inside the Sentry alert action. Sentry sends that value to Runframe as service_id when the alert fires.
Field mapping
| Sentry field | Runframe field |
|---|---|
| Issue title or event title | Incident title |
| Level | Severity action |
Alert action service_id | Runframe service |
| Project | Incident metadata |
| Environment | Incident metadata |
| Culprit | Description context |
| Event URL | Source URL |
Severity mapping
Configure how Sentry levels map to Runframe incident actions:
| Sentry level | Default Runframe action |
|---|---|
| fatal | Critical (SEV0) |
| error | Medium (SEV2) |
| warning | Low (SEV3) |
| info | Do not create |
| debug | Do not create |
Customize severity mapping
Adjust severity mapping per linked service. For example, you can ignore routine warning events or route only fatal errors to SEV0.
Deduplication
Runframe derives a stable deduplication key from the Sentry issue or event identifiers when available. Repeated events update the same open incident instead of creating duplicates.
Troubleshooting
Sentry says 'uri' is a required property
The top-level alert-rule-action element must include uri. Having only settings.uri is not enough.
Sentry says 'elements' is a required property
Paste the full JSON object from Runframe, including the top-level elements array.
Sentry says alert-rule-settings is not an allowed top-level type
alert-rule-settings must be nested under the settings property of an alert-rule-action.
Sentry succeeds but Runframe does not create an incident
Check the Runframe integration event logs.
Common reasons:
- The alert rule did not include a
service_id. - The selected service is not linked to this Runframe Sentry integration.
- The Sentry payload did not include an issue or event body.
Testing
Use Send Test Notification in the Sentry alert rule and verify:
- Runframe creates the incident
- Title, severity, and service routing are correct
- Sentry context is attached
- The right team is notified