Documentation
Microsoft Teams alerts and reports
Create a Workflows webhook in a Teams channel, add it to AutoPSEO, and receive alerts and scheduled reports as Adaptive Cards coloured by severity.
AutoPSEO posts to Microsoft Teams through a Workflows webhook. Teams gives you a URL that posts into one channel, and you add that URL to AutoPSEO as a Teams channel. Alerts, scheduled reports, test messages and one-off report summaries then arrive as Adaptive Cards, with the title coloured by severity and a button back to the report. You need no Slack workspace, and there is no AutoPSEO app to install in Teams.
Get a webhook URL from Teams
Microsoft's incoming webhook guide builds the URL with the Workflows app:
- In Teams, go to the channel that should receive the cards and choose More options (...) beside it.
- Choose Workflows and pick a webhook template. Microsoft currently calls it Send webhook alerts to a channel; AutoPSEO's hint on the settings page still uses the older name, Post to a channel when a webhook request is received.
- Check the team and channel the template filled in, then click Save.
- Copy the webhook link the workflow shows you.
A URL from the older Incoming Webhook connector (on webhook.office.com) is still accepted. Microsoft is retiring Microsoft 365 Connectors and will block new ones, so use Workflows for anything you set up now.
Add the channel in AutoPSEO
- In the Microsoft Teams section of Slack, Teams & Webhooks, click New Teams channel. The form opens with Microsoft Teams as the destination.
- Enter a Name you will recognise and paste the URL. For a Teams entry AutoPSEO accepts Workflows and connector addresses (hosts such as
logic.azure.com,powerautomate.com,azure-api.netandwebhook.office.com) and refuses other hosts. - Click Add channel, then Send test on its row. A card titled with the entry's name should appear in the channel.
- Create a scheduled report or an alert and choose this channel.
A rule sends to one channel. To have the same alert in Slack and in Teams, create the rule twice, once for each.
How the card is laid out
Each message becomes one Adaptive Card (version 1.4, full width), wrapped in the message envelope with an application/vnd.microsoft.card.adaptive attachment that Microsoft's own examples use.
- Title in large bold type. Alerts take the card's Attention colour for critical and high, Warning for medium and the default colour for low; reports and tests use the Accent colour.
- Summary: the same sentence a Slack message carries, with the date window.
- Facts: up to 12 labelled values, such as clicks and their change, or an alert's current value against its baseline.
- Table: for reports and report summaries, up to ten rows in a fixed-width font.
- Footer: the property, a reminder that Search Console data lags about a day and that only settled days are counted, and the sender.
- Open report: a button to the matching report in AutoPSEO.
Why a card did not arrive
Send test reports a failure at once; for scheduled messages, Delivery history keeps the answer Teams gave.
| What you see | Likely cause | Fix |
|---|---|---|
| "That does not look like a Teams Workflows or Incoming Webhook URL" on saving | The URL is not on a Workflows or connector host | Copy the link again from the workflow |
| HTTP 400 on Send test | Not a Teams webhook after all: a Slack URL, a Zapier hook or a workflow edited to expect a different body | Create a fresh workflow from the template and add its URL |
| Timed out after 10 seconds | Teams did not answer in time | Try again later |
| Redirects are not followed | The URL forwards somewhere else | Add the final URL instead |
| Cards stopped after a colleague left | Microsoft ties each workflow to the people who own it, and a workflow without an owner can stop | Add co-owners to the workflow, or recreate it |
A failed scheduled report is not resent in the same period: fix the cause and use Send now.
When to use a webhook instead
Teams and outbound webhooks can carry the same rules, but they serve different readers. A Teams channel is for people: a formatted card and nothing to build. A webhook is for software: the raw event as signed JSON for Zapier, Make, n8n or your own service. Teams expects a card rather than AutoPSEO's event JSON, so a Teams URL always belongs under Microsoft Teams.
An overview of what Teams users get is on the Microsoft Teams page.