> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squasher.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Teams alerts

> Send Squasher incident alerts to a Microsoft Teams channel as Adaptive Cards through a Teams Workflows webhook.

A Microsoft Teams destination posts a card to a Teams channel each time an incident opens, changes,
or resolves. Squasher sends the card to a webhook that a Teams workflow gives you. You do not
install an app in Teams.

## What you need

* A Teams channel where you can add workflows.
* The owner, admin, or security admin role in the Squasher organization.

## Connect Microsoft Teams

<Steps>
  <Step title="Create the workflow in Teams">
    In Teams, open the channel, select **More options** (**…**), then **Workflows**. Choose the
    **Send webhook alerts to a channel** template, and follow the steps. At the end, Teams shows a
    URL. Copy it. Keep the URL secret: anyone who has it can post to the channel.
  </Step>

  <Step title="Add the destination in Squasher">
    1. Open your project and select **Settings** in the sidebar, then the
       **Notifications** tab.
    2. Under **Add destination**, choose **Microsoft Teams** in **Channel**, and enter a **Name**.
    3. Paste the URL into **Teams Workflows URL**.
    4. Select **Add destination**.

    Squasher accepts only Teams Workflows URLs on `environment.api.powerplatform.com` or
    `logic.azure.com`. Older Office 365 connector URLs are retired by Microsoft and are rejected.
  </Step>

  <Step title="Send a test">
    Select **Send test** next to the destination. The channel gets a card that says "Squasher test
    notification". Check the result under **Recent deliveries**.
  </Step>
</Steps>

Squasher adds the new destination to the default route, which sends the `opened` and `resolved`
events of every incident. To send other events or only some incidents, see
[Choose which incidents go where](/features/alerts#choose-which-incidents-go-where).

## What Squasher sends

Each card has a colored header with the event and the incident title, then the severity, status,
monitor, open time, and incident ID.

| Event | Card header |
| - | - |
| `opened` | **Monitor down** for a monitor incident, else **Incident opened** |
| `resolved` | **Monitor recovered** for a monitor incident, else **Incident resolved** |
| `acknowledged` | **Incident acknowledged** |
| `escalation_exhausted` | **On-call page not acknowledged** |
| Other events on a route | **Incident updated** |

When the incident has them, the card also shows **Impact**, **Root cause**, and **Recommended
action**. If the route turns off the AI summary, the card shows only the monitor's own summary.

The card has these buttons:

* **Open incident** opens the incident in Squasher. Acknowledge or resolve it there.
* **Open monitor** appears when a monitor opened the incident.

Incident text is shown exactly as written: links and formatting in a title or summary are not
turned into links in Teams.

## Page the on-call channel

An escalation policy step can post to a Teams destination. See
[Post the page to Microsoft Teams](/features/on-call-escalation#post-the-page-to-microsoft-teams).

## Limits

* The card holds links only. You cannot acknowledge an incident or reply to the agent from Teams.
* A card is at most 24 KB. Squasher shortens the title to 150 characters and each detail section
  to 700 characters.
* When Teams limits the message rate or has a server error, Squasher tries again. It waits at least
  as long as Teams asks, and stops after three attempts. Squasher does not retry other errors, such
  as a deleted workflow.
* When the connection drops after the card was sent, Squasher cannot tell whether Teams received
  it. **Recent deliveries** shows **Outcome unknown**, and Squasher does not send the card again,
  so the channel never gets it twice.
* Comment mentions are not sent to Teams.
* Squasher encrypts the URL and shows only its host. You cannot edit a destination: to use a new
  URL, remove the destination and add it again.

## Next steps

<CardGroup cols={2}>
  <Card title="Notifications" icon="https://mintcdn.com/nextbigthingllc/Fg5aclMlZNSrg_Y3/icons/nav/alerts.svg?fit=max&auto=format&n=Fg5aclMlZNSrg_Y3&q=85&s=12b9b77fc0acf3c974feb155bd46c2a5" href="/features/alerts" width="24" height="24" data-path="icons/nav/alerts.svg">
    Routes, events, and delivery rules for every destination.
  </Card>

  <Card title="Notifications API" icon="https://mintcdn.com/nextbigthingllc/Fg5aclMlZNSrg_Y3/icons/docs/api.svg?fit=max&auto=format&n=Fg5aclMlZNSrg_Y3&q=85&s=ad72f5da1d92bd1c152340d2b13ad254" href="/api-reference/alerts" width="24" height="24" data-path="icons/docs/api.svg">
    Create Microsoft Teams destinations over HTTP.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.