Changelog
What's new in volai
Selected changes that affect how you use volai - not every commit, just what's visible from the API, the MCP server or the portal.
Monthly plan with a monthly credit for calls, SMS and numbers
An optional monthly plan now sits next to credit billed by the second: for 490, 990 or 1,990 CZK per month excluding VAT you get a monthly credit of 600, 1,300 or 2,800 CZK that is spent first at the standard price list. Unused monthly credit expires at the end of the period and is non-refundable (a consumer may withdraw within 14 days with a proportional payment under the terms); topped-up credit does not change, it never expires and is refundable on request. When you start the plan you choose what happens once the monthly credit is used up: either credit is topped up from the saved card, or a spending cap applies and nothing more is bought, so you pay at most the price of the plan in a month. The offer is off for every account for now and will be switched on gradually after production verification and a pilot; the API and MCP gained endpoints and tools to read, start (by link), change and cancel the plan, but raising what is charged to the card always needs a person to confirm it in the portal.
Call goal evaluation is saved again
From 16 September 2026, the goal evaluation (Achieved, Not achieved, Unclear) was not shown for calls on volai's own engine, because the portal discarded it due to an error in processing the engine's results. The error is fixed and new calls have the evaluation again in the portal, in the after-call e-mail, in the summaries and in the API. Calls from that period do not have an evaluation yet.
SMS number add-on: receive SMS and reply from your own number
volai can now receive SMS too, with the SMS number add-on. A Czech mobile number of your own costs 390 CZK per 30 days excluding VAT with received SMS included: you see the messages in the portal, over the API, MCP and webhooks, and you can reply from your number for 1.90 CZK per segment. Voice numbers still do not receive SMS, without your own number SMS still go out under the name SMSinfo, and we do not guarantee delivery of verification codes from other services.
Silence floors at the end of a reply for dictated numbers and long speech
An agent on volai's own engine can wait until the caller finishes a number or takes a breath after a long stretch of speech. Two new silence floors keep the reply open a little longer only where callers typically continue: when the reply ends with a group of digits (a caller dictating a phone or company number group by group) and after speech longer than a set threshold. Set them in the agent's detail (Advanced tab, End of reply card), over the API or MCP; the recommended first step for Czech agents that take dictated numbers is 800 ms. Agents without a setting behave as before.
Strict language lock for speech recognition and dropped lines from the greeting window
An agent on volai's own engine can have a strict language lock for speech recognition: the transcript then sticks to the agent's language, so a short "Ano" on an outbound call is not written as a foreign word or in another script. Turn it on in the agent's detail (Advanced tab), over the API or MCP; we recommend it only for Czech agents with outbound calls, not for Slovak ones. The call detail also shows what the person who answered said during the agent's first line that the engine deliberately did not take (a "Hello?" or their name) - such a call used to look as if the person had stayed silent.
Default variable values for inbound calls
When an agent's first line or instructions use a variable you supply when dialing an outbound call (such as an opening question), it stayed empty on inbound calls and the line ended without a question. You can now give the agent default values for these variables on inbound calls, so the caller hears the whole line. Set over the API and MCP, for agents on the engine and on ElevenLabs alike.
Ring: open gates and locks with a single request
The new ring feature calls a number from your volai number, lets it ring for at most the chosen number of seconds and hangs up; the call never connects. It is meant for GSM gates, barriers and locks that open when they see a call from an allowed number: add your volai number to the gate's allow list and your app then opens the gate with one request. Rings do not count towards the automatic blocking of numbers after unanswered calls. The price is CZK 0.25 per attempt excluding VAT; if the other side answers, the connected seconds are billed on top at the outbound call rate. The portal has a Ring button on every number and rings show up in Calls.
A newly connected number now shows up from the very first outbound call
If you connected a number to an agent and called out right away, the person you called could see volai's demo number +420 266 266 641 instead of yours for several hours, and calling back reached the demo agent. Your number now shows from the first call, and if the setup ever fails while connecting, it completes on its own within an hour. Numbers you already have are not affected - they are all set.
Fixed Vapi guide: a BYO SIP trunk without login credentials
The Vapi guide said to fill in a username and password for a BYO SIP trunk address, but with them the inbound call never connects. The guide on the website, in the portal, in the docs and in MCP now says to leave both fields empty and explains how to enter the netmask 24 in the gateways and which address a Vapi organization in the EU region uses. volai no longer saves a username and password for a Vapi BYO trunk address.
First-line protection and a custom silence reminder in the portal, API and MCP
For outbound calls of an agent on volai's own voice engine, you can now protect the first line from being interrupted by a short reaction from the person who answered ("Hello?", "Yes?"), and set your own silence reminder sentence instead of the default reminder for the agent's language. Both are optional and, unset, the agent plays as before. The call transcript now marks an agent line the caller interrupted.
SMS are outbound only and go out under the name SMSinfo
We clarified how volai handles SMS: it only sends messages, under the shared sender name SMSinfo, which recipients cannot reply to. volai numbers receive calls only, and volai does not receive or forward SMS. Earlier updates mentioned a "volai" sender - that is only an internal label on the message, recipients never see it.
A call where a person spoke first is no longer treated as a call with an automated caller
A call in which the caller first talked to your agent and only afterwards just a repeated message was left on the line (for example because the caller put the call on hold) is treated as an ordinary call: it keeps its summary and is billed like any other call. The "Automated caller" label stays only on a call in which no longer sentence was heard besides the repeated message.
A call with an automated caller no longer needs attention, a call with a person is always billed
A call with an automated caller on the other end no longer shows up among the calls that need attention, and the weekly summary does not count it as a handled call or as a caller. It stays in the Calls history labeled "Automated caller". A call where a person spoke up during the wait is billed like any other call, even when its processing arrives late.
A call with an automated caller on the other end is labeled and not billed
When the caller is not a person but an automated system that keeps repeating the same message (for example a queue or a dialer), volai ends such a call after briefly waiting for a human. In the Calls list you now see it labeled "Automated caller" and you pay nothing for it - the price is 0 CZK. This applies to calls of up to five minutes, which is the usual length of such a call; a much longer call is billed like any other. A call where a person spoke up during the wait and the agent carried on with them stays an ordinary call.
An agent whose language you change to Czech or Slovak moves to the own voice engine
An agent created in English, German or Polish starts on the standard ElevenLabs platform. When you later changed its language to Czech or Slovak, it stayed there with the Katty voice and without the Milena, Tereza, Jan and Marek voices. Now it moves to volai's own voice engine by itself after saving and gets the new language's default voice (Milena, Katarina), just like a newly created agent; you can pick another voice in the Voice tab. The voicemail note for an agent on ElevenLabs now says what to actually do: write to podpora@volai.cz and we will move the agent.
An inbound-only agent no longer loses the Milena, Tereza, Jan and Marek voices
If you turned off "Use for outbound tasks" in the new agent wizard because the agent should only answer incoming calls, a Czech or Slovak agent was created on the standard ElevenLabs platform with Katty as its only voice, without Milena, Tereza, Jan and Marek. The option no longer decides the platform: Czech and Slovak agents are always created on volai's own voice engine and can be used in Tasks either way, so the wizard no longer offers the option for these languages. If an agent was created this way before, support will move it to the engine - just write to podpora@volai.cz.
Tasks: a clearer detail after a pause and an exact explanation of attempts
The detail of a paused or finished task says in one sentence what is happening and what to do next. After you decide about a contact, the task can be started again right from the message. After "Keep reviewing" the keyboard focus returns to the button, so you can carry on from the keyboard. The Overview shows the number of contacts to review even for a task that is waiting for a decision. The calling rules describe attempts and call length in words. The documentation now says exactly that the maximum of attempts is the highest number of automatic dials of one contact, the first call included (1 means no retries; a contact you manually send back for another try gets one more dial), and what counts as an attempt: every attempt where the call could have happened, not one that volai rejected before dialing.
Tasks: a clearer detail and an attempt rejected before dialing no longer counts
The task detail is clearer: a running task shows where to decide, a contact that needs review has a Needs review badge, phone numbers look the same as elsewhere and actions are confirmed right at the contact. The task list and the Overview show contacts waiting for review even for a running task, and links to parts of Settings now jump to the right place even when opened from an email. An attempt that volai rejected before anything was dialed (a blocked, your own or an invalid number, the do-not-call list) no longer counts toward attempts from this version on. When you lift the block, retry and the number still cannot be dialed, the contact does not show "Attempts 2 / 1", because nobody called. Contacts that went through such a rejection earlier keep their previous attempt count.
Tasks: a busy number only waits a moment and a number that cannot be called no longer stops the whole task
When another call to the same number is running right now, the task no longer sends the contact to review: it waits and tries again on its own a little later, and the other contacts keep being dialed in the meantime. If the number stays busy repeatedly, the contact finally waits for your decision. A number that cannot be called (do-not-call list, automatic block, invalid, premium-rate, your own) now stops only its own contact, not the whole task; you decide what to do with it at the end, once the task has finished. For an automatically blocked number the portal has a Lift the block and retry button, and for a contact another attempt cannot help it offers only Skip. The list of contacts waiting for review is easier to understand and the link goes straight to Settings.
Tasks: an unanswered contact is no longer dialed over and over, and a stuck task can be started again
In tasks with more than one attempt, a contact that did not answer the first time could be dialed more often than the task allowed - the calls only stopped once the number was automatically blocked. If you then skipped that contact, the task could not be started again and reported an unresolved reservation even though nothing in it needed attention. Both are fixed: every contact is dialed at most as many times as the task allows, and the affected tasks can be started again. For a contact that cannot be called because of the automatic block or the do-not-call list, the portal now says why and what to do.
Manual suspension of an agent or account by the operator
In justified cases (for example while investigating misuse), the volai operator can manually suspend a single agent or a whole account. A suspended agent can't receive or make calls or send missed-call SMS; on a suspended account, calls through agents, SMS, the API and MCP stop working. Nothing is deleted - settings, history and numbers stay in place, and everything resumes where it left off once restored. A suspended account only sees an explanation page in the portal, with its tax documents to download and a support contact.
The suspicious wording check recognizes more phrasings
The check for suspicious wording in an agent's configuration, draft, tool description, variables and tasks now recognizes more ways of impersonating an authority or another institution and more requests for sensitive information. It is still just a warning you can disregard if this is a legitimate use.
An outbound task waits when the account's lines are full, and the backup sync finds calls with an uncertain dial
An outbound task that hit the account's maximum of concurrent agent calls used to stop with Needs attention and wait for you, even though a line freed up on its own moments later. It now waits a minute and continues by itself; the attempt does not count against the contact. An agent call whose confirmation from the voice engine got lost is now also found by the backup sync with the engine, so it is closed and billed correctly even when the post-call report never arrives either.
An agent call whose confirmation got lost is no longer dropped
When volai's own voice engine placed an agent call but its answer did not reach us in time, the call used to be marked as failed and went unbilled even though it happened. It now stays in the history as started, and we fill in its real outcome and price; a call that never happened is closed as failed at no charge after two hours. The same number stays locked for about 15 minutes in the meantime, so the person does not get two calls.
A flag for suspicious wording in an agent's configuration
When an agent's configuration, draft, tool description, call variables, a task's name or variables, or a trial call prompt contains wording that may come across as impersonating an authority or another institution, or as a request for sensitive information, the portal, REST and MCP now flag it. Nothing is blocked - it's just a warning you can disregard if this is a legitimate use.
Daily outbound call limit raised to 1000 per account
An account can now dial up to 1000 outbound calls a day instead of 200, so campaigns run over the API or as outbound tasks no longer stop in the middle of a working day. The 10 calls per minute limit, at most 2 concurrent agent calls and the in-house voice engine's outbound-minute limit stay the same.
An outbound task no longer gets stuck on a call price and just waits at a limit
An outbound task no longer stays in Needs review forever because of a call that was never dialed: such a call is never billed, so it settles at 0 right away and the task moves on. Skipping a contact whose price is still being verified lets the task continue when it has work left. When a task hits the outbound call limit, it no longer pauses; it waits and continues on its own once the limit frees up. A call by an agent on volai's own engine that was never dialed now shows a price of 0 in the history (for tasks as well as API and MCP calls), and a task that pauses itself after an error now says in the portal why and what to fix.
An exhausted outbound call limit returns 429 with Retry-After
When an account uses up the in-house voice engine's outbound call limit, POST /v1/calls and MCP make_call now return 429 rate_limited with a Retry-After header saying how many seconds to wait. Previously a misleading 502 engine_unavailable made it look like the engine was down, and scripts retried right away. The limit is also counted from the minutes actually called instead of a fixed estimate per call, so short calls use it up much later. An outbound task no longer counts such a rejection as an attempt and pauses until you resume it.
Customer webhooks got an event_id and keep retrying after an outage
The call.completed/call.failed/call.no_answer/call.missed webhook now carries a new event_id field, and a failed delivery no longer gives up after three attempts - it stays queued and retries over the following minutes, up to 5 rounds. Use event_id to filter out a duplicate, in the rare case one arrives more than once.
A warning for variables an inbound call cannot supply
When a connected agent's instructions use a variable an inbound call does not supply (say, one from an outbound campaign), the portal and API now flag it - the same as when the first line is made up only of variables and is empty once they're removed. The warning never blocks saving, publishing or rolling back a draft.
The agent also watches your other calendars
Commitments often live in more than one calendar - rehearsals in one, performances in another. The agent can now take those into account: it still writes only into the one calendar you picked, but it will not offer a time when any of the selected calendars is busy. Pick them in the agent's Calendar tab, up to four. Read-only calendars work too.
The agent no longer asks for a date when you name a day
When a caller says "Tuesday morning", the agent takes the nearest Tuesday and checks the calendar right away. It used to ask for the exact date, an extra step in the conversation.
Missed-call SMS also after voicemail
When an agent's outbound call is answered by voicemail, it counts as a missed call: the other party gets the SMS asking them to call back, the same as when nobody answers. Most people never listen to voicemail, but they do read the SMS.
Calendar: exact time zone offset and alternatives on the right day
When an agreed time gets taken in the meantime, the agent offers free times on the day you agreed on, not the next free time overall.
Calendar in calls: the agent only writes where it can
The Calendar tab in the agent editor now preselects your primary calendar. Read-only calendars, such as public holidays or a colleague's shared calendar, are shown but cannot be selected - the agent could not write an appointment into them. We also fixed the calendar picker that stayed empty after turning the calendar on.
Call rating, day-7 check-in, connecting your own number and more from the paying-customer review
After every call you can rate it good or bad with one click - from the portal, from the call-summary email, and over REST and MCP; "Bad" asks for the reason and saves it as a flagged issue. The test call in the agent editor walks you through it as a real customer and afterwards shows whether the agent met its goal and what it recorded, with a direct step to connect your business number. On day 7 after signup, an account with no outside caller yet gets an email asking whether the agent is picking up calls, with a guide to forwarding your number if not. Your existing number can be connected with a single carrier code, verified with a test call. Both the new-agent wizard and the agent editor know your company name and can load it, along with key facts, from your website. The agent can text the other party after a missed call asking them to call back - turn it on in the editor (after your first top-up) or over REST and MCP, and see the exact text that goes out. A new weekly summary email. Credit shows the VAT-inclusive amount up top with no friction, and auto top-up is only offered after the first payment.
Calendar in the call: the agent finds a free slot and books it on the spot
A voice agent on volai's own engine can check a connected Google or Apple calendar during the call, tell the caller whether a time is free, offer the nearest open slots and book the appointment right there. Availability rules (windows per weekday, appointment length, a buffer between appointments, minimum notice, search horizon) are configured on the agent. The same free-slot search and booking also work outside a call over REST and MCP - handy for your own booking form, for example.
Done for you: extra revision rounds, setup refunds and a landing page
Second wave of Done for you. The revision rounds included in the package (Business 2, Company 3) stay free; any round beyond that costs 490 CZK, deducted from credit once the founder finishes it. When the founder refunds the setup fee (a missed deadline, or the agent not matching the brief), the portal now issues a correction tax document against the original invoice by itself - find it on /credit next to the other documents. The date on a regular credit top-up's tax document now matches the actual moment of payment, not when the Stripe session was created. Done for you now has its own ad landing page at /receptionist-done-for-you.
Turn your agent's laughter on or off, per agent
An agent on volai's own voice engine can laugh back when you or the caller laugh or joke - until now only on the demo line, now available to every agent with a Czech Cartesia voice. In the agent's settings (Voice tab) you choose Automatic (leaves the decision to sensitive-topic detection, like debt collection or healthcare), On or Off. The change takes effect from the next call.
Done for you: volai's founder builds your agent by hand
A new way to start when you don't want to build the agent yourself: describe your business and what the agent should do, and within 24 business hours of payment (weekends don't count, and the Express add-on shortens this to 4 hours) volai's founder builds the finished agent, with a phone number, by hand. The price comes from a fixed catalog (the Business or Company package plus add-ons like calendar booking or a second language) - no haggling over hours. One payment covers the setup fee and a first credit top-up; you're notified once the agent is ready, try a call yourself, and only then launch it - a setup-fee guarantee applies until you do. A small single-person business with light call volume and no integrations gets a simpler Lorela recommendation instead. Start at /done-for-you, the guide is at /docs/done-for-you.
Pick any of your numbers in the agent editor, including forwarded ones
The agent editor used to offer only free numbers, so a number you had temporarily forwarded to your mobile or connected to your own PBX could not be picked there. Now it shows all your numbers along with who answers them right now, and before you publish it tells you what will happen - for example that forwarding is cancelled or saved PBX credentials are deleted.
Publishing a draft no longer touches a number it never decided on
Publishing an agent's draft used to silently disconnect a phone number you had just attached on the Numbers page - hitting Publish was enough to stop the phone ringing, even though the draft never made a decision about the number at all. Now the agent's number only changes when the draft explicitly decides to, and the editor shows upfront exactly what publishing will do. Attaching a number no longer stops a running outbound campaign either.
Technical engine call failure - honestly labeled, never billed
A call on volai's own voice engine that connected but then ended due to a technical error on our side (not the callee's fault) is now honestly labeled "Call ended with a technical error" instead of "Completed by agent". Such a call is never billed. The call summary no longer blames the caller for silence caused by our own failure. An outbound campaign task call in this situation retries automatically, the same as a no-answer - our error must not stop a campaign or block the dialed number.
Silence reminder - configurable in the portal, API and MCP
An agent on volai's own voice engine can now ask once, after a set number of seconds of silence, whether the caller is still on the line. Turn it on and set it from the agent detail - new agents are protected by a default of 10 seconds from now on. The field for an agent on the standard platform (ElevenLabs) is visible, but not editable in the portal - you can set it there via the API or MCP, and it takes effect once the agent switches to volai's own engine.
A simpler portal built around your work
The overview offers direct paths to incoming calls, outbound calls and SMS. Unfinished setup has a clear next step. Prepare and test your agent first, then connect a phone number when needed. During outbound preparation, you can create an agent and return to your draft in the same tab.
SMS after your first credit top-up
Only an account that has topped up its credit at least once can now send SMS from the shared sender "volai". The welcome credit does not cover SMS, not even with a number of your own - you can still try calls and the agent with it. On the SMS page, the portal explains why and links to top-up instead of showing the form.
A deleted tool in a call phase has its own warning
When a call phase references a tool that is no longer on the account, the response says so directly: the tool was deleted and the phase has to be saved without it. It used to advise adding the tool to the agent, which is impossible once the tool is gone.
Clear recovery after revoking an assistant connection
After access is revoked, setup offers the appropriate way to reconnect. Connections using volai sign-in do not ask you to replace an API key.
Katty has working studio and phone previews
The voice picker for ElevenLabs agents now plays Katty in both studio and phone quality. Missing recordings no longer lead to a preview-unavailable message.
Connect your assistant and stay in control of the work
Start by connecting Claude Code or Codex, or choose Continue in the web app. After connection, the overview shows results, work in progress and decisions that need attention. AI assistant is directly in the mobile navigation; manual controls and developer tools remain available.
Language-aware default engine for new agents
The engine default can be enabled for selected languages, Czech and Slovak by default. This rule applies only when the engine default is enabled and available; otherwise new agents start on ElevenLabs. The portal form adapts to the actual provider selection. Existing agents are unaffected.
Split a call into phases with their own instructions
An agent can now have multiple call phases, each with its own instructions, knowledge, tools and opening line. The agent decides when to move to the next phase based on what the caller said. The agent editor has a new Scenarios tab.
The default voice for ElevenLabs agents is Katty
After listening to the candidates we picked Katty as the voice for new ElevenLabs agents - an energetic, trustworthy female voice with clear articulation. It replaces Jana, which was the default for only a few hours; agents created with Jana in the meantime were switched to Katty. Agents with Anet keep speaking as before.
Assistant setup now has a clear finish
Setup is complete after the connection is verified. Example prompts are optional and can be closed. An existing API key does not require another sign-in or creating a task.
Clearer call results and connection guidance
Call filters explain goals versus call status and which filters apply to statistics. A zero count of unachieved goals no longer asks for review. Unavailable integrations do not request credentials. Public MCP guides now lead to the agent-prompt wizard first.
Connect your AI assistant with one prompt and see real outcomes
Copy one prompt into your assistant’s chat. Confirm sign-in on volai.cz; the guide verifies a successful account read. Manual configuration remains available. The overview distinguishes successful, failed and unevaluated call goals. Connecting a source explains where to continue; returning preserves your task draft and refreshes available connections.
New ElevenLabs agents use the Jana voice, softphone registration to a line works
Creating an agent on ElevenLabs works again: ElevenLabs stopped assigning the Anet voice to new agents (its author turned on live moderation), so new ElevenLabs agents get the Jana voice - a warm female voice with clear articulation. Agents that already have Anet keep speaking with it. Registering a softphone to a line (credentials from the number detail) used to be rejected by the carrier; lines are now provisioned correctly and newly bought lines are provisioned automatically.
Connect AI apps by signing in to volai
AI apps can connect to volai through sign-in and explicit consent without copying an API key. View connected apps under API and MCP in the portal and revoke access immediately. Existing API keys continue to work. The plugin includes Codex and Claude manifests; listing in their official directories requires separate approval.
Outbound trunk address is sip.volai.cz, TCP is the recommended transport
Your own agent on ElevenLabs, Vapi or a third-party PBX now sends outbound calls to sip.volai.cz - the same address as the server field. The outbound trunk authenticates with the username and password from the number detail. We recommend TCP for the trunk and registration: a large INVITE may not fit the UDP packet size limit and the platform then refuses to send it at all. Existing setups keep working; switch whenever you like.
SIP details without technical footnotes, a truthful caller number and more reliable call matching
The number detail, the guides and the Advisor now describe connecting your own agent (ElevenLabs, Vapi, a PBX) without technical notes about the network - copy the values from the number detail, the outbound trunk address is the outboundTrunkAddress field. Calls answered on volai's own voice engine show the real caller number; an anonymous caller is marked as anonymous, never as your own number. Inbound calls are matched more reliably, so they no longer show up twice in the history.
Warning when an agent's greeting is too long
Both the agent editor and the new-agent setup now show an estimated spoken length next to the first line (including the call-recording notice) and warn you when it goes over 7 seconds - along with a recommended shape (name, company, a short AI notice and a question) and a button that shortens it to that form, with a confirmation step and an undo. A long greeting raises the risk that a caller hangs up before the agent finishes.
Guides use the same connection name as the portal
Documentation, integration guides and error actions point to AI assistant for access management. MCP makes clear that the voice engine is required to start an outbound task; a task can also be created with an ElevenLabs agent.
Documentation matches assistant onboarding and the actual API capabilities
Start by verifying the connection without a call, then choose a first task. Search finds API and MCP functions beyond the current page; guides align limits, access, calendars and task billing settlement. Examples for Claude Code, Python and other clients are corrected.
An auto-blocked destination can now be unblocked, calls sort by time
An automatic block on a destination, which kicks in after three failed attempts in a day (no answer, busy or rejected), can now be lifted in Settings or via the API and MCP, instead of waiting out the 30 days. The call list now sorts by time, newest first, instead of alphabetically by conversation id. The test call panel now tells an unanswered call apart from an actual failure, and a name written in ALL CAPS gets the correct vocative form (RADEK -> RADKU).
Voicemail detection on outbound calls - the engine recognises it and marks, hangs up, or leaves a message
An agent on volai's own voice engine can now recognise within a few seconds of pickup that a voicemail answered instead of a person. In the agent's settings you choose what happens next - just note it and keep the call going, hang up right away, or wait for the beep and read a message you write. The call list then shows "Voicemail answered" for such an outbound call instead of the usual outcome.
Calls that never connect close right away, answeredBy documented in the schema
When the callee does not pick up or rejects the call, volai's own engine now ends the call itself, reports it, and the call in the portal closes within a minute as No answer instead of waiting for the periodic check. This includes the test call from the agent detail. The machine-readable API schema also states that answeredBy is only sent for outbound calls. Czech e-mails now address you in the vocative case.
Tasks: up to 1000 contacts per task
A single task now takes up to 1000 contacts instead of 100, in the portal, over REST and MCP. The whole task including its variables must fit in 2 MB, otherwise creation fails with a clear error. The task detail lists contacts a hundred at a time and refreshes large tasks less often.
Calls from a SIP client are now billed automatically, fixed duplicate billing
A call dialed directly from a registered SIP client or your own PBX (outside our API) is now billed back automatically from the operator's call log - usually ten to thirty minutes after the call ends, so it won't show up on your credit right away. Our documentation used to promise this without actually doing it; now it does. We also fixed a bug where an outbound call from an ElevenLabs agent to another volai number produced a second, foreign record for the recipient with a foreign transcript and a duplicate charge - the affected record was removed and the credit corrected.
Tasks: a contact under review can be retried or skipped, and a campaign no longer stalls after a couple of calls
A contact that ended up under review (a call without a result, a dial that was not placed, an expired lock) now has Retry and Skip buttons on the task detail. Once no contact is left under review, a task in Needs review moves to Paused and Resume task continues it. Before, there was no way out of that state. Two causes of a campaign stalling after two calls are fixed as well: a call whose result the engine never delivered is closed from the engine's own log instead of waiting two hours, and every finished call frees its place in the limit of two concurrent calls per account. A full concurrency limit no longer sends the contact under review, it is simply retried on the next run.
Tasks: a pasted list of numbers works with a Phone: header, and the task detail shows what the agent still needs before a start
A pasted contact list now goes through even when the phone column is labelled differently from an exact phone - for example Phone:, Telefon or tel. číslo - and a bare list of numbers without a header, one per line, works too. CSV errors are grouped into one line per kind of problem instead of dozens of identical rows, and the preview says how many contacts are ready to call. The task detail also lists what the agent still needs before a start (a published version, a text test) with a link to the place where it is done; a refused start describes the same steps.
answeredBy on outbound calls only, SMS cap without your own number
The answeredBy field (human / voicemail) only makes sense for outbound calls - we used to return it for inbound calls too, where a brief caller reply looked like a voicemail. From this version inbound calls omit the field. An account without its own number and without a top-up can send at most 3 SMS from the shared volai sender; this applies in the portal and over the API alike.
One changelog source for the website, the docs and the API
News on the website, the changelog on the API docs, and the machine-readable changelog now all read from the same source - nothing is written twice, so they cannot drift apart. The RSS feed can now also be requested per area.
Outbound tasks (campaigns) over REST and MCP
Creating, updating, starting, pausing, reconciling, previewing a CSV and deleting an outbound task now also works over the API with the same limits and errors as the portal; MCP has everything except the CSV preview and delete (irreversible actions stay REST and portal only). The portal also got a Delete task button that requires typing the task's name to confirm.
Product news in the portal and by email
The News item in the Developer tools group now shows a count of unseen entries and links to the News page; anyone who does not want to wait for their next portal visit gets a daily email digest of news in their account's language. Sending it can be turned off in Settings.
Your agent in the editor can see your Google Calendar
Connect a Google account in the portal under Connections and the same API key can list calendars and events over REST and MCP and change the title, start or end of an existing event. The interface never creates or deletes events, and every change needs explicit confirmation (confirm: true) after the user approves it - the agent shows the original values and the proposal first. Five GET/PATCH /v1/integrations endpoints and six MCP tools were added (list_integrations, list_calendars, list_calendar_events, get_calendar_event, propose_calendar_update, confirm_calendar_update). Google has not yet verified the sensitive events scope, so connecting shows Google's unverified-app warning; the connection still completes.
API errors now say whose problem they are
Every REST API and MCP error carries a new cause field - request (fix the request), account (change the account state: credit, limits, ownership, verification, or check the id), busy (another operation is still running, wait and repeat the same request) or service (a problem on our or a provider's side, retry shortly) - and an action field with one sentence on what to do. validation messages name the field, the actual value and the accepted maximum instead of the raw validator text. An AI agent in the editor can therefore tell the customer whether to fix the code, the account, wait, or whether the problem is on our side - and no longer reports an input error as a volai outage. The change is additive, no status or code changed; the interface version is 1.3.0.
Your agent in the editor can do the whole account setup
The Overview has a new card, Onboarding through your agent: one click creates an API key and you copy a single sentence into Claude Code, Cursor or another agent. Through the volai MCP server it asks what your voice agent should do, calls you for a test from a demo number and, once you approve, buys a number and puts the agent on it. If you set the account up in the portal instead, the same prompt appears as the last step of the What's left to set up card. The procedure for agents is described in SKILL.md, in the Onboarding section.
Agent drafts in the public API, OpenAPI and a webhook test event
A saved agent draft - save it, optionally try it with a text simulation, then publish it with a single call - is now a full part of the public API and MCP: GET/PUT /v1/agents/{id}/draft, POST .../draft/publish, GET/POST .../draft/operation, POST .../simulate, and four matching MCP tools (get_agent_draft, save_agent_draft, publish_agent_draft, simulate_agent_draft). Simulation is free, optional, and capped at 20 per hour. Added POST /v1/webhook/test (checks delivery regardless of your event subscription) and GET /v1/webhook/deliveries with the last 20 deliveries. GET /v1/calls and GET /v1/messages now return hasMore/nextBefore for pagination with no manual offset math. The whole API also has a machine-readable description at GET /openapi.json. Every error body carries requestId and docsUrl, and every response carries RateLimit-* headers. The public interface version is now 1.2.0 - agent drafts were already public from 5 Sep 2026, but without a stable contract, so they are excluded from the versioning guarantee up to and including 1.2.0 (details in the Versioning section of the REST API docs).
Transfer to a human on volai's own engine keeps the call with volai
The agent on volai's own voice engine now transfers by bridging: it tells the caller it's connecting them, dials your number, and goes silent once you pick up - the call continues between the two of you over volai until one of you hangs up. If you don't answer, the agent apologizes and offers to take a message. The call detail page gained a Transfer card with the outcome and a link to the second leg. On the standard platform, transfer doesn't work, so an agent you turn transfer on for is switched to volai's own engine automatically.
Reason for an unsent SMS, SIP PBX status and GET tools
When the phone network rejects an SMS, the messages list and the API (failReason) now tell you why - most often an emoji the network cannot deliver, or a virtual number that does not receive SMS. Emojis are stopped before sending and we tell you which character is the problem; nothing is charged in that case. A number in the Own SIP PBX mode shows right in its card where inbound calls go (to your PBX, or to devices registered on the volai line) and how the last inbound call went; the phone registration status is shown for a number routed back to the volai line. When the last inbound call to your PBX does not connect, we send you an email - at most once every 24 hours; for a volai line without a registered phone we send a notice at most three times a week. An agent tool using the GET method can be saved again (the voice platform rejected the shape of the query parameters), and a call that came right after a missed attempt by the same caller no longer stays stuck as in progress in the call list.
Five languages, transfer and tools on volai's own engine, agent goal in the API
The voice agent on volai's own engine now also speaks Slovak, English, German and Polish - each language has its own pair of voices, available only for agents on volai's own engine (an agent on ElevenLabs speaks the chosen language with the Anet voice). The engine also now supports transferring to a human, outbound calls and test calls - an agent without its own number makes its test call over the volai line, the callee sees the volai number on their display, and the call is billed like any other outbound call. An agent on the engine can now call your webhook tools too, just like an agent on the original platform always could. The REST API and MCP now accept and return the call goal (goal), the agent's knowledge (knowledge) and the post-call email toggle (notifyEmail) - previously these could only be set in the portal.
Agent templates, a call goal, statistics and the after-call email
You now create an agent in two steps - pick a template for your industry and adjust the text; you can also set a call goal, which is evaluated after the call as met, not met, or unclear. For agents running on volai's own voice engine, an email with the summary arrives after every call - you can turn it off per agent or in Settings, which has a new "When we email you" card. The overview page has a "Needs attention" strip and a sentence on how the last 7 days of calls went, Calls gained filters, search and CSV export, a note and an error flag per call, and the portal gained a whole Statistics page. Forms now carry help right next to the fields, pages have a short intro, and the feedback widget became an Advisor that answers how-to questions about the portal first. The privacy policy now also lists the processors behind volai's own voice engine. At the time of release the agent on volai's own engine did not yet transfer to a human, call out or make test calls, use tools, and spoke Czech only - all of that arrived in the entry above, the same day.
A blog, integrations and an AI receptionist by industry
The website gained a blog with guides and comparisons, an overview of integrations into developer tools, AI receptionist pages for individual industries, and a Twilio migration guide.
Email support actually gets through now
Write to podpora@volai.cz and your message goes straight to the team - we will reply to it by email.
The website and portal, bilingually
The whole public website and the portal now run bilingually - Czech with no prefix, English under /en/. The REST API and MCP server always speak English, regardless of the account's language.
A trial call without a number or an agent
A single API request calls your phone from a shared volai demo line with your own system prompt. No need to buy a number or create an agent first, just hear how it sounds.
The agent can transfer a call to a human
The voice agent can now hand a call off to your own number when a caller asks for a human or hits something the agent can't resolve. The transfer is billed like a regular outbound call, with no agent surcharge.
Call recordings for the voice agent
Every call handled by the voice agent now comes with an audio recording alongside the transcript - play it back in the call detail in the portal. Recording can be switched off per agent, and recordings are deleted after 90 days.
EU businesses pay without Czech VAT
A business registered for VAT in another EU country can add its VAT number in account settings. Once it's confirmed by the VIES register, we invoice without Czech VAT, under the reverse-charge regime.
The agent can call your own endpoint
You can attach a webhook tool to the voice agent - an address it calls during the conversation, using the response to keep talking. Handy for checking an order or an available appointment slot.
Your own voice agent on a volai number
A volai number can now connect to your own voice agent outside volai (ElevenLabs, for example) through a short-lived SIP relay connection, not just to our built-in agent.
A list of numbers not to call
Add a number to your account's do-not-call list and no outbound call will reach it anymore - not from the API, a test call, or relay. SMS is not affected.
Automatic credit top-up
Set a threshold and an amount, and your credit tops itself up from a saved card before it runs out. It has a monthly cap and switches itself off after repeated card declines.
A webhook to your own address
Set an address and volai sends a signed request whenever a call finishes, goes unanswered, or an SMS is sent - five event types in total.
SIP login details for your own client
For a purchased number you can now pull its SIP login details (server, username, password) and register it directly in your own PBX or softphone, not just through the volai portal.
Try volai
Signing up takes a minute, and your first 50 CZK in credit is on us.