Ga naar inhoud

Webhooks

Een webhook is de eenvoudigste vorm van koppeling: een HTTP-bericht aan een adres dat je zelf bepaalt. Slack, Discord en Microsoft Teams nemen zulke berichten direct als kanaalbijdrage aan; eigen systemen kunnen er mee doen wat ze willen.

Typische toepassingen: het supportadres meldt nieuwe aanvragen in het teamkanaal. De orderbevestiging zet het voorraadsysteem in gang. Het serveralarm van een klant verschijnt in Discord.

  1. Open Instellingen → Integraties → Webhooks en schakel Webhooks inschakelen in.
  2. Kies Eindpunt toevoegen en vul een Naam en de URL in.
  3. Kies onder Payloadsjabloon Slack, Discord, Microsoft Teams of Generic JSON. Het sjabloon vult de Payloadtemplate (JSON) met een passend basisgeraamte dat je vrij kunt aanpassen.
  4. Testen stuurt een proefbericht met voorbeeldgegevens. Bij Slack en dergelijke zie je het meteen in het kanaal.

De URL krijg je bij de betreffende dienst:

  • Slack: onder api.slack.com/apps een app met Incoming Webhooks aanmaken; de gegenereerde URL is het eindpunt.
  • Discord: Kanaalinstellingen → Integraties → Webhooks.
  • Teams: in het kanaal via de Workflows-app met het sjabloon voor het posten bij een webhookaanvraag.
  • Eigen systemen: elk adres dat JSON via HTTP-POST of PUT aanneemt.

Meerdere eindpunten zijn mogelijk, en elk laat zich afzonderlijk uitschakelen: het supportkanaal en je eigen script kunnen naast elkaar bestaan.

Verstuurd wordt er uitsluitend via de automatisering: de actie Webhook verzenden in een regel, met het eindpunt van je keuze als doel.

Wat er precies wordt verstuurd, staat in de payloadtemplate van het eindpunt. Daarin zet je variabelen tussen dubbele accolades, die bij het verzenden met de gegevens van het bericht dat de regel uitlokte worden gevuld: {{subject}}, {{from}}, {{from_name}}, {{to}}, {{cc}}, {{date}}, {{preview}} (het begin van de tekst), {{tags}}, {{mailbox}}, {{account_id}} en {{rule_name}}. De Variabelenreferentie onder de template legt elke variabele uit. Een Slack-melding voor het supportkanaal ziet er bijvoorbeeld zo uit:

{ "text": "Nieuwe aanvraag van {{from_name}}: {{subject}}" }
  • Handtekening: vul je een HMAC-geheim (optioneel) in, dan bevat elk verzoek de header X-YouniqMail-Signature: sha256=… met een HMAC-SHA256-handtekening van de inhoud. Je server controleert daarmee dat het bericht van jou komt.
  • Herhalingen: bij serverfouten (5xx) en netwerkproblemen probeert YouniqMail het tot drie keer opnieuw, met pauzes van 1, 2 en 4 seconden. Afwijzingen (4xx) worden niet herhaald. De time-out stel je per eindpunt in, hooguit 30 seconden.
  • Methode: POST is standaard, PUT alleen als je eindpunt het vereist. Doorverwijzingen worden niet gevolgd.
  • Het bericht gaat naar het eindpunt dat je opgeeft. Controleer de URL zorgvuldig, want iedereen die hem kent, kan in het kanaal schrijven. Behandel webhook-URL’s als wachtwoorden.
  • De inhoud bepaal je: overgedragen wordt wat er in de template staat. Wie alleen onderwerp en afzender invoegt, geeft ook alleen die door.
  • Pro-functie: webhooks horen bij de Pro-omvang.