> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nixflex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Languages

> Multi-language voice agents with automatic switching

Nixflex agents speak 15+ languages. Each agent runs in one of two modes: locked to a single language, or multilingual.

## The two modes

Set the agent's `language` field to control behaviour:

| `language` value                                    | Behaviour                                                                              |
| --------------------------------------------------- | -------------------------------------------------------------------------------------- |
| A language code (`en`, `ar`, `fr`, `es`, `de`, ...) | **Locked.** The agent replies only in that language, no matter what the caller speaks. |
| `multi` (default)                                   | **Multilingual.** The agent starts in one language and can switch if the caller asks.  |

## Locked single language

When `language` is a specific code, the agent is hard-locked to it. Even if the caller speaks another language, the agent keeps replying in the set language. The greeting is automatically delivered in that language too.

Use this when your business operates in one language only and the agent must never drift.

## Multilingual mode

When `language` is `multi`, the agent follows these rules:

<Steps>
  <Step title="Starts in the prompt's language">
    The agent's starting language is detected from your system prompt. Write the prompt in Arabic and the agent starts in Arabic; write it in English and it starts in English.
  </Step>

  <Step title="Matches the caller on first message">
    If the caller's first message is in a different language, the agent switches to it and locks it.
  </Step>

  <Step title="Switches only on a clear request">
    Mid-call, the agent stays in the locked language. A single foreign word is treated as a borrowed word. A full foreign sentence prompts the agent to ask whether to continue in that language before switching.
  </Step>

  <Step title="Never mixes languages">
    The agent never blends two languages or adds bracketed translations.
  </Step>
</Steps>

## Which language does it start in?

For multilingual agents, the starting language comes from your **system prompt**, not the caller. The engine reads the start of your prompt and detects its language by script (Arabic, Hebrew, Chinese, Japanese, Korean, Hindi, Cyrillic) or by common keywords (French, Spanish, German, Italian, Portuguese, Dutch, Polish). If nothing matches, it defaults to English.

<Tip>
  To make a multilingual agent start in a specific language, write the opening of your system prompt in that language.
</Tip>

For outbound calls there is no preset greeting â€” the agent generates its opener live from the call purpose, so the opening language follows your prompt and purpose.

## Caller language detection

Speech recognition listens multilingually, so the agent can always hear what the caller says â€” even a locked single-language agent hears other languages, it just will not reply in them.

For inbound calls from GCC region numbers (+971, +966, +974, +965, +973, +968), the engine routes to Arabic-first transcription. All other regions use a multilingual model covering the major European languages with auto-detection.

## Supported languages (voice)

| Language           | Code |
| ------------------ | ---- |
| English (US/UK/AU) | `en` |
| Arabic             | `ar` |
| Spanish            | `es` |
| French             | `fr` |
| German             | `de` |
| Italian            | `it` |
| Portuguese         | `pt` |
| Dutch              | `nl` |
| Polish             | `pl` |
| Russian            | `ru` |
| Hindi              | `hi` |
| Korean             | `ko` |
| Japanese           | `ja` |
| Chinese (Mandarin) | `zh` |
| Turkish            | `tr` |

## Backchannels and fillers

The agent speaks small filler words while listening â€” "mm-hmm", "I see", "right" â€” to make the call feel natural. These match the caller's language automatically.

## Numbers and pronunciation

Prices, phone numbers, dates, and addresses are normalised before speech, so the agent says "twenty-five pounds" rather than spelling it out. This works across languages without configuration.

For brand or technical pronunciations, override them in the system prompt:

```
Pronunciation: pronounce "Nixflex" as "NIKS-flex".
```

## Not supported yet

* Voice cloning per language (planned)
* Languages outside the 15 listed above
