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

# Using Webhooks to Trigger Workflows

> The Webhook trigger lets external systems fire a Reevo workflow by sending an HTTP POST request to a unique URL. Use this to connect Reevo to any third-party tool that can send webhooks - like Clay, Zapier, Make, or your own application.

## Overview

When you use the **Webhook Received** trigger, Reevo generates a unique URL for your workflow. Any external system that sends a POST request to that URL will trigger the workflow and pass its JSON payload as variables into your action nodes.

This makes webhooks one of the most flexible trigger options - they let Reevo react to events happening in tools outside the platform.

Looking for outbound webhooks instead? Use a **Webhook** action node when a Reevo workflow should send an HTTP request to an external endpoint. See [Workflow Action Nodes](/Automations-and-Workflows/Workflow-Action-Nodes) for details.

***

## Prerequisites

* **Admin or User role** with permission to create and edit workflows
* An external tool or system capable of sending HTTP POST requests with a JSON body
* The external tool's documentation for how it sends webhooks (payload structure, headers, etc.)

***

## Setting Up a Webhook-Triggered Workflow

### Step 1: Create a New Workflow

1. Navigate to **Settings → Workflows**
2. Click **New Workflow** and choose a template, or start from scratch
3. When selecting a trigger, choose **Webhook Received**

### Step 2: Configure the Webhook

Before copying the URL, configure your webhook's settings:

1. Choose whether you want **authentication** on your webhook - for example, requiring an API key so only authorized senders can trigger the workflow
2. Define the **payload parameter structure** - the fields you expect the external system to send (e.g., `email`, `first_name`, `company`)

### Step 3: Copy Your Webhook URL

Once the Webhook Received trigger is configured, Reevo displays a unique webhook URL for this workflow. **Copy this URL** - you'll paste it into your external tool.

### Step 4: Configure Your External Tool

In your external system (e.g., Clay, Zapier, Make, or a custom application), set up a webhook action that:

* Sends an **HTTP POST** request
* Targets the webhook URL you copied from Reevo
* Includes a **JSON body** with the data you want to pass into the workflow

**Example payload:**

```json theme={null}
{
  "email": "jane@example.com",
  "first_name": "Jane",
  "company": "Acme Corp",
  "lead_score": 85
}
```

### Step 5: Use Payload Data as Variables

All fields in the incoming JSON payload become available as variables in your downstream action nodes.

To use a webhook variable in an action node:

1. Open the node's configuration panel
2. Click the field you want to populate
3. Switch to **variable mode**
4. Select the relevant field from the webhook payload

### Step 6: Deploy and Test

1. Click **Deploy** to publish your workflow
2. Send a test POST request from your external tool (or use Postman or curl)
3. Switch to the **Runs** tab to confirm the workflow executed and review each node's output

***

## Troubleshooting / FAQs

<AccordionGroup>
  <Accordion title="My external tool sent the webhook but the workflow didn't run - what should I check?">
    First, confirm the workflow is set to **Active**. Deployed-but-inactive workflows do not execute. Second, check that the request was a POST to the exact URL shown in the trigger node - even a small typo will result in a 404 and no trigger. Finally, check the **Runs** tab to see if a run was recorded but failed at a specific node.
  </Accordion>

  <Accordion title="What format does the webhook payload need to be in?">
    The payload must be a valid **JSON object** sent in the request body with a `Content-Type: application/json` header. Arrays and nested objects are supported - all top-level keys become available as variables, and nested keys can be accessed through variable selectors in your node configuration.
  </Accordion>

  <Accordion title="Can I reuse the same webhook URL across multiple workflows?">
    No - each workflow with a Webhook Received trigger gets its own unique URL. If you need the same incoming payload to trigger multiple workflows, send the webhook to each workflow's URL separately from your external tool.
  </Accordion>

  <Accordion title="Does Reevo return a response to the webhook sender?">
    Yes - Reevo returns an HTTP 200 response when the webhook is received and the workflow is queued for execution. A 200 confirms the webhook was accepted, not that the workflow completed successfully. Check the Runs tab to confirm execution results.
  </Accordion>

  <Accordion title="Can I secure my webhook URL?">
    You can add API key authentication, because anyone with the URL can trigger your workflow. If you suspect a URL has been compromised, deactivate the workflow and contact your Reevo admin or support to rotate it.
  </Accordion>
</AccordionGroup>

> Still have questions? [Sign in](https://reevo.ai/) and use Ask Reevo for instant answers or to raise a support ticket.
