Skip to content

Example: Route alerts to Slack

This example shows how to route alert notifications to a Slack workspace using Notification Center.
The workflow uses a connector, a preset, and a router to send alerts to specific Slack channels based on alert priority.

Workflow overview

  1. Create a Slack connector: defines where notifications are sent
  2. Create a preset: defines how messages appear in Slack
  3. Create a router and routing rules: defines which alerts go to Slack
  4. Label alerts: ensures alerts match the correct router

Create a Slack connector

  1. Go to Integrations, then Notification Center, then Connectors.
  2. Select + New connector.
  3. Select Slack as the destination type.
  4. In Details, enter a connector name and optional description.
  5. In Configuration:
    • Integration: Select the Slack integration. Create one if none exists.
    • Channel: Enter a default Slack channel (for example, #infra-alerts).
  6. (Optional) Select Advanced, then Dynamic fields, define a dynamic channel.

    Example:

    {% if alertDef.priority == "P1" %}
    critical-alerts
    {% else %}
    general-alerts
    {% endif %}
    
  7. Select Send test notification to confirm delivery.

  8. Select Create connector.

Create a preset (optional)

If you do not need message customization, use the system preset and skip this section.

To create a custom preset:

  1. Go to Integrations, then Notification Center, then Presets.
  2. Open the Alerts tab and select Slack.
  3. Select + New alert preset.
  4. Customize message fields:

    FieldExample
    Title[{{ alertDef.priority }}] {{ alertDef.name }}
    Description{{ alertDef.description }}
    FooterTriggered at {{ alert.timestamp }}
  5. Use the Preview panel to review output.

  6. (Optional) Use Send test notification to validate with your Slack connector.
  7. Select Create preset.

Create a router and routing rule

  1. Go to Integrations, then Notification Center, then Routers.
  2. Select + New router.
  3. In Details, enter a name such as Production Alerts.
  4. In Routing labels, add labels that this router matches:

    group:sre
    environment:prod
    
  5. Matching alerts appear in the Matching entities panel.

  6. After creating the router, add a routing rule:

    • Condition
    alertDef.priority == "P1"
    
    • Destination
      • Connector: Slack – Prod
      • Preset: Slack Critical Alerts
    • (Optional) In Fallback, select a connector for unmatched alerts.
    • Select Create router.

Add labels to alerts

  1. Go to Alerts, then Create alert.
  2. In Labels, add routing labels that match your router:

    routing.team:sre
    routing.environment:prod
    
  3. In Notifications, select Notification Center.

  4. Save the alert.

Example result

A triggered alert produces a Slack message similar to:

Title:
[P1] CPU Usage High – Production

Body:
CPU usage for host server-1 exceeded 95%.

Footer:
Triggered at 2025-11-11 10:04 UTC

Next steps

Was this helpful?