Skip to content
| Marketplace
Sign in
Azure DevOps>Azure Pipelines>Pipeline Teams Notifier
Pipeline Teams Notifier

Pipeline Teams Notifier

Giorgos Panagiotopoulos

|
3 installs
| (0) | Free
Adaptive Card notifications for Microsoft Teams pipelines.
Get it free

Pipeline Teams Notifier

Keep your team instantly informed — Pipeline Teams Notifier posts a rich, color-coded Adaptive Card to any Microsoft Teams channel the moment a pipeline run completes. No bots, no connectors, no complicated configuration: just a single task and a webhook URL.


What you get in Teams

Each notification is a structured Adaptive Card that surfaces the information that matters:

Field Classic Release YAML / Build
Status header ✅ Deployment Successful / ❌ Deployment Failed same
Service Primary artifact source alias Pipeline name
Version Release name (e.g. Release-42) Build number
Environment Stage / environment name Source branch name
Build Build number of the artifact Build number
Triggered by Who requested the release Who triggered the build
Timestamp UTC UTC
Action button 🔗 View Release 🔗 View Build

The card header is green on success and red on failure — your team can scan the channel at a glance without opening a single link.


Features

  • Adaptive Card v1.4 — renders natively in Teams desktop, web, and mobile.
  • Classic Releases and YAML pipelines — automatically adapts the card fields to the pipeline type.
  • Noise control — set notifyOn to failureOnly to silence notifications on success, so the channel only lights up when attention is actually needed.
  • Custom message title — label each pipeline individually (e.g. Production Deploy, Staging Smoke Test).
  • No extra dependencies — uses Node's built-in https module; nothing beyond azure-pipelines-task-lib is required.
  • Secure by default — store the webhook URL in a pipeline secret variable and reference it as $(TeamsWebhookSecret).

Requirements

  • An Azure DevOps project running Pipelines (Classic or YAML).
  • A Microsoft Teams channel with a Workflows (Power Automate) incoming webhook configured (see setup below).

Note: The legacy "Incoming Webhook" connector was retired by Microsoft in 2024. This extension uses the modern Workflows webhook, which is the currently supported method.


Setup

Step 1 — Create the Teams webhook

  1. In Microsoft Teams, navigate to the channel where you want notifications to appear.
  2. Click the ... menu next to the channel name → Workflows.
  3. Search for the template "Post to a channel when a webhook request is received" and select it.
  4. Follow the prompts, then copy the generated HTTP POST URL — you will need it in the next step.

Step 2 — Store the webhook URL as a secret

In your Azure DevOps pipeline, add a secret variable (e.g. TeamsWebhookUrl) and paste the webhook URL as its value. Mark it as secret so it is not exposed in logs.

Step 3 — Add the task to your pipeline

YAML pipeline

Add the task as the last step in your job (or as a separate always-run job) so it can report the final status:

- task: PipelineTeamsNotifier@1
  condition: always()
  inputs:
    teamsWebhook: '$(TeamsWebhookUrl)'
    messageTitle: 'Production Deploy'
    notifyOn: 'always'

To notify only on failure:

- task: PipelineTeamsNotifier@1
  condition: always()
  inputs:
    teamsWebhook: '$(TeamsWebhookUrl)'
    messageTitle: 'Production Deploy'
    notifyOn: 'failureOnly'

Classic Release pipeline

  1. Open your release pipeline and navigate to the stage you want to monitor.
  2. Add Pipeline Teams Notifier as an agentless task in the stage — or as a regular task at the end of the agent job.
  3. Fill in the inputs in the task editor.

Tip for Classic Releases: Add the task to an "always run" condition so it fires whether the preceding tasks succeeded or failed.


Task inputs

Input Required Default Description
teamsWebhook Yes — HTTPS URL of the Microsoft Teams Workflows incoming webhook. Store this as a secret variable.
messageTitle No Deployment Notification Custom label shown inside the card body (e.g. Production Deploy, Hotfix).
notifyOn Yes — always — send on every run. failureOnly — send only when the pipeline fails.

Examples

Notify on every run

- task: PipelineTeamsNotifier@1
  displayName: 'Notify Teams'
  condition: always()
  inputs:
    teamsWebhook: '$(TeamsWebhookUrl)'
    messageTitle: 'API Service — Staging'
    notifyOn: 'always'

Notify only on failure (production gate)

- task: PipelineTeamsNotifier@1
  displayName: 'Notify Teams on Failure'
  condition: always()
  inputs:
    teamsWebhook: '$(TeamsWebhookUrl)'
    messageTitle: 'Production Deploy'
    notifyOn: 'failureOnly'
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft