Einführung
Halten Sie Ihr Geschäftsteam mit Echtzeit-Zahlungsbenachrichtigungen in Microsoft Teams auf dem Laufenden. Die Integration liefert Zahlungsereignisse als reichhaltige Adaptive Cards – perfekt für Unternehmensumgebungen, in denen Teams das primäre Kollaborationstool ist.
Diese Anleitung setzt voraus, dass Sie Administratorrechte haben, um Webhooks in Ihrem Microsoft Teams-Arbeitsbereich zu erstellen.
Erste Schritte
Open the Webhook Section
Gehen Sie in Ihrem Dodo Payments-Dashboard zu Webhooks → + Endpoint hinzufügen und erweitern Sie das Integrations-Dropdown.
Select Microsoft Teams
Wählen Sie die Integrationskarte Microsoft Teams aus.
Create Teams Webhook
Navigieren Sie in Teams zu Ihrem Kanal → ⋯ → Connectors → Incoming Webhook → Configure. Kopieren Sie die Webhook-URL.
Paste Webhook URL
Fügen Sie die Teams-Webhook-URL in die Endpunktkonfiguration ein.
Customize Transformation
Bearbeiten Sie den Transformationscode, um Nachrichten als Adaptive Cards für Teams zu formatieren.
Test & Create
Testen Sie mit Beispiel-Payloads und klicken Sie auf Create , um zu aktivieren.
Done!
🎉 Ihr Teams-Kanal erhält nun Dodo Payments-Updates als Adaptive Cards.
Grundlegende Zahlungskarte
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "✅ Payment Successful" ,
weight: "Bolder" ,
size: "Medium"
},
{
type: "FactSet" ,
facts: [
{ title: "Amount" , value: `$ ${ ( p . total_amount / 100 ). toFixed ( 2 ) } ` },
{ title: "Customer" , value: p . customer . email },
{ title: "Payment ID" , value: p . payment_id }
]
}
]
}
}]
};
}
return webhook ;
}
See all 31 lines
Abonnementverwaltung
function handler ( webhook ) {
const s = webhook . payload . data ;
switch ( webhook . eventType ) {
case "subscription.active" :
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "📄 Subscription Activated" ,
weight: "Bolder" ,
color: "Good"
},
{
type: "FactSet" ,
facts: [
{ title: "Customer" , value: s . customer . email },
{ title: "Product" , value: s . product_id },
{ title: "Amount" , value: `$ ${ ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ) } / ${ s . payment_frequency_interval } ` },
{ title: "Next Billing" , value: new Date ( s . next_billing_date ). toLocaleDateString () }
]
}
]
}
}]
};
break ;
case "subscription.cancelled" :
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: "⚠️ Subscription Cancelled" ,
weight: "Bolder" ,
color: "Warning"
},
{
type: "FactSet" ,
facts: [
{ title: "Customer" , value: s . customer . email },
{ title: "Product" , value: s . product_id },
{ title: "Cancelled At" , value: new Date ( s . cancelled_at ). toLocaleDateString () }
]
}
]
}
}]
};
break ;
}
return webhook ;
}
See all 61 lines
Streitfallbenachrichtigungen
function handler ( webhook ) {
if ( webhook . eventType . startsWith ( "dispute." )) {
const d = webhook . payload . data ;
const color = d . dispute_status === "won" ? "Good" : d . dispute_status === "lost" ? "Attention" : "Warning" ;
const title = d . dispute_status === "won" ? "🏆 Dispute Won" : d . dispute_status === "lost" ? "❌ Dispute Lost" : "🚨 Dispute Update" ;
webhook . payload = {
type: "message" ,
attachments: [{
contentType: "application/vnd.microsoft.card.adaptive" ,
content: {
type: "AdaptiveCard" ,
body: [
{
type: "TextBlock" ,
text: title ,
weight: "Bolder" ,
color: color
},
{
type: "FactSet" ,
facts: [
{ title: "Payment ID" , value: d . payment_id },
{ title: "Amount" , value: `$ ${ ( d . amount / 100 ). toFixed ( 2 ) } ` },
{ title: "Status" , value: d . dispute_status },
{ title: "Stage" , value: d . dispute_stage }
]
}
]
}
}]
};
}
return webhook ;
}
See all 35 lines
Tipps
Verwenden Sie Adaptive Cards für reichhaltige, interaktive Formatierung
Wählen Sie geeignete Farben: Gut (grün), Warnung (gelb), Aufmerksamkeit (rot)
Halten Sie Faktensätze prägnant und lesbar
Testen Sie mit dem Teams-Webhooks-Tester, bevor Sie bereitstellen
Fehlersuche
Überprüfen Sie, ob die Webhook-URL korrekt und aktiv ist
Stellen Sie sicher, dass die Transformation gültiges Adaptive Card JSON zurückgibt
Vergewissern Sie sich, dass der Webhook die Berechtigung hat, im Kanal zu posten
Zuletzt geändert am 20. April 2026