> ## 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 AI Updates for June, 2026

> Explore the latest features and improvements introduced in June 2026 for Bolna Voice AI agents.

<Update label="29th June, 2026">
  ## Per-account concurrency for sub-accounts

  Organizations can now split their concurrency pool across the main account and each sub-account using two settings per account:

  * **`min_concurrency`** — concurrency guaranteed to an account even when the organization is at capacity
  * **`max_concurrency`** — the account's hard cap; leave it unset for an **elastic** account that bursts into the organization's unused capacity, or set `0` to pause it

  Guarantees are honored first each scheduling cycle, spare capacity is then shared fairly among accounts that still have calls waiting, and anything that doesn't fit is queued and dialed as capacity frees up. Edits are validated so per-account minimums and maximums always stay within the organization envelope.

  Set the limits when you [create](/docs/api-reference/sub-accounts/create) or [update](/docs/api-reference/sub-accounts/patch_update) a sub-account (organization admins only). Learn more in [Concurrency management](/docs/enterprise/concurrency-management).
</Update>

<Update label="27th June, 2026">
  ## Soniox Real-Time Transcriber (Speech to Text)

  Bolna now supports **Soniox** as a streaming transcriber, powered by its real-time `stt-rt-v5` model. A single Soniox model transcribes whatever is spoken — including mid-sentence switches between English and a regional language (Hinglish and similar) — over one connection, with no per-language switching.

  Highlights:

  * **Native multilingual + code-switching** in a single stream
  * **Semantic endpoint detection** for low-latency, natural turn-taking
  * **Per-token language identification**
  * Works for both telephony and web calls

  Select **Soniox v5** in the Audio tab and choose the multilingual option (auto-detect) or a specific language such as Hindi. Learn more in the [Soniox transcriber documentation](/docs/providers/transcriber/soniox).
</Update>

<Update label="23rd June, 2026">
  ## Typed Variables for Graph Agent Routing

  Expression edges in graph agents can now declare the **type** of the values they compare. Add a `variable_types` map to the graph config and both sides of a comparison are converted before matching, so a value that arrives as a string (like `"18"` or `"true"`) still compares correctly against a number or boolean.

  ```json theme={"system"}
  "variable_types": {
    "recipient_data.age": "number",
    "recipient_data.hold_status": "boolean"
  }
  ```

  Supported types are `string`, `number`, and `boolean`. Learn more in [Edges & Routing](/docs/graph-agent/edges-and-routing#typed-variables).
</Update>

<Update label="23rd June, 2026">
  ## Per-Node Tools and Call Ending for Graph Agents

  Graph agent tools can now be limited to specific nodes. Add `scope: "node"` and a `nodes` list to a tool in `tools_params`, and the LLM only sees that tool while the call is on those nodes. This prevents wrong tool calls and keeps each step focused.

  ```json theme={"system"}
  "fetch_order_status": {
    "scope": "node",
    "nodes": ["collect_order", "confirm_order"]
  }
  ```

  The same control applies to ending the call: set `function_call: "end_call"` on a node (with `hangup_after_LLMCall: false`) and the call only hangs up from the nodes you choose. Learn more in [Tools & Knowledge Base](/docs/graph-agent/tools-and-rag#limiting-a-tool-to-specific-nodes).
</Update>

<Update label="22nd June, 2026">
  ## Visual editor for graph agents

  Graph agents now have a visual editor in the dashboard. Build and edit your flow on a canvas: add nodes, draw transitions, set per-node instructions, manage variables, test the flow, and track versions, all without hand-editing JSON.

  Learn more in [Using the editor](/docs/graph-agent/using-the-editor).
</Update>

<Update label="19th June, 2026">
  ## Pre-call Webhooks for the Transfer Call Tool

  The built-in **Transfer Call** tool can now fire a **pre-call webhook** — a notification sent to a URL of your choice *before* the call is transferred. A typical use case is sending the transfer reason to your system so a human agent has context the moment the call connects.

  It uses the same two optional fields as custom tools:

  * `pre_call_webhook_param` — the JSON body template to send. This is the on/off switch; if it is not set, no pre-call webhook fires.
  * `pre_call_webhook_url` — where to send it. If left blank, the agent-level Webhook URL is used.

  The body template supports `%(field)s` substitution from the transfer tool's runtime arguments — `%(reason)s`, `%(summary)s`, `%(call_transfer_number)s`, and `%(call_sid)s` (missing fields are sent empty). The webhook is fire-and-forget, so a slow or failing endpoint never blocks the transfer. The body is the same execution record as the post-call execution webhook, merged with your `pre_call_webhook_param` fields. In the dashboard, the Transfer Call modal adds a **Send a pre-call webhook before transfer** toggle that reveals the URL and parameters inputs.

  Learn more in the [Transfer Call documentation](/docs/tool-calling/transfer-calls#pre-call-webhook).
</Update>

<Update label="18th June, 2026">
  ## Global Knowledge Base for Graph Agents

  Graph agents can now use one knowledge base across every node. Set `rag_config` once at the top level of the graph config and all nodes use it, while any node can still override it with its own `rag_config`. You can also search several collections at once by passing `vector_ids` instead of a single `vector_id`.

  ```json theme={"system"}
  "rag_config": {
    "vector_store": {
      "provider_config": { "vector_ids": ["policies_v1", "faqs_v2"] }
    },
    "similarity_top_k": 10
  }
  ```

  Learn more in [Tools & Knowledge Base](/docs/graph-agent/tools-and-rag#knowledge-base).
</Update>

<Update label="13th June, 2026">
  ## Studio — Production-Ready Agents from a Short Brief

  Introducing **Studio** — Bolna's AI-powered prompt generation tool. Go from a short description of your use case to a fully structured, production-grade voice AI agent — no prompt engineering required.

  How it works:

  * Fill in a 3-step form (Identity & Goal → Conversation → Closing) or upload a document (PDF, DOCX, TXT, CSV) and let the builder extract the details automatically
  * The more context you provide, the better the agent — you can do both
  * The pipeline selects the right modules, writes the full prompt, runs a safety check, and auto-selects the best voice for your language and gender settings
  * The agent is saved and ready to make calls when done

  Click **+ New Agent → Auto Build Agent** in the dashboard to get started.

  Learn more in the [Studio documentation](/docs/agent-setup/agent-builder).
</Update>

<Update label="12th June, 2026">
  ## Pre-call Webhooks for Custom Function Tools

  Custom function tools can now fire a **pre-call webhook** — a notification sent to a URL of your choice *before* the tool's main API call runs. A typical use case is a tool that transfers the call, where your system needs the transfer reason *before* the transfer happens.

  Two new optional fields on every custom tool:

  * `pre_call_webhook_param` — the JSON body template to send. This is the on/off switch; if it is not set, no pre-call webhook fires.
  * `pre_call_webhook_url` — where to send it. If omitted, the agent-level Webhook URL is used.

  The webhook is fire-and-forget, so a slow or failing endpoint never blocks the function call. The body is the same execution record as the post-call execution webhook, merged with your `pre_call_webhook_param` fields. The dashboard's custom tool configuration adds matching **Pre-call webhook URL** and **Pre-call webhook parameters** inputs.

  Learn more in the [Pre-call Webhooks documentation](/docs/tool-calling/custom-function-calls#pre-call-webhooks).
</Update>

<Update label="5th June, 2026">
  ## Bolna Skills — AI Coding Assistant Integration

  Introducing [Bolna Skills](/docs/build-with-ai/skills) — structured instructions that teach AI coding assistants like **Claude Code**, **Cursor**, and **Codex** to build, deploy, and operate Bolna voice agents using natural language prompts.

  Install with a single command:

  ```bash theme={"system"}
  npx skills add bolna-ai/skills
  ```

  Once installed, your AI assistant can:

  * **Create agents** — configure LLM, voice, transcriber, telephony, and tools in one shot
  * **Make calls** — place outbound calls with dynamic variables and auto-retry
  * **Run batch campaigns** — launch CSV-driven outbound campaigns at scale
  * **Set up inbound numbers** — wire phone numbers to agents with IVR menus
  * **Debug calls** — run symptom-to-fix diagnostics using execution logs
  * **Build graph agents** — create node-based call flows with deterministic routing

  20 skills are available across build, call, monitor, and advanced categories. Supports Claude Code, Cursor, Codex, and any assistant compatible with the [Agent Skills](https://agentskills.io) format.

  Learn more in the [Bolna Skills documentation](/docs/build-with-ai/skills).
</Update>
