> For the complete documentation index, see [llms.txt](https://docs.diaflow.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diaflow.io/workflow-builder/nodes/trigger/automatic-trigger/webhook.md).

# Webhook

**Webhook** is an **Automatic trigger**.

It starts your workflow when another system sends data to a webhook URL.

This is useful when you want Diaflow to receive information from forms, apps, or external platforms.

<figure><img src="/files/EhTUrJHiUPlZVn8m5H5a" alt=""><figcaption></figcaption></figure>

## When to use it

Use **Webhook** when another tool needs to send data into your workflow automatically.

This works well for lead capture, status updates, form submissions, and system-to-system notifications.

## How it works

1. Add a **Trigger** node.
2. Choose **Webhook** as the type.
3. Select the webhook URL you want to use.
4. Choose or create an **API Key**.
5. Add the fields you want to receive in the **Body** section.

Once an external system sends data to that webhook, Diaflow starts the workflow.

## Test URL and Production URL

Webhook provides 2 URL modes:

* **Test URL**
* **Production URL**

Use **Test URL** while you are setting up and checking your workflow.

Use **Production URL** when the workflow is ready for live use.

{% hint style="info" %}
The **Production URL** becomes available after you publish the workflow.
{% endhint %}

## API Key

Use an **API Key** to control who can send data to the webhook.

You can select an existing key or manage your keys from the same section.

This helps keep the webhook secure.

## Add the fields you want to receive

In the **Body** section, you define the fields that the webhook should accept.

Each field represents a piece of incoming data.

For example, you can add fields like:

* `name`
* `email`
* `message`

You can mark a field as optional when it does not need to be sent every time.

This helps you structure the incoming data before it moves to the next steps in the workflow.

## Example

A website form can send the following data to your webhook:

* customer name
* email address
* request details

When the data arrives, the workflow can continue automatically with the next actions.

## Why teams use it

* It connects Diaflow to external systems.
* It reduces manual data entry.
* It helps teams respond faster to incoming requests.

## Good to know

* **Webhook** belongs to **Automatic trigger**.
* **Test URL** is best for setup and checking.
* **Production URL** is for live use after publishing.
* The fields in **Body** define the data structure you expect to receive.

### Next steps

* Learn how **Trigger** works in [Trigger](/workflow-builder/nodes/trigger.md).
* Compare it with [On app event](/workflow-builder/nodes/trigger/automatic-trigger/on-app-event.md).
* Compare it with [Schedule](/workflow-builder/nodes/trigger/automatic-trigger/schedule.md).
