AskNicely · AsyncAPI Specification
Asknicely Webhooks
Version
View Spec
View on GitHub
CompanyCustomer ExperienceNet Promoter ScoreSurveysFeedbackReputation ManagementSaaSCustomer SuccessReviewsSMSAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-06'
method: searched
source: https://asknicely.zendesk.com/hc/en-us/articles/47782734299540-Triggering-Webhooks-in-AskNicely
spec_type: Webhooks
asyncapi_published: false
description: >-
AskNicely publishes no AsyncAPI document, but it does operate a real outbound webhook surface: a
one-way, real-time push of survey response data to a URL configured in the Webhooks app. The webhook is
configured entirely in the UI (App Store > Webhooks) — there is no REST endpoint to register,
enumerate, rotate or delete a webhook subscription, and no signing secret is documented.
surface:
direction: outbound (AskNicely -> your endpoint)
transport: HTTP POST
content_type: application/json
configuration: In-product, App Store > Webhooks. Enter a callback URL and optional custom headers; clear the URL to disable.
registration_api: false
subscription_management_api: false
event_filtering: false
delivery_guarantees: not published
retry_policy: not published
signature_verification: not published
authentication_of_callback: >-
Custom HTTP headers configured in the Webhooks app are the only mechanism — the receiver supplies a
static token that AskNicely echoes on every request. There is no HMAC payload signature.
docs:
- https://asknicely.zendesk.com/hc/en-us/articles/47782734299540-Triggering-Webhooks-in-AskNicely
- https://asknicely.zendesk.com/hc/en-us/articles/47819959059092--AskNicely-Webhook
events:
- name: response.submitted
trigger: A contact submits a survey score.
note: >-
AskNicely does not name its events — there is one webhook that fires for both submission and update.
The names here are API Evangelist labels for the two documented trigger conditions; the payload
itself carries no event-type field.
discriminator: count == 1
- name: response.updated
trigger: A contact changes their score or comment after submitting, or leaves a comment later.
discriminator: count > 1
payload:
envelope:
count: >-
Integer that increments by 1 for each webhook fired for a given response. This is the ONLY way to
distinguish an original submission from a subsequent update — there is no event type.
person: Contact object — id, name, firstname, lastname, email, created (unix), segment, plus configured custom fields.
question: >-
Response object — id, score, comment, sent/opened/responded (unix), segment, deliverymethod,
survey_template, review_site, theme, life_cycle, AI-generated fields (ai_question_1..n), scorecard
fields, and any account custom data fields.
example:
count: 1
person:
id: '163012'
name: Firstname Lastname
firstname: Firstname
lastname: Lastname
email: tester@asknice.ly
created: '1774990112'
segment: general
question:
id: '345094'
score: '10'
comment: The gym was great, love it!
sent: '1774990116'
opened: '1774990122'
responded: '1774990125'
segment: general
deliverymethod: email
survey_template: Default
review_site: null
theme: null
life_cycle: null
ai_question_1: The gym was great, love it!
ai_question_2: 'No'
ai_question_3: abc
scorecard1: Great Knowledge & Advice
scorecard2: null
source: https://asknicely.zendesk.com/hc/en-us/articles/47782734299540-Triggering-Webhooks-in-AskNicely
testing:
recommended_tool: requestcatcher.com
detail: AskNicely recommends generating a temporary catch URL to verify delivery.
relationship_to_rest:
detail: >-
The webhook is the push counterpart of the getResponses REST operation. AskNicely is explicit that
webhooks cannot be used for historical backfill — use /responses for that.
gaps:
- No AsyncAPI (or any machine-readable event) document.
- No event-type field in the payload; the only submission-vs-update discriminator is an incrementing counter.
- No webhook registration/management API — configuration is UI-only.
- No payload signature; authentication of the callback relies on a static custom header.
- No published retry, ordering or delivery-guarantee semantics.