AI assist and the AI agent
Reply suggestions, tone and translation, conversation summaries and an AI agent that answers customers from your knowledge base, on Kommio Cloud's free AI allowance or your own provider key: how to set them up, the API behind them, and exactly what is sent to the provider and what never is.
Last updated
What it does
AI assist helps agents in the conversation; it never answers customers by itself.
- Suggest reply streams a draft of the next reply into the composer, or improves the draft already there. The agent edits and sends.
- Rewrite makes the draft friendlier, more formal or shorter, fixes its grammar, or translates it to the customer's language or another one.
- Summarize writes a private note flagged as an AI summary: key points, what the customer asks, where things stand and the next step. Optionally, a summary is written automatically when a bot hands a conversation to people and when a conversation is assigned to a new agent.
Turn it on
AI is off until an administrator turns it on under Settings › AI (ai:manage). The page is three steps, and AI can only be turned on once the connection works:
- How AI is paid. Kommio's free allowance (on Kommio Cloud), or your own key with a provider you choose from the presets below. You can switch later.
- Connect. On the allowance there is nothing to connect. With your own key, paste it and the connection is tested at once with one tiny call.
- Turn on. The switch is offered once the test has passed. Models per task sit in a collapsed Advanced section, and one readiness line on Settings › AI, the AI agent tab and Knowledge says what is ready.
Kommio Cloud's free AI allowance
A workspace without a key of its own can run every AI task, the AI agent included, on Kommio's free monthly allowance, under the fair-use policy. No key is needed.
- Model. Claude Haiku 5.5 on Anthropic, through Kommio's Anthropic account, for every task.
- Amount. US$2 of estimated model cost per workspace per month by default; Kommio can set a different amount for a workspace. Settings › AI shows how much is used; it resets on the 1st (UTC). On the allowance, the allowance is the cap; your own budget applies to your own key.
- Used up. AI features stop until next month, or an administrator adds the workspace's own key. The API answers
402withallowance_reached. - Not covered. Knowledge search by meaning: Anthropic has no embeddings, so it needs an embeddings provider of its own, otherwise knowledge search matches keywords.
- Who processes the text. Anthropic, as Kommio's sub-processor under Kommio's agreement with Anthropic (privacy policy, section 3a). What is sent is the same as with your own key (below).
- Switching. A workspace that adds its own key uses its key, models and budget, and the allowance no longer applies. Choosing the allowance and saving removes the stored key; removing the key with the allowance available keeps AI running on the allowance.
- Self-hosted installs have an allowance only when the operator sets their own Anthropic key (
KOMMIO_AI_PLATFORM_ANTHROPIC_KEY); otherwise every workspace brings its own key.
Your own key: provider presets
Choose a provider and Kommio fills in its address, where to get a key and suggested model ids. Presets marked verified have their request shape covered by Kommio's tests; the others are used through their OpenAI-compatible API without vendor-specific handling.
| Group | Presets |
|---|---|
| Verified | Anthropic, OpenAI, Azure OpenAI, Google Gemini, Mistral AI, OpenRouter |
| Compatible | DeepSeek, Groq, Together AI, Fireworks AI, xAI, Cloudflare Workers AI, Cohere |
| On your own servers | Ollama, vLLM, LM Studio, LiteLLM proxy: offered only where the server may reach private addresses (a self-hosted install whose operator allows its private networks), not on Kommio Cloud |
| Anything else | Other OpenAI-compatible: any Chat Completions endpoint at a base URL you enter |
| Embeddings only | Voyage AI (verified), Jina AI, for knowledge search by meaning |
An OpenAI-compatible provider needs a model for every task (Claude ids are not accepted there); after a successful test the page lists the endpoint's models to pick from. A self-hosted operator who limits the allowed AI hosts must list the preset hosts their workspaces use.
Settings
| Setting | Default | Notes |
|---|---|---|
| AI features | off | The workspace switch. |
| How AI is paid | The free allowance where it is offered, or your own key with a preset (anthropic, or openai_compatible with a base URL). | |
| API key | Write-only: stored encrypted, never returned, never logged. Test connection makes one tiny call with the values on the page, saved or not. | |
| Models | drafting claude-sonnet-5-5; summaries, tone and translation claude-haiku-5-5 | The recommended models on Anthropic. A task left on the default follows them; a model the workspace saved stays as saved (saves before 20 October 2026 stored the then defaults, claude-sonnet-5 and claude-haiku-4-5-20251001), and Use the recommended models switches back. |
| Include attachments | off | See below. |
| Auto-summarize on hand-off | off | |
| Monthly budget | US$25 of estimated cost | With your own key: no cap, a token cap or an estimated-cost cap, per calendar month in UTC. On the allowance the allowance is the cap. |
Kommio sets the effort and thinking per task: quick tasks (tone, translation, summaries) and drafts run at low effort with thinking off, so a draft starts streaming at once; the AI agent runs at medium effort with adaptive thinking. Thinking tokens count in the reported output tokens, so usage, cost and the budget include them.
Using assist needs ai:use (Administrator, Supervisor and Agent by default), a conversation the caller can see, and for suggestions and summaries reply access to it; a summary also needs messages:write_private.
The API
| Call | Needs | Does |
|---|---|---|
GET /ai/ | any member | Whether AI is on, set up, usable by the caller and within budget, and how it is paid (source: own, allowance or none). |
GET /ai/, PUT /ai/ | ai:manage | The configuration; the key is never returned (key_set), and a PUT without api_key keeps it. follows_default says per task whether it follows the recommended model. |
GET /ai/ | ai:manage | The provider presets with base URL, key page, suggested models and whether they are verified. |
POST /ai/ | ai:manage | The model ids the saved or given settings can use: the current Claude ids, or the endpoint's own list (best effort, 5 seconds). |
POST /ai/ | ai:manage | One tiny call with the saved or the given provider settings; use_allowance tests the free allowance instead (counted against it). |
GET /ai/ | ai:manage | Usage of a month by feature, person, day and model, with the budget. |
GET /ai/ | ai:manage | Per model, the outcomes of its latest 20 calls in the last 30 days and the latest failure with the provider's own message. |
POST /ai/ | ai:use | Streams a suggestion as server-sent events. |
POST /ai/ | ai:use | Rewrites a draft. |
POST /ai/ | ai:use | Writes the summary note and returns it. |
# mode "suggest" drafts the next reply; "improve" rewrites the draft you send
curl -N -X POST "$KOMMIO_URL/ai/conversations/4821/suggest" -H "Authorization: Bearer $KOMMIO_KEY" -H "Content-Type: application/json" \
-d '{"mode": "suggest"}'
event: delta
data: {"text":"Hi Ana, thanks for waiting. "}
event: delta
data: {"text":"Your order 4242 left our warehouse on Monday."}
event: done
data: {"text":"Hi Ana, thanks for waiting. Your order 4242 left our warehouse on Monday.","model":"claude-sonnet-5-5","usage":{"input_tokens":412,"output_tokens":58}}# op: friendlier | formal | shorter | grammar | translate
curl -X POST "$KOMMIO_URL/ai/conversations/4821/rewrite" -H "Authorization: Bearer $KOMMIO_KEY" -H "Content-Type: application/json" \
-d '{"op": "translate", "language": "customer", "draft": "Your refund was issued today."}'curl -X POST "$KOMMIO_URL/ai/conversations/4821/summarize" -H "Authorization: Bearer $KOMMIO_KEY" -H "Content-Type: application/json" -d '{}'A stream ends with done or with error (kind, status, message, and provider_message: the provider's own words, with keys and tokens removed and cut at 300 characters, also shown in the composer, the test result and the usage list). A rewrite answers text, model and usage. For translate, language is a language code or customer (the default), which uses the language of the customer's latest message. A summary is a private note written like any other message, so it publishes message.created; its headers.kommio_ai holds the structured summary.
| Status | Meaning |
|---|---|
| 409 | AI is off or not set up. |
| 402 | The monthly budget is reached (budget_reached), or this month's free allowance is used up (allowance_reached). |
| 424 | The provider refused the key. |
| 422 | The provider refused the request, for example an unknown model. |
| 503, 504, 502 | The provider is busy or down, timed out, or could not be reached. |
What is sent to the provider
Only what the task needs, from the Kommio server straight to the provider (on the free allowance, Anthropic):
- the newest messages of the conversation (up to 40, each cut at 4,000 characters), HTML reduced to text;
- the customer's name and company, and their emails and phone numbers only when the person asking sees them in clear; a masked or hidden field is left out entirely, and automatic summaries send no emails or phones at all;
- the agent's first name and the workspace name;
- for suggestions, the workspace's canned responses (up to 40) as reference;
- for tone and translation, the draft (and, for "customer's language", the customer's latest message);
- attachments only when Include attachments is on: images (JPEG, PNG, GIF, WebP, up to 5 MB) and PDFs (up to 10 MB) from customer and agent messages, at most five files and 20 MB per call. Otherwise only file names.
Never sent:
- values of payment and identity-document fields, whatever the role;
- payment card numbers typed into messages, canned responses or drafts: anything that looks like a card number is replaced by "[card number removed]" before the call, and again in the summary Kommio stores;
- private notes, for suggestions and rewrites, so a suggestion cannot leak an internal note to the customer (summaries may read notes when the person may see them, but never earlier AI summaries);
- files from private notes;
- custom attributes;
- the workspace's key, to anyone but the provider. On the allowance, Kommio's key is never shown to the workspace, in settings, answers, usage rows, logs or errors.
Kommio stores no prompts and no answers. Each call leaves a usage record (feature, model, token counts, estimated cost, who asked and in which conversation) for Settings, AI usage and the budget, and says whether the free allowance paid for it.
The AI agent
The AI agent answers customers by itself from your knowledge base and hands the conversation to people when it should. It is off by default; turn it on under Settings › AI › AI agent (ai:manage) and choose its inboxes. It runs only while AI is on, on the free allowance or your key, is metered like the assist features and stops at the monthly budget or when the allowance is used up.
- Where it answers. It is one of an inbox's bots and flows, in the order you set, with conditions like any responder. It takes a conversation when it is the first matching automatic responder, or when a rule (Assign to AI agent), a flow's hand-off or a previous bot passes it on. A person replying, assigning or taking over releases it.
- Grounded answers only. It reads published public and AI-only articles, AI-only snippets and website and file sources. Internal content only when you allow it, and even then it is never shown or linked to customers. Every answer must cite a source it was given and not be low-confidence; otherwise it says it does not know, hands over and records the question as a content gap.
- Hand-off to the inbox's queue, a team, a person or the next bot, with a private note giving the reason and a summary, when the customer asks for a person, seems upset, raises a topic you listed, after the reply limit (5 by default), outside or inside business hours as you choose, when the model asks, on budget, provider failures or rate limits (20 replies per conversation per hour).
- Tools. Data connectors marked "Offer to the AI agent" (read-only lookups for this contact), adding an existing tag, setting the priority and handing off; never a URL or secret from the model. Each call is written on the conversation.
- In the chat it shows its name or avatar, an "Automated reply" label and links to the public articles it used; on email and other channels the sources are listed and an automated-reply line closes the message.
- What is sent to the provider: the newest messages without private notes, the customer's new message, the retrieved passages, the workspace name and tag names, its persona and connector results. Contacts' emails, phone numbers and other personal fields are not sent, and card numbers are removed from everything. Retrieved content, messages and tool results are treated as data, never as instructions.
Test the AI agent on the settings page runs the real pipeline on a simulated conversation: nothing is sent, written or looked up. The report shows conversations held, resolved and handed off, the reasons and the latest questions it could not answer. A chatbot flow can use the same pipeline once as an AI answer step, continuing on the answer or on "no answer". Settings: GET/PUT /ai/, POST /ai/, GET /ai/.
The knowledge base behind it can also read your website and PDF, Word and text files (for the AI only, never published), suggest answers learned from resolved conversations for an administrator to approve, and collect content gaps. With your own embeddings key, search also matches by meaning where the server supports it; Kommio Cloud uses keyword search for now, and the free allowance does not cover embeddings.
Every claim on these pages is covered by a test in the repository, and the API reference is generated from the same contract every server serves at /api/openapi. Corrections to [email protected].