InsightSquirrel
Home / Integrations / Webhooks
Built in

Webhooks integration

Send every completed quiz to your own endpoint as JSON.

What it does

A webhook posts the full result of a completed quiz to a web address you choose, the moment someone finishes. It is the most flexible way to move leads into your own systems, and it is what Zapier uses under the bonnet.

The request

When a quiz is completed, InsightSquirrel sends a single POST request with a JSON body and a Content-Type: application/json header. The body looks like this:

{
  "ownerId": "acc_...",
  "quizId": "qz_...",
  "quizTitle": "How healthy is your marketing?",
  "quizSlug": "how-healthy-is-your-marketing",
  "responseId": "rsp_...",
  "totalScore": 72,
  "maxScore": 100,
  "topCategory": "Growth ready",
  "outcomeTitle": "Growth ready",
  "contact": {
    "email": "[email protected]",
    "name": "Sam Lee",
    "phone": null
  },
  "completedAt": "2026-09-02T10:24:11.000Z"
}
MethodPOST, Content-Type application/json
WhenThe moment a respondent finishes the quiz
DeliveryOne attempt, 10 second timeout. No automatic retries. Each attempt is logged as success or failed with the last error.
SuccessAny 2xx response. Return one quickly, then do slow work afterwards.
SecurityPublic HTTPS only (private hosts are blocked). No signature header, so keep your URL secret and unguessable.

What data is sent

How to set it up

  1. In InsightSquirrel, go to Integrations and add a Webhook.
  2. Paste the public HTTPS address of your endpoint.
  3. Choose whether it fires for every quiz or just one.
  4. Publish a quiz and complete it once to send a live test.

Set this up in InsightSquirrel

Common questions

Does it retry if my endpoint is down?

No. InsightSquirrel makes a single delivery attempt with a 10 second timeout, then records the result as success or failed with the last error, which you can see against the integration. Make sure your endpoint is reliable and responds quickly.

Is the request signed?

There is no signature header today. Treat your webhook address as a secret: use a long, unguessable URL over HTTPS, and reject anything sent to a URL you did not publish.

What response should my endpoint return?

Return a 2xx status code as soon as you have accepted the data. Anything else is recorded as a failed delivery. Do your slow work after responding.

Can I point it at localhost?

No. Only public http(s) addresses are allowed; localhost and private network addresses are blocked.

More integrations

All product names, logos and brands are the property of their respective owners. Use of these names does not imply endorsement or affiliation.