Teams-Nachricht senden
Dieser Service Task sendet eine Nachricht an einen Microsoft Teams Kanal oder Chat über die Microsoft Graph API. Er unterstützt Klartext, HTML-Formatierung und Adaptive Cards.
Nutzen: Prozess-Ereignisse (Genehmigungen, Statusänderungen, Eskalationen) können automatisch Teams-Benachrichtigungen auslösen — ohne manuelles Weiterleiten.
Voraussetzungen
Eine Microsoft Entra ID (Azure AD) App-Registrierung ist erforderlich mit:
- Anwendungsberechtigungen (nicht delegiert):
ChannelMessage.Send— zum Senden in KanäleChat.ReadWrite.All— zum Senden in Chats
- Admin-Einwilligung für den Tenant erteilt
Die Anmeldedaten (tenantId, oAuthClientID, clientSecret) können als Pantarey Secrets gespeichert und über {{secret:NAME}} referenziert werden.
Eingabeparameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
credentials |
Objekt | Ja | { tenantId, oAuthClientID, clientSecret } — Microsoft Entra ID Anmeldedaten. |
teamId |
String | Bedingt | Team-ID (erforderlich für Kanal-Nachrichten). |
channelId |
String | Bedingt | Kanal-ID (erforderlich für Kanal-Nachrichten). |
chatId |
String | Bedingt | Chat-ID (erforderlich für Chat-Nachrichten). Entweder teamId + channelId oder chatId. |
message |
String | Ja* | Nachrichtentext (Klartext oder HTML). *Nicht erforderlich bei Verwendung von card. |
contentType |
String | Nein | text oder html. Standard: text. |
card |
Objekt | Nein | Ein Adaptive Card JSON-Objekt. Hat Vorrang vor message. |
Beispiel: Kanal-Nachricht (Text)
{
"credentials": {
"tenantId": "{{secret:MS_TENANT_ID}}",
"oAuthClientID": "{{secret:MS_CLIENT_ID}}",
"clientSecret": "{{secret:MS_CLIENT_SECRET}}"
},
"teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"channelId": "19:xxxxxxxx@thread.tacv2",
"message": "Antrag #2024-001 wurde genehmigt.",
"contentType": "text"
}
Beispiel: Adaptive Card
{
"credentials": { "..." : "..." },
"teamId": "...",
"channelId": "...",
"message": "Antrag genehmigt",
"card": {
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "Antrag #2024-001 genehmigt",
"weight": "Bolder",
"size": "Medium"
},
{
"type": "FactSet",
"facts": [
{ "title": "Betrag", "value": "1.500,00 €" },
{ "title": "Genehmigt von", "value": "Max Mustermann" }
]
}
]
}
}
Ausgabe
| Feld | Typ | Beschreibung |
|---|---|---|
messageId |
String | Die ID der erstellten Nachricht. |
createdDateTime |
String | ISO-Zeitstempel der Erstellung. |
webUrl |
String/null | Direktlink zur Nachricht in Teams (falls verfügbar). |
Beispiel-Ausgabe
{
"messageId": "1234567890",
"createdDateTime": "2026-02-14T10:30:00Z",
"webUrl": "https://teams.microsoft.com/l/message/..."
}
Team- und Kanal-IDs finden
- In Teams: Rechtsklick auf einen Kanal → „Link zum Kanal abrufen". Die URL enthält beide IDs.
- Über Graph Explorer: https://developer.microsoft.com/graph/graph-explorer
GET /me/joinedTeams→ listet Teams mit IDsGET /teams/{teamId}/channels→ listet Kanäle mit IDs
Anwendungsfälle
- Genehmigungsbenachrichtigungen: „Rechnung #2024-001 wurde von Max Mustermann genehmigt."
- Eskalationen: Support-Kanal benachrichtigen, wenn ein SLA kurz vor Ablauf steht.
- Statusmeldungen: Projekt-Meilensteine in einen Projektkanal posten.
- Onboarding: IT-Kanal informieren, wenn ein Mitarbeiter-Onboarding-Prozess startet.
- Adaptive Cards: Reichhaltig formatierte Nachrichten mit Fakten, Bildern und Aktions-Buttons.