Guides › When something fails

How to tell your team in Teams when a GitHub Actions run fails

4 min read · Updated 5 October 2026
On 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.

Failed builds to Teams Published v1
  1. GitHub · Workflow run finishedwhen an Actions run fails
  2. IFis it a workflow we watch?
  3. 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

  1. 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 workflow name, conclusion, branch, runNumber, a url to the run, and the sender who started it. Start a workflow from GitHub events

  2. Optional: 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

  3. 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

  4. 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

Try it on your own repository

No card needed.

Start free

Related guides