> For the complete documentation index, see [llms.txt](https://docs.ilert.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ilert.com/chatops/microsoft-teams/incoming-webhook.md).

# Post alerts with a Teams webhook

Post ilert alerts to a Microsoft Teams channel through a Workflows webhook, where the ilert app cannot be installed.

{% hint style="danger" %}
**Office 365 connectors no longer work.** Microsoft switched them off between 18 and 22 May 2026. An alert action built on an Office 365 connector URL stops delivering, and the connector cannot be recreated — its type has been retired in ilert too.

Create a **Workflows** webhook as described below, and a new alert action for it. There is no migration: the old alert action cannot be pointed at the new URL.
{% endhint %}

A Workflows webhook is the fallback route into a Teams channel, and it is a thin one: it only posts messages. Nobody can accept, reroute, or resolve from the channel, the message is never updated as the alert changes, and the `@ilert` commands do not exist.

{% hint style="warning" %}
Prefer the [ilert app for Microsoft Teams](/chatops/microsoft-teams/chat.md). Use this route only where your organization will not grant the ilert app its permissions.
{% endhint %}

## In Microsoft Teams: create the webhook

{% stepper %}
{% step %}

## Open Workflows

In Microsoft Teams, open the **Workflows** app.
{% endstep %}

{% step %}

## Start from the webhook template

Search for the template **Post to a channel when a webhook request is received**, and select it. Microsoft's guide [Send messages in Teams using incoming webhooks](https://support.microsoft.com/en-us/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498) lists the current templates.

Pick the template that accepts a request from anyone. The variants that only accept requests "from specific people" or "from people in an org" expect the caller to sign in with a Microsoft account, which ilert does not do.
{% endstep %}

{% step %}

## Choose the team and channel

Select the team and the channel the alerts should appear in, then save the workflow.
{% endstep %}

{% step %}

## Copy the URL

Microsoft shows the webhook URL once the workflow is created. Copy it.
{% endstep %}
{% endstepper %}

{% hint style="danger" %}
Treat that URL as a secret. Anyone who has it can post to your channel.
{% endhint %}

## In ilert: create the alert action

{% stepper %}
{% step %}

## Start a new alert action

In the sidebar, go to **Alerting** → **Alert actions** and click **Create new alert action**.
{% endstep %}

{% step %}

## Choose Teams, with the webhook option

Select the **Teams** tile and tick **Use webhook**. Click **Next**.
{% endstep %}

{% step %}

## Choose the alert sources and the events to publish

Pick the alert sources whose alerts should reach the channel, and tick the events to publish. Only **Alert created** is ticked to begin with, and every event you add becomes its own message in the channel. Click **Next**.
{% endstep %}

{% step %}

## Skip the conditions

Set conditions under **Conditional execution**, or click **Next** to publish every alert of those sources.
{% endstep %}

{% step %}

## Paste the webhook URL

Name the alert action, paste the URL into **URL**, and click **Save**. Click **Save** again on the edit page to reach the detail page.
{% endstep %}

{% step %}

## Test it

Click **Test** in the top right. A test message appears in the channel.
{% endstep %}
{% endstepper %}

## What arrives in the channel

A Workflows URL receives the same card as the ilert app posts — status, summary, details, escalation policy, priority, labels, responders, links, affected services, and images — **without the buttons**, and always in English. Messages are posted by the Workflows bot, not by ilert, because Microsoft does not let a workflow change the sender's name or icon.

Every event you tick posts a new message. Nothing is updated in place, so a busy alert produces a series of messages.

<details>

<summary>Send your own payload instead</summary>

On the **Action** step, tick **Need custom fields? Show advanced options** to reveal **Custom content template**. Anything you put there is rendered with [Mustache](/integrations/outbound-integrations/webhook.md#template-variables-explained) and merged over the message ilert would otherwise send, so you can replace single fields or the whole card.

</details>

## FAQ <a href="#faq" id="faq"></a>

### Can I use several webhooks?

Yes. Create one alert action per webhook URL, each with its own channel and its own trigger events.

### The messages stopped arriving

Open the alert action and read **Alert action logs** on its detail page. A workflow that was turned off or deleted, or a channel that no longer exists, shows up there. Recreate the workflow and paste the new URL into the alert action.

### Can responders act on these messages?

No. Install the [ilert app](/chatops/microsoft-teams/chat.md) for that.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ilert.com/chatops/microsoft-teams/incoming-webhook.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
