Webhooks sturen quizactiviteit naar je eigen endpoint op het moment dat die plaatsvindt. Deze naslag noemt de topics, de velden in elke payload en hoe de aflevering werkt. Een webhook maak je aan via Integrations → Developer area → Webhooks. Zie ook webhooks instellen.
Topics
| Topic | Verstuurd wanneer | Te beperken tot |
|---|---|---|
question.answered | Een klant beantwoordt een quizvraag. Eén aanroep per gekozen antwoord. | Een quiz, een vraag of één antwoord |
result.viewed | Een klant ziet zijn quizresultaten. | Een quiz |
profile.updated | Een profiel wordt aangemaakt of bijgewerkt door quizactiviteit. | Een quiz |
email.submitted | Een klant vult een e-mailvraag in. | Een quiz |
phone.submitted | Een klant vult een vraag naar zijn telefoonnummer in. | Een quiz |
Kies je bij het aanmaken van de webhook een quiz, vraag of antwoord, dan gaat hij alleen daarvoor af. Het veld topic in de payload bevat het volledige topic, bijvoorbeeld question.answered.<quizId>.<questionId>.<answerId>.
Velden in de payload
Alle payloads zijn JSON met veldnamen in camelCase. Elke payload heeft topic, advisorId (de quiz), sessionId en userId (de bezoeker), behalve profile.updated, dat profileId heeft in plaats van advisorId.
| Topic | Overige velden |
|---|---|
question.answered | questionId, questionName, selectedAnswerId, selectedAnswerLabel, selectedAnswerValue, selectedAnswerTextValue, selectedAnswerFormattedValue, isEmail, isPhone, consentAccepted |
result.viewed | email en phoneNumber als die bekend zijn; questions[] met de antwoorden per vraag (dezelfde antwoordvelden als hierboven plus selectedAnswerTopic); results[] met productId, productName, productUrl, productImageUrl en elke producteigenschap |
profile.updated | email, phoneNumber, firstName, lastName, consentAccepted, consentDate, properties[] (name en value), recommendations[] (position, title, url, imageUrl, quizName en de eigenschappen van het product), createdDate, updatedDate, triggerEvent |
email.submitted | questionId, questionName, email, selectedAnswerId, selectedAnswerLabel, consentAccepted |
phone.submitted | questionId, questionName, phoneNumber, selectedAnswerId, selectedAnswerLabel, consentAccepted |
Producteigenschappen gebruiken jouw eigenschapnamen met een kleine eerste letter, zoals brand of skinType. Telefoonnummers staan in internationaal formaat, bijvoorbeeld +31612345678.
{
"topic": "question.answered.3f2c….9a1e….c07b…",
"advisorId": "3f2c…",
"sessionId": "d41a…",
"userId": "7b90…",
"questionId": "9a1e…",
"questionName": "skin_type",
"selectedAnswerId": "c07b…",
"selectedAnswerLabel": "dry",
"selectedAnswerValue": null,
"selectedAnswerTextValue": null,
"selectedAnswerFormattedValue": "dry",
"isEmail": false,
"isPhone": false,
"consentAccepted": null
}In Studio zie je de voorbeeldpayload van elk topic met één klik in het onderdeel Webhooks.

Aflevering
- bluebarry stuurt een
POSTmetContent-Type: application/jsonen de eigen headers die je aan de webhook hebt toegevoegd. - Elk event heeft een
Idempotency-Key-header. Een nieuwe poging gebruikt dezelfde sleutel, dus sla hem op en sla sleutels over die je al hebt verwerkt. - Payloads zijn niet ondertekend. Wil je controleren of een aanroep van bluebarry komt, voeg dan een geheime eigen header toe, zoals
X-Webhook-Secret, en controleer die aan jouw kant. - Elke 2xx-response telt als afgeleverd. Elke poging staat onder Delivery Attempts, waar je de payload kunt bekijken en opnieuw kunt versturen.
- Antwoord met
410 Goneom een webhook uit te zetten. Een webhook die langer dan twee dagen blijft falen, wordt automatisch uitgezet.