Select a conversation from the sidebar to get started.
Chat
Enter to send · Shift+Enter for new line · Notes are only visible to your team
Customers
Verified profiles, every attached conversation, and one ordered support timeline.
Page 1
Select an identified customer to open their timeline.
User Management
Manage team members, roles, and AI identity.
0
Admins
0
Agents
0
Removed
0
Audit events
Add team member
Passwords require 12+ chars. Accounts are soft-removed (never deleted). All actions are logged.
AI Assistant Identity
AI Assistant
Shown on AI messages in widget & portal
Change it any time. Leave empty to use the default name.
Recent activity
Team directory
Audit Logs
Full history of all system and user actions.
No log entries found.
My Profile
Your photo and password. Changes apply to your account only.
Profile photo
?
—
—
—
Shown next to your replies in the portal and to customers in the widget.
Change password
Your current password is required. Password changes are written to the audit log.
AI Providers
Which vendor answers first, and what happens when it cannot.
How failover works
Providers are tried from the top down. A provider that fails is put in a cooldown and
skipped entirely until it expires — so one vendor outage costs one message, not every
message. A provider that rejects our request as malformed is not failed
over, because the next vendor would reject it too.
API keys live in the server's environment file and never in the database or this page.
This panel shows only whether a key is present.
Answer length
The most tokens one answer may spend. On a reasoning model this budget covers the
model's thinking and the reply it writes, so a budget that is too
small is spent thinking and the answer stops mid-sentence. It is a ceiling, not a
target — a short answer still costs what a short answer costs.
Between 256 and 32000. Leave empty to use the default.
Data retention (J5)
How long a conversation may sit untouched before Purge expired data
(Data maintenance, below) is allowed to remove it and everything attached to it.
Floored at 365 days — this cannot be set any lower.
At least 365 days. Leave empty to use the floor.
Rerank candidates (§6 B3)
Widens documentation search to 50 candidates and asks the model to reorder them by
relevance before the top few reach the answer prompt. This is a real improvement on
paraphrased questions, and it is also a second provider call on every answer
— roughly doubling the AI cost of every future turn. Off until turned on here.
Documentation
The local mirror of the wiki that the assistant answers from.
How the mirror works
The wiki stays the source of truth and is never written to. Updating copies pages here
and splits them on their headings, so an answer can quote a whole procedure rather than
half of one. A page that has not changed is skipped, so running this twice costs nothing,
and it is safe to run while customers are chatting.
If an update fails, the assistant keeps answering from the last good copy
rather than saying it cannot help — documentation ages slowly, and a customer who needs
more can still reach an agent. That is why staleness is shown here and nowhere else.
The wiki API token lives in the server's environment file and never in the database or
this page. This panel shows only whether a token is present.
Chunk context (§6 B2)
Generates one summarising sentence per documentation chunk at the next update, indexed
alongside its heading — a real provider call for every chunk on a changed page ("a few
dollars" for a full corpus, per the roadmap). Off until turned on here.
Search synonyms
Added to a customer's search terms when every word of the phrase appears in what they
typed — never in place of their own words. Seeded from measured retrieval failures;
add a row by hand when a real customer question misses for the same reason.
AI Quality
Answer rate, latency, token usage, and which flow states customers actually reach.
—
Answer rate
—
Handoff rate
—
p95 latency
—
Billed output tokens
Resolution, not just deflection
Containment counts a conversation that never escalated — the number this panel used to lead with,
which the 2026 consensus warns against trusting alone because it also counts a customer who simply
gave up. Resolution is the stricter number: no escalation, no "not helpful" vote, and the same
customer did not come back within 48 hours. Conversations less than 48 hours old are left out of
resolution and repeat contact below until there has been time to know.
—
Containment rate
—
Resolution rate
—
Escalation rate
—
Repeat contact (48h)
Escalation rate over time
Answer rate over time
Per day, among turns that called the answer engine — is it better than last week?
Latency
Milliseconds, among turns that called the answer engine.
Answer feedback
The customer's Yes/No check after an AI answer (step 9).
What the AI has used
Billed output tokens, per Gemini and OpenAI's own reported usage — includes reasoning
tokens a vendor bills but does not count as output.
—
This month
—
Last month
—
All time
—
Per chat
By model
By chat
Most tokens first. Click a row to open the conversation.
Provider tokens and health
Tokens as each provider reports them.
Top unanswered questions
Grouped by exact question text. Click a row to see the conversations that asked it.
Flow states reached
How many turns walked through each state — hot paths, and by their absence, dead branches.
Documentation gaps
Opened automatically when a customer votes an AI answer "not helpful", and by hand from a top
unanswered question below. Drafting a page claims the gap — whoever writes the draft is the
reviewer responsible for getting it into the wiki.
Curated answers
Months of AI answers customers voted "helpful" sit in past conversations — free corpus the wiki
does not cover. Curating one (below) is the approval step: nothing is retrieval-eligible until an
admin has read it and saved a question/answer pair. Curated answers are searched alongside the
wiki but never linked as a source in the widget — there is no page to send a customer to.
Candidates — helpful answers not yet curated.
Curated
Turns
Settings
Notifications, appearance, and data maintenance.
Desktop notifications
Status: checking…
Appearance
Theme
Dark or light interface.
Canned responses
Shared reply templates, available to the whole team from the "Canned reply" picker in the composer.
Tags
The shared tag vocabulary every agent picks from when labelling a conversation. Deleting a tag here removes it from every conversation that has it.
Data maintenance
Delete all customers, conversations, messages, and chat attachments. Attachment files are removed from local storage. Users, settings, and audit logs stay untouched.
You will be asked to type DELETE ALL CHATS before the database command runs.
Purge expired data
Permanently delete every conversation (identified or anonymous, including
already-deleted ones) whose last activity is older than the retention period set
above, along with its messages and attachments. Customer profile records are never
deleted by this action — only Delete customer data above does that.
You will be asked to type PURGE EXPIRED DATA before the database command runs.