Opvolgactie blok: Verstuur webhook

Met het blok Verstuur webhook kun je een HTTP request sturen naar een extern endpoint. Dit biedt allerlei mogelijkheden, zowel om gegevens uit te sturen, als op te halen:

  • Met een HTTP GET call kun je extra gegevens ophalen, en in het vervolg van de opvolgactie gebruiken. Je kunt zo bijvoorbeeld het actuele weerbericht ophalen van een weerbericht-dienst en de opvolgactie vervolgens voortzetten op basis van het resultaat van de call (zo kun je bij mooi weer een andere mail sturen dan bij slecht weer).

  • Met een HTTP POST of HTTP PUT call kun je data versturen, je kunt bijvoorbeeld een call uitsturen naar een eigen API endpoint om de gegevens die in Copernica zijn opgeslagen ook naar je eigen systeem door te sturen. Als deze call ook nog een antwoord terugstuurt, kun je deze gegevens in de rest van de opvolgactie gebruiken.

Configuratie

Binnen het blok kun je de volgende parameters instellen om het adres en de payload te configureren, en om aan te geven hoe met het resultaat moet worden omgegaan.

  • URL: De URL waar het verzoek naartoe wordt gestuurd.
  • HTTP-methode: Kies uit GET, POST, PUT of DELETE.
  • Query-parameters: Deze kunnen aan de URL worden toegevoegd.
  • Payload-parameters: Deze worden meegegeven in de body van het verzoek.
  • Overige headers: Voeg indien nodig extra headers toe aan de webhook-aanroep.
  • Wijs het resultaat van de webhook toe aan variabele: Je kunt de resultaten van de webhook-aanroep opslaan in een Smarty variabele om deze later in de flow of in mailings te gebruiken. Dit is vooral handig bij GET requests als je data ophaalt.

De payload kan worden opgegeven in de vorm van key/value paren, die worden omgezet naar een body in het "application/x-www-form-urlencoded" formaat. Optioneel kun je de body van het request ook in andere formaten invoeren, zoals XML of JSON.

Resultaat

Het resultaat van de call kan worden opgeslagen in een Smarty-variabele. Deze variabele wordt toegevoegd aan de {$trigger} variabele en kun je in de rest van de opvolgactie, en in de mailings die je vanuit de opvolgactie verstuurt, gebruiken. Omdat je vanuit een opvolgactie meerdere webhooks kunt aanroepen, kun je elke aanroep aan een eigen variabele toewijzen.

Alle kenmerken van de response, waaronder natuurlijk de body, maar ook de headers en de statuscode zijn in de rest van de opvolgactie te gebruiken. We gaan er hieronder vanuit dat je de resultaten toekent aan de variabele mijnaanroep:

  • {$trigger.mijnaanroep.type}: Het type van het verzoek.
  • {$trigger.mijnaanroep.timestamp}: Het tijdstip waarop het verzoek plaatsvond.
  • {$trigger.mijnaanroep.code}: De HTTP-responscode, bijvoorbeeld 200 of 201.
  • {$trigger.mijnaanroep.body}: De ruwe inhoud van de respons van de call.
  • {$trigger.mijnaanroep.contenttype}: Het contenttype van de responsbody.
  • {$trigger.mijnaanroep.json}: Een object met de body-eigenschappen, indien de respons uit JSON bestond

De json property wordt alleen gevuld indien de response-body JSON-data bevat. Je kunt de oorspronkelijke body dan nog altijd uitlezen via {$trigger.mijnaanroep.body}, maar via {$trigger.mijnaanroep.json} heb je dan ook toegang tot de individuele eigenschappen. Deze laatste variabele bevat bijvoorbeeld subvariabelen als {$trigger.mijnaanroep.json.veld1}, afhankelijk van de gebruikte waardes in het JSON-document.

Vervolgpad op basis van HTTP-responsecode

In het pad naar het volgende blok kun je aangeven of de webhook het resultaat succes of mislukt heeft, gebaseerd op de HTTP-responsecode:

  • Succes: Wanneer de webhook een HTTP-responscode in de 200-reeks teruggeeft, zoals 200 of 204, wordt het succes-pad gevolgd.
  • Mislukt: Bij andere responscodes wordt het mislukt-pad gevolgd.

Verschil met gewone webhooks

Het webhook-blok kun je in opvolgacties gebruiken naast de reguliere webhooks die je in de beheermodule kunt activeren, die onafhankelijk van opvolgacties zijn. Dit zijn de belangrijkste verschillen tussen de twee systemen:

  • Je kunt in opvolgacties zelf bepalen welke data je stuurt, en in welk formaat. Een gewone webhook stuurt data in standaard HTTP POST formaat, maar in je opvolgactie kun je zelf de body van het request invoeren, en je kunt Smarty-variabelen gebruiken om precies aan te geven hoe de body van het request er uit ziet, en welke data het bevat.

  • Ook kun je zelf per request de URL instellen, of aanvullende headers aan de call toevoegen. Ook dit biedt veel meer kracht dan gewone webhooks, die allemaal naar dezelfde URL gaan, met dezelfde body-data en dezelfde HTTP-headers.

  • Het antwoord van de call kun je toekennen aan een Smarty-variabele, en hierdoor in de rest van de opvolgactie gebruiken via de {$trigger}-variabele. Je kunt in een volgende stap van de opvolgactie bijvoorbeeld profielen aanmaken of bijwerken aan de hand van de ontvangen data, en/of je kunt de ontvangen gegevens via de {$trigger}-variabele gebruiken in mailings.

Kortom, in de meeste gevallen zijn webhooks in opvolgacties krachtiger dan reguliere webhooks. Het configureren van een reguliere webhooks is echter soms wat eenvoudiger omdat je daar geen opvolgactie voor hoeft te maken.