Skip to content

feat(notifications): add Microsoft Teams integration for notifications#3729

Merged
Siumauricio merged 2 commits intocanaryfrom
feat/add-teams-notification-provider
Feb 17, 2026
Merged

feat(notifications): add Microsoft Teams integration for notifications#3729
Siumauricio merged 2 commits intocanaryfrom
feat/add-teams-notification-provider

Conversation

@Siumauricio
Copy link
Contributor

@Siumauricio Siumauricio commented Feb 17, 2026

  • Introduced support for Microsoft Teams notifications, including the ability to create, update, and test connections for Teams notifications.
  • Updated the notification schema to include Teams as a notification type.
  • Added Teams icon and UI components for handling Teams notifications in the dashboard.
  • Implemented backend logic for creating and updating Teams notifications, along with necessary database schema changes.
  • Enhanced existing notification functionalities to support Teams notifications across various events (e.g., build success, failure, database backups).

What is this PR about?

Please describe in a short paragraph what this PR is about.

Checklist

Before submitting this PR, please make sure that:

  • You created a dedicated branch based on the canary branch.
  • You have read the suggestions in the CONTRIBUTING.md file https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#pull-request
  • You have tested this PR in your local instance. If you have not tested it yet, please do so before submitting. This helps avoid wasting maintainers' time reviewing code that has not been verified by you.

Issues related (if applicable)

closes #2783

Screenshots (if applicable)

Greptile Summary

This PR adds Microsoft Teams as a new notification provider in Dokploy, implementing the full stack: database schema/migration, backend services (create, update, test), TRPC router endpoints, and frontend UI components. The Teams integration uses the Adaptive Card format, which is the current standard for Teams webhooks.

  • Adds teams database table with teamsId and webhookUrl columns, with proper foreign key and cascade delete on the notification table
  • Implements sendTeamsNotification using the Adaptive Card payload format with support for title, facts, and action buttons
  • Integrates Teams notifications across all existing event types: build success/error, database backup, volume backup, docker cleanup, dokploy restart, and server threshold alerts
  • Adds frontend form handling, validation schema, test connection support, and Teams icon in the dashboard
  • Implementation closely follows the established patterns used by Lark, Discord, and other existing providers

Confidence Score: 4/5

  • This PR is safe to merge — it adds a new notification provider following well-established patterns with no impact on existing functionality.
  • The implementation is consistent with existing notification providers (Lark, Discord, Slack, etc.) across schema, services, router, and frontend. The Adaptive Card format is correctly structured for Teams webhooks. Only minor style issues found (unused interface field, minor indentation). No logic errors or security concerns.
  • No files require special attention. All changes follow existing patterns.

Last reviewed commit: d516332

- Introduced support for Microsoft Teams notifications, including the ability to create, update, and test connections for Teams notifications.
- Updated the notification schema to include Teams as a notification type.
- Added Teams icon and UI components for handling Teams notifications in the dashboard.
- Implemented backend logic for creating and updating Teams notifications, along with necessary database schema changes.
- Enhanced existing notification functionalities to support Teams notifications across various events (e.g., build success, failure, database backups).
@Siumauricio Siumauricio merged commit 923466b into canary Feb 17, 2026
4 checks passed
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

17 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile


export interface TeamsAdaptiveCardMessage {
title: string;
themeColor?: string;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused interface field themeColor
The themeColor property is defined on the TeamsAdaptiveCardMessage interface but is never read or used anywhere in sendTeamsNotification. If you don't plan to use it, consider removing it to keep the interface clean. If it's intended for future use, adding a comment would clarify intent.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment on lines +52 to +53
const { discord, telegram, slack, custom, lark, pushover, teams } =
notification;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation on continuation line
The continuation line notification; should be indented further (e.g., one extra tab level) to clearly indicate it's a continuation of the destructuring statement.

Suggested change
const { discord, telegram, slack, custom, lark, pushover, teams } =
notification;
const { discord, telegram, slack, custom, lark, pushover, teams } =
notification;

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

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.

Teams Notification Provider

1 participant