Deploy from Microsoft Teams with Azure DevOps
For many teams, deployment conversations already happen in Microsoft Teams: "Can someone put #1482 on UAT?", "Is staging free?", "Who approved that?" Moving the request itself into Teams keeps the context in one place and leaves a record in the channel.
"Deploy from Teams" can mean three different things, and the right tool depends on which one you need:
- Notifications: post pipeline results and deployment status into a channel.
- Approvals: let the right people approve or reject a deployment from Teams.
- Requests and commands: ask for a specific ticket or branch to be deployed by typing in a channel.
Option 1: notifications with Power Automate workflows
Microsoft is retiring Office 365 connectors in Teams and recommends Power Automate workflows for posting messages into channels. A typical setup uses an Azure DevOps trigger (for example, a build completing) and a Teams action that posts a card to a channel.
This is the simplest way to keep a channel informed. It does not let anyone start or approve a deployment from Teams.
Option 2: Microsoft's Azure Pipelines app for Teams
Microsoft has offered an Azure Pipelines app for Teams that subscribes a channel to pipeline events and can surface approvals. Its availability and the service-hook integrations behind it have changed over time, so check whether it is still available and supported in your tenant before building a process around it.
Where it is available, it helps with notifications and approvals for runs that already exist. It does not decide which branch a ticket should deploy.
Option 3: build your own Teams bot
A custom bot can listen for a command, call the Azure DevOps REST API, and queue a pipeline. It is flexible, but you own all of it:
- Mapping a ticket number to the right branch, including PR source branches and multiple links.
- Storing an Azure DevOps credential safely and deciding whose permissions the bot uses.
- Enforcing which branches may reach which environment.
- Adding a confirmation step and an audit trail.
- Hosting the bot and keeping it registered in your tenant.
Option 4: the BranchDeploy Teams bot
The BranchDeploy Teams bot, part of BranchDeploy Pro, handles ticket-based deployment requests and approvals in a channel:
@BranchDeploy deploy #1482 to UAT - The bot looks up work item
#1482in Azure DevOps. - It resolves the linked branch, or a linked PR's source branch, using the same rules as the work item button.
- It checks the branch against the UAT environment's allowed branch patterns.
- It posts a confirmation card in the channel with the work item, branch, and environment.
- When someone clicks Deploy Now, the approved request is recorded in your BranchDeploy audit log.
What it does not do yet: the Teams bot records the approval; it does not queue the Azure Pipeline itself. The pipeline is queued from the work item with the BranchDeploy button, or from an AI assistant through the MCP integration.
Commands
| Command | What it does |
|---|---|
@BranchDeploy deploy #1482 to UAT | Requests approval for the branch linked to work item 1482 in UAT. |
@BranchDeploy deploy #1482 | Uses the environment whose branch rules allow the linked branch, or asks you to name one. |
@BranchDeploy environments | Lists configured environments. |
@BranchDeploy history | Shows recent audited deployment requests. |
What you need
- A BranchDeploy Pro subscription.
- The BranchDeploy extension configured in Azure DevOps and connected to your account, so environments sync.
- An Azure DevOps PAT with Work Items (Read) and Code (Read) saved on your account page.
- A Teams admin who can upload a custom app. The bot is installed from a package on your account page.
Full steps are in the Teams bot setup guide.
Which option fits?
- You only want to know when deployments finish: Power Automate workflows.
- You approve existing pipeline runs and the Microsoft app is available to you: the Azure Pipelines app.
- You want ticket-based requests, branch checks, and an approval record: the BranchDeploy Teams bot, with deploys queued from the work item.
- You need fully custom behaviour: build your own bot on the Azure DevOps REST API.
Frequently asked questions
Can I trigger an Azure Pipeline from a Teams message?
Not out of the box. You need a bot or a Power Automate flow that calls the Azure DevOps REST API with a stored credential. The BranchDeploy Teams bot handles the request, branch resolution, and approval record; the run itself is queued from the work item or an AI assistant.
Does the BranchDeploy Teams bot need a Teams admin?
Yes, for installation. It is distributed as a custom app package that a Teams admin uploads. After that, anyone in the tenant can add it to a channel.
Are Teams approvals recorded?
Yes. Each approved request is recorded in the BranchDeploy Pro audit log with the work item, branch, environment, and approver. See deployment audit logs for Azure DevOps.