Post to a Microsoft Teams channel from any Windmill script, flow or app — and run flows from a /windmill command typed in Teams.
Set up in 3 steps
Create an incoming webhook
In Teams, open the channel's connectors and add an incoming webhook. Copy the URL it gives you — it posts to that channel and no other.
Add the resource in Windmill
Open Resources, add a resource of type ms_teams_webhook, and paste the URL.
Run your first script
Fork a script below, or set one as a flow's failure step to get alerts in the channel.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Trigger flows from Msteams
Msteams is not only a destination. These inbound paths are supported today.
Teams commands
Type /windmill in Teams and it runs a script, with what you typed as its inputs. A workspace admin connects Teams once from Workspace settings, under the Slack / Teams tab.
All resource types
Questions
Webhook or bot?
A webhook only posts to the one channel it was created for, and needs no admin. The azure_bot resource — app id, password and tenant — is for a registered bot that acts across the tenant.
Who can set up the /windmill command?
A workspace admin, from Workspace settings, Slack / Teams tab. Several Windmill workspaces can share one Teams bot, but a given Team sends its commands to only one of them.
Is my webhook URL stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest — and anyone holding that URL can post to the channel.