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 mappen
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:
Open de Webhook in de Store die je wilt configureren
Open de mapping met knop "Customize data mapping".
Open de structuur met '+'-knop.
Data structuur
De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.
Klik rechts naast een veld op de '+'-knop.Aan de rechterkant krijg je de beschikbare Deployteq velden te zien.
Selecteer het veld waarin je data wilt opslaan. Hier bepaal je dus waar de binnenkomende data in Deployteq wordt opgeslagen.
Herhaal deze stappen voor alle velden die je wilt opslaan.
Klik linksboven op Save om de mapping te bewaren.
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).
Gender
Het genderveld verwacht de volgende waarden: MAN, WOMAN, FAMILY, NONBINARY of UNKNOWN
Klantoptievelden
Bij een klantoptieveld van het type 'keuzelijst' verwacht Deployteq de waarden in hoofdletters, een waarde als 'Maandelijks' zal als 'MAANDELIJKS' aangeleverd moeten worden.
Ontdubbelen
De mapping geeft de mogelijkheid om te ontdubbelen op 1 of meerdere velden. Dit stel je als volgt in.
Klik rechts naast het ontdubbel-veld op de '+'-knop
Selecteer rechts bij 'Action' het veld waarin je data wilt opslaan
Selecteer rechts bij 'Options' de checkbox bij 'Deduplicate using this field'
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 mappen
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:
Open de Webhook mapping met knop "Customize data mapping".
Open de structuur met '+'-knop.
Data structuur
De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.
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.
Open de tabel waarin je de data wilt opslaan. Selecteer binnen deze tabel het veld waarin je de data wilt opslaan.
Herhaal deze stappen voor alle velden die je wilt opslaan.
Klik linksboven op Save om de mapping te bewaren.
Ontdubbelen
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.
Ontdubbeling
Een waarde waar je op ontdubbeld kan niet tegelijkertijd een waarde zijn waarop je een lookup relatie legt.
Praktijkvoorbeeld
Om dit toe te lichten maken we gebruik van een voorbeeld datamodel structuur, zoals hieronder afgebeeld:
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:
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:
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.
Yes/No Veld
Wanneer datamodel Yes/No is gekozen verwacht Deployteq de volgende waarden: 1 (Yes) of 0 (no)
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 data
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.
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.
Lookup data
De inkomende call mag zowel Order- als Productinformatie bevatten, hiervoor hoef je geen aparte calls in te schieten.
Arrays mappen
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
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.
Filter
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.
Open de Webhook mapping met knop "Customize data mapping"
Open de structuur met '+'-knop
Data structuur
De data structuur van de binnenkomende API call wordt in de webhook zichtbaar nadat de eerste call is gedaan.
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.
Open de tabel waarin je de data wilt opslaan. Selecteer binnen deze tabel het veld waarin je de data wilt opslaan.
Direct onder de veld mapping zie je het 'path' van de mapping. Klik hier op de wildcard (het sterretje) .
Selecteer 'Filter'.
Selecteer bij 'Filter field' het veld waarop je wilt filteren. In ons voorbeeld is dit veld 'name'.
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.
Arrays
Let op: indien de call meerdere arrays bevat, dien je de mapping per array opnieuw in te stellen.
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:
Stel het filter zoals hierboven beschreven.
Selecteer de checkbox bij 'Select specific match'.
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 child
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.
Log in of registreer om commentaar achter laten.