By business type
What an assistant adds to documentation that readers already search
Every other kind of business puts an assistant on its site to replace a phone call. A developer tools company is doing something harder. The reader has already opened the documentation, already used the search box, and is asking because the search did not work. That sets a much higher bar: an assistant that paraphrases the page they just read is worse than useless, and an answer drawn from documentation for a release they are not running is worse still.
What people actually type
Not the questions on your FAQ page. These are the phrasings that arrive in a chat window, lowercase and unpunctuated, and the material has to answer them in those words rather than in yours.
- how do i authenticate a request
- what does a 429 mean here
- is v1 still supported
- how do i migrate from v2 to v3
- does this work with node 18
- why am i getting a cors error
- what is the rate limit
- is there an sdk for go
- how do i rotate a key without downtime
- what replaced the old webhook endpoint
- how do i test webhooks locally
- is there a sandbox environment
What to feed it
In rough order of how much work each one takes off the front desk. Every one of these is a document you almost certainly already have.
| The reference documentation for every supported release, labelled by version | The label is the point. A corpus that mixes three major versions with no version marker on the pages will confidently return a signature that was removed two releases ago, and the reader has no way to tell. If your documentation site keeps versions on separate paths, that structure is what makes an assistant safe here. If it does not, that is the thing to fix before indexing anything. |
|---|---|
| Migration guides and deprecation notices | The highest support value material you have, by a wide margin. Every deprecation generates a wave of identical questions from people who did not read the changelog, and every one of those questions already has a written answer. Index the notices with their dates and their removal timelines, because when does this stop working is the actual question. |
| The error and status code reference | Developers do not search for concepts, they paste the error. If your errors have codes, index the code, the human explanation and the three most common causes. If your error strings appear nowhere in your documentation, then the most common query on your site is one your material cannot answer at all. |
| Quickstarts, one per supported language | The first ten minutes decide whether somebody continues, and the questions in that window are narrow and repetitive: which package, which import, where the key goes, what a minimal working call looks like. Indexed per language, the answer arrives in the language the reader is actually writing. |
| The changelog, with dates on every entry | It answers when did this change and did you break this on purpose, which is asked constantly and is rarely findable. It also gives the assistant a way to distinguish current behaviour from behaviour described in an older guide you have not got round to updating. |
| Limits, quotas and the unit you bill on | Requests, rows, builds, minutes, seats or events. A developer evaluating a tool has to model the cost before they can recommend it internally, and this is usually spread across a pricing page and three documentation pages that quietly disagree with each other. |
What has to reach a person
Anything that requires reading the caller's code
Why does my request fail, what is wrong with this configuration, why does it work locally and not in the pipeline. The assistant cannot run anything, cannot see the repository, and cannot reproduce the failure. It has documentation, and documentation does not contain the reader's mistake.
The useful behaviour is to answer the documented part (what the error means, what usually causes it) and be explicit that it cannot debug this case. A developer told plainly that this needs a human will take the handover. A developer given three confident wrong guesses will write about it somewhere public.
Is it down right now
During an incident this becomes the only question on the site, and it is the one the assistant is least able to answer. It reads indexed material, so what it knows is what your status page said the last time the material was read, which during an outage is precisely the wrong thing to repeat.
Word the handling so it never asserts current availability. It should point at the status page and the incident channel rather than reporting a state, unless you have separately connected a source that carries live status.
Will you support this, and when
Roadmap questions, feature requests, and will this ever work with a given runtime. Anything unshipped is undocumented, and an assistant that infers a plan from an old blog post has just committed your engineering team to a date. Route these to a person or to wherever you collect requests.
Keys, quotas and account state
Whether a key is valid, why a quota was reduced, whether an account is being rate limited. It can explain how keys and quotas work and how to rotate one safely. It cannot look one up, and on a developer site the pull towards sounding authoritative about this is strong because everything around it is precise.
The wording when it cannot help
This is the message the assistant returns when nothing in the material covers the question. It is written by you rather than generated, which matters here more than anywhere: it is the sentence a stranger reads at the worst moment.
I cannot debug your code or see your project, so I would only be guessing at this one. Here is what the documentation says about this error and its usual causes. If that does not cover it, leave your name, your email and the details and I will pass it to the team, or open an issue and somebody will pick it up there.
It names what it cannot do, gives the route that can, and offers to take a message. A refusal that only apologises leaves the person exactly where they started.
Rules and duties that shape the answer
Version skew is the failure that matters here
An answer drawn from documentation for a release the reader is not running is worse than no answer, because it is plausible, specific and wrong in a way that costs an afternoon. This is the one failure mode unique to this trade, and it is almost entirely a content problem rather than a model problem.
The mitigations are practical. Keep versioned documentation on distinct paths so the distinction survives indexing, drop archived versions out of the index rather than leaving them to compete, and raise the caution setting so a weak match refuses instead of reaching into an old page.
Code in an answer has to be quoted, not composed
A snippet assembled from a plausible reading of an API is the most dangerous output an assistant can produce on this kind of site, because it looks exactly like a snippet copied from documentation and it goes straight into an editor.
The setting that governs this is caution: cautious behaviour returns the documented example with its citation rather than adapting it to the reader's situation. Every answer carries numbered citations back to the source page, which on a docs site is not decoration, it is how the reader checks which version the code came from before trusting it.
Your documentation is full of imperatives, and none of them are addressed to the assistant
Technical documentation is written in the imperative mood. Run this, set that, ignore the previous step, disable verification for local testing. Some of it sits inside code blocks, some inside comments in sample configuration, and some arrives from pages a crawl picked up along the way.
Retrieved material is treated strictly as data rather than as commands, so a page containing something that reads like an instruction is quoted rather than obeyed. On a documentation corpus that distinction is not theoretical, it is a property you need holding on every page you index.
Never, whatever the documents say
Out of bounds
- Why a specific piece of the reader's code fails.
- Whether the service is up or degraded at this moment.
- Whether an unreleased feature is planned, and when it would ship.
- Whether a specific API key, quota or account is valid.
- A code example composed rather than quoted from the documentation.
Playbooks for this trade
One page per recurring question, written for a developer tools company rather than in general. Each carries the phrasings, the material that answers them, a reply worth copying, and the line where it has to stop.
- Answering a pasted stack trace without ever seeing the projectDevelopers paste the error, not the concept. What an assistant can say about a failure it cannot reproduce, and where the guessing has to stop.
- Install, credential, first successful call, in the language they are writingQuickstart questions are narrow, repetitive and decide whether an evaluation continues. What to index per language so the answer lands.
- Does this work with the runtime they have already committed toCompatibility answers age badly and end up in procurement decks. Keeping support matrices, deprecations and removal dates answerable.
- The only question on the site during an incident is the one it cannot answerIt reads indexed pages, so it knows what the status page said last time. Wording that points at live status instead of reporting it.
- The handover is only worth making if the version and the error text travel with itA developer handover succeeds or fails on what the form carries. The four details to gather in chat before taking a name and an email.
- Nobody is asking what it costs, they are asking what counts as oneRequests, builds, minutes or seats. What a metered price has to state before a developer can model a month and defend the number internally.
- An engineer has been asked to explain a spike to somebody in financeReconciling a usage counter against a line item, spikes with a timestamp behind them, and the purchase order details a finance team blocks on.
- Two deployments, and two completely different answers to delete our dataFor a self hosted install there is nothing on your side to delete. For the hosted one, request logs and telemetry each run their own clock.
- An engineer has been handed a review and does not own the answersAudit logs, retention windows and release provenance. What can be answered from published trust material, and which rows need an agreement.
- Access problems where half the accounts do not belong to anybodyMachine identities, organisation membership and credentials shown only once. Access questions where the actor is a process rather than a colleague.
- The word reset covers two things here and one of them cannot waitRotating a credential without dropping traffic, and the first move when a token turns up in a public commit. Neither is a password reset.
- Cancelling ends the commercial edition, not necessarily the softwareAnnual terms, a credential that stops authenticating on a date, and an open source core somebody keeps running. What can honestly be stated.
- The units were consumed, and the customer still wants the money backOverage on units that were genuinely delivered is not a billing error. What can be explained about caps, and why a person decides the rest.
- The first sign of a billing problem is a status code at four in the morningA billing suspension ends up as a rejected call in somebody's alerting. The retry schedule and the error string are the whole answer.
- The interface is a terminal, so the usual accessibility answers do not applyColour as the only signal in output, a keyboard driven interface and code blocks read aloud. These arrive as defect reports, not form problems.
- Can we get into the beta is a request rather than a questionEarly access programmes, regions that are not open yet and a library for a language nobody has written. What can be said without committing anyone.
- The deploy window is at night and nobody is at a deskChange windows and incidents both happen at night. What can honestly be answered overnight, and how a severity definition decides who is woken.
- Most complaints here are technically specific and frequently correctDeprecation deadlines, a change that broke a build, and a reader who is usually right. Answering without conceding or arguing the technical point.
Questions
- We already have documentation search. Why add an assistant?
- Because the two fail differently. Search fails when the reader does not know the term you used, which is most of the time with error strings, deprecated names and concepts they know by another vendor's word for them. An assistant answering from your own pages with citations bridges that gap, and if it is not doing that then it is not worth the widget.
- How do we stop it answering from documentation for an old version?
- Keep versions on separate paths so indexing keeps them separate, index only the versions you support, and raise the caution level so a weak match returns the refusal rather than the nearest page. It is worth testing this deliberately: ask about a method you removed and check which version the citation points at.
- Will it write code for us?
- It should not, and that is intended behaviour rather than a limitation. It answers from your material, so what it returns is the documented example with a citation attached. Anything past that is composition, and composed code on a docs site is a support ticket with extra steps.
- Can it read our public issue tracker as well?
- Only if those pages are on a site it reads, and think carefully before doing it. Issue threads contain wrong answers, workarounds for versions long gone, and arguments that were never resolved, all written in the confident voice of a maintainer. Indexed material becomes answers, so an issue tracker is a corpus of your community's mistakes as well as its fixes.
Keep reading
- For a SaaS companyOne widget serves prospects, trialists and paying customers. What it can answer about plans and limits, and what has to reach a person.
- For a fintech appFees, limits and identity checks are safe ground. Balances, transactions and anything reading as a personal recommendation are not.
- For a healthtech appHealth data is a special category and clinical claims carry device rules. What a healthtech assistant answers for patients, and for buyers.
- Every business typeWhat an assistant has to know before it can answer for a trade.
Try it on your own material
Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.