Webhooks is a way of getting data to your system without making API requests.
This article will describe how you can configure webhooks, their payload structure and how you can track their logs.
Webhooks are internal e-satisfaction processes that deliver data to any service (URL) based on triggered events. Using webhooks you can retrieve data from e-satisfaction without pulling them using our APIs but simply creating a route that will be called by our systems to deliver data.
Webhooks are configured per Questionnaire.
Before moving forward, make sure you have read our IPs for firewall whitelist and enabled these IPs, if necessary.
You should be able to see your webhooks from your Questionnaire Page, by selecting the "Webhooks" section on the left sidebar:
You can create a new webhook simply by clicking on the "Create New" button on the top right corner of the panel, and the following dialog will be displayed:
Webhooks are called on the following events:
Questionnaire Instance Completed
Each webhook delivers the completed questionnaire. Here is an example of the payload:
{
"instance_id": "tA3XIeKEQxmGrDWFEdTdA",
"organization_id": "Aq0m2EK8Rreuo2zXUXWwLw",
"organization_name": "Test",
"application_id": "ZhZp24ZcTn20ixXsFBTAIg",
"application_name": "Test",
"questionnaire_id": "dvBLgthfTLSMFnTyr3IbMQ",
"questionnaire_stage": "checkout",
"questionnaire_credits_accountable": true,
"responder_id": "ktpERGthR7CaTkuSttM45w",
"campaign_id": null,
"app_product_id": null,
"esat_product_id": null,
"locale": "en-us",
"valid_days": "0",
"editable": false,
"finalized": true,
"resolution_status": null,
"accountable": true,
"analyzed": false,
"scheduled": null,
"big_query_transferred": false,
"queue_item_id": null,
"viewed_time": "2024-05-31T07:47:28+00:00",
"viewed_time_ts": 1717141648,
"submitted_time": "2024-05-31T07:47:29+00:00",
"submitted_time_ts": 1717141649,
"completed_time": "2024-05-31T07:47:37+00:00",
"completed_time_ts": 1717141657,
"processed_time": null,
"processed_time_ts": null,
"flow_time": null,
"flow_time_ts": null,
"resolved_time": null,
"resolved_time_ts": null,
"last_analyzed_time": null,
"last_analyzed_time_ts": null,
"anonymized_time": null,
"anonymized_time_ts": null,
"resolved_by": null,
"questions": [
"hbWvKCPQSL6H4IQfk4cwg",
"APQT5iapRkyAfJmaTLOp5g",
"wOGW0bhzT3mcEtiHHdpYVw",
"0Y79EK7UQrA6vVa1MSUvw",
"4SJgsUFlR5yXDWHD0UAo8g",
"8iyuco4SMqXQhwAVuHBA",
"AKJGZbtvQDmRXBQR2P8jg",
"BzUjqnUR4K5gTjdjgYDQ",
"CvasthS7RQCraielDjBHPw",
"pu0sUNHMSyaSFC71MVsDCw"
],
"responses": [
{
"question_id": "APQT5iapRkyAfJmaTLOp5g",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "wOGW0bhzT3mcEtiHHdpYVw",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "CvasthS7RQCraielDjBHPw",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "8iyuco4SMqXQhwAVuHBA",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "pu0sUNHMSyaSFC71MVsDCw",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "0Y79EK7UQrA6vVa1MSUvw",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "BzUjqnUR4K5gTjdjgYDQ",
"value": [
10
],
"value_text": null,
"value_number": [
10
]
},
{
"question_id": "4SJgsUFlR5yXDWHD0UAo8g",
"value": [
9
],
"value_text": null,
"value_number": [
9
]
},
{
"question_id": "AKJGZbtvQDmRXBQR2P8jg",
"value": [
8
],
"value_text": null,
"value_number": [
8
]
},
{
"question_id": "hbWvKCPQSL6H4IQfk4cwg",
"value": [
"test"
],
"value_text": [
"test"
],
"value_number": null
}
],
"metadata": [
{
"name": "transaction_id",
"value": "123",
"value_text": "123",
"value_number": null,
"value_date": null,
"value_boolean": null,
"original_value": "123"
},
{
"name": "email",
"value": "test@test.com",
"value_text": "test@test.com",
"value_number": null,
"value_date": null,
"value_boolean": null,
"original_value": "test@test.com"
},
{
"name": "user_agent",
"value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"value_text": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"value_number": null,
"value_date": null,
"value_boolean": null,
"original_value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
},
{
"name": "channel",
"value": "Public Link",
"value_text": "Public Link",
"value_number": null,
"value_date": null,
"value_boolean": null,
"original_value": "Public Link"
}
],
"segments": [
{
"segment_id": "JMsYr8YYTDa6UXFh1Bn76g",
"title": "Happy Checkout"
}
],
"tags": null,
"document_id": "tA3XIeKEQxmGrDWFEdTdA",
"created_time": "2024-05-31T07:47:27+00:00",
"created_time_ts": 1717141647.864643,
"updated_time": "2024-05-31T07:47:37+00:00",
"updated_time_ts": 1717141657.412069,
"created_by": null,
"updated_by": null,
"questionnaire": {
"questionnaire_id": "dvBLgthfTLSMFnTyr3IbMQ",
"template_questionnaire_id": "nluT7nYzS62m2sWZ5jXTUw",
"owner_application_id": "ZhZp24ZcTn20ixXsFBTAIg",
"stage": "checkout",
"display_name": "Checkout",
"title": "30 seconds for better e-purchases!",
"description": "Tell us your opinion and help us improve our services for you!",
"valid_days": 0,
"editable": false,
"desktop_collapsed": true,
"non_collapsed_questions_count": 1,
"quota_limit_day": null,
"quota_limit_weekly": null,
"quota_limit_month": null,
"key_question_id": "APQT5iapRkyAfJmaTLOp5g",
"key_metric_question_id": null,
"key_opentext_question_id": null,
"credits_accountable": true,
"response_rate": 40.98,
"moderate": false,
"moderator": "manual",
"questionnaire_icon_url": null,
"created_time": "2018-03-13T14:30:49+02:00",
"updated_time": "2024-05-30T00:52:59+03:00",
"created_by": "i56hI6SiCTM9x7XTDGg",
"updated_by": "i56hI6SiCTM9x7XTDGg"
},
"responder": {
"responder_id": "ktpERGthR7CaTkuSttM45w",
"organization_id": "Aq0m2EK8Rreuo2zXUXWwLw",
"application_id": "ZhZp24ZcTn20ixXsFBTAIg",
"email": null,
"first_name": null,
"last_name": null,
"phone_number": null,
"anonymized_time": null,
"anonymized_time_ts": null,
"metadata": [
{
"name": "email",
"value": "test@test.com",
"value_text": "test@test.com",
"value_number": null,
"value_date": null,
"value_boolean": null,
"original_value": "test@test.com"
}
],
"big_query_transferred": false,
"document_id": "ktpERGthR7CaTkuSttM45w",
"created_time": "2024-05-31T07:47:27+00:00",
"created_time_ts": 1717141647.888281,
"updated_time": "2024-05-31T07:47:27+00:00",
"updated_time_ts": 1717141647.899371,
"created_by": null,
"updated_by": null
},
"campaign": []
}
You can check all the webhook deliveries by clicking the details button on the right side of each webhook:
You can see the details of each delivery by clicking on the details button.
The Request Details:
And the Response Details: