data, and the Zapier app outputs it, so code that handles one source handles all of them.
Fields
string
The response id, a UUID.
string
A link that opens the response in your Usertick inbox.
object
{ id, name }. Usertick doesn’t return or send the responses of a deleted survey, so name is null only when the survey is deleted while the response is being read.object | null
{ id, domain }, the website the response came from. Null for link, QR and email surveys.string
When the response was received.
string
The latest of: when it was received, when it was analyzed, and the last change a person or an integration made to its status, type, urgency, assignees, notes or analysis. Use it with
updatedSince to keep a copy in sync.string | null
How it was collected:
widget, link, email or api.string | null
The language the respondent answered in.
string | null
Two letter country code (ISO 3166-1).
string | null
The page the response was sent from.
object | null
{ type, browser, os }. type is desktop, tablet or mobile: the device class the widget used for device targeting, or null for a response that carries none. Null when nothing is known.string | null
The ID of the survey variant the respondent saw, such as
v_k3x9. Null when the respondent saw no variant: on a survey without variants, or in Everyone else.string | null
The name of the variant in
variant, as the survey names it. A variant removed from the survey keeps its name here. Null when variant is null or the variant has no name.object | null
{ id, email }, the Usertick contact the response is linked to. Without a linked contact, id is null and email is the respondent’s email (respondent.email). Null when neither is known. Webhook deliveries carry the same as API reads. See how a response links to a contact.object
Who answered, from
Usertick.identify(), a Contact question and the contact the response is linked to. The object is always present, and a field in it is null when it isn’t known. Usertick never sends it to the AI.array
The answered questions, in survey order. Answers to questions the survey no longer has come last.
object
The same
text values keyed by question id, which lets an automation map one answer to one field.array
Files the respondent sent, such as uploads, screenshots and signatures:
{ id, questionId, name, url }. See Download files.string
The inbox status:
open, planned, in_progress, resolved or archived.array
The members assigned to the response:
{ id, name, email }.object | null
What Usertick AI read in the response, with any correction a person made folded in. Null until the response is analyzed, when the analysis was skipped or failed and nobody corrected it, and on every
response.created delivery.integer
Notes on the response’s timeline. Deleted notes are not counted.
Behavior
- Every key is always present, and an empty value is
null. The one exception ischange, described below. - To find one person’s responses, list responses with
userId, which matches your user id exactly, or withemail, which matches an answer that is exactly that address, the emailidentify()sent, or the contact with that email and the responses linked to it. - Question texts and choice labels come from the published survey, in English when the survey has it, otherwise in its first language.
- New fields can be added within v1, so your code should ignore the ones it doesn’t know. See Versioning.
- In a webhook delivery,
status,assigneesandcommentsCountare read when the delivery is sent. The answers and the analysis are those of the event. response.status_changedandresponse.classification_correcteddeliveries, and the status changes thatGET /responses/recentlists, add achangekey with the field that changed, its old and new value, and who changed it. See What changed.- To drop duplicate webhook deliveries, compare the delivery’s
idor thewebhook-idheader instead of the responseid. See Delivery and retries.