Integraties
Webhooks instellen
Laat Memly automatisch een bericht sturen naar je CRM, Zapier of Make zodra iemand betaalt of toegang krijgt. Een webhook instellen, testen en bijhouden.
Je verkoopt iets in Memly en je wilt dat de koper meteen in je CRM staat, of in je e-mailsysteem, of in een lijstje waar jij verder mee werkt. Dat kan zonder dat je iets overtypt. Memly geeft automatisch een seintje zodra er iets gebeurt, en het andere systeem doet daar de rest mee.
Werk je met Zapier, met Make of met een bouwer, dan noemen ze dit een webhook. Dat is precies wat dit is. Je hoeft er zelf niets technisch voor te snappen; je krijgt een adres van hen, je plakt het hier, en je stuurt één sleutel terug.
Wat je nodig hebt
Twee dingen, en allebei krijg je ze van degene die de webhook bouwt of van het systeem waar je heen wilt.
Een webadres waar de berichten heen gaan. Dat begint altijd met https. In Zapier heet dat de URL van je Catch Hook, in Make het adres van je custom webhook.
En een plek om de sleutel neer te zetten die jij straks krijgt. Daarmee controleert het andere systeem dat een bericht echt van jouw omgeving komt en niet van iemand anders die het adres heeft geraden.
Een webhook instellen
Je vindt dit onder Instellingen, bij Ontwikkelaar, op het tabblad Webhooks. Klik daar op Webhook toevoegen.
Je vult het webadres in en een korte omschrijving, bijvoorbeeld “Zapier naar ActiveCampaign”. Die omschrijving is puur voor jezelf, maar sla hem niet over: drie webadressen onder elkaar zijn over een half jaar niet meer uit elkaar te houden.
Daarna kies je wat je wilt doorgeven. De standaard is alles, en dat is meestal de beste keuze. Het andere systeem negeert vanzelf wat het niet nodig heeft, en je loopt niet het risico dat je over drie maanden ontdekt dat er iets ontbrak. Wil je het smaller, kies dan Zelf kiezen en vink aan wat je nodig hebt.
Wat er doorgegeven kan worden
| Wat | Wanneer |
|---|---|
| Nieuwe bestelling betaald | Iemand betaalt een bestelling voor het eerst. Dit is het moment waarop er een nieuwe klant bijkomt. |
| Factuur betaald | Er is een factuur betaald. Dat kan de eerste keer zijn, maar ook een verlenging of een volgende termijn. |
| Geld teruggestort | Je hebt geld teruggestort of er is een creditfactuur gemaakt. |
| Abonnement opgezegd | Een abonnement is definitief opgezegd. |
| Toegang gekregen | Een lid kan bij een product. |
| Toegang ingetrokken | De toegang van een lid is ingetrokken. |
| Toegang verlopen | De toegangsperiode van een lid is afgelopen. |
Let op het verschil tussen de eerste twee, want daar gaat het in de praktijk mis. Nieuwe bestelling betaald gaat alleen af bij de allereerste betaling. Verlengingen en termijnen komen langs als Factuur betaald, met de reden erbij. Wil je in je CRM een nieuwe klant aanmaken, gebruik dan de eerste. Wil je elke betaling zien, ook de maandelijkse, neem dan de tweede erbij.
De sleutel doorgeven
Zodra je de webhook opslaat zie je de geheime sleutel. Dat is het enige moment: daarna kunnen wij hem ook niet meer laten zien.
Kopieer hem en stuur hem naar degene die de webhook bouwt, of zet hem meteen in het systeem dat de berichten ontvangt. Ben je hem vergeten te kopiëren, dan is dat geen ramp. Je maakt gewoon een nieuwe sleutel en de webhook blijft staan.
Moet de sleutel later vervangen worden, bijvoorbeeld omdat hij ergens is beland waar hij niet hoort, klik dan op Nieuwe sleutel maken. De oude blijft dan nog 24 uur werken, zodat je hem rustig kunt vervangen aan de andere kant zonder dat er een bericht misgaat. Heb je haast, dan kun je de oude ook meteen intrekken.
Controleren of het werkt
Klik op de webhook en daarna op Testbericht sturen. Dat stuurt één voorbeeldbericht naar het adres, op precies dezelfde manier als een echt bericht. Je ziet meteen wat de ontvanger terugzegt.
Werkt het niet, dan staat er meestal genoeg in het antwoord om verder te komen. “De ontvanger kent dit adres niet” betekent negen van de tien keer dat er een stukje van het adres mist. “De ontvanger herkent ons niet” betekent dat de sleutel aan de andere kant niet goed staat.
Zolang er alleen een testbericht is geweest, staat er in de kolom Laatst gelukt de tekst Alleen getest. Dat is geen foutmelding. Het adres neemt berichten aan, alleen is er nog geen echt bericht langsgekomen. Zodra de eerste echte bestelling of factuur doorkomt, staat daar de datum.
Richt je een webhook in en wil je hem met een echte bestelling proberen, zet dan tijdelijk testbestellingen ook doorgeven aan. Die staat standaard uit, want anders maakt je CRM klanten aan van je eigen testbestellingen. Zet hem weer uit als je klaar bent.
Wat er gebeurt als de ontvanger plat ligt
Daar hoef je niets voor te doen. Komt een bericht niet aan, dan probeert Memly het vanzelf opnieuw: eerst na een paar seconden, dan na een paar minuten, en daarna met steeds grotere tussenpozen tot ongeveer een dag later. Een systeem dat een nacht uit de lucht is, mist dus niets.
Blijft het vijf dagen lang misgaan, dan zet Memly de webhook uit en krijgen jij en de andere beheerders daar bericht van. Dat is expres: een webhook die stilletjes blijft proberen naar een adres dat niet meer bestaat, helpt niemand. Zodra het aan de andere kant weer werkt zet je hem weer aan, en dan kun je de berichten van de afgelopen dagen alsnog versturen.
In de lijst Verzonden berichten zie je van elk bericht of het is aangekomen, hoeveel pogingen er zijn geweest en wanneer de volgende is. Staat er een bericht op mislukt, dan stuur je het met Opnieuw versturen in één klik nog een keer weg. Bij een testbericht staat die knop er niet, want een test gaat één keer weg en hoort niet in de herhaalreeks. Je klikt dan gewoon nog een keer op Testbericht sturen. Die berichten bewaren we dertig dagen.
Voor degene die de webhook bouwt
Dit stukje kun je doorsturen. Memly volgt de Standard Webhooks-specificatie, dus de controle is met een bestaande library in een paar regels gedaan.
Elk bericht komt binnen als een POST met JSON, en met deze headers:
webhook-id evt_... gelijk bij elke poging, ook bij opnieuw versturen
webhook-timestamp unix-seconden nieuw bij elke poging
webhook-signature v1,... soms meerdere, gescheiden door een spatie
Controleer de handtekening met de library standardwebhooks en het geheim dat begint met whsec_. Tijdens het vervangen van een sleutel staan er 24 uur lang twee handtekeningen in die ene header; de library handelt dat zelf af. Een bericht ouder dan vijf minuten hoort geweigerd te worden.
Verder drie dingen die in de praktijk uitmaken. Antwoord met een 2xx zodra je het bericht hebt opgeslagen, en verwerk het daarna pas; na 15 seconden telt het als mislukt. Ontdubbel op webhook-id, want dezelfde gebeurtenis kan meer dan één keer binnenkomen. En reken niet op volgorde: een terugbetaling kan eerder aankomen dan de betaling. Wie zeker wil weten wat de stand nu is, haalt de bestelling op via de API met GET /v1/orders?id=..., en heeft daar de scope orders:read voor nodig.
Was dit artikel nuttig?