Azure Boards

Azure DevOps Marketplace extension.

BranchDeploy / Docs / Teams bot

Teams bot

The BranchDeploy Teams bot lets team members request and confirm deployment approvals from a Teams channel. It resolves the linked Azure Repos branch for a work item, shows a confirmation card, and records the approved request in your BranchDeploy audit log.

The current Teams bot path is an approval and audit workflow. It does not queue Azure Pipelines directly yet. For direct pipeline queuing, use the Azure DevOps extension or the MCP integration.

Requires a BranchDeploy Pro licence.


Prerequisites

Before you start:


Step 1 — Connect Azure DevOps

  1. Go to your account page and open the Credentials tab.
  2. Your organisation URL is shown automatically. Paste a PAT into the Personal Access Token field.
  3. Click Save PAT.

Your PAT is encrypted at rest and never exposed.


Step 2 — Sync project config

In the BranchDeploy extension inside Azure DevOps:

  1. Open any project and navigate to Project Settings → BranchDeploy.
  2. Make sure your environments are correct.
  3. Click Save — your config syncs to the cloud automatically.

Repeat for every project whose environments should be available to the Teams bot.


Step 3 — Install the Teams app

BranchDeploy is installed by uploading its app package to your tenant (sideloading). Your Teams admin needs to allow custom app uploads in the Teams admin settings.

  1. Go to your account page, open the Teams tab, and click Download Teams app (.zip).
  2. In the Teams Admin Center, go to Teams apps → Manage apps → Upload a custom app.
  3. Select the .zip file.
  4. Once uploaded, anyone in your tenant can add @BranchDeploy to a channel (Apps → Built for your org → BranchDeploy).

Coming soon: a public Microsoft Teams Store listing so you can find BranchDeploy by searching inside Teams, without an admin upload. Until then, use the sideload steps above.


Step 4 — Request from Teams

In any channel where BranchDeploy is added, type:

@BranchDeploy deploy #1234 to UAT

The bot will:

  1. Look up work item #1234 in Azure DevOps.
  2. Resolve the linked branch.
  3. Show you a confirmation card.
  4. Record the approved request in BranchDeploy when you click Deploy Now.

Available commands

CommandDescription
@BranchDeploy deploy #1234 to UATRequest approval for the branch linked to work item 1234 in UAT
@BranchDeploy deploy #1234Request approval using the single configured environment, or get prompted to specify one
@BranchDeploy environmentsList configured environments
@BranchDeploy historyShow recent audited deployment requests
@BranchDeploy helpShow all available commands

Troubleshooting

“Organisation not found” — Make sure your Azure DevOps organisation name in the account page matches the ADO organisation your PAT belongs to.

“No environments configured” — Open the project’s Project Settings → BranchDeploy in the extension and click Save to re-sync its config to the cloud.

“Permission denied” — Your PAT may have expired or lack the required Work Items / Code read scopes. Reconnect in the account page.

Bot not responding — Check that the bot was successfully added to the channel (not just the team). Try @BranchDeploy help.

“No linked branch found” — The work item has no linked pull request or branch. Open the work item in Azure DevOps and link a branch or PR first.

Install Free forever for one project.

Ready to deploy?

Install BranchDeploy from the Marketplace, open Project Settings, add your pipeline ID, and deploy from a work item in minutes.

$ az devops extension install --extension-id branchdeploy --publisher-id PixelFunnelLtd
Install free
Requirements
  • Azure Repos + Azure Pipelines.
  • Permission to queue the pipeline.
  • No BranchDeploy account needed (Free).
Setup
  • Install the extension.
  • Open Project Settings → BranchDeploy.
  • Enter your pipeline ID and save.
Free tier
  • One project, one environment.
  • Queues as your Azure DevOps session.
  • Completely free, forever.
Pro
BranchDeploy // © 2026 Pixel Funnel Ltd // Azure DevOps Marketplace extension // No clipboard. No tab switching. No branch-name guesswork.