Skip to content

Microsoft Teams โ€‹

Send Adaptive Card notifications to Microsoft Teams channels via Power Automate Workflows webhooks.

Overview โ€‹

  • ๐Ÿข Enterprise Ready โ€” Native Microsoft 365 integration
  • ๐Ÿƒ Adaptive Cards โ€” Structured content with FactSet layouts
  • ๐ŸŽจ Color-Coded Status โ€” Visual status indicators on titles
  • ๐Ÿ“‹ Rich Field Layout โ€” Key-value pairs displayed as facts

Configuration โ€‹

FieldDescriptionDefaultRequired
Webhook URLTeams Workflow webhook URLโ€”โœ…

Setup Guide โ€‹

1. Create an Incoming Webhook in Teams โ€‹

Microsoft Teams uses Power Automate Workflows for incoming webhooks (the legacy Office 365 Connector method is deprecated).

  1. Open the target Teams channel
  2. Click the โ‹ฏ (More options) menu on the channel
  3. Select Workflows
  4. Search for "Post to a channel when a webhook request is received"
  5. Click the template and follow the setup wizard
  6. Name the workflow (e.g., "DBackup Notifications")
  7. Select the target team and channel
  8. Click Add workflow
  9. Copy the generated webhook URL

URL Format

The webhook URL should look like:

https://prod-XX.westeurope.logic.azure.com:443/workflows/...

or

https://TENANT.webhook.office.com/webhookb2/...

Do not confuse this with the deprecated Office 365 Connector URL format.

2. Configure in DBackup โ€‹

  1. Go to Notifications in the sidebar
  2. Click Add Notification
  3. Select Microsoft Teams
  4. Paste the webhook URL
  5. Click Test to verify
  6. Save

3. Test the Connection โ€‹

Click Test to send a test notification. You should see an Adaptive Card appear in your Teams channel within a few seconds.

Message Format โ€‹

Teams notifications use Adaptive Cards v1.4 with the following structure:

ElementContent
TitleEvent name with status color (Attention/Good/Warning)
BodySummary message text
FactSetStructured key-value pairs (job name, duration, size, etc.)
FooterISO 8601 timestamp

Color Mapping โ€‹

Since Adaptive Cards only support named colors, DBackup maps hex colors to the closest Adaptive Card color:

StatusAdaptive Card ColorAppears As
SuccessGoodGreen text
FailureAttentionRed text
WarningWarningYellow text
InformationalAccentBlue text
OtherDefaultTheme default

Multiple Channels โ€‹

Create separate webhooks and notification channels for different purposes:

  • #production-alerts โ€” Critical backup notifications
  • #infrastructure โ€” System events and restore notifications
  • #dev-notifications โ€” Development environment backups

Troubleshooting โ€‹

Webhook Returns 400 โ€‹

Teams returned 400: Bad Request

Solutions:

  1. Verify the webhook URL is from a Power Automate Workflow, not a deprecated Office 365 Connector
  2. Ensure the workflow is still active and not disabled
  3. Check if the Teams channel still exists

Webhook Returns 401/403 โ€‹

Teams returned 401: Unauthorized

Solutions:

  1. The workflow may have expired โ€” recreate it
  2. Check if the user who created the workflow still has access to the channel
  3. Verify the workflow hasn't been disabled by an admin

Card Not Rendering โ€‹

If the notification arrives but appears as raw JSON:

  1. Ensure the workflow template is "Post to a channel when a webhook request is received"
  2. The workflow must be configured to accept Adaptive Card payloads
  3. Try recreating the workflow with the recommended template

Workflow Not Triggering โ€‹

Solutions:

  1. Check the Power Automate portal for workflow errors
  2. Verify the workflow is turned on
  3. Check if you've hit the Power Automate connector limits for your plan

Best Practices โ€‹

  1. Use Power Automate Workflows โ€” The legacy Office 365 Connector method is deprecated by Microsoft
  2. Label workflows clearly โ€” Name them "DBackup - Production" etc. for easy management
  3. Monitor workflow health โ€” Check Power Automate portal periodically for failures
  4. Separate channels by criticality โ€” Production vs. development notifications
  5. Document the webhook creator โ€” Workflows are tied to the creating user's account

Released under the GNU General Public License. | Privacy ยท Legal Notice