---
title: "Zapier, Make, and n8n"
description: "Connect Chatvox to thousands of apps without code using Zapier, Make, or n8n, with webhooks for events and API calls to chat with agents."
---

:::note[Plan]
Requires the **Standard** plan or above.
:::

You can connect Chatvox to Zapier, Make, n8n, and similar tools in two directions:

- **Chatvox → your tools**: a [webhook](/docs/developers/webhooks) starts a workflow when something happens, for example to add new leads to a Google Sheet or post handoff requests in Microsoft Teams.
- **Your tools → Chatvox**: an HTTP request uses the [REST API](/docs/developers), for example to ask an agent a question from a form or email.

## Start a workflow from a Chatvox event

**Zapier**

1. **Create the trigger**

    Create a Zap with the **Webhooks by Zapier** trigger and choose **Catch Hook**. Copy the webhook URL Zapier gives you.

2. **Add it to Chatvox**

    In Chatvox, go to **Team settings → API & webhooks → Add webhook**. Paste the URL, choose the agent and events (for example **Lead created**), and save.

3. **Send a test event**

    In Chatvox, select **Send test event** from the webhook's **…** menu. In Zapier, select **Test trigger** to load it.

4. **Add your actions**

    Map fields such as `data.lead.name` and `data.lead.email` into the apps you want to update.

**Make**

1. **Create the trigger**

    Create a scenario that starts with **Webhooks → Custom webhook**. Add a webhook and copy its address.

2. **Add it to Chatvox**

    In Chatvox, go to **Team settings → API & webhooks → Add webhook**. Paste the address, choose the agent and events, and save.

3. **Learn the data structure**

    In Make, select **Run once**. In Chatvox, select **Send test event** from the webhook's **…** menu so Make learns the fields.

4. **Add your modules**

    Map fields such as `data.lead.email` into the next modules.

**n8n**

1. **Create the trigger**

    Add a **Webhook** node, set the HTTP method to **POST**, and copy its **Production URL**. Your n8n instance must be reachable over HTTPS from the internet, so n8n Cloud or a self-hosted instance on a public domain works, but `localhost` doesn't.

2. **Add it to Chatvox**

    In Chatvox, go to **Team settings → API & webhooks → Add webhook**. Paste the URL, choose the agent and events, and save.

3. **Activate and test**

    Activate the workflow, then select **Send test event** in Chatvox.

4. **Verify the signature (optional)**

    To reject fake requests, add a **Code** node that checks the signature as described in [Verifying Webhooks](/docs/developers/verifying-webhooks). Turn on **Raw Body** in the Webhook node's options so the body matches what Chatvox signed.

:::tip
To send each agent's events to a different place, add one webhook per agent and choose that agent in **Agent**. For example, send Agent A's leads to Zapier and Agent B's to n8n.
:::

## Call Chatvox from a workflow

Use the tool's HTTP request step to call the [REST API](/docs/developers):

| Setting | Value |
| --- | --- |
| **Method** | `POST` |
| **URL** | `https://my.chatvox.co/api/v1/agents/AGENT_ID/messages` |
| **Header** | `Authorization: Bearer cvx_your_key` |
| **Header** (recommended) | `Idempotency-Key`: a value that's unique for each run, such as the trigger's record or message ID |
| **Body (JSON)** | `{"message": "Text to send to the agent"}` |

The `Idempotency-Key` header stops a retried step from sending the same message twice. See [Retry safely](/docs/developers/agents-and-chat#retry-safely-with-an-idempotency-key).

The agent's answer is in `reply.content` in the response. In Zapier use **Webhooks by Zapier → Custom Request**; in Make, **HTTP → Make a request**; in n8n, the **HTTP Request** node.

Create a separate [API key](/docs/developers/api-keys) for each tool, and use **Selected agents** to limit what it can reach.
