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

# Microsoft Teams channels

> Send team notifications to a Microsoft Teams channel with a Workflows webhook

Wirespeed can post notification cards to a Microsoft Teams channel. You create a webhook for the channel with Microsoft's **Workflows** app, then add its URL to Wirespeed as a Teams channel. Managing Teams channels, sending test cards, and choosing which notifications go to each channel require the Admin role. Other users can open a channel to see a read-only form and its delivery history, without **Send Test**.

Teams channels are for team-wide notifications. To message individual users in Teams for ChatOps, use the [Microsoft Teams integration](/integrations/microsoft-teams.md) instead. See [Teams channels and the Microsoft Teams integration](/settings/notifications.md#teams-channels-and-the-microsoft-teams-integration) for how the two compare.

## Supported notification types

Teams channels can receive these notification types:

* New Case Escalation
* New Case Auto Contained
* New System Security Event
* New Critical Defect
* Integration Health
* Account & Billing

Activity Summary is sent by email only. Teams channels receive every notification in real time; [frequency settings](/settings/notifications.md#notification-frequency) apply only to email.

## Before you start

* You need permission to add workflows to the Teams channel.
* The workflow belongs to the person who creates it. If that person leaves your organization and nobody else owns the workflow, it stops running. Add a co-owner after you create it.

## Step 1: Create the webhook in Teams

1. In Microsoft Teams, open the channel, select **⋯** (More options), then select **Workflows**.
2. Search for the **Send webhook alerts to a channel** template and select it. Older versions of Teams name it **Post to a channel when a webhook request is received**. If Teams is set to another language, these names may be translated.
3. Confirm the team and channel, then select **Save**.
4. Select **Copy webhook link**. Copy the whole URL, including everything after `?`.

> [!WARNING]
>
> Use the plain **Send webhook alerts to a channel** template. The **from specific people** and **from people in an org** variants require Microsoft sign-in on every request, so Teams rejects Wirespeed's notifications with a 401 error.

> [!NOTE]
>
> These steps were last verified against Microsoft Teams on October 13, 2026. If what you see doesn't match, follow Microsoft's guide: [Create incoming webhooks with Workflows for Microsoft Teams](https://support.microsoft.com/en-us/teams/apps-service/create-incoming-webhooks-with-workflows-for-microsoft-teams).

The webhook URL is the only credential needed to post to the channel: anyone who has it can post messages there. Treat it like a password and don't paste it into tickets, chats, or screenshots. If it leaks, create a new workflow, paste its URL into the channel in Wirespeed, and delete the old workflow.

## Step 2: Add the channel in Wirespeed

1. Go to **Settings > Notifications**.
2. On the **Teams** card, select **Connect**. If your team already has Teams channels, select the gear icon (⚙, **Manage Teams Channels**) instead.
3. Select **Add Teams Channel**.
4. Enter a **Name**. It's shown in the Teams dropdown when you set up a notification.
5. Paste the **Webhook URL** you copied in step 1.
6. Optionally select **Send Test** to post a test card.
7. Select **Save**.

Wirespeed stores the webhook URL encrypted. After you save it, you can replace it but not view it. Each webhook URL can be saved as only one Teams channel per team.

When you edit a channel, the **Webhook URL** field shows `••••••••` in place of the saved URL. Leave it unchanged to keep the saved URL, or paste a new URL to replace it.

### Send Test

**Send Test** sends a sample notification card to this workflow. If you've entered a new URL, the test uses that URL; otherwise it uses the saved one. Changing the URL clears the previous result.

**Accepted by Teams** means Microsoft accepted the request, and the card should appear in the channel shortly. If it doesn't, see [Missing cards](#missing-cards). Wirespeed allows up to 5 test sends per team per minute.

## Step 3: Choose which notifications to send

1. In **Settings > Notifications**, find the notification type in the **Team Account Notifications** card.
2. Select the **gear icon** (⚙, **Configure**) to open the configure dialog.
3. Turn on the **Teams Channel** switch, then choose one of your channels under **Select a Teams channel**. Add more channels, up to 10, with **Add Another Channel**.
4. Save your changes.

A channel that's already selected for this notification type, that you turned off, or that Wirespeed disabled after failed deliveries can't be selected; the menu labels it **Already selected**, **Turned off**, or **Disabled after errors**. To turn a channel back on or resolve it, select **Manage Teams Channels** at the bottom of the menu.

If your team has no Teams channels yet, the section is titled **Teams** and shows **Connect** instead.

Service providers configure client teams the same way as email inboxes. Teams channel subscriptions on your service provider team work like your other service provider subscriptions: they automatically watch all of your client accounts, so the channel receives notifications for every client team and everyone in it sees them. To send a single client team's notifications to its own channel, set it up while viewing that client team. See [Service provider behavior](/settings/notifications.md#service-provider-behavior).

## Channel status

The **Teams Channels** page lists each channel with its status.

| Status | What you see | Meaning |
| - | - | - |
| **Active** | The **Enabled** switch is on | Notifications are delivered. |
| **Failing** | An amber warning icon next to the name | Recent deliveries failed for a reason that counts toward disabling the channel. The tooltip shows how many, for example "2 of 3 failed deliveries". |
| **Turned off** | The **Enabled** switch is off. Channels with subscriptions also show **Inactive while disabled** under the subscription count | You paused the channel. Notifications to it are not sent. |
| **Disabled after failed deliveries** | A red icon next to the name and a **Re-enable** button. Channels with subscriptions also show **Inactive until re-enabled** | Wirespeed disabled the channel and paused its subscriptions. |

### Automatic disabling

Wirespeed disables a Teams channel after **three failed deliveries without a successful delivery in between**, counting only these failures:

* Teams rejects the URL (HTTP 401 or 403).
* The workflow no longer exists (HTTP 404 or 410).
* The workflow is turned off in Power Automate.

A successful delivery resets the count. Microsoft outages, throttling, and timeouts never count toward disabling a channel, and they don't reset the count either; Wirespeed retries those deliveries instead. Test sends don't count.

When a channel is disabled, its subscriptions are paused. They resume when you re-enable the channel.

### Re-enable a channel

1. On the **Teams Channels** page, select **Re-enable** on the disabled channel. The dialog shows a red banner with the last error and how to fix it.
2. Fix the cause in Teams (see [Troubleshooting](#troubleshooting)). If you created a new workflow, paste its URL in **Webhook URL**.
3. Select **Re-enable** in the red banner or **Send Test** above the footer (either reads **Retry** after a failed test) to send a test card to the URL that will be saved. If you changed the URL, the test uses the new URL.
4. When the test passes, the error banner turns gray and a green **The channel is in a healthy state.** banner appears. Select **Re-enable** in the green banner, or **Save Changes** in the footer, to save.

A passing test is required. **Save Changes** stays disabled until the test of the URL that will be saved succeeds, and editing the URL clears the result so you must test again. If the problem returns after you re-enable, the channel is disabled again after three more failed deliveries.

To pause or resume a channel yourself, use its **Enabled** switch.

### Delivery history

Open a channel by selecting its row, or by selecting the **…** (**Actions**) menu on the row and then **Edit** (**View** if you aren't an admin), and select **View Delivery History**. The dialog shows the 100 most recent deliveries, test sends, and status changes, with the **Time**, **Event**, **Type**, **Result**, and **Attempt** of each. Only tests of the channel's saved URL appear. A test of a URL you've typed but not saved isn't recorded.

## Limits

Microsoft limits a Teams Workflows webhook to **4 requests per second per webhook**. Each channel has its own webhook URL, so channels don't share this limit.

When a webhook goes over the limit, Teams responds with a "too many requests" error (HTTP 429). Wirespeed pauses deliveries to that channel for the wait time Teams asks for (30 seconds if Teams doesn't give one, and never more than 5 minutes), then sends the pending cards. Throttling doesn't count toward disabling the channel. A notification that can't be delivered within about 6 hours is dropped instead of arriving late.

Cards longer than Teams allows are shortened, and end with a link to the full details in Wirespeed.

## Troubleshooting

### Errors when you save the URL

| Message | Fix |
| - | - |
| This isn't a Workflows HTTP trigger URL. | Copy the URL with **Copy webhook link** in the workflow, not from your browser's address bar. |
| Use a Microsoft Teams Workflows URL (logic.azure.com or environment.api.powerplatform.com) | The URL isn't a Workflows webhook. Wirespeed doesn't accept Office 365 connector webhooks (`webhook.office.com`), which Microsoft is retiring. Create a workflow as described in [step 1](#step-1-create-the-webhook-in-teams). |
| Webhook URL is missing its signature (sig). | The URL was cut off. Copy the whole URL, including everything after `?`. |
| Enter a valid URL | Paste the URL exactly as Teams gave it. |
| Webhook URL must start with https\:// | Copy the URL again without editing it. |
| Webhook URL must use the default https port | Copy the URL again without editing it. |
| Webhook URL must not contain a username or password | Copy the URL again without editing it. |
| This Teams webhook URL is already saved as another Teams channel | Use the existing channel, or create a second workflow for a second channel. |
| A Teams channel named "…" already exists | Channel names must be unique within a team, ignoring case. Choose another name. |

### Send Test results

| Message | Fix |
| - | - |
| Teams rejected the request (401) | The workflow uses a template that requires sign-in, or the URL changed. Create the workflow with **Send webhook alerts to a channel**, then copy the URL again. |
| Teams rejected the request (404) | The workflow was deleted. Create a new one and paste its URL. |
| No response from Teams within 10 seconds, or Couldn't reach Teams | Microsoft is slow or unavailable. Try again later. |
| Too many test notifications | Wait for the time shown, then try again. |
| Accepted by Teams, but no card appears | Open the workflow's run history in Teams. See [Missing cards](#missing-cards). |

### Failing or disabled channels

The status tooltip and the dialog that **Re-enable** opens show the last error and a hint.

| Hint | Cause | Fix |
| - | - | - |
| The workflow was deleted or its URL was retired. | The workflow was deleted or re-created, or Microsoft changed its URL. | Open the workflow in Teams, copy its current URL, then select **Re-enable** on the channel, paste the URL, send a passing test, and save with **Save Changes**. |
| Teams rejected the URL's signature or blocked access. | The URL's signature changed, the workflow requires sign-in, or a policy in your Microsoft tenant blocks it. | Copy the full URL from the workflow again. If that doesn't help, ask your Microsoft 365 or Power Platform admin whether a policy blocks the workflow. |
| The workflow is turned off in Power Automate. | The owner turned it off, or Microsoft turned it off (for example after a license change). | Turn the workflow on in the Workflows app, add a co-owner, then select **Re-enable** on the channel, send a passing test, and save with **Save Changes**. |
| The saved URL can't be used. | Wirespeed couldn't use the saved URL. This never counts toward disabling a channel. | Paste the URL again. Contact support if it keeps happening. |
| Check the workflow in Power Automate. | Another error. | Open the workflow's run history, fix the problem, then select **Re-enable** on the channel, send a passing test, and save with **Save Changes**. |

### Missing cards

If Wirespeed shows a delivery as accepted but no card appears in the channel, the workflow received the notification but its "post card" step failed. Wirespeed can't see these failures. Open the workflow's run history in Teams and check for:

* The workflow owner no longer being a member of the team or channel.
* An expired connection in the workflow.

## Edit, replace, or delete a channel

* **Rename or replace the URL:** select the channel's row, or the **…** (**Actions**) menu on the row and then **Edit**. Change the name or paste a new URL, then select **Update**. Leave the URL as is to keep the current one. Replacing the URL of a failing channel clears its error state. A channel you turned off stays off.
* **Channels disabled after failed deliveries** open with a **Re-enable** button in the red banner that sends a test, and the save button is **Save Changes**. It stays disabled until a test of the URL that will be saved passes. Saving then re-enables the channel, with or without a new URL.
* **Delete:** select the **…** (**Actions**) menu on the row, then **Delete**. Deleting a channel also deletes the subscriptions that send notifications to it, and can't be undone.


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