Microsoft Teams

Communication Webhook URL, or a bot registration Windmill docs

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

1

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.

2

Add the resource in Windmill

Open Resources, add a resource of type ms_teams_webhook, and paste the URL.

3

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.

Submit a script →

Trigger flows from Microsoft Teams

Microsoft Teams 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.

Resource types

The credential shapes the scripts on this page expect — pick the one your script asks for.

FieldTypeRequiredWhat it is
app_idstringYesMicrosoft App ID (Application (client) ID of the Azure Bot's App Registration)
app_passwordstringYesClient secret value for the App Registration
tenant_idstringNoAzure AD tenant ID. Set only when the Azure Bot is configured as Single Tenant; leave empty for Multi Tenant bots so the multi-tenant Bot Framework token endpoint is used.

ms_teams_webhook

View raw schema →
FieldTypeRequiredWhat it is
webhook_urlstringYesSee https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=dotnet for detais on how to create a webhook

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.