> ## 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.

# Make Integration: Connect ChatbotX to External Apps

> Connect ChatbotX to Make via the ChatConnectX app to trigger scenarios from Flows, manage contacts, and send messages or Flows from Make scenarios.

The Make integration connects ChatbotX with external apps and automated processes through Make scenarios. You can send customer data from a Flow to Make, update contacts, or trigger another Flow — all without manual work. For example, after a customer completes a consultation form in ChatbotX, Make can add the information to your CRM and send a confirmation Flow back through ChatbotX.

## How the Integration Works

In Make, a **scenario** is an automated process built from connected modules. The ChatbotX integration uses the **ChatConnectX** app, which provides three main components:

| Component      | Function                                                                                  |
| -------------- | ----------------------------------------------------------------------------------------- |
| **Trigger**    | Starts a Make scenario when Make receives an event or data from ChatbotX.                 |
| **Action**     | Performs a task in your ChatbotX workspace, such as updating a contact or sending a Flow. |
| **Connection** | Authenticates Make with a specific ChatbotX workspace using a Workspace token.            |

The typical setup order is: install ChatConnectX → create a Connection → choose a Trigger → add an Action → test the scenario.

## Install ChatConnectX and Connect Your Workspace

### Install the ChatConnectX App

<Steps>
  <Step title="Open ChatConnectX from Integrations">
    In ChatbotX, select **Settings** from the left menu and open **Integrations**. Find **Make**, then click **Connect** to open the ChatConnectX app page in Make.
  </Step>

  <Step title="Install the app">
    On the ChatConnectX page in Make, select **Install**.
  </Step>

  <Step title="Select an organization">
    Choose the Make organization where you want to install the app. Your Make account must have the **Admin**, **Owner**, or **App Developer** role. Select **Install** to finish.
  </Step>
</Steps>

<Note>
  The **Connect** button in ChatbotX only opens the ChatConnectX app page in Make. You create scenarios, configure modules, and enable schedules entirely within the Make platform.
</Note>

### Create a Connection

A Connection gives Make access to the correct ChatbotX workspace. Create it once and reuse it across all your ChatConnectX modules.

<Steps>
  <Step title="Open the Connection dialog">
    In any ChatConnectX module in Make, select **Add** next to **Connection**.
  </Step>

  <Step title="Name the Connection">
    Enter a recognizable name such as `ChatbotX Production`.
  </Step>

  <Step title="Enter the Workspace token">
    In ChatbotX, go to **Settings → Integrations → Workspace token** and copy the token. Paste it into the **Workspace token** field in Make.
  </Step>

  <Step title="Save the Connection">
    Select **Save**, then select the new Connection in the module.
  </Step>
</Steps>

<Warning>
  A Workspace token provides access to all workspace data. Never share it in screenshots, emails, or public documentation. If a token is exposed, rotate it immediately.
</Warning>

## ChatConnectX Triggers

ChatConnectX provides two Triggers that can start a Make scenario:

### Watch Events

Use this Trigger together with ChatbotX [Webhooks](/integrations/webhooks) to start a scenario when Make receives a subscribed event from ChatbotX.

### Watch Flow Data

Use this Trigger when an **Actions → Triggers → Make** block inside a ChatbotX Flow sends data to Make.

#### Create a Make Block in a ChatbotX Flow

<Steps>
  <Step title="Open the Flow">
    In ChatbotX, open the Flow that should send data to Make and select the appropriate message node.
  </Step>

  <Step title="Add the Make block">
    Select **Create**, then choose **Actions → Triggers → Make** to add the block to the node.
  </Step>

  <Step title="Name the event">
    Select **Edit** on the Make block. In **Events**, enter an event name such as `make_trigger`, then select **Save**.
  </Step>
</Steps>

#### Set Up Watch Flow Data in Make

<Steps>
  <Step title="Create a new scenario">
    In Make, select **Scenarios**, then create a **New scenario**.
  </Step>

  <Step title="Add ChatConnectX">
    In the first module, search for and select **ChatConnectX**.
  </Step>

  <Step title="Choose Watch flow data">
    Select **Watch flow data** so Make can receive data from the ChatbotX Flow.
  </Step>

  <Step title="Create a webhook and choose a Connection">
    Select **Create a webhook**, enter a webhook name, and choose your existing Connection. If no Connection exists yet, select **Add** and enter the Workspace token.
  </Step>

  <Step title="Enter the Event name">
    In **Event name**, enter the exact name used in **Events** on the Make block in ChatbotX (e.g., `make_trigger`), then select **Save**.
  </Step>

  <Step title="Run once to capture sample data">
    Select **Run once** so Make begins waiting for incoming data.
  </Step>

  <Step title="Trigger from ChatbotX">
    Run the Flow that contains the Make block. When data arrives, Make displays the result in **Operation 1**.
  </Step>
</Steps>

<Warning>
  The webhook **Event name** in Make must exactly match the name in **Events** on the Make block in ChatbotX. If they differ, Make will not receive any data.
</Warning>

The sample output can include `Event`, `Contact`, `Custom Fields`, `Tags`, and `Contact Sequences`. Map these fields into the next module in your scenario.

## Perform Actions in ChatbotX

An Action is a module that runs after a Trigger. Add one by clicking the **+** after the Trigger module in your Make scenario, searching for **ChatConnectX**, and selecting the appropriate Action.

### Manage Contacts

| Action                            | Function                                                                                  |
| --------------------------------- | ----------------------------------------------------------------------------------------- |
| **Create contact**                | Creates a new contact in the workspace.                                                   |
| **Update or create contact**      | Updates an existing contact or creates one if it does not exist.                          |
| **Get contact**                   | Retrieves a contact by `id`, `email`, or `phone`, including Tags and Custom Field values. |
| **List contacts**                 | Lists contacts with optional filtering by name, email, or phone number.                   |
| **Find contacts by custom field** | Finds contacts whose Custom Field value exactly matches the value you specify.            |
| **Delete a contact**              | Permanently deletes a contact by `id`, `email`, or `phone`.                               |

### Update Tags and Custom Fields

| Action                            | Function                                                                       |
| --------------------------------- | ------------------------------------------------------------------------------ |
| **Add tags to contact**           | Adds up to 100 Tags. Tags already assigned to the contact are skipped.         |
| **Remove tags from a contact**    | Removes Tags from a contact without deleting them from the workspace.          |
| **Set custom fields to contact**  | Sets up to 20 Custom Field values on a contact.                                |
| **Delete a contact custom field** | Clears a Custom Field value from a contact while keeping the field definition. |

### Send Content and Perform Advanced Tasks

| Action               | Function                                                                                      |
| -------------------- | --------------------------------------------------------------------------------------------- |
| **Send message**     | Sends a text message of up to 1,000 characters to a contact who has an existing conversation. |
| **Send flow**        | Sends a published Flow to a contact.                                                          |
| **Make an API call** | Performs a custom task through the ChatbotX API using the current Connection.                 |

<Warning>
  **Delete a contact** is permanent and cannot be undone. Always verify the contact identifier before running a scenario with live data.
</Warning>

## Example: Send a Flow with Make

Suppose Make receives customer information from an external form. Use **Send flow** to deliver a confirmation or consultation Flow through the contact's most recently used channel.

<Steps>
  <Step title="Choose Send flow">
    Add a new ChatConnectX module to your scenario and select **Send flow**.
  </Step>

  <Step title="Choose a Connection">
    Select your existing Connection, or click **Add** to create one.
  </Step>

  <Step title="Enter the Contact identifier">
    Enter or map the contact identifier. You can use the `Contact ID` from the Trigger output. Make also accepts `id:123456`, `email:user@example.com`, or `phone:+84912345678`.
  </Step>

  <Step title="Choose the Flow">
    Enter the ID of a published Flow. Enable **Map** if the Flow ID comes from a previous module.
  </Step>

  <Step title="Choose an Inbox">
    Select a specific **Inbox** to send through a particular channel, or leave it empty to use the contact's most recently active channel.
  </Step>

  <Step title="Save and test">
    Select **Save**, then select **Run once** to test the scenario.
  </Step>
</Steps>

<Note>
  The contact must already have an existing conversation before they can receive a Flow through Make. If **Inbox** is left empty, ChatbotX uses the contact's most recently used channel.
</Note>

## Test the Scenario Before Enabling It

<Steps>
  <Step title="Receive sample data">
    Select **Run once** in Make, then trigger the Flow or data source that should activate the Trigger.
  </Step>

  <Step title="Check the output">
    Open **Operation 1** and confirm that all required fields contain the correct data.
  </Step>

  <Step title="Verify the Action">
    Confirm that the Action succeeds and the contact receives the correct content or data update in ChatbotX.
  </Step>

  <Step title="Enable the scenario">
    After a successful test, enable the scenario schedule so Make processes future runs automatically.
  </Step>
</Steps>

If the scenario does not run, check the Connection status, review the data in the Operation output, and confirm the scenario's enabled status in Make.
