# Set your AI language

Pin a preferred language so Salfio's AI always answers in it — summaries, insights, the assistant, and Slack replies.

By default, Salfio's AI replies in the language it detects from each conversation: a Dutch email thread gets a Dutch summary, an English call gets an English one. If your team works in one language, you can pin it once and have every AI surface answer in that language — regardless of the language of the underlying emails or calls.

## Set a preferred language

In the Salfio dashboard, open **Settings → Organization** and find the **AI Output Language** card.

- **Preferred language** — the language Salfio's AI should write in. Leave it on **No enforced language** to keep the default behaviour, where the AI matches each conversation's own language.

Click **Save changes**. The setting applies organization-wide and takes effect on the next AI run — there is nothing to re-generate by hand.

## What it affects

Once a preferred language is set, it applies to:

- **Conversation and message summaries** on the client timeline.
- **Insights and dashboard cards** — the AI-generated briefing, topics, risks, and overview columns.
- **The assistant** — answers in the dashboard chat.
- **Slack** — replies when you @-mention Salfio, and the output of task routines posted to Slack.

Quoted source text — the actual words from an email or call — stays in its original language. Only Salfio's own writing switches.

## What it does not do

- It does not translate existing summaries or insights. They are rewritten in the new language the next time they refresh.
- It does not change the language of your emails, calls, or any other source material — only Salfio's generated text.
- It is an organization-wide setting; there is no per-user override yet.

## Related pages

- [Administrator Tools](./administrator-tools.md)
- [Agent Tools](./mcp-external-servers.md)
- [Assign a Slack channel to a client over the API](./guides-assign-slack-channel.md)
- [Authenticated health check](./api-reference-gethealth.md)
- [Authentication](./api-authentication.md)
- [Cards](./cards.md)
- [Changelog](./changelog.md)
- [Changelog](../changelog.md)
- [Connect a workspace](./getting-started-connect-workspace.md)
- [Connect an integration](./getting-started-connect-integration.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
