Functionele omschrijving
Beheer > Integraties > Mattermost

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:

  1. authenticeert het verzoek op het outgoing-webhook-token (dat bepaalt ook welke licentie/eigenaar het betreft);
  2. zoekt de bijbehorende thread/gesprek op via het root-post-id;
  3. negeert berichten van de bot zelf (loop-preventie);
  4. 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);
  5. 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.