> For the complete documentation index, see [llms.txt](https://docs.stackai.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stackai.com/stackai-tools/built-in-triggers/on-external-webhook.md).

# On External Webhook

Start a workflow when another system sends an HTTP request. Use the event’s data as input to the work that follows.

## Before you start

You need permission to publish the workflow and configure webhook delivery in the source system.

## Connect an incoming event

1. Add **On External Webhook** and connect its output to the workflow steps. Map the event fields from **Body**, **Headers**, or **Query Parameters**.
2. Configure **Webhook Secret**, **Signature Header**, and **Signature Encoding** when the sender supports compatible signature verification.
3. Publish the workflow to activate the trigger. Configure the sending system with the webhook URL provided for that trigger.
4. Send an event from the source system. Inspect the resulting run to confirm that the expected values reached the workflow.

**Result:** An accepted event starts the workflow with the received request data.

## Behavior and troubleshooting

Signature verification uses HMAC-SHA256. An empty signature-header setting accepts `X-Webhook-Signature` or `X-Hub-Signature-256`; the sender’s encoding must match your choice of hex or Base64. Without a configured secret, this trigger does not verify that signature. A webhook delivery can be repeated, so use the source event identifier to detect duplicates before an action that must happen only once.

**Inputs**

<table><thead><tr><th width="220">Parameter</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>Body</code> *</td><td>object</td><td>The parsed request body (JSON, form data, or raw text wrapped in a dict). Default: <code>{}</code>.</td></tr><tr><td><code>Headers</code> *</td><td>object</td><td>The HTTP request headers. Default: <code>{}</code>.</td></tr><tr><td><code>Query Parameters</code> *</td><td>object</td><td>The URL query parameters. Default: <code>{}</code>.</td></tr><tr><td><code>HTTP Method</code> *</td><td>string</td><td>The HTTP method of the request (POST, PUT, etc.). Default: <code>POST</code>.</td></tr></tbody></table>

**Configuration**

<table><thead><tr><th width="220">Parameter</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>Webhook Secret</code></td><td>secret</td><td>A password that verifies webhook requests are authentic. When set, only requests signed with this secret will be accepted. Leave empty if you don't need verification.</td></tr><tr><td><code>Signature Header</code></td><td>string</td><td>Request header carrying the HMAC signature. Leave empty to accept the defaults (X-Webhook-Signature or X-Hub-Signature-256). Only used when a Webhook Secret is set.</td></tr><tr><td><code>Signature Encoding</code></td><td>dropdown (string)</td><td>How the signature is encoded. Choose one of: Hex, Base64. Default: <code>hex</code>.</td></tr></tbody></table>

**Outputs**

<table><thead><tr><th width="220">Field</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>Body</code></td><td>dict</td><td>The parsed request body.</td></tr><tr><td><code>Headers</code></td><td>dict</td><td>The HTTP request headers.</td></tr><tr><td><code>Query Parameters</code></td><td>dict</td><td>The URL query parameters.</td></tr><tr><td><code>HTTP Method</code></td><td>string</td><td>The HTTP method of the request.</td></tr><tr><td><code>Webhook Data</code></td><td>dict</td><td>The webhook data.</td></tr></tbody></table>

## Related guidance

[Trigger Activation and Execution Context](/technical-reference/triggers-and-webhooks/trigger-activation-and-execution-context.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.stackai.com/stackai-tools/built-in-triggers/on-external-webhook.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
