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

# Bolna community node for n8n

> Install the official n8n-nodes-bolna community node to make calls, run batches and workflows, manage agents and trigger on call events in n8n.

Bolna publishes a verified [community node for n8n](https://n8n.io/integrations/bolna/) — [`n8n-nodes-bolna`](https://www.npmjs.com/package/n8n-nodes-bolna). Install it once and you get two native nodes in the n8n editor, no HTTP Request wiring required.

> **Bolna**
>
> **Action node.** Make outbound calls, run batch campaigns, run workflows and workflow campaigns, and manage agents.

> **Bolna trigger**
>
> **Trigger node.** Starts your workflow when Bolna posts a call execution update, and registers its own webhook on the agent.

***

## Installation

**1. Open Community Nodes**

In n8n, go to **Settings → Community Nodes → Install**.

**2. Install the package**

Enter `n8n-nodes-bolna` and confirm.

Self-hosted or npm-based setups without the GUI installer: see n8n's [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).

**3. Add your credential**

Create a **Bolna API** credential with your API key from the Bolna dashboard under **Developers → API Keys**.

See the [API quickstart](https://www.bolna.ai/docs/quickstarts/api.md) for generating keys.

***

## Bolna node operations

> **Call**
>
> | Operation | Bolna API |
> | - | - |
> | Make Call | `POST /call` |
> | Get | `GET /executions/{execution_id}` |
> | Get Many | `GET /v2/agent/{agent_id}/executions` |

> **Batch**
>
> | Operation | Bolna API |
> | - | - |
> | Create | `POST /batches` |
> | Schedule | `POST /batches/{batch_id}/schedule` |
> | Get | `GET /batches/{batch_id}` |
> | Get Many | `GET /batches/{agent_id}/all` |
>
> **Create** reads the recipients CSV from an input binary field (default `data`). Wire up an upstream node that produces a CSV binary — **Read/Write Files**, **HTTP Request**, or **Spreadsheet File**.

> **Workflow**
>
> | Operation | Bolna API |
> | - | - |
> | Run | `POST /workflows/{workflow_id}/run` |
> | Get Execution | `GET /workflow-executions/{execution_id}` |
> | Get Many | `GET /workflows` |

> **Workflow Campaign**
>
> | Operation | Bolna API |
> | - | - |
> | Create | `POST /workflow-campaigns` |
> | Upload Entries | `POST /workflow-campaigns/{campaign_id}/entries` |
> | Start | `POST /workflow-campaigns/{campaign_id}:start` |
> | Pause | `POST /workflow-campaigns/{campaign_id}:pause` |
> | Resume | `POST /workflow-campaigns/{campaign_id}:resume` |
> | Abort | `POST /workflow-campaigns/{campaign_id}:abort` |
> | Get | `GET /workflow-campaigns/{campaign_id}` |
> | Get Many | `GET /workflow-campaigns` |
>
> **Upload Entries** accepts either a binary CSV or a JSON array of contact rows.

> **Agent**
>
> | Operation | Bolna API |
> | - | - |
> | Create | `POST /v2/agent` |
> | Get | `GET /v2/agent/{agent_id}` |
> | Get Many | `GET /v2/agent/all` |
> | Update | `PATCH /v2/agent/{agent_id}` |
>
> **Create** builds a single-task conversation agent from three required fields: name, welcome message, and system prompt.
>
> * LLM, synthesizer, transcriber, and telephony choices live under **Additional Fields**.
> * **Additional Agent Config (JSON)** merges into `agent_config` for anything else — webhook URL, guardrails, multilingual config, API tools, routes.
> * The node does not expose Bolna's full nested agent schema as individual fields. For that, use the [Agent API](https://www.bolna.ai/docs/api-reference/introduction.md) directly.

***

## Bolna trigger node

Bolna has no webhook-subscription API, but an agent's `webhook_url` can be set via `PATCH /v2/agent/{agent_id}`. The trigger uses exactly that:

**1. Pick an agent**

Select the agent whose call events should start this workflow.

**2. Activate the workflow**

The trigger points that agent's `webhook_url` at its own URL, **overwriting whatever was configured before**.

**3. Deactivate to clear**

Deactivating the workflow resets the agent's `webhook_url` back to empty.

**Filtering events** — use the **Trigger On Statuses** field:

* Defaults to `completed`, since cost, duration, recording, and extracted-data fields aren't finalized until then.
* Leave it empty to receive every update Bolna sends, including in-progress pre-call webhooks fired by function tools.

> [!WARNING]
>
> Your n8n instance must be reachable from the public internet for the trigger to receive events — a real deployment, or a tunnel like `ngrok` in development. Bolna's servers can't reach a bare `localhost` URL.

> [!NOTE]
>
> Because Bolna can't report back whether a webhook is already registered, the trigger re-registers on every activation instead of checking first. Harmless — it overwrites the same value.

***

## Resources

> **[n8n integrations page](https://n8n.io/integrations/bolna/)**
>
> Bolna's listing on n8n's directory

> **[npm package](https://www.npmjs.com/package/n8n-nodes-bolna)**
>
> `n8n-nodes-bolna`

> **[Source code](https://github.com/bolna-ai/n8n-nodes-bolna)**
>
> GitHub repository

> **[Bolna API reference](https://www.bolna.ai/docs/api-reference/introduction.md)**
>
> The REST API this node wraps


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.