# Webhook Triggers

{% hint style="success" %}
**Audience:** Administrators, Solution Architects, and Developers

**Purpose:** Documents the Webhook trigger in <code class="expression">space.vars.Kizen\_company\_name</code>: how it works, how data is extracted from inbound requests, and the behavioral details that affect how webhook-triggered <code class="expression">space.vars.automations</code> are designed and debugged.
{% endhint %}

## Overview

The Webhook trigger initiates an <code class="expression">space.vars.automation</code> via an inbound HTTP request from an external system. Each webhook trigger generates a unique URL that external tools and services can call directly to start an <code class="expression">space.vars.automation</code> execution.

### Webhook URL

Each Webhook trigger is assigned a unique URL based on the webhook name configured at setup.

<div data-with-frame="true"><figure><img src="/files/80H0foujZInAibVBWkaQ" alt="" width="246"><figcaption></figcaption></figure></div>

&#x20;The URL follows this format:

```
https://app.go.kizen.com/api/automations/{webhook-name}/webhook/{webhook-name}
```

The webhook name is user-defined and becomes part of the URL. Choose a name that clearly identifies the <code class="expression">space.vars.automation</code> and integration context and it cannot be changed after the trigger is saved without breaking existing integrations.

### POST and GET Requests

The Webhook trigger supports both POST and GET requests. The selected method determines what data extraction options are available.

#### **POST**

**POST** requests support a request body payload. When POST is selected, the trigger configuration exposes an example Payload field, a Content-Type selector, and data extraction options for both the request body and URL query string.

**Content-Types**

When using POST, the Content-Type of the inbound request can be set to match the format sent by the external system. Supported content types include:

* `application/json`
* `application/javascript`
* `application/xml`
* `application/xhtml+xml`
* `application/x-www-form-urlencoded`
* `text/plain`
* `text/html`
* `text/xml`
* `text/csv`

#### GET

**GET** requests do not include a request body. When GET is selected, only URL query string extraction is available.

### Record Identifier Requirements

Inbound webhook requests must include a <code class="expression">space.vars.entity</code> identifier so <code class="expression">space.vars.Kizen\_company\_name</code> can associate the request with the correct <code class="expression">space.vars.entity</code> and initiate the <code class="expression">space.vars.automation</code> in the appropriate context. This is only applicable for <code class="expression">space.vars.entity</code>-based <code class="expression">space.vars.automations</code>, not global ones.&#x20;

### Data Extraction

The Data Extraction section controls what information is pulled from the inbound request and made available as variable sources within the <code class="expression">space.vars.automation</code>. Available options differ by request method.

* **JSON Path** *(POST only).* Individual values can be extracted from the request body using JSONPath expressions. Each extraction row requires a JSON Path expression, a Name that becomes the variable identifier downstream, and optionally an Example Payload to preview the extracted value at configuration time. Rows can be added manually with **+ Add Value** or generated automatically from the Example Payload using **Generate Values Automatically**. *This is only applicable if the content-type is JSON.*
* **Extract Full Body Content** *(POST only).* When enabled, the full request body is extracted and made available as a variable source. Use this when the entire payload is needed downstream rather than specific fields.
* **Extract URL Query String** *(POST and GET).* When enabled, values from the URL query string are extracted and made available as variable sources. This option is available for both POST and GET requests.

All extracted values flow into the <code class="expression">space.vars.automation</code>'s variable system and can be referenced by any subsequent step that supports variable inputs.

### Webhook Triggers Cannot Fail Directly

The Webhook trigger itself does not fail. <code class="expression">space.vars.Kizen\_company\_name</code> always accepts the inbound request regardless of what the payload contains.

If a required <code class="expression">space.vars.automation</code> variable depends on a value not present in the payload, the failure surfaces at the variable evaluation stage and not at the trigger. When debugging a webhook-triggered <code class="expression">space.vars.automation</code> that is not behaving as expected, check variable initialization first.

***

## What's Next?

Now that you understand how each trigger type works, continue to [Agentic Workflow Code Steps](/docs/concepts/agentic-workflows/automation-code-steps.md) to learn learn how to run custom Python scripts within an <code class="expression">space.vars.automation</code> to handle complex logic, external API calls, and data transformations that go beyond built-in actions.

<details>

<summary>Related Topics</summary>

* [Agentic Workflow Triggers](/docs/concepts/agentic-workflows/agentic-workflow-triggers.md)
* [Action-Based Triggers](/docs/concepts/agentic-workflows/agentic-workflow-triggers/action-based-triggers.md)
* [Scheduled Triggers](/docs/concepts/agentic-workflows/agentic-workflow-triggers/scheduled-triggers.md)
* [Agentic Workflow Code Steps](/docs/concepts/agentic-workflows/automation-code-steps.md)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.kizen.com/docs/concepts/agentic-workflows/agentic-workflow-triggers/webhook-triggers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
