Teams Integration

Get BlockSecOps notifications directly in your Microsoft Teams workspace. --- Receive real-time security scan notifications in Microsoft Teams: - Scan...

Last updated: January 14, 2026

Microsoft Teams Integration

Get BlockSecOps notifications directly in your Microsoft Teams workspace.


Overview

Receive real-time security scan notifications in Microsoft Teams:

  • Scan completion alerts
  • Critical vulnerability notifications
  • Daily/weekly summary reports
  • Actionable message cards

Setup

1. Create Incoming Webhook

  1. In Teams, go to the channel where you want notifications
  2. Click ... (More options) → Connectors
  3. Find Incoming Webhook and click Configure
  4. Name it "BlockSecOps" and optionally upload an icon
  5. Click Create
  6. Copy the webhook URL

2. Add Webhook to BlockSecOps

  1. Go to SettingsNotification Channels
  2. Click Add Channel
  3. Select Microsoft Teams
  4. Paste the webhook URL
  5. Configure notification events
  6. Click Save

3. Test the Connection

  1. Click Test next to your Teams channel
  2. Check Teams for a test notification
  3. If successful, you're ready to go

Configuration Options

Events

Select which events trigger notifications:

Event Description
scan.completed Scan finished successfully
scan.failed Scan encountered an error
vulnerability.critical Critical severity found
vulnerability.high High severity found

Severity Filter

Only notify above a minimum severity:

Setting Notifies On
Critical only Critical
High and above Critical, High
Medium and above Critical, High, Medium
All Critical, High, Medium, Low

Notification Types

Scan Completed

Teams receives an Adaptive Card:

┌─────────────────────────────────────────────────┐
│ ✅ Scan Completed                               │
├─────────────────────────────────────────────────┤
│ Contract: Token.sol                             │
│ Status: Completed                               │
│                                                 │
│ Vulnerabilities Found:                          │
│ 🔴 Critical: 0   🟠 High: 2                     │
│ 🟡 Medium: 5     🟢 Low: 3                      │
│                                                 │
│ Scanners: slither, aderyn, mythril              │
│ Duration: 45 seconds                            │
│                                                 │
│ [View Results]  [View in Dashboard]             │
└─────────────────────────────────────────────────┘

Critical Vulnerability Found

┌─────────────────────────────────────────────────┐
│ 🚨 Critical Vulnerability Detected             │
├─────────────────────────────────────────────────┤
│ Title: Reentrancy Vulnerability                 │
│ Severity: 🔴 Critical                           │
│                                                 │
│ Contract: Vault.sol                             │
│ Location: Line 45                               │
│ Scanner: Slither                                │
│                                                 │
│ The withdraw function makes an external         │
│ call before updating state variables...         │
│                                                 │
│ [View Details]  [View Contract]                 │
└─────────────────────────────────────────────────┘

Scan Failed

┌─────────────────────────────────────────────────┐
│ ❌ Scan Failed                                  │
├─────────────────────────────────────────────────┤
│ Contract: Vault.sol                             │
│ Error: Compilation failed                       │
│                                                 │
│ ParserError: Expected ';' but got '}'           │
│ at line 23                                      │
│                                                 │
│ [View Details]                                  │
└─────────────────────────────────────────────────┘

Multiple Channels

Different Channels for Different Projects

Add multiple Teams channels:

  1. Create separate webhooks for different Teams channels
  2. Add each webhook in BlockSecOps
  3. Use filters to route notifications:
Channel: #security-critical
  Events: vulnerability.critical
  Filter: All projects

Channel: #defi-team
  Events: scan.completed, scan.failed
  Filter: Projects tagged "defi"

Channel: #nft-team
  Events: scan.completed, scan.failed
  Filter: Projects tagged "nft"

Webhook URL Management

Regenerating Webhooks

If you need to rotate your webhook URL:

  1. In Teams, go to channel → Connectors
  2. Find BlockSecOps webhook → Manage
  3. Click Regenerate URL
  4. Update the URL in BlockSecOps settings

Deleting Webhooks

To remove a Teams webhook:

  1. In BlockSecOps: SettingsNotification Channels → Delete
  2. In Teams: ConnectorsManageRemove

Adaptive Card Features

Teams notifications use Adaptive Cards with:

Color-Coded Severity

Severity Color
Critical Red
High Orange
Medium Yellow
Low Green

Action Buttons

Cards include clickable actions:

  • View Results: Opens scan results
  • View Contract: Opens contract details
  • View Dashboard: Opens BlockSecOps dashboard

Collapsible Details

Long descriptions are truncated with "Show more" option.


Rate Limiting

Teams Webhook Limits

Microsoft Teams has rate limits for webhooks:

  • 4 messages per second per webhook
  • 1 message per second sustained

BlockSecOps automatically:

  • Batches rapid notifications
  • Queues messages during rate limits
  • Retries failed deliveries

Delivery Status

Check delivery status in:
SettingsNotification ChannelsDelivery History


Troubleshooting

Not Receiving Notifications

  1. Verify webhook URL: Ensure URL is correct and not expired
  2. Test connection: Use the Test button in settings
  3. Check event filters: Ensure events are enabled
  4. Check severity filter: Ensure minimum severity is appropriate

Webhook Expired

Teams webhooks can expire. If notifications stop:

  1. Go to Teams channel → Connectors
  2. Check if webhook is still active
  3. Regenerate if needed
  4. Update URL in BlockSecOps

Cards Not Rendering

If cards appear as plain text:

  1. Ensure you're using Incoming Webhook connector
  2. Check that the channel allows connectors
  3. Try a different channel

Authentication Errors

If you see 401/403 errors:

  1. Webhook URL may be invalid
  2. Workspace permissions may have changed
  3. Regenerate the webhook URL

Security Considerations

What's Shared

Teams notifications include:

  • Contract and scan identifiers
  • Vulnerability titles and severities
  • File names and line numbers
  • Links to BlockSecOps (authentication required)

Notifications do not include:

  • Source code content
  • Code snippets
  • Detailed vulnerability descriptions

Webhook URL Security

  • Treat webhook URLs as secrets
  • Don't commit URLs to version control
  • Use environment variables in CI/CD
  • Rotate URLs periodically

Comparison with Other Channels

Feature Teams Slack Discord
Adaptive Cards Yes No (Block Kit) No (Embeds)
Interactive buttons View only Full View only
Rate limits Strict Moderate Moderate
Enterprise SSO Yes Yes No

Next Steps