Skip to content

feature/Add Teams and Slack webhook notifications#725

Merged
erikdarlingdata merged 1 commit into
erikdarlingdata:devfrom
jakemorgangit:feature/webhook-notifications
Mar 27, 2026
Merged

feature/Add Teams and Slack webhook notifications#725
erikdarlingdata merged 1 commit into
erikdarlingdata:devfrom
jakemorgangit:feature/webhook-notifications

Conversation

@jakemorgangit
Copy link
Copy Markdown

@jakemorgangit jakemorgangit commented Mar 27, 2026

What does this PR do?

In environments where email notifications are restricted, alert visibility is limited unless you’re actively connected to the host running PerformanceMonitor. This change introduces Teams and Slack webhook notifications, allowing alerts to surface in real time removing the need to stay connected to an RDP/jumpbox session.

Adds webhook-based notifications for Microsoft Teams and Slack to both Full and Lite dashboards.

  • Teams and Slack channels can be configured independently of email alerts
  • Supports any combination of email, Teams, and Slack notifications
  • Severity colour mapping (red/orange/yellow/green/blue) aligns with scheme in existing 'Alert History'
  • Per-channel configuration includes webhook URL, optional HTTP proxy, and test button
  • Direct links to Teams and Slack webhook documentation included in the UI
  • Fully respects muted alert rules

Which component(s) does this affect?

  • Full Dashboard
  • Lite Dashboard
  • Lite Tests
  • SQL collection scripts
  • CLI Installer
  • GUI Installer
  • Documentation

How was this tested?

  • Added webhook configuration to both Full and Lite dashboards
  • Verified successful delivery of alerts to both Teams and Slack via test and live alerts
  • Confirmed severity colouring and message formatting
  • Validated muted alert rules are honoured

Dashboard Full Webhooks option:
image

Dashboard Lite Webhooks option:
image

Slack notification test:
image

Slack notification live alerts:
image

Teams notification test:
image

Teams notification live alerts:
image

Checklist

  • I have read the contributing guide
  • My code builds with zero warnings (dotnet build -c Debug)
  • I have tested my changes against at least one SQL Server version
  • I have not introduced any hardcoded credentials or server names

Push alert notifications to Microsoft Teams and/or Slack channels
via incoming webhooks, independently of email alerts. Each channel
has its own enable toggle, webhook URL, optional proxy, and test
button. Severity colors (red/orange/yellow/green/blue) map 1:1
with existing email alert badges. Muted alerts are respected.

Dashboard: new Webhooks tab in Settings, wider resizable window.
Lite: new Webhooks section in Settings, persisted to settings.json.
Made-with: Cursor
@jakemorgangit jakemorgangit changed the title Add Teams and Slack webhook notifications feature/Add Teams and Slack webhook notifications Mar 27, 2026
@erikdarlingdata erikdarlingdata merged commit 1836d86 into erikdarlingdata:dev Mar 27, 2026
3 checks passed
erikdarlingdata added a commit that referenced this pull request Mar 27, 2026
…ok delivery

Dashboard: move RecordAlert back inside SMTP block to prevent duplicate
"tray" entries when email is disabled. Add separate "webhook" record
when webhook notifications are delivered.

Lite: capture webhook send result and reflect in notification_type
column ("webhook" or "email+webhook") in DuckDB alert log.

Both: change TrySendWebhookAlertsAsync return type to Task<bool> so
callers can act on delivery status.

Follows up on #725.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jakemorgangit
Copy link
Copy Markdown
Author

Apologies, I should have initially raised this as a feature request

@erikdarlingdata
Copy link
Copy Markdown
Owner

@jakemorgangit no worries at all! This is really cool, and something I waffled on adding because I don't have those integrations available to test out. I really appreciate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants