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

# Webhook

> Start a workflow from a POST request containing JSON.

The **Webhook** trigger exposes a unique endpoint for services that send JSON
webhooks. It accepts only `POST` requests and parses the request body as JSON.

## Set up a webhook

<Steps>
  <Step title="Copy the endpoint URL">
    Open the trigger and copy its unique URL.
  </Step>

  <Step title="Register it with the sending service">
    Use the URL as the service's webhook or callback destination.
  </Step>

  <Step title="Use the event data">
    Select properties from **Data**, then finish the workflow with **Respond
    Text**, **Respond JSON**, **Respond Status**, or **Redirect** if the sender
    expects a response.
  </Step>
</Steps>

## Trigger outputs

| Output      | Type              | Description                                                                             |
| ----------- | ----------------- | --------------------------------------------------------------------------------------- |
| **Data**    | Any               | The parsed JSON request body.                                                           |
| **Path**    | String            | The endpoint path that was called.                                                      |
| **Query**   | Object of strings | Query parameters.                                                                       |
| **Headers** | Object            | Request headers with lowercase names. Cookie and forwarded-address headers are omitted. |

JSON requests are limited to 100 MB. Other methods return `405 Method Not
Allowed`.

<Tip>
  Use the **URL** trigger instead when the sender uses another method, sends
  plain text or binary data, or requires access to the request method.
</Tip>
