Every other surface in this section publishes one knowledge base to an audience. Ask is the inward-facing one: it authenticates a person, resolves every knowledge base they may chat in — across every workspace they belong to — and searches all of them at once. No client key is involved, and nothing is published. A new employee gets it by being added to the workspace.

Where it appears

Dashboard

The Ask section, beside your knowledge bases and analytics.

Browser side panel

The same assistant docked next to whatever you are working in.

Editor

/mcp/portal — Cursor, Claude and other MCP clients.
All three read the same conversations, so a thread started in the side panel is waiting in the dashboard.

Who sees what

Permission decides the reachable set, and it is the same rule everywhere: Restricted documents are included. A signed-in workspace member sees what they would see in the dashboard — the restricted visibility flag exists to keep documents away from anonymous widget visitors, not from colleagues. This is also the only surface an internal knowledge base is reachable from. Client-key authentication refuses those before any query runs, which covers the widget, the public API, MCP, A2A and form deflection in one place.

Narrowing a question

By default a question searches everything you can reach. The scope bar narrows it by knowledge base, source group, or individual source — filters are ANDed, so picking a knowledge base and a group means documents that satisfy both.
Every filter is intersected with what you may already reach, never unioned. Naming a knowledge base you have no permission for silently drops it rather than refusing the request — so guessing at ids reveals nothing about which exist.

Conversations

Threads are private to the person who started them. They can be renamed, and searched by title or by the text of any question in them. POST /portal/related takes a block of text and returns the documents that match it — no answer generated, no conversation created, nothing persisted. It is what the browser extension calls as you move between pages. It is not free, though: it runs the one retrieval path, so a deployment with reranking reranks here too. Hence the 1,200-character cap on the query and the client’s debounce.

Saving things into the index

The extension’s clipper writes through this same surface, and it is gated differently from everything above — on edit_sources, not on the chat permission. A clip writes to your index, so most members can ask and cannot clip, by design. See Roles & Permissions.

API

Every route is JWT-authenticated as the signed-in user — the same session the dashboard uses.
Credential lifetime is the rough edge. The MCP variant takes the dashboard’s JWT, which expires after 7 days — so an editor install has to be re-pasted weekly. Personal access tokens are the fix; the endpoint does not change either way. The dashboard and the extension refresh their session normally and are unaffected.