Skip to main content
Back to Insights
Engineering & ReliabilityGuide

How to Send Grafana Alerts to Microsoft Teams and Slack Simultaneously

Grafana requires a separate contact point per notification destination. Here is how observability teams route one Grafana alert rule to Slack, Teams, and beyond from a single webhook contact point.

5 min read
Alex Morgan

Alex Morgan is a solutions architect at SyncRivo focused on observability integrations, Grafana alerting, and cross-platform notification infrastructure for engineering teams.

How to Send Grafana Alerts to Microsoft Teams and Slack Simultaneously

Grafana's Contact Point Architecture

Grafana Alerting works through a layered system: alert rules evaluate metrics, alert groups organize rules, and contact points define where notifications go. Grafana ships with contact point integrations for Slack, Microsoft Teams, PagerDuty, OpsGenie, and others.

Each contact point is a single destination. To notify both Slack and Teams from one alert rule, you create two contact points and associate both with a notification policy. This works — but it has a maintenance cost that compounds with scale.

Every new destination (a new Slack channel, a new Teams team) requires a new contact point. Every change to a notification endpoint (a webhook URL rotation, a Slack channel rename) must be updated in the contact point configuration. For organizations with dozens of alert rules routing to multiple destinations, the contact point list grows into a management burden.

Grafana OnCall and Grafana's on-call routing features add additional complexity: escalation chains, override schedules, and silence rules all interact with contact points in ways that require careful coordination when multiple destinations are involved.

Replacing Multiple Contact Points with One SyncRivo Endpoint

The architectural simplification: replace all per-platform contact points with a single Webhook contact point pointing to SyncRivo. SyncRivo handles the fan-out to Slack, Teams, Webex, Google Chat, and Zoom — controlled by routing rules defined once in SyncRivo rather than across multiple Grafana contact point configurations.

Setup (15 minutes):

  1. In SyncRivo, connect your Slack workspace and Microsoft Teams tenant via OAuth.
  2. Create a Webhook source in SyncRivo. Copy the endpoint URL.
  3. In Grafana, go to Alerting → Contact points → Add contact point. Select type: Webhook. Paste the SyncRivo URL. Save.
  4. In Grafana, edit your notification policies to route alert groups to this contact point.
  5. In SyncRivo, configure routing: critical severity alerts → Slack #oncall + Teams #engineering simultaneously; warning alerts → Slack only; resolved alerts → original alert threads on both platforms.

Works with Grafana OnCall and AlertManager

For organizations routing alerts through Prometheus AlertManager before they reach Grafana, SyncRivo integrates at the AlertManager receiver level — configure a webhook receiver in AlertManager pointing to SyncRivo, and Grafana's contact point layer is bypassed entirely. Both approaches are supported.

For Grafana OnCall, configure SyncRivo as the outbound webhook for escalation notifications. OnCall escalation chains can then trigger SyncRivo fan-out rather than managing per-platform integrations within OnCall itself.

Alert Routing by Severity and Audience

Critical alert firing: Route to Slack #oncall for the on-call engineer who will respond, and Teams #engineering-leadership for the engineering manager who needs awareness without being the primary responder.

Warning alert firing: Route to Slack for the engineering team monitoring the service. Leadership visibility at warning level is usually noise — route only to Slack.

Alert resolved: Route to the originating channel threads on both platforms. Engineers in Slack and managers in Teams both see the resolution without a manual update or cross-platform status check.

Anomaly detected (machine learning-based alerts): Route to both Slack (for investigation) and Teams (for business stakeholders if the anomaly affects user-facing metrics). Anomaly alerts often have ambiguous severity at first — routing to both platforms ensures the right audience sees them early.

Data source alerting (database, infrastructure): Route based on the data source. Database latency alerts go to Slack #backend-eng. Infrastructure capacity alerts go to Slack #infra + Teams #engineering for capacity planning visibility.

For the full Grafana routing matrix, contact point configuration guide, and Grafana OnCall integration details, see the Grafana Alerts in Slack & Teams integration guide.

Ready to connect your messaging platforms?

Bridge your messaging platforms in 15 minutes

Connect Slack, Teams, Google Chat, Webex, and Zoom with any-to-any routing. No guest accounts. No migration. SOC 2 & HIPAA ready.