FyneDesk-Benachrichtigungen an Microsoft Teams senden
Erhalten Sie jedes Mal eine Nachricht in Ihrem Teams-Kanal, wenn ein Ticket erstellt, kommentiert wird oder seinen Status ändert. FyneDesk sendet das Ereignis an einen Webhook, und ein kurzer Power-Automate-Flow wandelt es in eine Teams-Nachricht um. Folgen Sie den Schritten unten der Reihe nach — es dauert etwa zehn Minuten.
Wie es funktioniert
FyneDesk sendet jedes Ereignis (neues Ticket, neuer Kommentar usw.) als kleines JSON-Datenpaket an die von Ihnen angegebene URL. Microsoft Teams zeigt dieses Paket nicht von selbst an — Ihr Power-Automate-Flow muss die Daten nehmen und als Nachricht posten.
Deshalb kann ein Test „erfolgreich gesendet“ melden, während in Teams nichts erscheint: Power Automate antwortet in dem Moment, in dem es eine Anfrage erhält, mit 202 Accepted, sodass „Erfolg“ nur bedeutet, dass Microsoft die Daten erhalten hat. Es sagt nichts darüber aus, ob eine Nachricht gepostet wurde. Sobald Sie den Posting-Schritt in Teil 3 hinzufügen, erscheinen Nachrichten.
Bevor Sie beginnen
- Ein Microsoft Teams-Team und einen -Kanal, in dem Sie die Benachrichtigungen wünschen, und ein Power Automate-Konto mit einer Lizenz, die in Teams posten kann.
- Administratorzugriff auf FyneDesk-Webhooks, unter Administratoreinstellungen → Erweitert → Webhooks (auch erreichbar über Einstellungen → Verbindungen → Webhooks).
- Etwa zehn Minuten. Sie erstellen einen Flow aus einer fertigen Vorlage, fügen seine URL in FyneDesk ein und fügen dann einen Schritt hinzu, der die Nachricht postet.
Einrichten
Dies ist genau der Weg, den unser Team von Anfang bis Ende verwendet. Er erzeugt eine einfache, gut lesbare Textnachricht. (Möchten Sie, dass die Nachricht jeden Ereignistyp benennt, oder bevorzugen Sie eine formatierte Karte? Siehe die erweiterten Optionen unten.)
Teil 1 — Den Flow aus einer Vorlage erstellen
Gehen Sie zu make.powerautomate.com und melden Sie sich an. Wählen Sie im linken Menü Vorlagen, geben Sie webhook in das Suchfeld ein und öffnen Sie Webhook-Warnungen an einen Kanal senden — die einfache Version, nicht die „(TEST)“-Versionen. Klicken Sie auf Weiter (melden Sie sich erneut an, falls gefragt).
Die Vorlage zeigt, dass sie Teams → Microsoft Teams verbindet und eine Webhook-URL generiert. Bevor Sie auf Erstellen klicken, legen Sie das Team und den Kanal fest, in dem die Benachrichtigungen gepostet werden sollen — das wird leicht übersehen und ist wichtig.
Wählen Sie Ihr Team und Ihren Kanal und klicken Sie dann auf Erstellen. Wenn der Flow geöffnet wird, klicken Sie auf Bearbeiten, um mit der Bearbeitung zu beginnen.
Teil 2 — Die URL an FyneDesk geben
Klicken Sie im Flow auf das erste Feld, „Wenn eine Teams-Webhook-Anfrage empfangen wird“, und kopieren Sie die angezeigte HTTP-URL.
Gehen Sie dann in FyneDesk zu Administratoreinstellungen → Erweitert → Webhooks und klicken Sie auf Webhook hinzufügen:
- Benennen Sie ihn so, dass Sie ihn später wiedererkennen, z. B. Microsoft Teams.
- Fügen Sie die Power-Automate-URL in Endpunkt-URL ein (es muss ein HTTPS-Link sein).
- Lassen Sie
ticket.createdmarkiert — das ist alles, was Sie für den Anfang brauchen. (Sie können später weitere Ereignisse hinzufügen.) - Klicken Sie auf Speichern.
Teil 3 — Dem Flow sagen, was er posten soll
Dies ist der Schritt, der leicht übersehen wird — und genau deshalb kann ein Test „gesendet“ melden, während in Teams nichts erscheint.
1. Löschen Sie die beiden vorgefertigten Schritte. Die Vorlage fügt eine Aktion Variable initialisieren (manchmal zwei) und eine Bedingung Anhänge ist null hinzu. Löschen Sie beide — klicken Sie auf die … bei jedem Schritt und dann auf Löschen. Sie drinzulassen löst den „AdaptiveCard“-Fehler aus.
2. Fügen Sie die Posting-Aktion hinzu. Klicken Sie auf das + unter dem Auslöser und wählen Sie In einem Chat oder Kanal posten (der Microsoft-Teams-Connector). Stellen Sie die Dropdowns ein:
| Feld | Einstellen auf |
|---|---|
| Posten als | Flow-Bot |
| Posten in | Kanal |
| Team | Ihr Team |
| Kanal | Der Kanal, in dem Sie Benachrichtigungen wünschen |
3. Erstellen Sie die Nachricht. Klicken Sie in das Nachrichten-Feld, klicken Sie auf die blaue Schaltfläche fx (Ausdruck einfügen), fügen Sie den folgenden Ausdruck genau ein und klicken Sie dann auf Hinzufügen.
concat('New ticket ', triggerBody()?['data']?['ticket_number'], ' - ', triggerBody()?['data']?['title'], ' | Status: ', triggerBody()?['data']?['status'], ' | Priority: ', triggerBody()?['data']?['priority'], ' | https://fynedesk.ai/tickets/', string(triggerBody()?['data']?['id']))
4. Speichern. Klicken Sie auf Speichern (oben rechts). Sie sollten „Ihr Flow ist startbereit.“ sehen.
- Fügen Sie den Ausdruck immer mit der Schaltfläche fx ein — tippen Sie ihn nie als reinen Text ein und umschließen Sie ihn nie mit
@{ }. - Wenn Sie irgendwann ein Copilot-Feld verwendet haben, leeren Sie das Kommentar-Feld dieses Schritts vor dem Speichern. Eine lange Notiz dort (über 256 Zeichen) blockiert das Speichern stillschweigend.
Teil 4 — Testen
Erstellen oder aktualisieren Sie ein echtes Ticket in FyneDesk. Innerhalb weniger Sekunden erscheint eine Nachricht in Ihrem Teams-Kanal.
ping-Paket ohne Ticket-Nummer oder Titel, sodass die Testnachricht spärlich aussieht (überwiegend leere Felder). Das ist zu erwarten. Der echte Beweis ist, ein tatsächliches Ticket zu erstellen oder zu kommentieren und den Kanal zu beobachten.
Optional: jedes Ereignis kennzeichnen oder eine Karte posten
Der obige Ausdruck beginnt immer mit „New ticket“. Wenn Sie möchten, dass die Nachricht das Ereignis benennt (neuer Kommentar, Statusänderung usw.) oder eine formatierte Karte bevorzugen, verwenden Sie eine der folgenden Optionen. Die Einrichtung ist identisch — nur der Nachrichten-Ausdruck ändert sich.
Was FyneDesk sendet
Ihr Webhook kann vier Ereignisse abonnieren. Hier ist die Form jedes Pakets (die Werte sind Beispiele).
ticket.created
{
"event": "ticket.created",
"timestamp": "2026-05-30T22:19:59",
"organization": { "id": 173, "name": "SafePACS" },
"data": {
"id": 6381,
"ticket_number": "INC004736",
"title": "Printer not working",
"description": "The 3rd floor printer is offline",
"status": "New",
"priority": "Medium",
"ticket_type": "Incident",
"source": "Email",
"created_at": "2026-05-30T22:19:59"
}
}ticket.updated und ticket.status_changed verwenden dieselbe Form wie oben, plus updated_at, assigned_to und assigned_team_id.
ticket.commented — beachten Sie, dass die Feldnamen hier leicht abweichen:
{
"event": "ticket.commented",
"timestamp": "2026-05-30T22:19:59",
"organization": { "id": 173, "name": "SafePACS" },
"data": {
"ticket_id": 6381,
"ticket_number": "INC004736",
"ticket_title": "Printer not working",
"ticket_status": "New",
"content": "Any update on this?",
"comment_id": 8809,
"is_internal": false
}
}coalesce(...), um zwischen den abweichenden Feldnamen zurückzufallen, sodass ein einzelner Flow jeden Ereignistyp abdeckt. Um sie zu verwenden, markieren Sie die zusätzlichen Ereignisse auf Ihrem FyneDesk-Webhook (Teil 2).
Option A — Eine reichhaltigere Textnachricht
Geben Sie statt des einzelnen Ausdrucks das folgende Layout in das Nachrichten-Feld ein. Alles, was kein 〈Platzhalter〉 ist, ist reiner Text, den Sie eintippen. Klicken Sie für jeden 〈Platzhalter〉 auf die Schaltfläche fx, fügen Sie den passenden Ausdruck aus der Tabelle ein und klicken Sie dann auf Hinzufügen.
〈eventLabel〉 〈ticketNumber〉
〈title〉
Status: 〈status〉 • Priority: 〈priority〉
〈message〉
Open in FyneDesk: 〈link〉| Platzhalter | Fügen Sie dies in das fx-Ausdrucksfeld ein |
|---|---|
| 〈eventLabel〉 | if(equals(triggerBody()?['event'],'ticket.created'),'🎫 New ticket',if(equals(triggerBody()?['event'],'ticket.commented'),'💬 New comment',if(equals(triggerBody()?['event'],'ticket.status_changed'),'🔄 Status changed','✏️ Ticket updated'))) |
| 〈ticketNumber〉 | triggerBody()?['data']?['ticket_number'] |
| 〈title〉 | coalesce(triggerBody()?['data']?['title'],triggerBody()?['data']?['ticket_title'],'(no title)') |
| 〈status〉 | coalesce(triggerBody()?['data']?['status'],triggerBody()?['data']?['ticket_status'],'-') |
| 〈priority〉 | coalesce(triggerBody()?['data']?['priority'],'-') |
| 〈message〉 | coalesce(triggerBody()?['data']?['content'],triggerBody()?['data']?['description'],'') |
| 〈link〉 | concat('https://fynedesk.ai/',if(equals(triggerBody()?['data']?['ticket_type'],'Service Request'),'requests/','tickets/'),string(coalesce(triggerBody()?['data']?['id'],triggerBody()?['data']?['ticket_id']))) |
Option B — Eine formatierte Karte
Bevorzugen Sie eine Karte? Verwenden Sie die Aktion Karte in einem Chat oder Kanal posten und fügen Sie Folgendes in das Feld Adaptive Card ein. Sie verwendet dieselben Ausdrücke, also sind es dieselben Daten in einem aufgeräumteren Layout.
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "@{if(equals(triggerBody()?['event'],'ticket.created'),'🎫 New ticket',if(equals(triggerBody()?['event'],'ticket.commented'),'💬 New comment',if(equals(triggerBody()?['event'],'ticket.status_changed'),'🔄 Status changed','✏️ Ticket updated')))} @{triggerBody()?['data']?['ticket_number']}"
},
{
"type": "TextBlock",
"text": "@{coalesce(triggerBody()?['data']?['title'],triggerBody()?['data']?['ticket_title'],'(no title)')}",
"wrap": true
},
{
"type": "FactSet",
"facts": [
{ "title": "Status", "value": "@{coalesce(triggerBody()?['data']?['status'],triggerBody()?['data']?['ticket_status'],'-')}" },
{ "title": "Priority", "value": "@{coalesce(triggerBody()?['data']?['priority'],'-')}" }
]
},
{
"type": "TextBlock",
"text": "@{coalesce(triggerBody()?['data']?['content'],triggerBody()?['data']?['description'],'')}",
"wrap": true
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Open in FyneDesk",
"url": "@{concat('https://fynedesk.ai/',if(equals(triggerBody()?['data']?['ticket_type'],'Service Request'),'requests/','tickets/'),string(coalesce(triggerBody()?['data']?['id'],triggerBody()?['data']?['ticket_id'])))}"
}
]
}Fehlerbehebung
Nachrichten erscheinen immer noch nicht — häufige Lösungen
Sie erhalten einen „AdaptiveCard“-Fehler, oder der Flow läuft, postet aber nie. Die vorgefertigten Schritte Variable initialisieren und Anhänge ist null der Vorlage verursachen dies. Löschen Sie beide (Teil 3, Schritt 1) und posten Sie Ihre Nachricht stattdessen mit einer einzigen Aktion In einem Chat oder Kanal posten.
Der Flow lässt sich nicht speichern. Wenn Sie irgendwann Copilot versucht haben, leeren Sie das Kommentar-Feld dieses Schritts — eine Notiz länger als 256 Zeichen blockiert das Speichern stillschweigend.
Nichts in Teams nach einer echten Ticket-Aktion. Öffnen Sie in Power Automate Ihren Flow und prüfen Sie den Ausführungsverlauf (das 28-Tage-Protokoll). Jedes FyneDesk-Ereignis sollte eine Ausführung zeigen. Gar keine Ausführungen bedeutet, dass der FyneDesk-Webhook nicht auf die URL dieses Flows zeigt oder dieses Ereignis nicht abonniert hat — prüfen Sie es in FyneDesk erneut. Ausführungen zeigen „Fehlgeschlagen“ bedeutet, dass ein Schritt einen Fehler hatte; klicken Sie auf einen, um zu sehen, welcher. Meistens ist es das nicht ausgewählte Team oder der nicht ausgewählte Kanal oder dem Besitzer des Flows fehlt eine Power-Automate-Lizenz.
Eine Nachricht wird gepostet, aber einige Felder sind leer. Verschiedene Ereignisse enthalten verschiedene Felder (ein Kommentar hat zum Beispiel keine priority). Die coalesce(...)-Ausdrücke in den erweiterten Optionen fallen elegant zurück, sodass ein leeres Feld nur bedeutet, dass dieses Ereignis dieses Feld nicht enthielt.
Ein Ausdruck zeigt einen roten Fehler. Einige Auslösertypen stellen den Body als triggerOutputs()?['body'] statt triggerBody() bereit. Wenn triggerBody() einen Fehler hat, tauschen Sie es aus — zum Beispiel triggerOutputs()?['body']?['data']?['ticket_number'].
Ein Hinweis zur Sicherheit
Ihre Power-Automate-URL enthält eine geheime Signatur (der Teil sig=...) — behandeln Sie die gesamte URL wie ein Passwort und teilen Sie sie nicht. FyneDesk signiert außerdem jede Anfrage mit einem X-FyneDesk-Signature-Header (HMAC-SHA256), falls Sie jemals die Authentizität innerhalb des Flows überprüfen möchten, obwohl das optional und nicht erforderlich ist, damit Nachrichten fließen.
Häufig gestellte Fragen
FyneDesk sagt „erfolgreich gesendet“, aber in Teams erscheint nichts. Warum?
„Erfolgreich gesendet“ bedeutet nur, dass Microsoft die Daten erhalten hat — Power Automate antwortet in dem Moment, in dem es eine Anfrage erhält, mit 202 Accepted. Es bedeutet nicht, dass eine Nachricht gepostet wurde. Teams zeigt das rohe JSON nicht von selbst an; Ihr Flow benötigt eine Aktion In einem Chat oder Kanal posten, um es zu formatieren und zu posten.
Welche Power-Automate-Vorlage sollte ich verwenden?
Öffnen Sie Vorlagen, suchen Sie nach webhook und wählen Sie Webhook-Warnungen an einen Kanal senden — die einfache Version, nicht die „(TEST)“-Versionen. Sie generiert die Webhook-URL, die Sie in FyneDesk einfügen, und lässt Sie das Team und den Kanal auswählen, in dem gepostet werden soll.
Warum erhalte ich einen „AdaptiveCard“-Fehler, oder warum postet der Flow nie?
Die Vorlage wird mit zwei vorgefertigten Schritten geliefert — einer Aktion Variable initialisieren und einer Bedingung Anhänge ist null —, und diese verursachen den AdaptiveCard-Fehler. Löschen Sie beide und fügen Sie dann eine einzige Aktion In einem Chat oder Kanal posten mit Ihrem eigenen Nachrichtenausdruck hinzu.
Kann FyneDesk ohne Power Automate in Teams posten?
Ja — FyneDesk hat jetzt eine native Microsoft-Teams-App, die Ticket-Benachrichtigungskarten direkt in Ihre Kanäle postet, in den Tarifen Pro und Business, ohne dass ein Flow erstellt werden muss. Der Weg über Webhook + Power Automate auf dieser Seite funktioniert weiterhin und bleibt nützlich, wenn Sie volle Kontrolle über Formatierung und Weiterleitung wünschen.
Welche Ticket-Ereignisse kann ich an Teams senden?
Ein FyneDesk-Webhook kann ticket.created, ticket.updated, ticket.status_changed und ticket.commented senden. Die empfohlene Einrichtung verwendet ticket.created; die erweiterten Ausdrücke verarbeiten alle vier automatisch, sodass ein Flow jedes Ereignis abdecken kann.