Skip to main content

Overview

ZeroPath posts scan notifications and vulnerability alerts into Microsoft Teams channels as Adaptive Cards. Each destination channel is registered separately, and notification rules choose which events go to which channels. There is no Azure AD app registration, tenant-wide admin consent, or Microsoft Graph permission to arrange. ZeroPath delivers to a per-channel incoming webhook URL that a channel owner creates from inside Teams, so a single channel owner can enable alerts for their own channel without involving your Microsoft 365 tenant administrators.
The webhook URL is the entire credential for posting to that channel. Treat it like a password: anyone holding it can post to the channel. ZeroPath stores it encrypted and never displays it again after you save it.

Setup

1. Create the webhook in Teams

Do this once per channel you want alerts in.
  1. In Microsoft Teams, open the channel and choose … (More options) → Workflows.
  2. Select the “Post to a channel when a webhook request is received” template.
  3. Confirm the team and channel, then click Add workflow.
  4. Copy the generated HTTP POST URL. It looks like https://prod-12.westus.logic.azure.com/workflows/…?sig=….
Creating a workflow requires permission to add workflows to that team. If the Workflows menu is missing, ask a team owner to create the workflow and send you the URL.

2. Register the channel in ZeroPath

  1. Navigate to Settings → Integrations in the ZeroPath dashboard.
  2. Click Add Integration, then Microsoft Teams.
  3. Enter a channel label — this is what appears in the notification-rule picker, so use the channel’s name (for example #appsec-alerts).
  4. Paste the HTTP POST URL from step 1 and save.
ZeroPath validates the URL host before accepting it; only Microsoft-issued webhook hosts (*.logic.azure.com, *.webhook.office.com, *.azure-apihub.net, *.powerplatform.com) over HTTPS are allowed. To add more channels later, select the Microsoft Teams integration in Settings → Integrations and use Add a channel.

3. Send a test message

In the Microsoft Teams integration panel, click the send icon next to a channel. ZeroPath posts a confirmation card using the same payload format real notifications use, so a successful test proves the channel accepts what ZeroPath actually sends — not merely that the URL resolves.

4. Route notifications to the channel

Teams channels receive nothing until a notification rule targets them.
  1. Navigate to Settings → Notifications.
  2. Create a rule (or edit an existing one) and select Microsoft Teams as a channel.
  3. Tick the Teams channels the rule should deliver to.
  4. Choose the event types, repository scope, and vulnerability score threshold.
A rule that selects Microsoft Teams must name at least one Teams channel, so a rule can never be enabled while delivering nowhere.

Notification Types

Any notification event ZeroPath supports can be routed to Teams, including: Set a vulnerability score threshold (0–100) on the rule to filter out low-severity noise: only findings scoring at or above the threshold are included.

Notification Format

New-vulnerability notifications render one card section per finding, showing:
  • Title — linked directly to the finding in the ZeroPath app
  • Severity — coloured badge with the composite score (for example 🔴 Critical (92))
  • Status — current finding status (Open, Patched, False positive, …)
  • Affected file — the file and line where the finding was detected
  • Pull request — the PR that triggered the scan, for PR scan notifications
  • Introduced by — the git-blame author who introduced the vulnerable lines, when available
  • Description excerpt — a short summary of the finding
Up to five findings appear per message, most severe first. When more findings than that exist, the card ends with a link to the full scan results in ZeroPath. Teams and Slack notifications are generated from the same event templates, so the two channels stay consistent in wording, truncation, and which findings they include.

Managing Channels

Select the Microsoft Teams integration in Settings → Integrations to manage destinations:
  • Send a test message — verifies the webhook still accepts posts.
  • Remove a channel — deletes the stored webhook URL. Notification rules that named it are updated: the channel is dropped from each rule, rules with no Teams channels left stop targeting Teams, and a rule left with no channels at all is disabled.
  • Disconnect Microsoft Teams — removes every registered channel and updates the rules that targeted them.
A channel shown as Paused is skipped at delivery time. ZeroPath pauses a channel when Teams permanently rejects its webhook (for example the workflow was deleted or turned off); re-create the workflow in Teams and add the new URL as a channel. Because the webhook URL is write-only, an existing channel cannot be edited — replace it by removing the channel and adding the new URL.

Rate Limiting

Deliveries to each Teams channel are paced independently, and a channel that starts failing is backed off exponentially. One misbehaving destination therefore cannot slow deliveries to your other channels or to other integrations. Teams rejects oversized cards, so ZeroPath truncates titles, descriptions, and headlines to keep every card comfortably inside the limit.

Troubleshooting

Not receiving notifications
  • Confirm a notification rule selects Microsoft Teams and ticks the specific channel — registering a channel alone delivers nothing.
  • Check the rule is enabled and covers the repository and event type you expect.
  • Verify the score threshold isn’t filtering out every finding.
  • Send a test message to confirm the webhook still works.
“Invalid Microsoft Teams webhook URL”
  • The URL must be HTTPS and on a Microsoft webhook host. Copy the HTTP POST URL from the Teams workflow itself rather than a browser address bar, and paste it whole.
The channel shows as Paused
  • Teams permanently rejected the webhook. Check the workflow still exists and is turned on in Teams; if it was deleted, create a new one and register the new URL.
Teams shows a card with literal < or &amp;
  • Report this as a bug: notification text is translated from Slack’s markup dialect into the markdown Teams renders, and stray escapes indicate a template that bypassed that translation.