Skip to content

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äle
    • Chat.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 IDs
    • GET /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.