How to tell your team in Teams when a GitHub Actions run fails
4 min read · Updated 5 October 2026On this page
A failed build is cheap to fix in the first ten minutes and expensive the next morning. GitHub shows the red cross, but only to whoever opens the repository. In a small team that may be nobody until a release is due.
This guide puts every failure in the channel your team already reads. An Actions run in your repository may fail or time out. Then a workflow posts the workflow's name, the branch and a link to the run in Microsoft Teams — Build and test failed on main in {owner}/{repository}. Runs that succeed are not reported.
- GitHub · Workflow run finishedwhen an Actions run fails
- IFis it a workflow we watch?
- Microsoft Teams · Send a message to a channelposted in the team's channel
The IF is optional: leave it out to hear about every workflow in the repository.
What you need
- A GitHub connection whose token can manage the repository's webhooks (a webhook is how GitHub tells another service about each event). For a fine-grained token, that is Webhooks: Read and write. The token's owner must be an admin of the repository: write access is not enough to add a webhook. Connect GitHub
- A Microsoft 365 connection, signed in as someone who is in the team and allowed to post to Teams channels. Connect Microsoft 365
GitHub and Microsoft Teams work on every plan, Free included.
Build it
In Bizomate, choose New workflow, then GitHub · Workflow run finished as its trigger. Choose your connection, and in Repository choose your repository, shown as
{owner}/{repository}. Under When it, choose Fails: it takes runs that end in failure or time out, and nothing else.Publishing adds a webhook to the repository for you; nothing needs pasting. Each failed run gives the workflow its
workflowname,conclusion,branch,runNumber, aurlto the run, and thesenderwho started it. Start a workflow from GitHub eventsOptional: only the workflows that matter. The trigger hears every Actions workflow in the repository. If some of them — a nightly clean-up, say — fail without anyone needing to act, add an IF:
- Value:
{{ trigger.workflow }} - Is: equal to
- Compared with: Build and test
Put the Teams step under Yes, and leave No empty. To watch two workflows, chain a second IF on No. Choose a path with IF
- Value:
Post in the team's channel. Add Microsoft Teams · Send a message to a channel, choose your connection, then the Team and the Channel — the Engineering team and its builds channel, say. In Message:
{{ trigger.workflow }} failed on {{ trigger.branch }} in {{ trigger.repository }} (run {{ trigger.runNumber }}, started by {{ trigger.sender }}). {{ trigger.url }}The message is plain text, posted as the connected account. So a shared account named for the purpose reads better in the channel than a person's own. Post a message to a Microsoft Teams channel
Publish. Publish a workflow
Test it on a real failed run
Publish, then make a run fail on a branch of your own — a test that cannot pass is enough. Within seconds the trigger's panel reads Listening — instant, with the run's name and conclusion. On Output, select Use the last event, then Test run, and the message is posted for real. Test runs never count towards your monthly runs.
If it does not work. The usual causes:
- Not listening — adding one needs admin on the repository. The token's owner is not a repository admin, or the token lacks Webhooks: Read and write. Fix it, then publish again.
- Waiting for the first event stays. No run has failed since you published. In GitHub, the webhook's Recent Deliveries under Settings, then Webhooks, show what GitHub sent and Bizomate's answer.
- Needs permission to post to Teams channels. The connection was made before this step asked for it. Select Reconnect.
What it costs
With Fails chosen, only failed and timed-out runs start a run in Bizomate; successful ones use nothing. A repository that fails twenty times a month uses twenty runs. Choosing Finishes instead would report every run, successes included, so keep to Fails for an alert. What counts as a run
Related apps
Related guides
How to share GitHub release notes in Slack and by email
Every GitHub release's notes, in your Slack channel and by email.