/ Integration

Microsoft Teams Integration

Alerts in your Microsoft Teams channels

Microsoft Teams Integration

Assert posts alerts to a Teams channel through an incoming webhook, as an Adaptive Card with buttons to view the details and acknowledge the alert.

The card names the assertion that failed, the expected value, the value your API returned, the regions that agreed, and the time. A failure re-runs across regions before the card is posted. A single bad check never reaches the channel. Assert posts one alert per incident and closes the incident when the assertion passes again.

Routing is per monitor, so each service can report into its own channel. Teams is on every paid plan.

Setup Guide

Step 1: Create Incoming Webhook in Teams

  1. Open Microsoft Teams
  2. Go to the channel where you want alerts
  3. Click ... (More options) → Connectors
  4. Find Incoming Webhook and click Configure
  5. Name the webhook "Assert Alerts"
  6. (Optional) Upload a custom icon
  7. Click Create and copy the webhook URL

Step 2: Add Teams Channel in Assert

  1. Go to AlertsChannels in your Assert dashboard
  2. Click Add ChannelMicrosoft Teams
  3. Paste your webhook URL
  4. Name the channel, for example "Teams - API Alerts"
  5. Click Save

Step 3: Test the Integration

Click Send Test. Assert posts a test card to your Teams channel.

Step 4: Assign to Monitors

Open each monitor. Add the Teams channel under Alert Channels.

Alert Format

The card looks like this:

┌─────────────────────────────────────┐
│ 🔴 Monitor Failed                   │
│ Production API                      │
├─────────────────────────────────────┤
│ Status Code    500                  │
│ Response Time  2,340ms              │
│ Region         US East              │
│ Time           Dec 11, 2:34 PM UTC  │
├─────────────────────────────────────┤
│ Assertion Failed:                   │
│ $.status expected "success",        │
│ got "error"                         │
├─────────────────────────────────────┤
│ [View Details]  [Acknowledge]       │
└─────────────────────────────────────┘

Configuration Options

Option Description
Webhook URL Your Teams incoming webhook URL
Include Response Time Show request duration in alerts
Include Region Show which region detected the issue
Include Error Details Show assertion failure messages

Best Practices

Create separate channels for different alert types:

📊 Monitoring
├── API Alerts
├── Critical Incidents
└── Vendor Status

Then set how loudly each one rings:

  1. Right-click the channel → Channel notifications
  2. Set "All activity" for critical channels
  3. Set "Mentions only" for lower-priority channels

To keep a monitoring channel visible, right-click it and select Pin. Mentions of specific people or groups need extra configuration in your webhook handler.

Multiple Teams/Channels

Assert can post to more than one Teams channel:

  1. Create a webhook in each channel
  2. Add each webhook as a separate channel in Assert
  3. Assign monitors to the channels you want

Example routing:

Monitor Type Teams Channel
Production APIs #critical-alerts
Staging APIs #dev-alerts
Third-party #vendor-status

Troubleshooting

Not receiving alerts?

  • Check the webhook URL
  • Check that the webhook connector is still configured
  • Check that the channel still exists

Cards not rendering?

  • Microsoft Teams limits how complex a card can be
  • Update your Teams client
  • If the desktop client fails, try the Teams web client

Webhook URL expired?

  • Teams webhooks can expire after 90 days of inactivity
  • Regenerate the webhook. Paste the new URL into Assert.

Rate limiting?

  • Teams allows a webhook 4 requests per second
  • Reduce the check frequency for monitors that share a channel

Security

Treat webhook URLs like passwords:

  • Do not commit them to source control
  • Keep them in environment variables
  • Rotate a URL if it leaks

Check the connectors in your Teams channels from time to time:

  1. Go to channel settings → Connectors
  2. Review the active webhooks
  3. Remove the integrations you no longer use

Alternative: Teams Workflows

For more control, use Power Automate with Assert webhooks:

  1. Create an Assert webhook integration
  2. Set up a Power Automate flow triggered by HTTP request
  3. Post to Teams using the Teams connector
  4. Add custom logic, approvals, or multi-channel routing

Next Steps

Route the alert.

Five monitors, thirty-second checks, no card, no call.