Overslaan naar hoofdinhoud

Webhook mapping

in Webhook ontvanger
Lijst van auteurs
Gepubliceeerd: 5 aug 2024|Laatst gewijzigd: 12 sep 2024

De Deployteq Webhook biedt de mogelijkheid om data uit externe systemen te ontvangen. Bekijk onze documentatie voor het installeren en gebruik van de Webhook hier: Webhook Ontvanger

Hieronder vind je een beschrijving voor het instellen van de mapping.

Klantdata mappenCopy link to Klantdata mappen to clipboard

Data die binnenkomt kun je rechtstreeks wegschrijven als klantdata. Data kan worden weggeschreven in:

  • Klantvelden

  • Klantoptievelden

  • Campagnevelden

  • Omgevingsvariabelen

Deze mapping stel je als volgt in:

image.png

  1. Open de Webhook in de Store die je wilt configureren

  2. Open de mapping met knop "Customize data mapping".

  3. Open de structuur met '+'-knop.

Warning


Data structuur

De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.

  1. Klik rechts naast een veld op de '+'-knop.Aan de rechterkant krijg je de beschikbare Deployteq velden te zien.

  2. Selecteer het veld waarin je data wilt opslaan. Hier bepaal je dus waar de binnenkomende data in Deployteq wordt opgeslagen.

  3. Herhaal deze stappen voor alle velden die je wilt opslaan.

  4. Klik linksboven op Save om de mapping te bewaren.

Warning


Opt-in

De opt-in velden verwachten de volgende waarden: Y (Yes) or N (no).

Let op! Als je géén opt-in waarde mapt, dan is de standaard waarde Y (Yes).

Warning


Gender

Het genderveld verwacht de volgende waarden: MAN, WOMAN, FAMILY, NONBINARY of UNKNOWN

Warning


Klantoptievelden

Bij een klantoptieveld van het type 'keuzelijst' verwacht Deployteq de waarden in hoofdletters, een waarde als 'Maandelijks' zal als 'MAANDELIJKS' aangeleverd moeten worden.

OntdubbelenCopy link to Ontdubbelen to clipboard

De mapping geeft de mogelijkheid om te ontdubbelen op 1 of meerdere velden. Dit stel je als volgt in.

image.png

  1. Klik rechts naast het ontdubbel-veld op de '+'-knop

  2. Selecteer rechts bij 'Action' het veld waarin je data wilt opslaan

  3. Selecteer rechts bij 'Options' de checkbox bij 'Deduplicate using this field'

  4. Klink linksboven op Save om de mapping te bewaren

De ontdubbeling die je hier instelt is vergelijkbaar met het 'Uniek' veld bij een klantdata import. Deployteq bekijkt of een record reeds in de database, en op basis van de uitkomst wordt een nieuw (klant)record aangemaakt óf bestaande (klant)data geüpdate.

Datamodel data mappenCopy link to Datamodel data mappen to clipboard

Data die binnenkomt kun je rechtstreeks wegschrijven in het Datamodel. Data kan worden weggeschreven in:

  • Contains tabellen

  • Lookup tabellen

  • Losstaande tabellen

Datamodel mapping stel je als volgt in:

  1. Open de Webhook mapping met knop "Customize data mapping".

  2. Open de structuur met '+'-knop.

Warning


Data structuur

De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.

  1. Klik rechts naast een veld op de '+'-knop.

  2. Aan de rechterkant krijg je de beschikbare Deployteq velden te zien. Onder de klantvelden en klantoptievelden vind je de datamodel tabellen.

  3. Open de tabel waarin je de data wilt opslaan. Selecteer binnen deze tabel het veld waarin je de data wilt opslaan.

  4. Herhaal deze stappen voor alle velden die je wilt opslaan.

  5. Klik linksboven op Save om de mapping te bewaren.

OntdubbelenCopy link to Ontdubbelen to clipboard

Bij het koppelen van datamodel gegevens het is belangrijk om per tabel in het datamodel een ontdubbelsleutel op te geven. Indien een datamodel regel nogmaals wordt aangeboden (in ons voorbeeld hetzelfde 'order_id') wordt de data dan keurig ontdubbeld. Bestaande data kan hiermee ook verrijkt en aangevuld worden.

Warning


Ontdubbeling

Een waarde waar je op ontdubbeld kan niet tegelijkertijd een waarde zijn waarop je een lookup relatie legt.

PraktijkvoorbeeldCopy link to Praktijkvoorbeeld to clipboard

Om dit toe te lichten maken we gebruik van een voorbeeld datamodel structuur, zoals hieronder afgebeeld:

image.png

In dit model staan drie tabellen:

  • Orders, waar algemene gegevens over de order worden opgeslagen

  • Products, waar specifieke gegevens over de producten (binnen de order) worden opgeslagen

  • Product_info, een losstaande Lookup table met extra informatie/gegevens over de SKU's

Deze verschillende tabellen zijn terug te zien in de mapping van de Webhook. Je kunt elke tabel uitklappen, waarbij de diepst liggende tabel bovenaan in de lijst staat:

image.png

Data wordt doorgaans aan een Deployteq Webhook aangeboden d.m.v. een JSON structuur. Voor dit voorbeeld gaan we onderstaande structuur gebruiken:

Body request

{ "name": "Niels", "email": "hello@teamitg.com", "flag": "orders", "anything": "more data", "campaign": "transactional", "order": { "order_id": "1321", "total": "49.5", "shipping": "5", "products": [{ "SKU": "123", "colour": "blue", "price": "21.5" }, { "SKU": "124", "colour": "red", "price": "28" } ] }, "product_info": { "SKU": "124", "name": "Product2", "img1": "image2.png", "description": "example2 description" } }
copy

In bovenstaande voorbeeld staat:

  • klantdata

  • 1 order, bestaande uit 2 losse producten

  • 1 regel met productinformatie

De data die binnenkomt met de call slaan we zowel op in de klantendatabase als het datamodel. Elk veld vanuit de call kun je mappen met een apart (datamodel) veld. In ons voorbeeld wordt de datamodel mapping als volgt:

image.png

Zoals we hierboven zien kan 1 order uit meerdere producten bestaan. Het is niet nodig om elk product individueel te mappen; Deployteq doet dit automatisch voor elke 'regel' binnen de order.

Note


Yes/No Veld

Wanneer datamodel Yes/No is gekozen verwacht Deployteq de volgende waarden: 1 (Yes) of 0 (no)

Note


Alle velden in hetzelfde bereik (klanten, datamodel) moeten hetzelfde pad hebben. Als je dus een pad maakt met wildcards moet elk pad hetzelfde aantal wildcards hebben.

Lookup dataCopy link to Lookup data to clipboard

Binnen het datamodel heb je de mogelijkheid een Lookup tabel aan te maken. Hierin kun je informatie opnemen die niet direct gekoppeld is aan een klantrecord, bijvoorbeeld productinformatie.

In voorbeeld hieronder wordt er een koppeling gelegd op basis van een SKU waarde; deze waarde staat zowel in de Producten tabel als de Lookup tabel. Indien de waarde overeen komt haalt de Products tabel extra informatie over het product uit de Lookup tabel.

image.png

De connectie toont welke koppeling exact is ingesteld; de verwijzing loopt vanaf het SKU veld naar de Lookup tabel.

De Webhook biedt de mogelijk productdata aan te maken in een lookup tabel. De binnenkomende data kun je op dezelfde manier mappen als andere datamodel data.

Note


Lookup data

De inkomende call mag zowel Order- als Productinformatie bevatten, hiervoor hoef je geen aparte calls in te schieten.

Arrays mappenCopy link to Arrays mappen to clipboard

Soms komt data met een andere JSON structuur binnen; de array is anders opgesteld. Vergelijk de volgende structuren:

{ "name": "Niels", "email": "hello@deployteq.com", "array_a": [{ "name": "SKU", "value": "123" }, { "name": "colour", "value": "blue" }, { "name": "price", "value": "21.5" } ], "array_b": [{ "name": "SKU", "value": "124" }, { "name": "colour", "value": "red" }, { "name": "price", "value": "28" } ] }
copy
{ "name": "Niels", "email": "hello@deployteq.com", "order": { "order_id": "1321", "total": "49.5", "shipping": "5", "products": [{ "SKU": "123", "colour": "blue", "price": "21.5" }, { "SKU": "124", "colour": "red", "price": "28" } ] } }
copy
Note


JSON Structuren

Alles wat tussen accolades staat heet binnen JSON een {object}

Alles wat tussen blokhaken staat heet binnen JSON een [array]

Indien je hier het veld 'value' op de normale manier zou mappen, zou het veld met verschillende waarden worden gevuld die eigenlijk niet in dat veld thuishoren.

In ons voorbeeld zou zowel de SKU, de kleur en de prijs in hetzelfde (datamodel)veld worden opgeslagen. Dit is de Wildcard optie. Deployteq biedt hierin twee opties om dit aan te passen.

FilterCopy link to Filter to clipboard

De Webhook heeft de mogelijkheid een filter in te stellen, zodat de waarde (bij value) alleen wordt opgeslagen indien het object een bepaalde 'name' heeft. Dit stel je als volgt in.

  1. Open de Webhook mapping met knop "Customize data mapping"

  2. Open de structuur met '+'-knop

Warning


Data structuur

De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.

  1. Klik rechts naast een veld op de '+'-knop

Aan de rechterkant krijg je de beschikbare Deployteq velden te zien. Onder de klantvelden en klantoptievelden vind je de datamodel tabellen.

  1. Open de tabel waarin je de data wilt opslaan. Selecteer binnen deze tabel het veld waarin je de data wilt opslaan.

  2. Direct onder de veld mapping zie je het 'path' van de mapping. Klik hier op de wildcard (het sterretje) .

  3. Selecteer 'Filter'.

  4. Selecteer bij 'Filter field' het veld waarop je wilt filteren. In ons voorbeeld is dit veld 'name'.

  5. Vul bij 'Value' de waarde in waarop je wilt wilt filteren. In ons voorbeeld is dit 'productname' voor het filteren op productnaam.

De waarde in het veld 'value' wordt nu opgeslagen in het Deployteq veld wat we hebben geselecteerd, maar énkel voor de regel 'productname'. 9. Herhaal deze stappen voor alle velden die je wilt opslaan. 10. Klink linksboven op Save om de mapping te bewaren.

Warning


Arrays

Let op: indien de call meerdere arrays bevat, dien je de mapping per array opnieuw in te stellen.

image.png

Het kan voorkomen dat een JSON structuur meerdere objecten (regels) heeft met dezelfde naam. Deployteq kan de waarde uit één specifiek object opslaan. Dit stel je als volgt in:

  1. Stel het filter zoals hierboven beschreven.

  2. Selecteer de checkbox bij 'Select specific match'.

  3. Vul het nummer van het object dat je wilt opslaan.

Indien er drie objecten zijn met dezelfde naam, en je wilt waarde #2 opslaan, vul je '2' in.

Single childCopy link to Single child to clipboard

Dit betekent dat je specifieke regel in de array kiest, en alle andere dus niet. Dit werkt alleen als bij elke call de volgorde van de array hetzelfde is.

volgende paginaWhatsApp Business
vorige paginaOauth 2.0 Server voor Deployteq webhooks

Log in of registreer om commentaar achter laten.