---
title: "Connect Mixpanel"
description: "Send Mixpanel alerts to Firefight through a notification webhook with Basic auth."
canonical: https://firefight.app/docs/alerts/mixpanel
---

# Connect Mixpanel

Firefight has a dedicated alert source for Mixpanel alerts. Mixpanel authenticates webhooks with a user name and password, so the source's token is the password.

## Set up the Firefight side

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

## Set up the Mixpanel side

1. In Mixpanel, open **Project Settings → Alerts** and choose **Manage Webhooks**. Click **Add Webhook**.
2. Paste the ingest URL as the URL. Enter any user name, such as `firefight`, and paste the token as the password. Click **Test connection**, then **Submit**.
3. In each alert, choose the webhook under **Notify**, **via Webhook**, and save.

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

## 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 alert's name |
| `description` | The report and the condition it crossed, with the current value |
| `service` | The Mixpanel project |
| `url` | The report in Mixpanel |

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

## Firing and resolving

Mixpanel sends nothing when an alert clears, so each trigger arrives as a new alert and none resolves on its own. Resolve one by hand with **Resolve** on the **Alerts** page once it is dealt with.

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