Transactionele webhooks
Met webhooks kan je applicatie realtime meldingen ontvangen wanneer er iets gebeurt met een transactionele e-mail nadat hij is verstuurd. In plaats van de API te pollen om de bezorgingsstatus te controleren, stuurt Flexmail een HTTP POST-verzoek naar je endpoint op het moment dat een event plaatsvindt.
Dit is bijzonder waardevol voor transactionele e-mail: je kunt direct actie ondernemen wanneer een wachtwoordreset bounced, wanneer een orderbevestiging is bezorgd, of wanneer een ontvanger een bericht als spam markeert.
Webhook-events
Flexmail stuurt een webhookmelding voor elk van de volgende events:
- Verzonden — het bericht is geaccepteerd en overgedragen aan de ontvangende mailserver.
- Geweigerd — het bericht werd geweigerd door Flexmail en werd niet verzonden.
- Bezorgd — de ontvangende mailserver heeft bevestigd dat het bericht werd geaccepteerd voor verdere verwerking.
- Gebounced — bezorging is mislukt. Hard bounces duiden op een permanent probleem (adres bestaat niet); soft bounces duiden op een tijdelijk probleem (mailbox vol, server niet beschikbaar).
- Geopend — de ontvanger heeft het bericht geopend.
- Geklikt — de ontvanger heeft op een gevolgd link in het bericht geklikt.
Opgelet
Open- en kliktracking vereist dat trackingpixels en link-wrapping zijn ingeschakeld. Bezorgingsevents zijn afhankelijk van de ontvangende mailserver die bezorging bevestigt — niet alle servers doen dit.
Een webhook-endpoint instellen
Je webhook-endpoint is een URL op je server die HTTP POST-verzoeken accepteert en een 200-antwoord teruggeeft als bevestiging van ontvangst.
Vereisten voor je endpoint
- Accepteert HTTP POST-verzoeken.
- Is publiekelijk toegankelijk via HTTPS.
- Geeft binnen een redelijke timeout een
2xxHTTP-statuscode terug ter bevestiging van ontvangst. - Verwerkt de payload asynchroon als je verwerkingslogica traag is — antwoord direct en verwerk op de achtergrond om timeouts te voorkomen.
Je endpoint registreren in Flexmail
Webhook-endpoint-configuratie verloopt via de API. Het volledige registratieproces en de beschikbare opties zijn gedocumenteerd in de API-documentatie op email-api.flexmail.eu/documentation, onder de sectie Webhooks.
Webhook-payload
Elke webhookmelding is een HTTP POST-verzoek met een JSON-body. De payload bevat het eventtype, een tijdstempel, het bericht-ID en het e-mailadres van de ontvanger. Afhankelijk van het event worden extra velden toegevoegd — een bounce-event bevat bijvoorbeeld het bouncetype en de reden, en een klik-event bevat de URL die werd aangeklikt.
Een typische payload ziet er als volgt uit:
{
"event": "delivered",
"timestamp": "2024-11-15T09:32:00Z",
"messageId": "abc123",
"recipient": "customer@example.com"
}
De volledige payloadspecificatie voor elk eventtype is te vinden in de API-documentatie: email-api.flexmail.eu/documentation/webhooks
Wat te doen met webhook-events
Bounces
Wanneer je een hard-bounce-event ontvangt, markeer dat e-mailadres dan in je systeem. Stop met verzenden naar dit adres en onderzoek of het adres correct is ingevoerd. Doorgaan met verzenden naar hard-gebounced adressen schaadt je afzendersreputatie.
Spamklachten
Wanneer een ontvanger een transactionele e-mail als spam markeert, onderdruk dat adres dan onmiddellijk. Ook als de e-mail oprecht transactioneel was (een orderbevestiging, bijvoorbeeld), heeft de ontvanger aangegeven geen e-mail van je te willen ontvangen. Doorgaan met verzenden schaadt je reputatie en kan juridische gevolgen hebben.
Bezorgingsbevestigingen
Voor tijdgevoelige berichten zoals wachtwoordresets of tweefactorauthenticatiecodes kun je het bezorgingsevent gebruiken om te bevestigen dat de e-mail de inbox heeft bereikt. Als er geen bezorgingsbevestiging aankomt binnen een redelijke periode, kun je in je gebruikersinterface een melding tonen die de gebruiker vraagt zijn spammap te controleren of het opnieuw te proberen.
Support tip
Bevestig webhook-verzoeken direct met een 200 -antwoord en verwerk de payload daarna in een achtergrondtaak of wachtrij. Als je handler te lang nodig heeft om te antwoorden, kan Flexmail een timeout krijgen en het verzoek opnieuw proberen, wat tot dubbele verwerking kan leiden.
Nieuwe pogingen
Als je endpoint geen succesvolle respons teruggeeft, probeert Flexmail de webhookmelding opnieuw. Maak je event-verwerking idempotent — het tweemaal verwerken van hetzelfde event moet hetzelfde resultaat opleveren als het eenmalig verwerken. Gebruik het bericht-ID en het eventtype samen om duplicaten te filteren.
Volgende stappen
- Zie "Aan de slag met de transactionele API" voor accountinstellingen.
- Bekijk de sectie Webhooks in de API-documentatie op email-api.flexmail.eu/documentation voor de volledige payloadspecificatie en registratie-instructies.
- Zie "Problemen oplossen met transactionele e-mail" als je webhooks niet aankomen of je bezorgbaarheid onder de verwachting ligt.