Resources
How it works, before you commit to anything
The mechanics of an AI support assistant, the numbers you should actually expect, and the reference material to get one running. No form in front of any of it.
How it works
The mechanics, including the awkward parts
Four things decide whether one of these is useful or embarrassing. None of them is which model is underneath.
It answers from your material, not from memory
The assistant does not know your product until you show it. You connect sources — a help centre, docs, a sitemap, past resolved tickets — and it indexes them and answers out of that material, quoting the article it used. Nothing is fine-tuned, so there is no training run to wait for and no stale model to retrain when a policy changes: edit the article and the answer changes on the next crawl.
This is also why the quality of your help centre sets the ceiling. Most disappointing rollouts are a knowledge problem wearing an AI costume.
It is allowed to say it does not know
Every answer carries a confidence score, and below the threshold you set the assistant stops rather than improvises. That is the single setting that separates a useful assistant from an embarrassing one: a made-up refund window or a wrong billing rule costs more than the ticket it deflected. You can tighten the threshold per topic, so billing and returns can be stricter than opening hours.
You can also mark topics as never-automate. Anything matching them goes straight to a person, no matter how confident the model is.
Handoff is a feature, not a failure
When it stops, it hands over — with the transcript, the customer record, what it already tried, and why it escalated. The customer does not start again, and the agent does not read a wall of text to work out what is going on. Escalation is available from the first message too: a customer who asks for a person gets one.
Refusing to escalate is the fastest way to make people hate a support bot. Ours takes the exit whenever it is asked for.
Measure resolution, not deflection
Deflection counts conversations no human touched — which includes every customer who gave up. Resolution counts problems actually solved. They are not the same number, and the gap is where support reputations go to die. The dashboard reports both, separately, plus the questions that most often ended in an escalation, so you know what to go and write next.
Published benchmarks put early deployments around 30–50% resolution, rising to 50–70% once workflows and knowledge mature. Anyone promising 90% in week one is selling you the deflection number.
Start here
Three short guides that cover the whole path from empty account to live assistant.
Guide · 4 min
Install the widget
The script tag, where it goes on each major platform, and how to check it loaded without opening the network tab.
Available in dashboard — log in to seeGuide · 7 min
Connect your knowledge sources
Which sources are worth connecting first, how re-indexing works, and how to spot the articles that are quietly making answers worse.
Read itGuide · 6 min
Set your escalation rules
Choosing a confidence threshold, marking never-automate topics, and routing handoffs to the right person or channel.
Read it
Going further
For teams past the first week, when the interesting problems start.
Guide · 8 min
Writing help articles an AI can use
One question per article, answers near the top, explicit conditions. The habits that lift resolution rate more than any setting in the dashboard.
Read itGuide · 6 min
Reading your resolution report
What each number means, which ones move together, and how to tell a knowledge gap from a threshold that is set too tight.
Read itGuide · 5 min
Multi-language support
How answers are produced in 30+ languages from English source material, and when you should translate the source instead.
Read it
Explainers
The questions people ask before choosing an AI support tool, answered without the pitch.
Explainer · 9 min
How to add an AI chatbot to your website
Sources, handoff rules, the install on every major platform, and the test to run before customers see it.
Read itExplainer · 7 min
Deflection rate vs resolution rate
How to calculate each, a worked example, and why the gap between the two is the honest number.
Read itExplainer · 8 min
How to stop an AI chatbot making things up
Why support bots hallucinate policies, and the six controls that stop it.
Read itExplainer · 7 min
AI chatbot to human handoff
When to hand off, what the handoff must carry, and how to route it so nobody repeats themselves.
Read itExplainer · 6 min
Live chat vs AI chatbot
Cost, speed, accuracy and coverage compared — and why most teams end up running both.
Read it
Reference
The details, for when you need the exact shape of something.
Reference
JavaScript API
The four widget commands, the queue contract, and how to call them before the loader has finished fetching.
Read itReference
REST API and webhooks
Conversations, contacts and events over HTTP, plus the webhook payloads for handoff, resolution and tagging.
Available in dashboard — log in to seeReference
Data handling and retention
What is stored, where, for how long, and how to delete a customer and every message attached to them.
Read it
The JavaScript API, in full
Every command is queued until the loader finishes fetching and replayed in order once it does, so you never have to wait for a ready event or guard a call. That is the whole integration surface — there is no SDK to version-match.
ChatWidget("identify", { email, name, externalUserId })Tells the assistant who it is talking to, so it can look up their orders or plan instead of asking. Safe to call as soon as you know.
ChatWidget("set", { plan: "growth", locale: "en-GB" })Attaches any extra context you want on the conversation and in your reports. Arbitrary key/value pairs.
ChatWidget("open")Opens the widget — for wiring up your own 'Chat with us' button.
ChatWidget("sendMessage", "Where is my order?")Opens the widget with a question already asked. Useful on a help page, where you know what someone is stuck on.
Recently shipped
What changed lately, and why it mattered enough to build.
- Fixed
Uploaded logos and avatars failing to load cross-origin
A workspace logo or avatar could fail to render on a customer's own domain, blocked by a cross-origin resource policy header the browser checks before CORS is ever consulted. Fixed, and the logo upload field is now a single row with inline upload and remove actions.
- New
Send email through your own provider
The platform can now send email — invites, sign-up confirmations, anything a flow needs — through Console, SMTP or Resend. Configured per workspace the same way payment is: platform default first, then your own credential, stored encrypted. Left unconfigured, it logs instead of breaking whatever tried to send.
- Improved
Editable plan limits from the operator console
Seats, workspaces and knowledge base article limits can now be adjusted for a single workspace from the operator console, on top of the plan's own numbers, without editing the checked-in catalog.
- Fixed
Billing sync rate limit, checkout confirmation, duplicate customers
The billing sync rate limit is now keyed per workspace instead of per shared IP, so a busy office or an automatic post-purchase check no longer locks out the manual retry button. Checkout confirmation no longer abandons the poll under a dev-mode double mount, and a duplicate billing customer ID now surfaces as a clear error instead of a bare 500 that retries a webhook forever.
- New
7-day free trial on every plan
New workspaces now start with a 7-day trial with full features, instead of a capped free tier.
Still deciding?
The fastest way to know whether this fits is to try it on your own questions — the assistant in the corner of this page runs on our real documentation, so ask it something hard. If you would rather talk to a person about your particular setup, that is fine too, and it will not turn into a pipeline of follow-up emails.
