GitHub Actions notifications to Microsoft Teams (2026 tutorial)
The 2026 path for sending GitHub Actions events into Microsoft Teams uses a Power Automate Workflow URL — not the retired Office 365 Connector webhook. Here's the working setup, plus the gotchas after the O365 retirement broke many existing setups.
Targeting: github actions notify microsoft teams · Last updated 2026-05-02
Skip the manual setup
PullNotifier installs from Microsoft AppSource in 5 minutes — no YAML, no Power Automate flows.
Step-by-step
Create a Power Automate Workflow that posts to Microsoft Teams
Open the Workflows app in Microsoft Teams → New flow → "Post to a channel when a webhook request is received". Pick the destination team and channel.
Copy the Workflow trigger URL
After saving, the workflow exposes an HTTP POST URL. Copy it. This is your modern alternative to the retired Office 365 Connector webhook.
Add the URL as a GitHub repo secret
In your GitHub repo: Settings → Secrets and variables → Actions → New repository secret. Name it `TEAMS_WEBHOOK_URL` and paste the Workflow URL.
Add the notification step to your workflow YAML
Use a community action like "Microsoft Teams Notification" or POST directly with curl. Either way, send an Adaptive Card v1.5 payload referencing the secret.
name: Notify Teams on PR
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Send Teams notification
run: |
curl -X POST -H "Content-Type: application/json" \
-d '{
"type": "AdaptiveCard",
"version": "1.5",
"body": [
{ "type": "TextBlock", "weight": "Bolder", "text": "PR #'${{ github.event.pull_request.number }}'" },
{ "type": "TextBlock", "text": "'${{ github.event.pull_request.title }}'" }
]
}' \
${{ secrets.TEAMS_WEBHOOK_URL }}Test by opening a PR
Open a test PR. Watch your Microsoft Teams channel for the adaptive card. If nothing appears, check the Action run log for HTTP errors and the Workflow run history for compose failures.
Why many existing GitHub Actions Microsoft Teams notifications broke in 2026
Office 365 Connectors retired on March 31, 2026. Action setups using `webhook.office.com` URLs stopped working overnight. The fix is to swap the webhook URL for a Power Automate Workflow URL — but adaptive card formatting may need tweaking too because the Workflow expects Adaptive Card JSON, not the legacy MessageCard JSON the connectors accepted.
Common pitfalls
- Action returns 200 but no card appears: Workflow received the POST but compose step silently failed. Check Workflow run history.
- Adaptive card schema rejected: Microsoft Teams supports up to v1.5. Newer schema features won't render.
- Per-repo secret duplication: every repo needs its own `TEAMS_WEBHOOK_URL` secret — or use organisation-level secrets to share.
- Webhook URL leaked: rotate by editing the Workflow trigger to regenerate the URL, then update the secret.
Want to skip the YAML maintenance?
PullNotifier replaces per-repo workflow YAML with a single Microsoft AppSource install. Smart filtering, user mapping, code review reminders, and daily digests work out of the box — no GitHub Actions maintenance.
Frequently asked
How do GitHub Actions send notifications to Microsoft Teams in 2026?
Create a Power Automate Workflow with an HTTP trigger, copy the URL, store it as a GitHub secret, then POST an Adaptive Card v1.5 payload from your workflow YAML.
Why did my old GitHub Actions Microsoft Teams notification stop working?
Office 365 Connectors retired on March 31, 2026. URLs of the form `webhook.office.com` no longer accept requests. Swap to a Power Automate Workflow URL.
Can I send Adaptive Cards from a GitHub Action via curl?
Yes. POST a v1.5 Adaptive Card JSON payload to the Workflow URL with `Content-Type: application/json`. See the code sample above.
Is there a maintained GitHub Action for posting to Microsoft Teams?
Several exist on the GitHub Marketplace. Quality varies. PullNotifier eliminates the need for any of them.
PullNotifier
© 2026 PullNotifier. All rights reserved
Microsoft Teams
Solutions