---
title: "Connect Sentry"
description: "Send Sentry issue alerts and metric alerts to Firefight, signed with your integration's client secret."
canonical: https://firefight.app/docs/alerts/sentry
---

# Connect Sentry

Firefight has a dedicated alert source for Sentry. It takes issue alerts and metric alerts from a Sentry internal integration and checks that every request is signed by Sentry.

## Set up the Firefight side

Go to **Settings → Alert Sources**, click **Add source**, give it a name like "Sentry production", and pick the **Sentry** provider. When you create it, Firefight opens the source's setup. It shows the ingest URL and a field for the signing secret Sentry gives you, and the same steps as this page.

## Set up the Sentry side

1. In Sentry, open **Settings → Developer Settings** and create a new internal integration.
2. Paste the ingest URL as its **Webhook URL** and turn on **Alert Rule Action**.
3. To have alerts resolve when their issue resolves in Sentry, give the integration **Issue & Event** read permission and subscribe it to **issue** webhooks.
4. Save the integration and copy its **Client Secret**.
5. Back in Firefight, paste the client secret into **Signing secret from Sentry** in the source's setup and click **Save**.
6. In each Sentry alert that should reach Firefight, add the action that sends a notification via your integration.

Requests that fail the check are rejected with `401`, and the source's row in **Settings → Alert Sources** shows the rejection.

:::note
Sentry makes the client secret itself, so this source has no token to copy. Until you save the secret, Firefight refuses every request from Sentry. The secret is never shown again after you save it. The setup only says which characters it ends with.
:::

## What Firefight reads

Each alert gets these fields, which you can match in your [routing rules](https://firefight.app/docs/alerts/routing-rules.md).

| Field | Value |
|---|---|
| `title` | The issue's title, or the metric alert rule's name |
| `description` | The error message and culprit, or the metric alert's description |
| `service` | The Sentry project |
| `severity_raw` | The event's level, such as `error`, or `critical` and `warning` for metric alerts |
| `environment` | The event's environment, or the metric alert rule's environment |
| `url` | The issue or metric alert page in Sentry |

The alert's title in Slack and on the dashboard links to its page in Sentry.

## Firing and resolving

An issue alert fires an alert for its Sentry issue. Every later alert for the same issue counts on that one alert. When the issue is resolved in Sentry, Firefight resolves the alert, as long as the integration is subscribed to issue webhooks.

A metric alert fires when it turns critical or warning and resolves when Sentry says it is resolved.

Other Sentry webhooks, such as an issue being created or assigned, are accepted and ignored.

See [Grouping & deduplication](https://firefight.app/docs/alerts/grouping-and-deduplication.md) for how repeat firings collapse into one alert.
