Skip to main content

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 or update a sub-account (organization admins only). Learn more in Concurrency management.

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.

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.
Supported types are 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. 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.
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.

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.
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.

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.
Learn more in Tools & Knowledge Base.

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.

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.

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:
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 format.Learn more in the Bolna Skills documentation.