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

# Webhooks: Send Contact Data to External Applications

> Configure Webhooks to send an HTTP POST payload to any external URL when a specific action occurs inside a Perform Action node in Flow Builder.

Webhooks let ChatbotX push contact data to an external application — such as a CRM, Google Sheets, Zapier, or Make — automatically when a specific event occurs in a Flow. Creating and enabling a Webhook does not send any data on its own. ChatbotX sends the Webhook only when the configured event matches an Action executed by a **Perform Action** node in Flow Builder.

## Webhooks Interface

The Webhooks page contains three management areas:

* **Folders** — group Webhooks for easier organization.
* **Webhooks** — a list of every Webhook you have created, each with a toggle to turn it on or off independently.
* **Create Webhook** — click **+ Create Webhook** and enter a name to start a new Webhook.

## Create and Configure a Webhook

<Steps>
  <Step title="Create a Webhook">
    Open **Webhooks**, click **+ Create Webhook**, enter a name, and click **Create**.
  </Step>

  <Step title="Choose the condition">
    Under **When this happens**, select the event the Webhook should listen for. The available event groups are:

    | Group                | Available events                                                                                             |
    | -------------------- | ------------------------------------------------------------------------------------------------------------ |
    | **Tags**             | Tag Applied, Tag Removed                                                                                     |
    | **Custom Fields**    | Custom Field Changed, DateTime Based Trigger, New Contact, conversation assignment, and other contact events |
    | **Sequences**        | Subscribed To Sequence, Unsubscribed From Sequence                                                           |
    | **Entry Point Link** | Contact Referred A New Contact, Contact Referred Existing Contact                                            |
  </Step>

  <Step title="Enter the destination URL">
    Paste the URL of the external application into the **URL** field. ChatbotX sends an HTTP POST request to this address whenever a matching Action runs in a Flow.
  </Step>

  <Step title="Save and enable">
    Click **Save**, then confirm the Webhook is toggled on in the Webhooks list.
  </Step>
</Steps>

## Webhook Event Scope in Flow Builder

Webhook events are scoped exclusively to Flow Builder. ChatbotX checks for a matching Webhook event only when an Action runs inside a **Perform Action** node. The same type of change made elsewhere in the Workspace — for example, manually applying a tag in Contacts — does not fire the Webhook.

**Tag Applied example:**

* **Webhook fires:** A contact reaches a Perform Action node that applies a Tag. The Action matches the configured event, so ChatbotX sends the Webhook.
* **Webhook does not fire:** The same Tag is applied to a contact manually from the Contacts section. ChatbotX does not treat that change as a Webhook event.

This design gives you precise control over exactly where in the customer journey data is sent to external systems.

### Set Up the Perform Action Node in Flow Builder

<Steps>
  <Step title="Open the Flow">
    Open **Flows**, then create a new Flow or open the Flow that should send data to the external application.
  </Step>

  <Step title="Add a Perform Action node">
    Insert a **Perform Action** node at the point in the Flow where ChatbotX should send the Webhook.
  </Step>

  <Step title="Choose a matching Action">
    Open the Perform Action node, click **Create**, and select an Action that produces the event configured in the Webhook. For example, if the Webhook listens for **Tag Applied**, add an Action that applies a Tag to the contact.
  </Step>

  <Step title="Connect and publish">
    Connect the node to the correct path in the Flow, then click **Publish**.
  </Step>
</Steps>

## Webhook Payload

When a contact reaches a Perform Action node and the Action matches the Webhook's configured event, ChatbotX sends an **HTTP POST request** to the saved URL. The external application then handles the data using its own logic.

The payload typically includes:

* Contact name and contact ID
* Channel (Messenger, WhatsApp, Zalo, etc.)
* Existing Tags on the contact
* Custom Field values
* Information about the event that triggered the Webhook

## Real-World Examples

| Scenario                                                  | What the Webhook does                                                                             |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Webhook listens for **Tag Applied**                       | A Perform Action node applies a Tag → ChatbotX sends contact data to Google Sheets                |
| Webhook listens for **Conversation transferred to human** | A matching Action transfers the conversation → ChatbotX sends the data to a support system        |
| Webhook listens for **Custom Field Changed**              | A matching Action updates a Custom Field → ChatbotX sends the lead to a CRM                       |
| Webhook listens for **Subscribed To Sequence**            | A matching Action subscribes the contact → ChatbotX sends the data to an email marketing platform |

<Note>
  Each Webhook has its own toggle, so you can disable a Webhook without deleting its configuration. A disabled Webhook does not send data even when a matching Action runs in a Flow.
</Note>

<Tip>
  Use folders to group related Webhooks by campaign or integration type. This makes it easier to find and audit your Webhooks as the number of active integrations grows.
</Tip>
