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 capacitymax_concurrency— the account’s hard cap; leave it unset for an elastic account that bursts into the organization’s unused capacity, or set0to pause it
Soniox Real-Time Transcriber (Speech to Text)
Bolna now supports Soniox as a streaming transcriber, powered by its real-timestt-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
Typed Variables for Graph Agent Routing
Expression edges in graph agents can now declare the type of the values they compare. Add avariable_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.string, number, and boolean. Learn more in Edges & Routing.Per-Node Tools and Call Ending for Graph Agents
Graph agent tools can now be limited to specific nodes. Addscope: "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.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.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.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.
%(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.Global Knowledge Base for Graph Agents
Graph agents can now use one knowledge base across every node. Setrag_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.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
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.
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.Bolna Skills — AI Coding Assistant Integration
Introducing Bolna 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:- 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

