Answered in a second
Questions your content already covers never reach a person at all. The ones that do arrive with the detail already collected.
One script tag puts it on your site. It answers from your own pages, files and data — and the moment a question goes past them, it says so and opens a ticket in the system your team already uses.
01 Ask it something
Two of these your content covers. The third it does not — and that is the one worth watching.
These replies are written down, not generated: this page has no model behind it. It is the behaviour that is real — answer from the content, or stop and raise a ticket.
02 The problem
They are in a help page, a PDF, a policy, a ticket somebody answered last March. Nobody reads them before writing in, so somebody on your side types the same reply for the twelfth time this week.
Questions your content already covers never reach a person at all. The ones that do arrive with the detail already collected.
It answers from your content or not at all. With nothing to go on it says so in your own words, and offers a ticket.
Tickets are posted to an endpoint in your project, with your fields and the visitor’s files. Nothing new for your team to check.
03 The difference
A confident wrong answer about a refund window costs you the customer and the trust behind them. Here is the same question, answered two ways.
“Yes, we can certainly expedite that refund for you today!”Invented. Nobody on your side agreed to it, and now a person has to walk it back and apologise for a machine.
“That is not something your policy covers, so I will not guess. Shall I pass it to the team?”The sentence you wrote, for exactly this case — then a ticket with the whole conversation attached, in your own system.
The fallback sentence is yours to write. The agent never improvises around it.
04 The second after they hit enter
Five steps, every time, in about a second. Step four is the one nobody else ships.
05 Setting it up
Three things once. Only the last half of step three wants a developer.
Name it, list the domains the chat is allowed to run on, and choose a layout and colour. Requests from anywhere else are refused, so your widget cannot be lifted onto another site.
Point it at a sitemap or a single page, upload a .txt or .md, or just type. It also reads straight from your own database or a JSON API — read-only, with personal details masked before anything reaches the model. It re-reads on a schedule and retires pages that disappear.
One <script> tag and the widget appears. For tickets to land in your own system, somebody builds the endpoint that receives them — we give you the exact shape and a test button that proves it works before anything is live.
06 How it looks on your site
The same agent behind all of them. Pick the one that suits the page it sits on, set your brand colour and bot name, and preview it before it goes near your site.
A floating chat window above a round launcher button.
A full-height panel docked to the right edge of the page.
A centred dialog over a dimmed page, with flat document-style messages.
A vertical "Chat with us" handle on the page edge opens a slim panel beside it.
A big avatar hero; the bot speaks in plain text and the visitor replies in pills.
A message pill beside the launcher, an identity card, plain bot text and an expand button.
07 What it reads
The agent is only as good as what it is allowed to read, so most of the work has gone here rather than into the conversation in the middle.
PostgreSQL, MySQL, SQL Server, Oracle, BigQuery, Snowflake, MongoDB, Redis and more, over a read-only connection. Related tables are folded into one document, so a ticket arrives with its replies.
08 What it does
The things that decide whether a support agent is usable in public, rather than a demo.
Crawls a sitemap with include and exclude rules, re-reads on a schedule, updates what changed and retires what is gone — and holds back a mass removal until you confirm it.
PostgreSQL, MySQL, SQL Server, Oracle, BigQuery, Snowflake, MongoDB, Redis and more, over a read-only connection, with personal details masked before text reaches the model. Related tables are folded into one document, so a ticket arrives with its replies.
Not another inbox. The chat collects email, the problem and whatever extra fields you define, shows a summary to confirm, then posts it to an endpoint in your own project.
Optionally make a visitor prove an email with a one-time code before they can write. A ticket then carries the address they proved, not whatever was typed.
Whichever language the visitor wrote in, in the script they wrote it in — including a language typed in Latin letters. Worked out from their latest message, not from your content.
Each AI call is recorded against the chat it ran for, with its tokens and cost, so a month is a number you can read rather than a surprise.
It answers from the content you gave it. When a question is not covered, it does not guess — it falls back to the sentence you wrote for exactly that case, and offers to raise a ticket.
To an endpoint in your own project, as JSON with a bearer token you set. Your fields, your database, your workflow. We show you the exact prompt to build that endpoint, and a test button to prove it works before anything is live.
Yes. It is one script tag — no framework, no build step, no npm. You list the domains it may run on, and requests from anywhere else are refused.
Database sources are read over a read-only connection, and emails, phone numbers and card-shaped numbers are masked before text reaches the model. Files a visitor sends are kept in a private bucket and opened through short-lived links.
Any time. Open the conversation in the dashboard and type — your reply appears in the visitor’s chat straight away if it is still open, and in their history if it is not.
Add a website, point it at a page, paste the script. If it cannot answer your own questions, you have lost an afternoon — not a quarter.