Skip to content

Microsoft Teams

Microsoft Teams integration uses Power Automate Workflows (“Post to a channel when a webhook request is received”). Vygl posts Adaptive Cards with the same content the Slack integration sends — severity breakdown, finding tables, AI verdicts, and links back into Vygl.

  1. Create a Power Automate Workflow. In Teams, open the target channel, click ⋯ → Workflows, and search for “Post to a channel when a webhook request is received”. Run the wizard, picking the channel that should receive notifications. Power Automate creates the workflow and shows a HTTP POST URL — copy it.

  2. Add the integration in Vygl. Open Settings → Integrations, click Add Microsoft Teams, paste the URL.

  3. Subscribe to events. Pick scan_completed, critical_finding, cve_critical, and any others you want.

  4. Apply filters — restrict by project, scan type, or severity.

  5. Pick an AI verdict filter — by default every per-finding alert pings immediately. To quiet noisy channels, pick AI-verified TPs only or TPs and uncertain so Vygl waits for the LLM verdict before notifying. Requires AI verification to be enabled for your org. See AI Verification → notification filter.

  6. Test. Click Test on the integration row; an Adaptive Card should arrive in your channel within a few seconds.

A typical critical-finding card includes:

  • Header — project name, finding title, severity badge.
  • Facts — severity, scan type, project, branch, file path, rule ID, status.
  • Action buttonOpen in Vygl deep link.

CVE Watch alerts use the same card pattern, scoped to the affected dependency. AI verdict gating decides whether a card is sent for verified-only filters; the verdict isn’t rendered inline in the card body today.

Power Automate Workflows return HTTP 202 Accepted immediately and post the card to the channel asynchronously. If a card doesn’t appear in your channel:

  1. Check the Run history of the Power Automate workflow — failures show up there with full diagnostic info.
  2. Verify the workflow’s Teams connection is still authorized.
  3. Try the Test button in Vygl to fire a synthetic event.

Notification deliveries that raise a transport error are retried up to 3 times with a fixed 5-second delay (Celery default). HTTP error responses (4xx, 5xx) don’t currently trigger a retry — the worker logs the failure and moves on. If a Teams card doesn’t arrive, fix the upstream workflow and re-fire via Test rather than relying on automatic retries.