Webhooks are automated messages sent from Zonka Feedback when a new survey response (or partial response) is added.
Webhooks are always sent as an HTTP POST request to the webhook URLs you've configured via your Webhooks integration. The details of the activity that triggered the webhook are sent as the body of the HTTP request in JSON format.
Event Types
We support the following event types. Zonka Feedback now offers a new, cleaner webhook payload along with the legacy payload for backward compatibility. If you are setting up a new webhook, we recommend using the new events. Legacy events are available so that your existing integrations continue to work without any changes.
Type | Description |
response.added | Triggered when a new response is received for a survey. The event JSON includes all details of the response, including respondent details, scores, AI insights (sentiment, urgency, intent, emotion), and each survey question with the answer provided by the respondent. |
partial.response.added | Triggered when a partial (incomplete) response is captured for a survey. The payload structure is the same as response.added, containing only the answers captured so far. |
response.added (legacy) | Triggered when a new response is received for a survey. Sends the older payload format, retained for existing integrations built on the previous webhook structure. |
partial.response.added (legacy) | Triggered when a partial response is captured. Sends the older payload format. |
Note: If you have existing webhooks created before this update, they will continue to receive the legacy payload. To receive the new payload, create a new webhook and select the non-legacy event.
New Payload — Example Response
The new payload is leaner and more consistent. It removes internal flags and duplicate keys, adds event metadata (eventType and eventId), and simplifies contact and response attributes.
{
"id": "6a5514a896b91ca4c812a678",
"surveyId": "69fde27e4fcfc10ae574571e",
"surveyName": "TicketClosure Survey",
"surveyLanguage": "en_US",
"receivedDate": "2026-07-13T16:39:01.000Z",
"timeZone": "Asia/Kolkata",
"eventType": "response.added",
"eventId": "6a5514a896b91ca4c812a680",
"respondentDetails": {
"name": "Steve Waugh",
"emailAddress": "steve.waugh@yahoo.com",
"mobile": "+918989898989",
"externalId": "DE7911"
},
"locationId": "63b51a77891bf7000844b630",
"locationName": "Mumbai",
"tags": [
{
"name": "Bad Experience"
}
],
"geoLocation": "INDIA",
"webDevice": "Desktop",
"browser": "Chrome",
"ratedUserId": "69fde2887b2f37900de805a9",
"ratedUserName": "Andrew Strauss",
"channel": "Online",
"sentiment": "neutral",
"urgency": "Medium",
"intent": [
"Complaint"
],
"emotion": [
"Concerned"
],
"CSAT": 5,
"NPS": 10,
"CES": 1,
"responseURL": "https://platform.zonkafeedback.com/responseinbox/6a5514a896b91ca4c812a678",
"contactAttributes": [
{
"variableId": "contact_number",
"value": "9890",
"type": "Number"
}
],
"responseAttributes": [
{
"variableId": "booking_pnr",
"value": "PR24WT"
}
],
"surveyResponse": [
{
"questionId": "69fde2887b2f37900de805a9",
"questionLabel": "How was your experience with us?",
"answer": "overjoyed"
},
{
"questionId": "699ebc50e1d1b8d9970bfae4",
"questionLabel": "The company made it easy for me to handle my issues",
"answer": "Strongly Disagree"
},
{
"questionId": "60d30beeef7c44000837994a",
"questionLabel": "How likely are you to recommend flying with us to your friends, family, and colleagues?",
"answer": "10"
},
{
"questionId": "6a3e5c412e4e74aeacea3b91",
"questionLabel": "Enter Date of travel",
"answer": "2026-07-31"
}
]
}
New Payload — Field Reference
Field | Description |
id | Unique ID of the response. |
surveyId / surveyName / surveyLanguage | Details of the survey the response belongs to. |
receivedDate | Date and time (UTC) when the response was received. |
timeZone | Time zone of the account/location. |
eventType | The event that triggered this webhook, e.g. |
eventId | Unique ID of this webhook event — useful for de-duplication on your end. |
respondentDetails | Respondent's name, email address, mobile number, and external ID (if captured). |
locationId / locationName | Location the response was captured at. |
tags | Tags applied to the response. |
geoLocation / webDevice / browser | Where and how the response was submitted. |
ratedUserId / ratedUserName | The team member rated in the response (if applicable). |
channel | Distribution channel of the survey (e.g. Online, Email, SMS). |
sentiment / urgency / intent / emotion | AI-generated insights for the response. |
CSAT / NPS / CES | Scores for the response, where applicable. |
responseURL | Direct link to view the response in the Response Inbox. |
contactAttributes | Contact attributes captured with the response, each with |
responseAttributes | Response attributes (hidden/URL variables), each with |
surveyResponse | Array of questions answered, with |
Legacy Payload — Example Response
Existing webhooks created on the older events (marked legacy in the Event dropdown) receive the payload below.
Example Response
{
"id": "609d545970b5b6000801567c",
"surveyId": "60659f8aecfaff0008e447e9",
"surveyName": "Customer Experience Survey",
"surveyLanguage": "en_US",
"receivedDate": "2021-05-13T22:01:22.000Z",
"respondentId": "",
"respondentDetails": {
"name": "Robert David",
"emailAddress": "robertdavid@zonkafeedback.com"
},
"locationId": "",
"locationName": "",
"takenByUserId": "",
"takenByUserName": "",
"ratedUserId": "",
"ratedUserName": "",
"channel": "Online",
"channelDetails": "",
"integrationDetails": "",
"NPS": 8,
"responseURL": "",
"surveyResponseData": [
{
"questionId": "60659fc5ecfaff0008e448ca",
"questionLabel": "Email",
"answer": "robertdavid@zonkafeedback.com"
},
{
"questionId": "60659fd0b1e71d0007ffaff2",
"questionLabel": "Full Name",
"answer": "Robert David"
},
{
"questionId": "60659fd8ecfaff0008e448e3",
"questionLabel": "Comments",
"answer": "The service was good."
},
{
"questionId": "60659fefb1e71d0007ffb027",
"questionLabel": "How likely are you to recommend us to a friend or colleague?",
"answer": "8"
}
]
}
Getting Started with Webhooks
Here's how you can get started with using Webhooks.
Navigate to Settings > Developers > Webhook
Click on 'Add Webhook'
Enter the following details:
Name: Name of the webhook
Event: Response Received
When a new survey response is received for the specified survey
Target URL:
URL where the JSON for the survey response is to be sent
This can be a Target URL in any CRM, HRMS or any other 3rd party system that accepts webhook event data
Survey: Specify the survey whose response will trigger this webhook
Additional Parameters: You can specify any additional key:value pairs as comma-separated which can be added to the response JSON that will be sent.
Save the Webhook
Webhook Logs
When webhooks are triggered they a log is saved for successful or any unsuccessful requests. To view the Webhook Logs, follow these steps.
Go to Settings > Developers > Webhook
Click on 'View Logs'
For any further questions about Webhooks, please contact us at hello@zonkafeedback.com.


