Skip to content

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

  1. In your Sentry project, go to Settings → Integrations → Webhooks.
  2. Click Add to Project.
  3. Set the Webhook URL to:
    https://api.navi.sh/api/v1/events/sentry/<token>
  4. Under Events, enable:
    • issue — for issue alerts
    • metric_alert — for metric/performance alerts
  5. Click Save Changes.
  6. 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" or data.metric_alert.status: "resolved".

Payload schema

Top-level

FieldTypeDescription
actionstringLifecycle action. For issues: created, resolved, assigned, etc. For metric alerts: critical, warning, resolved.
dataobjectContains either issue or metric_alert.

Issue alert (data.issue)

FieldTypeDescription
idstringSentry issue ID. Used as dedup key (sentry-issue-<id>).
titlestringIssue title.
levelstringSeverity level: fatal, error, warning, info, debug.
permalinkstringDirect link to the issue in Sentry.
project.namestringProject name.
project.slugstringProject slug.

Metric alert (data.metric_alert)

FieldTypeDescription
idstringMetric alert ID. Used as dedup key (sentry-metric-<id>).
titlestringMetric alert title.
statusstringcritical, warning, or resolved.

| data.description_text | string | Human-readable description for metric alerts. |


Severity mapping

Sentry levelNavi.sh
fatal / criticalcritical
errorerror
warningwarning
info / debug / otherinfo

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.

Built by the Navi.sh team.