X-Usertick-Event header, and every survey event also names it in the body’s type. Usertick may add events within v1, so a handler should check the event first and ignore any event it doesn’t recognize.
Response events
The AI analyzes a response that has a written answer of 20 characters or more, or two or more answers. A response it doesn’t analyze, or one the analysis failed on, is still sent after AI analysis with
data.ai set to null.
A workflow runs at most once for each event it starts on.
Each event has a reference page with its full schema: response.created and response.analyzed.
AI events
Four more events report what happens after a response arrives: a status change, a correction to the AI’s reading, high urgency and a spiking theme.
A workflow can start on
response.urgent, but not on the other three events. Its Send to a webhook step sends the event the workflow started on.
Reference pages: response.status_changed, response.classification_corrected, response.urgent and theme.spiking.
What changed
response.status_changed and response.classification_corrected carry the response as it reads now, plus data.change:
A correction to a theme looks like this:
response.urgent carries the response as it reads now, with no change. Its data.ai.urgency is high.
A status a Jira or Linear sync applied comes with by.kind set to integration and is never sent back to the tracker, so a Zap or script that writes the same status again does not start a loop.
Theme spikes
Usertick checks themes every hour. A theme spikes when, over the last 24 hours:- it has at least 10 responses, and
- that is at least 2 times its count in the 24 hours before.
data is a spike, not a response, so code that handles response events should check type first.
Filters
Each event takes the filters in this table. A subscription sets them infilters, and an endpoint in Settings sets them under Only these responses, or Only these themes for theme.spiking.
- Feedback types:
bug,idea,complaint,question,praise. - Urgency:
high,medium,low. - Themes: theme ids from
GET /themes, up to 5,000. A response matches when any of its answers is in one of them. Ontheme.spiking, only those themes are reported.
400 with APK-006-002 for a filter the event doesn’t take, APK-006-010 for an unknown theme and APK-006-011 for more than 5,000 themes.
Choose the event in Settings
An endpoint’s Survey events settings appear when you create it with New webhook under Settings → Developers → Webhooks, and later under Settings in its row. Surveys starts at No surveys. When you select All surveys, including new ones or Only selected surveys, the When choices appear, each mapped to one event:
Settings offers the filters from the table above. An endpoint sends one of these events, so another event needs a second endpoint with its own URL, such as a different path. Only selected surveys takes as many surveys as you select.
Latest items from the API
GET /responses/recent returns the newest items in the shape a delivery of the same event carries in data, filtered the way a subscription is. Zapier uses it for trigger samples. It looks through the newest 1,000 responses, or the newest 1,000 status changes, within your plan’s history. When a filter matches only older items, it returns fewer than limit. To read every response, use GET /responses.
A workflow’s Zapier step
A subscription can receive what a workflow sends to one of its Zapier steps instead of an event. Such a subscription setsevent to workflow.step and names the step with workflowId and stepId, which GET /workflows/zapier-steps lists. The Zapier app’s Workflow Step trigger subscribes this way.
- The workflow’s trigger, conditions, branches and waits decide which responses reach the step, so a
workflow.stepsubscription takes nosurveyIdand no filters. A filter answers400withAPK-006-002. - Each delivery carries the event that started the workflow’s run:
typeand theX-Usertick-Eventheader areresponse.created,response.analyzedorresponse.urgent, anddatais the Response resource. workflowIdandstepIdare required withworkflow.stepand refused with any other event, with400andAPK-006-013. A workflow or a Zapier step the organization doesn’t have answers404withAPK-006-014.- A step has one subscription at a time. While one is active, another subscription to the same step answers
409withWH-005-010. - A step in a workflow’s draft can be subscribed to before the workflow is published, and a test run of the workflow never sends to the subscription.
- The subscribe answer and the items of
GET /webhooksincludeworkflowIdandstepId. They are set for aworkflow.stepsubscription andnullfor every other subscription. - When an app such as Zapier subscribes, the person who connected it needs the Manage workflows permission, or the API answers
403withAUTHZ-001-002. - When the workflow is deleted, Usertick deletes the subscriptions to its steps.
A full payload
The following body is aresponse.analyzed delivery. A response.created delivery has the same shape with "ai": null.
data is described on the Response resource. To see the payload for one of your own surveys, select an endpoint’s row under Settings → Developers → Webhooks, select Settings, and select a survey and an event under Payload sample. The sample is built the same way as a real delivery, from the survey’s newest response, or from its questions when the survey has no responses yet. For the two change events it adds an example change made by you, and for theme.spiking it shows an example spike for one of your themes.
Test pings
Send test in an endpoint’s row under Settings → Developers → Webhooks sends aping event, which checks that the endpoint answers and that its signature check works. A ping carries the X-Usertick-Test: 1 header, is sent once without retries, and isn’t available for subscriptions made by an app or the API.
X-Usertick-Test: 1.
Account notifications
An endpoint created in Settings can also receive account notifications. None are selected when the endpoint is created. Account notifications aren’t tied to a survey, and all of them share one body:X-Usertick-Event header carries the event key.
Notifications about one person, such as a mention or a dashboard shared with someone, are not sent to webhooks.
Delivery failures are never sent as webhook events, because the report would go to the endpoint that is failing. Usertick notifies people in the app and by email instead.