Buni.aiDocs
Voice (IVR)
Voice (IVR)

Calls in several languages

Speak to each caller in their own language, let them pick one on the keypad, and know which languages have a voice.

With built-in translations, you write each prompt once and add its translations, and Buni.ai speaks each caller's language. The keys a caller presses never change, so your flow routes the same way in every language.

Set up the languages

Open Project settings and select the Languages tab.

SettingWhat it does
Your flow is written inThe language your prompts are written in. A caller Buni.ai has no other language for hears these.
Languages you serveThe languages you translate into. A prompt is only spoken in a language listed here.
For other languages, useWhich served language a caller gets when theirs isn't served. For example, Wolof speakers can hear French instead of the original.
Remember each caller's languageOn by default. Saves the language a caller picks on their contact, so their next call, chats and SMS use it too.

Language settings are built into your flow when you publish. Save, then republish for them to reach callers.

Which language a caller hears

Each call is in the first of these that Buni.ai has:

  1. The language the caller picked in a keypad language menu, on this call.
  2. The language saved on their contact, from a language menu on an earlier call, or from conversations with your chatbots or USSD service.
  3. The original, as you wrote it.

The language is in {{state.lang}}, so a Router can branch on it, for example state.lang === "fr".

Translate a prompt

  1. Open a voice node, such as Call Start, Play or IVR Menu. Under Translations, pick a language.
  2. Each thing the node says is listed with its original above an input for the translation.
  3. Save the node, then republish.

Only text-to-speech prompts are translated. An uploaded audio file or an audio URL has no words to translate, and an SSML prompt is left as written. A warm transfer's Say to the person answering is not translated either: the agent hears it, not the caller.

A translation uses the original's variables, such as {{state.accountNumber}}, and can't add one of its own. A prompt with no translation in the caller's language is spoken in the original.

To translate every prompt at once, open the canvas's More menu and select Translations. See The Translations workspace, which works the same way for voice, including Translate with AI and translator sheets.

Languages with a voice

A translation is spoken in its own language, with the carrier's voice for that language rather than the flow's voice, which speaks the original's. These languages have a voice: English, French, Spanish, Portuguese, German, Italian, Dutch, Arabic, Hindi, Swahili, Chinese, Japanese, Korean, Russian, Turkish and Polish.

A language without one, such as Kinyarwanda or Twi, can still be translated, but callers in it hear the original prompts for now. The node's Translations section and the publish both say so.

With an AI voice (see Voice settings), translations are spoken with it, in their own language.

Gather Input listens for speech in the caller's language, unless the node sets a language of its own.

Let callers choose a language

  1. Add an IVR Menu node, usually right after Call Start.
  2. Under Options, select Language menu. It adds one option per language the project serves, each named in its own language, and, if the menu has no prompt yet, a prompt that reads them out, such as "For English, press 1. For Français, press 2."
  3. Connect each option to where the call goes next. They can all go to the same node.

When a caller presses one, every prompt from the next one on is in that language, and with Remember each caller's language on, it is saved on their contact. Their next call starts in it.

In the call simulator, the language menu works the same way, but a simulated call saves nothing on any contact.

AI voice agents

An AI Voice Agent is told the caller's language, answers in it, and listens for it, unless the node sets a language of its own. A caller who speaks to it in another language is answered in theirs.

Last reviewed 7 October 2026

On this page