> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://docs.intractive.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Webhook integration

# Integration with a Webhook
A webhook is an automated message that Intractive sends to a URL you own, the moment something happens in your story. Think of it as the opposite of asking. Normally, if you wanted to know whether someone completed your story, you'd have to keep checking: anything new yet? anything new yet? A webhook flips that around. You give Intractive a URL once, and from then on Intractive does the reaching out, it sends the details to your URL automatically whenever the event fires.

Basically a webhook is just an HTTP POST request. When a triggering event happens, for example a user fills in a form, Intractive packages up the relevant data as JSON and sends it to your endpoint. Your system receives it and does whatever you need: update a CRM record, kick off an email, route it into Make or n8n, whatever fits your flow.

That's the whole idea. The rest of this article covers where to set one up, which events you can listen for, and what lands in the payload.
Webhooks let Intractive POST a small payload to a URL you control whenever something happens in a Story, such as a session starting, a form being submitted, or a Story completing.

To setup the integration go to your story - integrations - and select Webhook.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/c/4/afc4fa0dc4a39800/webhook-1_147qln1.png)
## **Configuring**
Webhooks are configured per Project or per Story, depending on scope. You’ll:
1. Start with the general settings, give the integration a name.
2. Select the variables you would like to use.
3. Enter the URL to POST to. Where does to information needs to go.
4. (Optional) you could create a header, these headers are set as part of the webhook request.
5. (Optional) Extra data, you could add extra data to the webhook post body.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/c/4/afc4fa0dc4a39800/webhook-2_1blgpeh.png)

## Trigger conditions
In the general settings you can choose an integration name and set up the trigger conditions. Here you can find the variables you created in your Intractive story. A trigger condition tells the integration **when** to fire. When one of the variables you tick is filled in, the action runs.
Select which [variables](https://app.notion.com/p/Platform-variables-Logic-3c38a9c7054880759016c35053cf7484?pvs=21) you would like to use in the integration. 
You can do this by selecting them and a checkmark will appear next to the variable.


**The standard Payload mapping looks like this.**
* session_id : ID of this play through, unique per player visit.
* story_id : Internal ID of the Story
* story_name : Story name
* progress : Percent complete, rounded to a whole number (0–100).
* update_date : Last update of the webhook
* variables : the variables you have setup in the story. Select at least one variable via the trigger conditions.
* extras : Extra data that is added to the webhook POST body.
* country : Country name

```
{
  "session_id": "<session_id>",
  "story_id": "<story_id>",
  "story_name": "<story_name>",
  "progress": "<number>",
  "update_date": "<date>",
  "variables": {},
  "extras": {},
  "country": "<country>"
}

```

This is how a Integration activity details could look like after you have setup a webhook with 3 variables: @date, @plate, @time.
```
{
  "extras": {},
  "country": "NL",
  "progress": 88,
  "story_id": "gm_fg8ip700000",
  "variables": {
    "@date": "18-08-2026",
    "@plate": "XX-999-XX",
    "@time": "10:00"
  },
  "session_id": "sess_NW5N9pDW3Wt8R6LggL1JQ",
  "story_name": "Onderweg naar Intractive",
  "update_date": "2026-08-11T09:13:20.412Z"
}

```

You could also build the payload mapping by yourself via the custom tab. Then you have the power to edit the
## Test your integration
When you have setup your integration, please test your integration via te integration activity tab.
Where you can find the call when the webhook is triggered and how the post looks like. 
The webhook can be triggered by updating variables.