Mattermost-koppeling: methode en functionele achtergrond
De Mattermost-koppeling spiegelt support-webchatgesprekken naar een Mattermost-kanaal, zodat het team het gesprek vanuit hun eigen teammessenger kan volgen en beantwoorden. Daarnaast kan i-Reserve notificaties (zoals boekingsbevestigingen of statuswijzigingen) naar specifieke kanalen sturen. De koppeling praat met de Mattermost REST API v4.
Status: bèta. De uitgaande richting (i-Reserve → Mattermost) werkt; de inkomende richting (antwoorden vanuit Mattermost terug in het gesprek) is fase 2.
Authenticatie
De koppeling gebruikt een bot-account met een personal access token. Een gewone “incoming webhook” volstaat niet, omdat die geen berichten in een thread kan plaatsen — en threading is nodig om elk gesprek netjes onder één hoofdbericht te bundelen. Voor de inkomende richting (fase 2) wordt daarnaast een outgoing-webhook-token gebruikt om binnenkomende verzoeken te authenticeren.
Uitgaand (i-Reserve → Mattermost)
- Gesprek gestart → er wordt een hoofdbericht (root post) in het ingestelde kanaal geplaatst met gespreks-id, bezoekersnaam en de pagina waar het gesprek begon.
- Nieuw bericht (bezoeker of agent) → geplaatst als threaded reply onder dat hoofdbericht, met de naam van de afzender. Bijlagen worden meegeüpload en inline getoond.
- Notificatie → per notificatietype kun je een doelkanaal koppelen (bv. boekingsbevestiging naar een apart kanaal). Het bericht wordt los (niet in een thread) geplaatst.
De gespreks↔thread-koppeling wordt bewaard, zodat vervolgberichten in dezelfde thread belanden. Verzending is synchroon zonder retry; valt het hoofdbericht weg, dan herstelt de koppeling zich (een volgend bericht maakt het opnieuw aan).
Inkomend (Mattermost → i-Reserve, fase 2)
Een outgoing webhook in Mattermost stuurt antwoorden in de thread naar een i-Reserve-endpoint. i-Reserve:
- authenticeert het verzoek op het outgoing-webhook-token (dat bepaalt ook welke licentie/eigenaar het betreft);
- zoekt de bijbehorende thread/gesprek op via het root-post-id;
- negeert berichten van de bot zelf (loop-preventie);
- koppelt de Mattermost-gebruiker aan een i-Reserve-gebruiker (op e-mail; lukt dat niet, dan wordt het bericht alsnog vastgelegd met de Mattermost-naam als auteur);
- legt het antwoord (incl. bijlagen) vast in het gesprek.
Beperkingen
- De bot moet lid zijn van elk kanaal waarin hij post; anders volgt een 403.
- Verzending is synchroon en wordt bij een fout niet opnieuw geprobeerd (wel gelogd).
- Inkomende gebruiker-matching gaat op exact e-mailadres; geen partiële match.
- De inkomende richting is fase 2 (bèta) — gebruik voor productie vooralsnog de uitgaande spiegeling.





