---
title: Managing alert integrations
summary: null
url: >-
  https://www.fastly.com/documentation/guides/observability/alerts/managing-alert-integrations
---

Alert integrations are external channels that receive notifications when alerts are triggered. When creating an [alert definition](https://www.fastly.com/documentation/guides/observability/alerts/managing-alert-definitions), you specify the alert integrations that should be used. Multiple alert definitions can use the same alert integration.

> **HINT:** Want to set up alerting for the Next-Gen WAF? Check out our [Next-Gen WAF](https://www.fastly.com/documentation/guides/next-gen-waf/integrations/integrations-intro) guides.

## Accessing alert definitions

To view a list of your alert definitions, follow these steps:

1.   Log in to the [Fastly control panel](https://manage.fastly.com).

2. Go to **Observability** > **Alerts** > [**Definitions**](https://manage.fastly.com/observability/alerts/definitions). The Alert definitions page appears.

## Creating alert integrations

To create an alert integration, follow these steps:

![the Add integration page](/img/add-alert-integration.png)

### Slack

1. In Slack, [add an incoming webhook](https://api.slack.com/messaging/webhooks) and copy the URL for the webhook.
2.   Log in to the [Fastly control panel](https://manage.fastly.com).

3. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
4. Click **Add alert integration**.
5. Fill out the **Add integration** controls as follows:
   - Click **Slack**.
   - In the **Name** field, enter the name of the integration.
   - In the **Webhook URL** field, enter the URL of the webhook you created in the first step.
   - In the **Description** field, enter a description of the notification channel.
6. Click **Save integration**. The integration is added to the Alert integrations page.

### Email

1.   Log in to the [Fastly control panel](https://manage.fastly.com).

2. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
3. Click **Add alert integration**.
4. Fill out the **Add integration** controls as follows:
   - Click **Email**.
   - In the **Name** field, enter the name of the integration.
   - In the **Email** field, enter the email address that should receive the alert notifications.
   - In the **Description** field, enter a description of the integration.
5. Click **Save integration**. An email asking you to confirm the address you entered in the **Email** field is sent to the email address you entered.
6. Navigate to the relevant email account and open the confirmation email from Fastly.
7. Click **Confirm email address**. Your email address is verified and the integration is added to the Alert integrations page.

### PagerDuty

1. In PagerDuty, [create a new service](https://support.pagerduty.com/docs/services-and-integrations#section-create-a-new-service) and copy the integration key. Be sure to set the escalation policy and integration method to **Use Our API Directly**.
2.   Log in to the [Fastly control panel](https://manage.fastly.com).

3. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
4. Click **Add alert integration**.
5. Fill out the **Add integration** controls as follows:
   - Click **PagerDuty**.
   - In the **Name** field, enter the name of the integration.
   - In the **Service API Key** field, enter the integration key you created in the first step.
   - In the **Description** field, enter a description of the notification channel.
6. Click **Save integration**. The integration is added to the Alert integrations page.

### Microsoft Teams

1. In Microsoft Teams, [add an incoming webhook](https://support.microsoft.com/en-us/office/post-a-workflow-when-a-webhook-request-is-received-in-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498) and copy the URL for the webhook.
2.   Log in to the [Fastly control panel](https://manage.fastly.com).

3. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
4. Click **Add alert integration**.
5. Fill out the **Add integration** controls as follows:
   - Click **Microsoft Teams**.
   - In the **Name** field, enter the name of the integration.
   - In the **Webhook URL** field, enter the URL of the webhook you created in the first step.
   - In the **Description** field, enter a description of the notification channel.
6. Click **Save integration**. The integration is added to the Alert integrations page.

### New Relic

1. In New Relic, [create a new License key](https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/) on the account where you want to ingest data. Make note of both the License key and Account ID.
2.   Log in to the [Fastly control panel](https://manage.fastly.com).

3. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
4. Click **Add alert integration**.
5. Fill out the **Add integration** controls as follows:
   - Click **New Relic**.
   - In the **Name** field, enter the name of the integration.
   - In the **License key** field, enter the license key you created in the first step.
   - In the **Account ID** field, enter the account ID you obtained in the first step.
   - In the **Description** field, enter a description of the notification channel.
6. Click **Save integration**. The integration is added to the Alert integrations page.

### Webhook

1.   Log in to the [Fastly control panel](https://manage.fastly.com).

2. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
3. Click **Add alert integration**.
4. Fill out the **Add integration** controls as follows:
   - Click **Custom webhook**.
   - In the **Name** field, enter the name of the integration.
   - In the **Webhook URL** field, enter the webhook URL that should receive the alert notifications.
   - In the **Description** field, enter a description of the notification channel.
5. Click **Save integration**. The integration is added to the Alert integrations page.

> **HINT:** Using a Slack webhook URL won't work with this integration. Use the Slack integration instead.

## Editing alert integrations

To edit an alert integration, follow these steps:

1.   Log in to the [Fastly control panel](https://manage.fastly.com).

2. Go to **Observability** > **Alerts** > [**Integrations**](https://manage.fastly.com/observability/alerts/integrations).
3. Click the pencil <span class="inline-icons"><img src="/img/icons/pencil.png" alt="Pencil icon" /></span> to the right of the alert integration that you want to edit.
4. Edit the necessary fields. Override locked fields by clicking **Override** then confirming you want to edit the field.
   > **HINT:** If you change the type of integration, you may need to fill out additional fields. Refer to [Creating alert integrations](https://www.fastly.com/documentation/guides/observability/alerts/managing-alert-integrations#creating-alert-integrations) for field descriptions for each integration.
5. Click **Save integration**.

## Deleting alert integrations

To delete an alert integration, follow these steps:

1. From the [**Alert integrations**](https://manage.fastly.com/observability/alerts/integrations) page, click the trash <span class="inline-icons"><img src="/img/icons/trash.png" alt="Trash icon" /></span> to the right of the alert integration that you want to delete.
2. Click **Confirm and delete**. The alert integration is removed from the Alert integrations page.

## Notification payloads

When an alert fires or resolves, Fastly sends a structured notification payload to your configured integrations. Each integration type receives a payload formatted specifically for that platform's API or webhook format, containing details about the alert, the metric that triggered it, and links to view more information in the Fastly control panel.

### Slack

Slack notifications use the Slack API attachment format with color-coded messages: red for firing alerts and green for resolved alerts.

```json
{
  "username": "Fastly Alerts",
  "icon_url": "https://manage.fastly.com/observe/logo.png",
  "attachments": [
    {
      "color": "#dd2530 | #36a64f",
      "title": "Alert title with link",
      "title_link": "URL to alert history",
      "mrkdwn_in": ["Details"],
      "fields": [
        {"title": "Field name", "value": "Field value", "short": false}
      ]
    }
  ]
}
```

For example, this is a Slack notification that was sent when the origin bandwidth exceeded 100Mbps:

```json
{
  "username": "Fastly Alerts",
  "icon_url": "https://manage.fastly.com/observe/logo.png",
  "attachments": [
    {
      "color": "#dd2530",
      "title": "[FIRING] all_bandwidth high on critical origins",
      "title_link": "https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m",
      "mrkdwn_in": ["Details"],
      "fields": [
        {
          "title": "High Origin Bandwidth Alert",
          "value": "125Mbps",
          "short": false
        },
        {
          "title": "Started (UTC)",
          "value": "2026-02-27T10:30:00Z",
          "short": false
        },
        {
          "title": "Details",
          "value": "- *name:* High Origin Bandwidth Alert\n- *description:* Triggers when origin bandwidth exceeds 100Mbps\n- *metric:* all_bandwidth\n- *service:* svc_M4nP7qR2sT9vW3xY8zA\n- *evaluation type:* above_threshold\n- *threshold:* 750000000\n- *evaluation period:* 5m\n- *sources:* origin1, origin3",
          "short": false
        }
      ]
    }
  ]
}
```

### Email

Email notifications deliver alert information in both HTML and plain text formats with a descriptive subject line.

```json
{
  "subject": "Fastly Alert: {alert_name} {Firing|Resolved}",
  "plainBody": "Alert details...",
  "htmlBody": "<html>Formatted alert details...</html>"
}
```

For example, this is an email notification that was sent when the origin bandwidth exceeded 100Mbps:

```json
{
  "subject": "Fastly Alert: High Origin Bandwidth Alert Firing",
  "plainBody": "[FIRING] all_bandwidth high on critical origins\n\nValue: 125Mbps\n\nStarted (UTC): 2026-02-27T10:30:00Z\n\nDetails:\n- name: High Origin Bandwidth Alert\n- description: Triggers when origin bandwidth exceeds 100Mbps\n- metric: all_bandwidth\n- service: svc_M4nP7qR2sT9vW3xY8zA\n- evaluation type: above_threshold\n- threshold: 750000000\n- evaluation period: 5m\n- sources: origin1, origin3\n\nView in Fastly: https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m",
  "htmlBody": "<html><body><h2>[FIRING] all_bandwidth high on critical origins</h2><p><strong>Value:</strong> 125Mbps</p><p><strong>Started (UTC):</strong> 2026-02-27T10:30:00Z</p><h3>Details</h3><ul><li><strong>name:</strong> High Origin Bandwidth Alert</li><li><strong>description:</strong> Triggers when origin bandwidth exceeds 100Mbps</li><li><strong>metric:</strong> all_bandwidth</li><li><strong>service:</strong> svc_M4nP7qR2sT9vW3xY8zA</li><li><strong>evaluation type:</strong> above_threshold</li><li><strong>threshold:</strong> 750000000</li><li><strong>evaluation period:</strong> 5m</li><li><strong>sources:</strong> origin1, origin3</li></ul><p><a href=\"https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m\">View in Fastly</a></p></body></html>"
}
```

### PagerDuty

PagerDuty notifications use the PagerDuty Events API v2 format.

```json
{
  "payload": {
    "summary": "Alert summary",
    "severity": "critical",
    "source": "Source URL",
    "timestamp": "ISO 8601 timestamp",
    "custom_details": {
      "key": "value"
    }
  },
  "dedup_key": "Unique identifier for alert",
  "links": [
    {
      "href": "URL",
      "text": "Link text"
    }
  ],
  "client": "Fastly Alerts Notification Service",
  "event_action": "trigger | resolve"
}
```

For example, this is a PagerDuty notification that was sent when the origin bandwidth exceeded 100Mbps:

```json
{
  "payload": {
    "summary": "[FIRING] all_bandwidth high on critical origins",
    "severity": "critical",
    "source": "https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m",
    "timestamp": "2026-02-27T10:30:00Z",
    "custom_details": {
      "name": "High Origin Bandwidth Alert",
      "description": "Triggers when origin bandwidth exceeds 100Mbps",
      "metric": "all_bandwidth",
      "service": "svc_M4nP7qR2sT9vW3xY8zA",
      "type": "origins",
      "sources": "origin1, origin3",
      "evaluation_type": "above_threshold",
      "threshold": "750000000",
      "evaluation_period": "5m",
      "value": "125Mbps"
    }
  },
  "dedup_key": "def_XyZ9kL3mN8pQ2vR7wB4tJ",
  "links": [
    {
      "href": "https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m",
      "text": "https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m"
    }
  ],
  "client": "Fastly Alerts Notification Service",
  "event_action": "trigger"
}
```

### Microsoft Teams

Microsoft Teams notifications use Adaptive Cards for rich, interactive notifications.

```json
{
  "type": "message",
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.adaptive",
      "content": {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.4",
        "body": [
          {
            "type": "Container",
            "items": [...]
          }
        ],
        "actions": [
          {
            "type": "Action.OpenUrl",
            "title": "View",
            "url": "..."
          }
        ]
      }
    }
  ]
}
```

For example, this is a Microsoft Teams notification that was sent when the origin bandwidth exceeded 100Mbps:

```json
{
  "type": "message",
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.adaptive",
      "content": {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.4",
        "body": [
          {
            "type": "Container",
            "items": [
              {
                "type": "TextBlock",
                "text": "[FIRING] all_bandwidth high on critical origins",
                "weight": "Bolder",
                "size": "Medium",
                "wrap": true
              },
              {
                "type": "TextBlock",
                "text": "125Mbps"
              },
              {
                "type": "FactSet",
                "facts": [
                  {
                    "title": "Started (UTC):",
                    "value": "2026-02-27T10:30:00Z"
                  }
                ]
              }
            ]
          },
          {
            "type": "Container",
            "items": [
              {
                "type": "FactSet",
                "facts": [
                  {
                    "title": "Name:",
                    "value": "High Origin Bandwidth Alert"
                  },
                  {
                    "title": "Description:",
                    "value": "Triggers when origin bandwidth exceeds 100Mbps"
                  },
                  {
                    "title": "Metric:",
                    "value": "all_bandwidth"
                  },
                  {
                    "title": "Service ID:",
                    "value": "svc_M4nP7qR2sT9vW3xY8zA"
                  },
                  {
                    "title": "Sources:",
                    "value": "origin1, origin3"
                  },
                  {
                    "title": "Evaluation Type:",
                    "value": "above_threshold"
                  },
                  {
                    "title": "Threshold:",
                    "value": "750000000"
                  },
                  {
                    "title": "Evaluation Period:",
                    "value": "5m"
                  }
                ]
              }
            ]
          }
        ],
        "actions": [
          {
            "type": "Action.OpenUrl",
            "title": "View",
            "url": "https://manage.fastly.com/observability/alerts/history/def_XyZ9kL3mN8pQ2vR7wB4tJ?id=hist_A7bC2dE9fG3hJ8kL5m"
          }
        ]
      }
    }
  ]
}
```

### New Relic

New Relic notifications use the New Relic Events API format with `NrAiIncidentExternal` event type.

```json
[
  {
    "eventType": "NrAiIncidentExternal",
    "title": "Alert title",
    "description": "Alert description",
    "aggregationTag.definitionId": "Alert definition ID",
    "alertHistoryId": "History ID",
    "serviceId": "Service ID (optional)",
    "state": "trigger | resolve",
    "source": "Fastly Alerts Notification Service",
    "sources": "Comma-separated sources (optional)",
    "entity.guid": "Entity GUID",
    "entityName": "Entity name",
    "type": "Alert type",
    "metric": "Metric name",
    "evaluation_type": "Evaluation strategy",
    "threshold": "Threshold value",
    "evaluation_period": "Evaluation period",
    "start": "Start timestamp",
    "end": "End timestamp (only on resolve)"
  }
]
```

For example, this is a New Relic notification that was sent when the origin bandwidth exceeded 100Mbps:

```json
[
  {
    "eventType": "NrAiIncidentExternal",
    "title": "[FIRING] all_bandwidth high on critical origins",
    "description": "Triggers when origin bandwidth exceeds 100Mbps",
    "aggregationTag.definitionId": "def_XyZ9kL3mN8pQ2vR7wB4tJ",
    "alertHistoryId": "hist_A7bC2dE9fG3hJ8kL5m",
    "serviceId": "svc_M4nP7qR2sT9vW3xY8zA",
    "state": "trigger",
    "source": "Fastly Alerts Notification Service",
    "sources": "origin1, origin3",
    "entity.guid": "def_XyZ9kL3mN8pQ2vR7wB4tJ",
    "entityName": "High Origin Bandwidth Alert",
    "type": "origins",
    "metric": "all_bandwidth",
    "evaluation_type": "above_threshold",
    "threshold": "750000000",
    "evaluation_period": "5m",
    "start": "2026-02-27T10:30:00Z"
  }
]
```

### Webhook

When an alert fires or resolves, Fastly sends a POST request to your configured webhook endpoint with the following JSON payload:

```json
{
  "title": "Alert title with status",
  "description": "Alert description",
  "history_api": "API endpoint URL for alert history",
  "history_ui": "Fastly control panel URL for alert history",
  "definition_api": "API endpoint URL for alert definition",
  "definition_ui": "Fastly control panel URL for alert definition",
  "triggered": true | false,
  "start": "ISO 8601 timestamp",
  "end": "ISO 8601 timestamp (only when triggered is false)",
  "version": "v1"
}
```

For example, this is a webhook notification that was sent when the bandwidth exceeded 100Mbps:

```json
{
  "title": "[FIRING] bandwidth high on critical stats",
  "description": "Triggers when bandwidth exceeds 100Mbps",
  "history_api": "https://api.fastly.com/alerts/history?definition_id=def_xyz789&after=2026-02-27T10:30:00Z&before=2026-02-27T10:30:00Z",
  "history_ui": "https://manage.fastly.com/observability/alerts/history/def_xyz789?id=hist_abc123",
  "definition_api": "https://api.fastly.com/alerts/definitions/def_xyz789",
  "definition_ui": "https://manage.fastly.com/observability/alerts/definitions/def_xyz789/edit",
  "triggered": true,
  "start": "2026-02-27T10:30:00Z",
  "version": "v1"
}
```


