
Your team coordinates in Microsoft Teams. Stand-ups, deployments, incident discussions — it all happens there. So when your website goes down, the alert should land in Teams too, not in an inbox that nobody watches between 6 PM and 9 AM.
This guide shows you how to set up Microsoft Teams downtime alerts in minutes. You'll get a rich, formatted notification in your Teams channel within minutes of an outage — without writing any code.
Why Teams for Downtime Alerts
Meet your team where they already are
The best alert is one that reaches the right person immediately. If your team lives in Microsoft Teams — and most enterprise and mid-market teams do — routing monitoring alerts there eliminates the "I didn't see the email" problem.
Teams delivers push notifications to desktop and mobile. A critical alert at 2 AM doesn't wait for a morning email check. It pings the channel and (with the right @mention) wakes up whoever is on-call.
Rich card formatting
Teams supports Adaptive Cards and webhook message cards — structured alert formats with titles, descriptions, status fields, color-coded borders, and action buttons. Your downtime alert can include everything your team needs to respond: which service failed, what the error is, when it happened, and a direct link to investigate.
Free at scale
Unlike SMS (per-message cost) or phone calls (per-minute cost), Teams notifications are included in your Microsoft 365 subscription. Alert on every state change — down, degraded, recovering, resolved — without accumulating a per-notification bill.
How Teams Webhooks Work
Microsoft Teams supports incoming webhooks: URLs that accept HTTP POST requests and render them as messages in a channel. You create a webhook connector in Teams, get a URL, then give it to your monitoring tool. When a check fails, the monitoring tool POSTs to the webhook, and Teams displays the formatted message.
No bot app to deploy. No Azure registration required. Just a URL.
Option 1: Using Webalert (Recommended)
Webalert has built-in Microsoft Teams integration — paste a webhook URL and you're done.
Step 1: Create a Teams webhook
- Open Microsoft Teams and navigate to the channel where you want alerts (e.g.,
#monitoringor#alerts) - Click the ... (More options) next to the channel name → Connectors
- Search for "Incoming Webhook" and click Configure
- Give the webhook a name (e.g., "Webalert") and optionally upload an icon
- Click Create
- Copy the webhook URL — it looks like:
https://yourorg.webhook.office.com/webhookb2/... - Click Done
Note: In newer Teams versions, Connectors may be under Settings → Apps → Incoming Webhook depending on your Teams version and organization settings.
Step 2: Add the webhook to Webalert
- Log in to your Webalert dashboard
- Go to Settings → Notification Channels
- Click Add Channel → select Microsoft Teams
- Paste your webhook URL
- Send a test notification to confirm the message appears in your channel
- Save
Step 3: Assign the channel to your monitors
- Go to any monitor's settings
- Under Notification Channels, enable your Teams channel
- Save
That's it. When a monitor fails, Webalert sends a formatted card to your Teams channel with all the alert details.
What Webalert Teams alerts look like
Webalert sends Adaptive Cards with:
- Alert status — Down, degraded, or recovered (color-coded: red for down, green for recovered)
- Monitor name — Which service is affected
- Error details — HTTP status code, response time, or error message
- Timestamp — When the failure was detected
- Region — Which check location detected the failure
- Direct link — Click through to the monitor's history and details
Recovery notifications are sent automatically when the service comes back up.
Option 2: Custom Webhook Setup
If you're using a different monitoring tool or building custom alerting, here's how to POST to Teams webhooks directly.
Teams webhook message format
Teams webhooks accept JSON payloads. The simplest format:
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"themeColor": "FF0000",
"summary": "Website Down Alert",
"sections": [
{
"activityTitle": "🔴 yoursite.com is DOWN",
"activitySubtitle": "HTTP 503 — Service Unavailable",
"facts": [
{ "name": "Status", "value": "DOWN" },
{ "name": "Response Code", "value": "503" },
{ "name": "Detected At", "value": "2026-03-06 14:32 UTC" },
{ "name": "Check Region", "value": "US East" }
],
"markdown": true
}
],
"potentialAction": [
{
"@type": "OpenUri",
"name": "View Monitor",
"targets": [
{ "os": "default", "uri": "https://app.web-alert.io/monitors/123" }
]
}
]
}
For a recovery notification, change themeColor to "00FF00" and update the title to "✅ yoursite.com is UP".
Sending from the command line
curl -H "Content-Type: application/json" \
-X POST \
-d '{"@type":"MessageCard","@context":"http://schema.org/extensions","themeColor":"FF0000","summary":"Site Down","sections":[{"activityTitle":"🔴 yoursite.com is DOWN"}]}' \
https://yourorg.webhook.office.com/webhookb2/YOUR_WEBHOOK_URL
Adaptive Cards (newer format)
Microsoft recommends Adaptive Cards for richer formatting in newer Teams versions:
{
"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": "TextBlock",
"text": "🔴 Website Down Alert",
"weight": "Bolder",
"size": "Medium",
"color": "Attention"
},
{
"type": "FactSet",
"facts": [
{ "title": "Monitor", "value": "yoursite.com" },
{ "title": "Status", "value": "DOWN (HTTP 503)" },
{ "title": "Detected", "value": "2026-03-06 14:32 UTC" }
]
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "View Monitor",
"url": "https://app.web-alert.io/monitors/123"
}
]
}
}
]
}
Best Practices for Teams Monitoring Alerts
Use a dedicated channel
Keep monitoring alerts out of general-purpose channels. Create #monitoring or #alerts. This keeps alerts visible to everyone who cares without disrupting unrelated conversations, and lets non-engineering staff mute it without losing important messages.
Use @mentions for critical alerts
For P1 alerts (complete outage), mention the on-call engineer or a role:
{
"text": "<at>On-Call Engineer</at> 🔴 **CRITICAL** — yoursite.com is DOWN"
}
For lower-severity alerts (degraded performance, certificate expiring in 30 days), send without mentions — visible in the channel but not disruptive.
Always send recovery notifications
An unresolved alert creates uncertainty. Did someone fix it? Is it still down? A recovery message closes the loop and confirms the incident is over. Configure your monitoring tool to send recovery notifications automatically.
Require consecutive failures before alerting
A single check failure can be a transient network blip, not a real outage. Configure your monitoring to require 2 or 3 consecutive failures before triggering the Teams alert. This eliminates most false positives while still alerting within 2-3 minutes of a genuine outage.
Layer Teams with SMS for critical alerts
Teams is great for team-wide awareness. But Teams notifications can be missed if the app is minimized, the phone is on Do Not Disturb, or the team member is away from their device. For P1 outages, combine Teams (team awareness) with SMS or phone call (guaranteed reach) to whoever is on-call.
Teams vs. Slack vs. Email vs. SMS
| Channel | Speed | Cost | Push notification | Rich formatting | Best for |
|---|---|---|---|---|---|
| Microsoft Teams | Instant | Included in M365 | Yes (desktop + mobile) | Yes (cards) | Enterprise and mid-market teams |
| Slack | Instant | Free tier limited | Yes | Yes (blocks) | Startups, tech teams |
| 1-5 min | Free | Depends on client | Limited | Non-urgent alerts, audit trail | |
| SMS | Instant | $0.01-0.05/msg | Yes | No (text only) | Critical alerts, on-call |
| Phone call | Instant | $0.05-0.15/call | N/A | No | P1 emergencies only |
If your organization is standardized on Microsoft 365 and Teams, it's the natural choice for team monitoring alerts. Pair it with SMS for on-call coverage.
Setting Up an On-Call Alerting Strategy with Teams
Teams works best as your team awareness layer. Here's a practical multi-tier strategy:
For all alerts (any severity):
Send to the Teams #monitoring channel. Everyone on the team can see the state of production at a glance.
For P1 alerts (service completely down): Teams channel + SMS to on-call engineer. Use Webalert's on-call scheduling to automatically route to the right person based on rotation.
For P2 alerts (degraded, high latency): Teams channel only. Needs attention during business hours but doesn't warrant waking someone up.
For resolved events: Teams channel only. Confirms the incident is over without sending unnecessary SMS.
How Webalert Makes Teams Alerts Easy
Webalert treats Microsoft Teams as a first-class notification channel:
- One-click setup — Paste your Teams webhook URL, send a test, done in under 2 minutes
- Rich card formatting — Formatted alert cards with all relevant context, not just raw text
- Recovery notifications — Automatic "back up" messages when services recover
- Per-monitor channels — Route critical monitors to
#alerts, non-critical to#monitoring - Layered alerting — Combine Teams with email, SMS, Discord, Slack, and webhooks
- On-call scheduling — Define rotations so the right engineer gets paged even when teams are distributed across time zones
- Status pages — Keep customers informed while your team coordinates in Teams
Set up your first Teams downtime alert in under 5 minutes.
See features and pricing for the full details.
Quick Setup Checklist
- Create a dedicated
#monitoringor#alertschannel in Teams - Add an Incoming Webhook connector to the channel
- Copy the webhook URL
- Add the webhook URL to your monitoring tool (Webalert or custom)
- Send a test alert and verify it appears in the channel
- Assign the Teams channel to your critical monitors
- (Optional) Configure @mentions for P1 alerts
- (Optional) Add SMS as a backup channel for on-call
Five minutes of setup. No more finding out about outages from users.