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

# Zapier, Make & n8n

> Connect Voxworks to Zapier, Make, or n8n using inbound webhook triggers, the Send Webhook tool and automation Webhook destinations, and the REST API.

## What are the Zapier, Make & n8n integrations?

Voxworks doesn't ship a purpose-built app inside Zapier's, Make's, or n8n's own app directories. Instead, you connect these platforms to Voxworks the same way any external system does — through three general-purpose building blocks:

* **Inbound Webhook triggers** — an Automation that starts when Zapier, Make, or n8n posts a JSON payload to a Voxworks URL. Use this to turn a form submission, a new CRM record, or any event in your other tools into a Voxworks contact or an outbound call.
* **Webhook destinations** — the **Send Webhook** tool inside a call script, or a **Webhook** destination step inside an Automation pipeline — post JSON out to a URL that Zapier, Make, or n8n is listening on. Use this to hand call data to a workflow the moment a call ends (or mid-call).
* **The REST API** — authenticated HTTP endpoints your automation platform's own HTTP or webhook modules can call directly, for full control over contacts, calls, and other records without building a Voxworks Automation in between.

This page maps each of those three mechanisms into concrete recipes for Zapier, Make, and n8n.

***

## Before you start: what the Integrations page "Connect" button does

**Admin > Integrations** lists **Zapier**, **Make**, and **n8n** as cards in the **Available Integrations** section, each categorised as an automation integration with a description ("Connect to thousands of apps through Zapier", "Visual automation platform to connect apps and automate workflows", "Workflow automation tool for technical teams"). Clicking **Connect** opens a dialog asking for an **API Key**: "Enter your \[name] API key to establish the connection."

Be aware of what this does and doesn't do:

* Connecting stores the key you paste (encrypted) against your team. It does **not** verify the key against Zapier, Make, or n8n at connect time.
* Opening **Integration Settings** on a connected card shows "No tools are currently available for this integration" — and the card's own footer reads **"No tools yet"**. No script tool or calendar-booking flow currently reads this connection.

In practice, connecting the card by itself does nothing for your call scripts or automations. The working integration surface — the one that actually moves data — is the webhook and API mechanisms described below, which don't require connecting these cards at all.

<Note>
  Integrations are typically built out for specific clients, so the full functionality of a given third-party application's interface might not be available. If your team needs additional features from Zapier, Make, n8n, or any other connected application, contact the Voxworks team directly to discuss what can be added.
</Note>

***

## Direction 1: Zapier, Make, or n8n → Voxworks

Use this direction to turn an event in another app (a new form submission, a CRM deal, a support ticket) into a Voxworks contact, a stored value, or an outbound call.

### Step 1 — Create the Inbound Webhook trigger

1. In the sidebar under **Outbound Calls**, open **Automations**.
2. Click **New Automation**. In the **Create New Automation** dialog, choose the **Inbound Webhook** trigger option and click **Create & Configure**.
3. On the automation's **Pipeline** tab, the **Trigger Configuration** panel shows:

| Field                  | Description                                                                                                                                                                                              |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Webhook URL            | A generated, read-only URL in the form `.../api/v1/hooks/{token}` — copy it with the button next to the field rather than retyping it.                                                                   |
| HMAC Secret (optional) | Leave blank to accept unsigned requests, or set a secret so Voxworks can verify the request came from you. See [Automation Triggers](/automations/triggers) for how the signature is applied.            |
| Sample Payload (JSON)  | Paste an example of the JSON body Zapier/Make/n8n will send, e.g. `{"phone": "+1234567890", "name": "John Doe"}`. This populates the field pickers in the rest of the pipeline — it isn't sent anywhere. |

A **Copy cURL Command** button generates a ready-to-run `curl -X POST` example against your webhook URL for testing before you touch Zapier, Make, or n8n at all.

### Step 2 — Point your workflow at the webhook URL

* **Zapier** — after your trigger step (Google Sheets, Typeform, a CRM, and so on), add a **Webhooks by Zapier** action step, choose **POST**, and paste the Voxworks webhook URL. Map the fields you want to send into the request body.
* **Make** — add an **HTTP > Make a request** module as the next step in your scenario, set the method to **POST**, paste the Voxworks webhook URL, and build the JSON body from the previous module's fields.
* **n8n** — add an **HTTP Request** node after your trigger node, set it to **POST**, paste the Voxworks webhook URL, and set the body to the JSON you want to send.

If you set an HMAC Secret, add the corresponding signature header in the same step, generated by whichever module your platform uses to compute an HMAC (Zapier's Code step, Make's built-in `hmac` function, or n8n's Crypto node).

### Step 3 — Turn the payload into a contact, a call, or stored data

Build the rest of the pipeline on the **Pipeline** tab using the trigger payload as the data source:

* **Upsert Contact** — matches an existing contact on **Phone Number** or **Email**, then field-maps values from the trigger payload (for example `trigger.phone` → Phone Number, `trigger.name` → Full Name) to create or update the contact.
* **Create Call** — starts an outbound call. Choose a **Script**, and set the **Phone Number Path** to a dot-notation path into the execution context — `trigger.phone` for the raw webhook field, or `contact.phone_number` if an Upsert Contact step ran first. **From Number** is optional and falls back to the script's default trunk number if left blank.
* **Upsert Custom Variable** — writes trigger fields into a [custom variable](/custom-variables/overview) type instead of (or alongside) a contact, for structured data that doesn't belong on the contact record.
* **Transform** and **Condition** steps sit in between to reshape fields or branch the pipeline (for example, only place a call when a `qualified` field from the trigger is true).

**Example recipe:** a Zapier Zap watches a lead-capture form, then POSTs the lead to your Inbound Webhook trigger. The pipeline runs Upsert Contact (matched on Phone Number) followed by Create Call against a "New Lead Qualification" script, so the assistant calls the lead within moments of the form submission.

***

## Direction 2: Voxworks → Zapier, Make, or n8n

Use this direction to hand call data, a booking, or an event to a workflow in Zapier, Make, or n8n. There are two places to send it from, depending on when you need the data to move.

### Mid-call: the Send Webhook tool

Add the **Send Webhook** tool to a step in a call script when the assistant needs to push data out — or pull a response back — **while the call is still in progress**. Because it runs synchronously inside the call, keep the endpoint fast: the request times out after 10 seconds with no retry, so a slow Zapier/Make/n8n workflow can introduce a noticeable pause for the caller.

| Input        | Type                                           | Literal or variable                                        | Description                                                                                                                                                                         |
| ------------ | ---------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| URL          | string (url)                                   | either                                                     | The webhook endpoint — for example, a Zapier **Webhooks by Zapier > Catch Hook** URL, a Make **Custom webhook** trigger URL, or an n8n **Webhook** node URL.                        |
| Method       | string (select: GET, POST, PUT, DELETE, PATCH) | literal                                                    | Defaults to POST.                                                                                                                                                                   |
| Headers      | object (key-value)                             | either (values may contain variables)                      | JSON headers, e.g. `{"Authorization": "Bearer {{custom.api_token}}"}`. Store the token itself in a [custom variable](/custom-variables/overview) rather than typing it in directly. |
| Body         | json (string template)                         | literal template with `{{...}}` substitution               | The JSON body sent to the endpoint, e.g. `{"name": "{{contact.full_name}}", "phone": "{{contact.phone}}"}`.                                                                         |
| Response Map | object (key-value)                             | keys are variable references, values are literal dot-paths | Maps response JSON fields to variables. An empty path writes the whole response body.                                                                                               |

**Variables this tool writes**

| Variable                                      | Type                    | Example                                           | Description                                                                                                              |
| --------------------------------------------- | ----------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `{{webhook.response}}`                        | string                  | `{"status": "ok", "data": {"lead_id": "L-1042"}}` | The conventional catch-all target — map it with an empty Response Map path to capture the entire JSON response body.     |
| any `{{...}}` key you add to the Response Map | matches the mapped path | `{{custom.lead.id}} = "L-1042"`                   | Written only when the request returns HTTP 2xx; a non-2xx response or network failure leaves mapped variables untouched. |

The tool's output routes `true` on a 2xx response and `false` otherwise — route the failure path deliberately if the workflow's result matters to the rest of the call.

### After a call or on other events: the Webhook destination step

For anything that doesn't need to happen mid-call, build an Automation instead. Automations can start from **Call Completed**, **Call Scheduled**, or **Notification Created** (currently in beta, available to selected invites only; the **Integration Event** trigger's configuration screen isn't available yet — it shows "will be available in a future update"). Add a **Destination** step, set its **Destination Type** to **Webhook**, and configure:

| Field                    | Description                                                                                                                                                          |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Method                   | GET, POST, PUT, or PATCH.                                                                                                                                            |
| URL                      | The Zapier/Make/n8n webhook URL — supports variable placeholders.                                                                                                    |
| Headers                  | Key/value header pairs, with variable support — the same place to reference a [custom variable](/custom-variables/overview) holding an auth token or signing secret. |
| Body Template (optional) | A JSON template built from the automation's [field mapping](/automations/field-mapping) context, e.g. `{"result": "{{call.call_summary}}"}`.                         |

**Example recipe:** an Automation triggers on **Call Completed**, filtered to your outbound sales scripts, and its Destination step POSTs the call summary and outcome to a Make **Custom webhook** trigger URL — which then updates a spreadsheet and posts a Slack message, entirely inside Make.

Check outcomes for both destinations in the automation's **Execution Log** tab — see [Execution Log & Monitoring](/automations/execution-log).

***

## Direction 3: Full control with the REST API

For workflows that need to reach further than a single pipeline run — polling call status, reading back a transcript, or driving Voxworks from a scheduled Zapier/Make/n8n job rather than a webhook — point your platform's native HTTP or webhook module at the Voxworks REST API directly, using an API key generated under **Settings > API Keys**.

* **Zapier** — the built-in **Webhooks by Zapier** action (or a **Code** step) can call any Voxworks endpoint with the API key in the `Authorization` header.
* **Make** — the **HTTP > Make a request** module handles authenticated requests the same way.
* **n8n** — the **HTTP Request** node, with header authentication configured against your Voxworks key.

Typical uses include creating or updating a contact and scheduling a call from outside a webhook-driven pipeline. See [API Keys & Authentication](/api-reference/authentication) for generating and scoping a key, [API Quickstart](/api-reference/quickstart) for a first end-to-end request, and [REST Endpoints](/api-reference/overview) for the full reference.

***

## Choosing a direction

| You want to...                                                                        | Use                                               |
| ------------------------------------------------------------------------------------- | ------------------------------------------------- |
| Start a Voxworks call or create/update a contact from an event in another app         | Direction 1 — Inbound Webhook trigger + pipeline  |
| Have the assistant fetch or push data mid-call                                        | Direction 2 — Send Webhook tool                   |
| Hand off call data to a workflow once the call (or another event) finishes            | Direction 2 — Automation Webhook destination step |
| Poll, query, or drive Voxworks on your own schedule rather than reacting to a webhook | Direction 3 — REST API                            |

***

## Next Steps

* [Automations](/automations/overview) — triggers, pipeline steps, and how a pipeline runs end to end.
* [Automation Triggers](/automations/triggers) — full detail on the Inbound Webhook trigger, including signature verification.
* [Send Webhook](/tools/webhook) — the full field-by-field reference for the mid-call webhook tool.
* [Integrations Overview](/integrations/overview) — how connections, connection statuses, and tool gating work across your team.
