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

# Supported languages

> Fini supports 130+ languages; this page explains how language is set for your knowledge, scoped per agent, and controlled in replies.

Fini (usefini.com) supports 130+ languages. Language is handled at three layers you control: the language your knowledge is ingested in, which language folders each agent may retrieve from, and the language rules in the agent's prompts.

This page explains each layer and the settings that control it. For a full multilingual setup, you typically combine all three.

## How language works in Fini

| Layer | What it controls | Where |
| - | - | - |
| **Knowledge ingestion** | The language Fini assumes or detects when it processes your Sources. | **Knowledge → Sources**, training preferences |
| **Knowledge scoping** | Which language folders an agent can retrieve from, and for which conversations. | **Knowledge → Articles**, folder assignment and Attribute filters |
| **Reply behavior** | Which language the agent replies in and how it handles a customer switching language. | **Prompts**, Main Guidelines and Channel Prompts |

The three layers apply in order, from the moment content is ingested to the moment a reply is written:

```mermaid theme={null}
---
title: The three language layers
---
flowchart LR
    SRC["Your sources"] --> ING["1. Ingestion<br/>Language preference<br/>or Auto-detect"]
    ING --> ART["Articles<br/>one folder per language"]
    ART --> AG{"2. Folder assigned<br/>to this agent?"}
    AG -->|"No"| OUT1["Not retrieved"]
    AG -->|"Yes"| AF{"Attribute filter<br/>matches the conversation?"}
    AF -->|"No"| OUT1
    AF -->|"Yes"| RET["Retrieved for the reply"]
    RET --> REPLY["3. Reply<br/>Role and Context rules<br/>plus Channel Prompt"]

    classDef source fill:#F7F7F7,color:#131415,stroke:#E8E8E8
    classDef agent fill:#131415,color:#FFFFFF,stroke:#131415,stroke-width:3px
    classDef surface fill:#FFFFFF,color:#131415,stroke:#131415

    class SRC,OUT1 source
    class ING,ART,AG,AF,RET surface
    class REPLY agent
```

A folder with no Attribute filter is available to every conversation the agent handles. The reply language itself comes from the rules in your prompts, covered in [Control the reply language](#control-the-reply-language).

## Set the language of your knowledge

Every time you ingest a new source in [Sources](/en/knowledge/sources#training-preferences), two **training preferences** control how Fini processes it:

* **Language**: the language of your knowledge base. Defaults to **English**. If your sources are in more than one language, choose **Auto-detect** so Fini detects each document's language, or pick a specific non-English language.
* **English-only mode**: a faster path for English-only knowledge bases that skips per-document language detection.

<Tip>
  If you serve customers in several languages, use **Auto-detect** rather than English-only mode. An agent set to English-only won't reliably retrieve from Articles derived from non-English content.
</Tip>

## Organize Articles by language

[Articles](/en/knowledge/articles) is the source of truth the agent retrieves from, and its folder tree is where you organize language. A common pattern is one top-level folder per language:

```text theme={null}
English / Account
Spanish / Cuenta
German / Konto
```

To create language versions of existing content, select articles in the Articles tree and use **Translate** from the page header. It translates the selected articles into another language, creating new articles in a target folder. New and updated articles follow the same [Review](/en/knowledge/review) path as any other content when review and approval is enabled.

## Scope language per agent or per conversation

You have two ways to control which language content an agent uses.

### Per agent

Use the top-right selector in Articles to assign folders to agents. A German-speaking agent can be scoped to German-language folders only, while a support agent for another market draws on a different set. See [Assigning knowledge to agents](/en/knowledge/articles#assigning-knowledge-to-agents).

<Note>
  If two agents need different knowledge bases, scope at the Articles layer. Don't duplicate Sources or split workspaces.
</Note>

### Per conversation

Folders can carry an **Attribute Filter Builder** that gates retrieval on conversation context. To serve one language folder only to conversations in that language, add a filter such as:

*"Only surface `Spanish / *` when `System Attribute → conversation language = Spanish`."*

Filters on the same attribute combine as OR (Spanish or Portuguese); filters on different attributes combine as AND. A filter on a missing attribute silently excludes the conversation, so check that the attribute is populated if the agent stops answering for a segment of customers. See [Attribute filters](/en/knowledge/articles#attribute-filters).

## Control the reply language

Reply language rules live in the agent's [Prompts](/en/configuration/prompts):

* **Main Guidelines → Role & Context** holds the agent's fundamental interaction rules, including language rules. This is where you state which languages the agent supports and what it should do when a customer writes in a language you don't serve (for example, reply in English and offer a handoff).
* **Channel Prompts** let you express a language rule differently per surface. A common example is mirroring the customer's language on **Email**, where long, global threads often mix languages, without repeating the rule on **Chat**.

Use **Predefined Replies** for any language-specific wording that must be exact, such as a regulatory disclosure that has an approved translation.

## Language on each surface

| Surface | What to know |
| - | - |
| **Helpdesk integrations** | The agent reads and replies in the helpdesk's conversation thread, so the customer sees replies in the same ticket regardless of language. |
| **Widget** | The same agent, knowledge and language rules apply on web, in your authenticated app and on mobile. |
| **Email** | Use an Email Channel Prompt for language mirroring in long threads. |
| **Voice** | Calls are transcribed and the agent reasons over the same knowledge and rules as other surfaces. See [Fini on voice](/en/deploy/voice). |
| **Help Center** | Content comes from your Articles; organize public articles by language folder and control visibility with **Public in helpcenter**. |

## Test and debug multilingual agents

* **Test in each language.** Create [Test Suite](/en/testing/test-suite) test cases from real conversations in each language and group them in a collection per language. Add a criterion such as "replies in the customer's language", so a prompt or knowledge change that breaks one language shows up as failed cases.
* **Search Inbox in the customer's language.** The **Question** and **Answer** filters in [Inbox](/en/testing/inbox) match literal text. To find a Spanish conversation, search in Spanish, or filter by Tags, Source or Feedback instead.
* **Check the retrieved articles.** In Inbox, the article titles pinned under a reply show whether the agent used the right language folder. **Used Folders** in the conversation metadata shows the same at the conversation level.
* **Ask Fini Scout.** [Fini Scout](/en/fini-scout) can read a conversation's prompt, knowledge and trace to explain why a bot mixed languages.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The agent replies in the wrong language" icon="language">
    Check the language rules in **Role & Context** and any Channel Prompt for the conversation's channel. Then open AI Steps and look at **Generate Answer** to see the agent's answering strategy for that turn.
  </Accordion>

  <Accordion title="The agent doesn't use my non-English articles" icon="folder-open">
    Check the language preference on both the source and the agent. An agent set to English-only won't reliably retrieve from non-English-derived Articles. Also confirm the language folder is assigned to the agent in Articles and that no Attribute filter is excluding the conversation.
  </Accordion>

  <Accordion title="Articles in two languages give different answers" icon="triangle-exclamation">
    Translated articles are separate articles, so an update to one doesn't change the other. Update both, or retranslate from the canonical version, and approve the changes in Review.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Sources" icon="database" href="/en/knowledge/sources">
    Training preferences for language at ingestion.
  </Card>

  <Card title="Articles" icon="book-open" href="/en/knowledge/articles">
    Language folders, Translate, and Attribute filters.
  </Card>

  <Card title="Prompts" icon="message" href="/en/configuration/prompts">
    Language rules in Main Guidelines and Channel Prompts.
  </Card>

  <Card title="What is Fini" icon="circle-info" href="/en/what-is-fini">
    Channels, surfaces and headline facts.
  </Card>
</CardGroup>


## Related topics

- [Fini FAQ](/en/faq.md)
- [Questions to ask an AI support vendor, with Fini's answers](/en/evaluate/questions-to-ask.md)
- [Running multilingual AI support well](/en/playbooks/multilingual-support.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.