Sentry
Navi.sh supports both issue alerts and metric alerts from Sentry. Issues and metric alerts auto-resolve when Sentry sends a resolved action.
Endpoint: POST /api/v1/events/sentry/{token}
Setup in Sentry
- In your Sentry project, go to Settings → Integrations → Webhooks.
- Click Add to Project.
- Set the Webhook URL to:
https://api.navi.sh/api/v1/events/sentry/<token> - Under Events, enable:
- issue — for issue alerts
- metric_alert — for metric/performance alerts
- Click Save Changes.
- Create Alert Rules in Alerts → Alert Rules and assign them to this webhook integration.
Auto-resolve
- Issue alerts: auto-resolved when Sentry sends
action: "resolved". - Metric alerts: auto-resolved when
action: "resolved"ordata.metric_alert.status: "resolved".
Payload schema
Top-level
| Field | Type | Description |
|---|---|---|
action | string | Lifecycle action. For issues: created, resolved, assigned, etc. For metric alerts: critical, warning, resolved. |
data | object | Contains either issue or metric_alert. |
Issue alert (data.issue)
| Field | Type | Description |
|---|---|---|
id | string | Sentry issue ID. Used as dedup key (sentry-issue-<id>). |
title | string | Issue title. |
level | string | Severity level: fatal, error, warning, info, debug. |
permalink | string | Direct link to the issue in Sentry. |
project.name | string | Project name. |
project.slug | string | Project slug. |
Metric alert (data.metric_alert)
| Field | Type | Description |
|---|---|---|
id | string | Metric alert ID. Used as dedup key (sentry-metric-<id>). |
title | string | Metric alert title. |
status | string | critical, warning, or resolved. |
| data.description_text | string | Human-readable description for metric alerts. |
Severity mapping
| Sentry level | Navi.sh |
|---|---|
fatal / critical | critical |
error | error |
warning | warning |
info / debug / other | info |
Example payloads
Issue alert
json
{
"action": "created",
"data": {
"issue": {
"id": "1234567",
"title": "ValueError: invalid literal for int()",
"level": "error",
"permalink": "https://sentry.io/organizations/acme/issues/1234567/",
"project": {
"name": "backend",
"slug": "backend"
}
}
}
}Metric alert
json
{
"action": "critical",
"data": {
"description_text": "Error rate is 8.3% (threshold: 5%)",
"metric_alert": {
"id": "987",
"title": "High Error Rate",
"status": "critical"
}
}
}Resolve an issue
json
{
"action": "resolved",
"data": {
"issue": {
"id": "1234567",
"title": "ValueError: invalid literal for int()",
"level": "error",
"permalink": "https://sentry.io/organizations/acme/issues/1234567/",
"project": { "name": "backend", "slug": "backend" }
}
}
}Response
202 Accepted — the payload was queued for processing.