Quiz Responses

Learn how to get quiz responses to your server via webhooks

This webhook service provides you with information about the answers to the questions in the quizs when you use the quiz feature on your sales sites. When you enable this webhook service, you will only receive responses from users who have completed a purchase. However, if you would like to receive answers from users who have not completed a purchase, you need to check the preference box in the webhook field.

Setup the Endpoint URL

Webhook events are sent to your server via HTTP POST. You configure the endpoint URL through Developer Tools / Webhooks menu under your project.

By default, webhook notifications include only the quiz responses from users who have paid. You can configure to also receive quiz responses from users who have not paid.

After completion, first event is sent within 5 minutes. Your server should return a 200 status code. Any other status code will be considered a failure by our backend. In case of failure, Zotlo will retry later (up to 10 times) with 1-hour intervals. After 10 retries, we will stop sending notifications.

Events Format

Webhook events are serialized in JSON. The body of a POST request to your server will contain the serialized event.

{
  "client": {
    "subscriberId": "test123@gmail.com",
    "email": "test123@gmail.com",
    "uuid": "29de05a7-5a6f-4107-b15a-1c8abdefad95",
    "isPayer": 1,
    "platform": "Mac OS",
    "country": "TR",
    "language": "en",
    "utmSource": null,
    "utmMedium": null,
    "utmCampaign": null,
    "utmContent": null,
    "utmTerm": null
  },
  "questions": {
    "5706": {
      "questionId": "question1",
      "questionName": "Question 1",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 1,
      "displayedSequence": 1,
      "required": 1,
      "isMultiple": 0,
      "typeId": 0,
      "typeName": "SingleSelection",
      "isLogic": false
    },
    "5707": {
      "questionId": "question2",
      "questionName": "Question 2",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 2,
      "displayedSequence": 2,
      "required": 1,
      "isMultiple": 0,
      "typeId": 2,
      "typeName": "IconBox",
      "isLogic": false
    },
    "5708": {
      "questionId": "question3",
      "questionName": "Question 3",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 3,
      "displayedSequence": 3,
      "required": 1,
      "isMultiple": 0,
      "typeId": 7,
      "typeName": "SingleLineInput",
      "isLogic": false
    },
    "5710": {
      "questionId": "question5",
      "questionName": "Question 5",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 5,
      "displayedSequence": 4,
      "required": 1,
      "isMultiple": 0,
      "typeId": 8,
      "typeName": "Location",
      "isLogic": false
    },
    "5711": {
      "questionId": "question6",
      "questionName": "Question 6",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 6,
      "displayedSequence": 5,
      "required": 1,
      "isMultiple": 0,
      "typeId": 5,
      "typeName": "DateInput",
      "isLogic": false
    },
    "5712": {
      "questionId": "question7",
      "questionName": "Question 7",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 7,
      "displayedSequence": 6,
      "required": 1,
      "isMultiple": 0,
      "typeId": 6,
      "typeName": "TimeInput",
      "isLogic": false
    },
    "5713": {
      "questionId": "question8",
      "questionName": "Question 8",
      "question": "Question Title",
      "settings": "{\"backgroundColor\":\"\",\"forceDesktopBG\":true,\"backgroundImage\":{\"desktop\":\"\",\"tablet\":\"\",\"mobile\":\"\"}}",
      "sequence": 8,
      "displayedSequence": 7,
      "required": 1,
      "isMultiple": 0,
      "typeId": 10,
      "typeName": "FileUpload",
      "isLogic": false
    }
  },
  "answers": {
    "5706": {
      "answerDate": "2024-01-10 10:47:25",
      "answer": null,
      "answerOptions": [
        {
          "optionId": 8215,
          "name": "Option ΓΆrnek 1",
          "type": "image",
          "image": ""
        }
      ]
    },
    "5707": {
      "answerDate": "2024-01-10 10:47:25",
      "answer": null,
      "answerOptions": [
        {
          "optionId": 8218,
          "name": "Option ΓΆrnek 4",
          "type": "image",
          "image": ""
        }
      ]
    },
    "5708": {
      "answerDate": "2024-01-10 10:47:29",
      "answer": "UserTest"
    },
    "5710": {
      "answerDate": "2024-01-10 10:47:34",
      "answer": {
        "value": "Turkey",
        "mainValue": "TΓΌrkiye",
        "id": 1,
        "type": "local-country",
        "longitude": "34.9249653",
        "latitude": "38.9597594"
      }
    },
    "5711": {
      "answerDate": "2024-01-10 10:47:36",
      "answer": "03-01-2024"
    },
    "5712": {
      "answerDate": "2024-01-10 10:47:39",
      "answer": "13:47"
    },
    "5713": {
      "answerDate": "2024-01-10 10:47:50",
      "answer": "[\"https://zotlo-3api-assets.mobylonia.com/3p-images/site_media/2024/01/10/66184374-874e-43f0-9713-f97.png\"]"
    }
  }
}

Fields

FieldDescription

client.subscriberId

Subscriber ID which can be email or phone number.

client.email

Subscriber email.

client.uuid

Unique user ID.

client.isPayer

Value is sent as 1 if the user has made a successful payment, otherwise 0.

client.platform

User device OS.

client.country

User country.

client.language

User language.

client.utmSource

UTM source parameter.

client.utmCampaign

UTM campaign parameter.

client.utmContent

UTM content parameter.

client.utmTerm

UTM term parameter.

questions

Question details.

questions.questionId

Question ID

questions.questionName

Question name.

questions.question

Quetion title.

questions.settings

Question design settings.

questions.sequence

Question order.

questions.displayedSequence

Question order seen by the user.

questions.required

Value is 1 if answer is required for the question otherwise 0.

questions.isMultiple

Value is 1 if multiple answers are allowed for the question otherwise 0.

questions.typeId

Question type, possible values:

0 : Multiple choice

2 : Image chooser

4 : Info page

5 : Date

6 : Time

7 : Single row text

8 : Location

9 : Ending page

10 : file upload

questions.typeName

Question type name.

questions.isLogic

true if question has a logic false otherwise.

answers

Contains answer details.

answers.answerDate

Answer date.

answers.answer

Answers to the question.

answers.answerOptions.optionId

Option ID if question is a multi select type.

answers.answerOptions.name

Option text if Option ID if question is a multi select type.

answers.answerOptions.type

answers.answerOptions.image

Last updated