FyneDesk-meldingen sturen naar Microsoft Teams

Ontvang een bericht in je Teams-kanaal telkens wanneer een ticket wordt aangemaakt, er een reactie op wordt geplaatst of de status verandert. FyneDesk stuurt de gebeurtenis naar een webhook en een korte Power Automate-flow zet het om in een Teams-bericht. Volg de onderstaande stappen in volgorde — het duurt ongeveer tien minuten.

Getest en "succesvol verzonden" gezien maar niets in Teams? Dat is normaal — en je bent er bijna. Het "succes" betekent alleen dat Microsoft de gegevens heeft ontvangen; er wordt niet zelf iets gepost. Voeg de ene postactie toe in Deel 3 hieronder en berichten zullen beginnen te verschijnen.

Hoe het werkt

FyneDesk stuurt elke gebeurtenis (nieuw ticket, nieuwe reactie enzovoort) als een klein JSON-datapakket naar de URL die je opgeeft. Microsoft Teams toont dat pakket niet zelf — je Power Automate-flow moet de gegevens ophalen en als bericht posten.

Daarom kan een test "succesvol verzonden" melden terwijl er niets in Teams verschijnt: Power Automate antwoordt met 202 Accepted zodra het een verzoek ontvangt, dus "succes" betekent alleen dat Microsoft de gegevens heeft ontvangen. Het zegt niets over of er een bericht is geplaatst. Zodra je de poststap toevoegt in Deel 3, zullen berichten verschijnen.

Voordat je begint

  • Een Microsoft Teams-team en -kanaal waar je de meldingen wilt ontvangen, en een Power Automate-account met een licentie die berichten naar Teams kan posten.
  • Beheerderstoegang tot FyneDesk-webhooks, via Beheerdersinstellingen → Geavanceerd → Webhooks (ook bereikbaar via Instellingen → Verbindingen → Webhooks).
  • Ongeveer tien minuten. Je bouwt een flow op basis van een kant-en-klare sjabloon, plakt de URL ervan in FyneDesk en voegt dan één stap toe die het bericht post.
Al een Power Automate-URL in FyneDesk geplakt? Dan heb je het moeilijkste deel gedaan. Sla over naar Deel 3 — je hoeft alleen de poststap toe te voegen.

Instellen

Dit is het exacte pad dat ons team gebruikt, van begin tot eind. Het produceert een eenvoudig, leesbaar tekstbericht. (Wil je dat het bericht elk type gebeurtenis benoemt, of geef je de voorkeur aan een opgemaakte kaart? Zie de geavanceerde opties hieronder.)

Deel 1 — De flow aanmaken vanuit een sjabloon

Ga naar make.powerautomate.com en meld je aan. Kies in het linkermenu Sjablonen, typ webhook in het zoekvak en open Webhook-meldingen verzenden naar een kanaal — de normale versie, niet de "(TEST)"-versies. Klik op Doorgaan (meld je opnieuw aan indien gevraagd).

Het scherm Sjablonen van Power Automate met webhook ingetypt in het zoekvak. Vier sjablonen worden getoond; de eerste, Webhook-meldingen verzenden naar een kanaal, is de te openen sjabloon.

De sjabloon toont dat het Teams → Microsoft Teams verbindt en een webhook-URL genereert. Voordat je op Maken klikt, stel het Team en Kanaal in waar je de meldingen wilt ontvangen — dit is makkelijk over het hoofd te zien, maar het is belangrijk.

Het scherm van de sjabloon Webhook-meldingen verzenden naar een kanaal, met de weergave dat het Teams verbindt met Microsoft Teams, het verbonden Microsoft Teams-account en een knop Doorgaan. De sjablooninstelling met een Teams-dropdown ingesteld op een team, en een Microsoft Teams-kanaaldropdown, boven een knop Maken. De kanaalwaarde is afgeschermd.

Kies je Team en kanaal en klik vervolgens op Maken. Wanneer de flow wordt geopend, klik je op Bewerken om te beginnen met bewerken.

Deel 2 — De URL doorgeven aan FyneDesk

Klik in de flow op het eerste vak, "Wanneer een Teams-webhookverzoek wordt ontvangen," en kopieer de HTTP-URL die wordt weergegeven.

De trigger Wanneer een Teams-webhookverzoek wordt ontvangen uitgevouwen, met een dropdown Wie kan de flow activeren ingesteld op Iedereen en een veld HTTP-URL met een kopieerknop. De URL-waarde is afgeschermd.

Ga vervolgens in FyneDesk naar Beheerdersinstellingen → Geavanceerd → Webhooks en klik op Webhook toevoegen:

  • Geef het een naam die je later herkent, bijv. Microsoft Teams.
  • Plak de Power Automate-URL in Eindpunt-URL (dit moet een HTTPS-link zijn).
  • Laat ticket.created aangevinkt staan — dat is alles wat je nodig hebt om te beginnen. (Je kunt later meer gebeurtenissen toevoegen.)
  • Klik op Opslaan.
Het scherm FyneDesk Webhook toevoegen met een naamveld ingesteld op Microsoft Teams, een veld Eindpunt-URL voor de Power Automate-link, een lijst met te versturen gebeurtenissen met ticket.created aangevinkt, en een knop Opslaan.

Deel 3 — De flow vertellen wat hij moet posten

Dit is de stap die makkelijk wordt gemist — en precies waarom een test "verzonden" kan zeggen terwijl er niets in Teams verschijnt.

1. Verwijder de twee voorgemaakte stappen. De sjabloon voegt een actie Variabele initialiseren (soms twee) en een voorwaarde Bijlagen is null toe. Verwijder beide — klik op de bij elke stap en kies Verwijderen. Als je ze laat staan, krijg je de "AdaptiveCard"-fout.

De flow-editor met de trigger Wanneer een Teams-webhookverzoek wordt ontvangen gevolgd door twee stappen Variabele initialiseren en een voorwaarde Bijlagen is null — de stappen die verwijderd moeten worden.

2. Voeg de postactie toe. Klik op de + onder de trigger en kies Bericht plaatsen in een chat of kanaal (de Microsoft Teams-connector). Stel de dropdowns in:

VeldInstellen op
Posten alsFlowbot
Posten inKanaal
TeamJouw team
KanaalHet kanaal waar je meldingen wilt ontvangen

3. Bouw het bericht. Klik in het vak Bericht, klik op de blauwe knop fx (Expressie invoegen), plak de onderstaande expressie exact en klik op Toevoegen.

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']))
De actie Bericht plaatsen in een chat of kanaal met Posten als ingesteld op Flowbot, Posten in ingesteld op Kanaal, een geselecteerd Team en Kanaal, en het vak Bericht met een enkele concat-expressie ingevoegd via de fx-expressieeditor rechts.

4. Opslaan. Klik op Opslaan (rechtsboven). Je zou "Je flow is klaar voor gebruik." moeten zien.

Twee valkuilen die uren kosten
  • Voeg de expressie altijd in via de fx-knop — typ hem nooit als gewone tekst en wikkel hem nooit in @{ }.
  • Als je op enig moment een Copilot-vak hebt gebruikt, wis dan het veld Opmerking van die stap voordat je opslaat. Een lange noot daarin (meer dan 256 tekens) blokkeert het opslaan zonder foutmelding.

Deel 4 — Testen

Maak of werk een echt ticket bij in FyneDesk. Binnen enkele seconden verschijnt er een bericht in je Teams-kanaal.

Over de knop Test verzenden FyneDesk's Test verzenden stuurt een klein ping-pakket zonder ticketnummer of titel, zodat het testbericht er kaal uitziet (grotendeels lege velden). Dat is normaal. Het echte bewijs is een echt ticket aanmaken of er een reactie op plaatsen en het kanaal in de gaten houden.

Optioneel: elke gebeurtenis benoemen of een kaart posten

De bovenstaande expressie begint altijd met "New ticket". Als je wilt dat het bericht het type gebeurtenis benoemt (nieuwe reactie, statuswijziging enzovoort) of als je de voorkeur geeft aan een opgemaakte kaart, gebruik dan een van de onderstaande opties. De installatie is identiek — alleen de expressie bij Bericht verandert.

Wat FyneDesk verstuurt

Je webhook kan zich abonneren op vier gebeurtenissen. Hieronder staat de structuur van elk pakket (waarden zijn voorbeelden).

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 en ticket.status_changed gebruiken dezelfde structuur als hierboven, plus updated_at, assigned_to en assigned_team_id.

ticket.commented — let op dat de veldnamen hier iets anders zijn:

{
  "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
  }
}
Één flow verwerkt alle vier De onderstaande expressies gebruiken coalesce(...) om terug te vallen op de verschillende veldnamen, zodat één flow elk type gebeurtenis dekt. Om ze te gebruiken, vink je de extra gebeurtenissen aan in je FyneDesk-webhook (Deel 2).

Optie A — Een rijker tekstbericht

Typ in plaats van de enkele expressie de onderstaande indeling in het vak Bericht. Alles dat geen 〈plaatshouder〉 is, is gewone tekst die je intypt. Voor elke 〈plaatshouder〉 klik je op de fx-knop, plak je de bijbehorende expressie uit de tabel en klik je op Toevoegen.

〈eventLabel〉  〈ticketNumber〉
〈title〉

Status: 〈status〉   •   Priority: 〈priority〉

〈message〉

Open in FyneDesk: 〈link〉
PlaatshouderPlak dit in het fx-expressievak
〈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'])))

Optie B — Een opgemaakte kaart

Geef je de voorkeur aan een kaart? Gebruik de actie Kaart plaatsen in een chat of kanaal en plak het volgende in het veld Adaptive Card. Het gebruikt dezelfde expressies, dus het zijn dezelfde gegevens in een nettere indeling.

{
  "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'])))}"
    }
  ]
}

Probleemoplossing

Berichten verschijnen nog steeds niet — veelvoorkomende oplossingen

Je krijgt een "AdaptiveCard"-fout, of de flow wordt uitgevoerd maar post nooit. De voorgemaakte stappen Variabele initialiseren en Bijlagen is null van de sjabloon veroorzaken dit. Verwijder beide (Deel 3, stap 1) en post je bericht met een enkele actie Bericht plaatsen in een chat of kanaal.

De flow kan niet worden opgeslagen. Als je op enig moment Copilot hebt geprobeerd, wis dan het veld Opmerking van die stap — een noot langer dan 256 tekens blokkeert het opslaan zonder foutmelding.

Niets in Teams na een echte ticketactie. Open in Power Automate je flow en controleer Uitvoeringsgeschiedenis (het 28-dagenlogboek). Elke FyneDesk-gebeurtenis zou een uitvoering moeten tonen. Helemaal geen uitvoeringen betekent dat de FyneDesk-webhook niet naar de URL van deze flow wijst, of niet is geabonneerd op die gebeurtenis — controleer dit opnieuw in FyneDesk. Uitvoeringen tonen "Mislukt" betekent dat een stap een fout heeft gegeven; klik op één om te zien welke. Meestal is het Team of Kanaal niet geselecteerd, of heeft de eigenaar van de flow geen Power Automate-licentie.

Er wordt een bericht gepost, maar sommige velden zijn leeg. Verschillende gebeurtenissen bevatten verschillende velden (een reactie heeft geen priority, bijvoorbeeld). De coalesce(...)-expressies in de geavanceerde opties vallen netjes terug, dus een leeg veld betekent gewoon dat die gebeurtenis dat veld niet bevatte.

Een expressie toont een rode fout. Sommige triggertypen stellen de body beschikbaar als triggerOutputs()?['body'] in plaats van triggerBody(). Als triggerBody() een fout geeft, wissel dan — bijvoorbeeld triggerOutputs()?['body']?['data']?['ticket_number'].

Een opmerking over beveiliging

Je Power Automate-URL bevat een geheime handtekening (het deel sig=...) — behandel de volledige URL als een wachtwoord en deel hem niet. FyneDesk ondertekent ook elk verzoek met een X-FyneDesk-Signature-header (HMAC-SHA256) als je authenticiteit ooit wilt verifiëren binnen de flow, hoewel dat optioneel is en niet vereist om berichten te laten werken.

Liever nul installatie? Er is nu een native Teams-app FyneDesk post nu native ticketmeldingen naar Teams — opgemaakte, gelokaliseerde kaarten zonder flow te bouwen, op de Pro- en Businessabonnementen. Zie Microsoft Teams-meldingen. Gebruik deze handleiding als je volledige controle wilt over het berichtformaat of aangepaste routeringslogica in Power Automate.

Veelgestelde vragen

FyneDesk zegt "succesvol verzonden" maar er verschijnt niets in Teams. Waarom?

"Succesvol verzonden" betekent alleen dat Microsoft de gegevens heeft ontvangen — Power Automate antwoordt met 202 Accepted zodra het een verzoek krijgt. Het betekent niet dat er een bericht is geplaatst. Teams toont de ruwe JSON niet zelf; je flow heeft een actie Bericht plaatsen in een chat of kanaal nodig om het te formatteren en te posten.

Welke Power Automate-sjabloon moet ik gebruiken?

Open Sjablonen, zoek op webhook en kies Webhook-meldingen verzenden naar een kanaal — de normale versie, niet de "(TEST)"-versies. Het genereert de webhook-URL die je in FyneDesk plakt en laat je het Team en kanaal kiezen om naar te posten.

Waarom krijg ik een "AdaptiveCard"-fout, of waarom wordt de flow nooit gepost?

De sjabloon wordt geleverd met twee voorgemaakte stappen — een actie Variabele initialiseren en een voorwaarde Bijlagen is null — en die zijn de oorzaak van de AdaptiveCard-fout. Verwijder beide en voeg dan een enkele actie Bericht plaatsen in een chat of kanaal toe met je eigen berichtexpressie.

Kan FyneDesk berichten posten naar Teams zonder Power Automate?

Ja — FyneDesk heeft nu een native Microsoft Teams-app die ticketmeldingskaarten rechtstreeks naar je kanalen post, op de Pro- en Businessabonnementen, zonder flow te bouwen. De webhook + Power Automate-route op deze pagina werkt nog steeds en blijft nuttig als je volledige controle wilt over opmaak en routering.

Welke ticketgebeurtenissen kan ik naar Teams sturen?

Een FyneDesk-webhook kan ticket.created, ticket.updated, ticket.status_changed en ticket.commented sturen. De aanbevolen instelling gebruikt ticket.created; de geavanceerde expressies verwerken alle vier automatisch, zodat één flow elke gebeurtenis dekt.