> ## Documentation Index
> Fetch the complete documentation index at: https://docs.insito.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook integration

> Store an outbound webhook endpoint for your project (delivery coming soon).

<Warning>
  **Outbound webhook delivery is not shipped yet.** You can store a webhook URL
  on a project via the API, but Insito does **not** currently POST responses to
  it — only the [Slack integration](/dashboard/integrations/slack) delivers
  response notifications today. HMAC signing, retries, and event types described
  as "planned" below are not yet implemented. If you need outbound webhooks,
  [let us know](mailto:jirka@insito.app) so we can prioritise.
</Warning>

## Storing a webhook endpoint

The project integrations API accepts a `webhook` row containing a URL:

```http theme={null}
POST /v1/dashboard/projects/:projectId/integrations
Authorization: Bearer <supabase-jwt>
Content-Type: application/json

{ "type": "webhook", "url": "https://api.your-domain.com/webhooks/insito" }
```

List and remove it via `GET /v1/dashboard/projects/:projectId/integrations` and
`DELETE /v1/dashboard/projects/:projectId/integrations/webhook`.

## Planned payload

When delivery ships, each completed response will trigger a `POST` to your URL
with a payload along these lines:

```json theme={null}
{
  "type": "response.created",
  "projectId": "uuid",
  "surveyId": "uuid",
  "responseId": "uuid",
  "createdAt": "2026-05-21T18:41:00Z",
  "respondent": {
    "userId": "your-user-id",
    "platform": "ios",
    "appVersion": "2.7.0"
  },
  "answers": [
    { "questionId": "uuid", "type": "nps", "value": 9 },
    { "questionId": "uuid", "type": "open_text", "value": "Love it!" }
  ]
}
```

Signature verification, retry semantics, and delivery history will be documented
here once the feature is available. Until then, use the
[Slack integration](/dashboard/integrations/slack) or poll the
[responses API](/api/dashboard-endpoints#responses).
