Skip to main content

Introduction

The Microsoft Teams integration posts Dodo Payments events to a Teams channel as Adaptive Cards, so your team sees payments, subscription changes, and disputes as they happen. Use it when Teams is where your business team works.
This guide assumes you have admin access to create webhooks in your Microsoft Teams workspace.

Getting Started

1

Open the Webhook Section

In the Dodo Payments dashboard, go to Developer → Webhooks and click Add endpoint.
Add endpoint dialog with Teams selected in the Integration dropdown
2

Select Microsoft Teams

In the Integration list, select Teams.
3

Create Teams Webhook

Microsoft retired the Office 365 Incoming Webhook connectors in Teams, so create the webhook with the Workflows app:
  1. In Teams, open the channel that should receive notifications.
  2. Click ⋯ next to the channel name and choose Workflows.
  3. Pick the template Post to a channel when a webhook request is received.
  4. Confirm the team and channel, then click Add workflow.
  5. Copy the webhook URL that Teams shows.
4

Paste Webhook URL

Paste the Teams webhook URL into the Endpoint URL field.
5

Customize Transformation

Edit the code under Transformation code to format each event as an Adaptive Card. Start from the examples below.
6

Test & Create

Under Test this code, run the transformation against a sample payload, then click Create endpoint.
7

Done

Your Teams channel now receives Dodo Payments events as Adaptive Cards.

Transformation Code Examples

Each example replaces the event payload with a Teams message that carries one Adaptive Card attachment.

Basic Payment Card

This example posts the amount, customer email, and payment ID when a payment succeeds.
payment_card.js

Subscription Management

This example posts one card when a subscription becomes active and another when it’s cancelled.
subscription_card.js

Dispute Alerts

This example posts a card for every dispute.* event. The title and color change when a dispute is won or lost.
dispute_card.js

Tips

  • Use Adaptive Cards for rich, interactive formatting.
  • Pick colors by meaning: Good (green), Warning (yellow), and Attention (red).
  • Keep fact sets short and readable.
  • Before you rely on the endpoint, open its Testing tab and click Send example to post a sample card to your channel.

Troubleshooting

  • Check that the webhook URL is correct and that the workflow is turned on.
  • Check that the transformation returns valid Adaptive Card JSON.
  • Check that the workflow has permission to post in the channel.
  • Run the transformation under Test this code and check the result against the Adaptive Card schema.
  • Check that all required fields are present.
  • Check that color values are valid, such as Default, Good, Warning, or Attention.
Last modified on September 26, 2026