Documentation & AI replies
Most questions already have an answer somewhere in your docs. Point Helpwing at them once: visitors can search them from the widget, and an AI assistant can answer new chats from them — handing anything it is not sure about to your team.
Add your documentation
In the dashboard, open Knowledge → Sources → Add source and add a source: the address of your docs. Indexing starts as soon as the source is saved, and the source page shows the progress, every page fetched and how each one was split.
- What to index
- Whole docs site takes every page under the address: https://example.com/docs covers /docs and everything below it. Single page takes that one page only.
- Page limit
- Fetching stops at this many pages, 200 by default. Raise it for a large site.
- Skip these paths
- One pattern per line. /blog/* skips /blog and everything under it — use it for changelogs, old versions and anything else that would only muddy the answers.
- Only these paths
- Optional, on the source's settings. When set, every page outside these patterns is skipped.
- Refresh
- Every day, week or month, or only when you press Sync now. Unchanged pages are skipped cheaply, so frequent refreshes cost little.
How pages are fetched
Helpwing fetches public pages only — nothing behind a sign-in. It follows your docs' own links first and tops up from the sitemap, stays inside the folder you gave it, and asks for each page with its previous version tag, so a page that has not changed costs a 304 and is not indexed again.
It honours robots.txt and introduces itself as HelpwingBot. To let it in while keeping other crawlers out, or the other way round, give it its own group:
User-agent: HelpwingBot
Allow: /docs/
Disallow: /What gets indexed
Each page is reduced to its article — navigation, headers, footers and sidebars are dropped — and split at its headings into sections. A section keeps its heading path and anchor, so a search result links to the exact place on the page. Pages with no readable text, and exact duplicates of another page, are listed but not indexed.
- Headings are the unit. A search result is a section, not a page. A heading that names the task ("Change your billing email") is found far more often than one that names a screen.
- The text has to be in the HTML. Pages are read as the server sends them; scripts are not run. Docs rendered entirely in the browser show up as empty — prerender or server-render them.
- One topic per section. A long section mixing three answers matches all three questions weakly. Split it, and each one matches its own question well.
- Say it in words. Screenshots and videos are not read. If the only place an answer exists is an image, add a sentence beside it.
How search finds an answer
Every section is indexed twice: by its words, and by its meaning. A query is matched both ways and the two rankings are merged, at most two sections per page. Keywords catch exact names — an error code, a setting, an endpoint. Meaning catches the same question asked in other words, or in another language: a visitor asking in Russian can find an English page.
Matches too weak to be related are dropped rather than shown. A question your docs do not cover finds nothing — which is what you want: the visitor is not sent to the nearest unrelated page, and the assistant does not answer from it.
To see what a visitor would get, ask in Knowledge → Test search. Each result shows its keyword rank and its meaning rank, so you can tell why it matched or why the right page did not.
Help articles in the widget
The widget can let visitors search your docs themselves, before or instead of writing to you. Choose how it opens in Chat widget → AI assistant → Widget layout:
Chat only
The widget opens straight into the conversation. Your docs are still used by the assistant if it is on.
Help articles and chat
The widget opens on a choice: search the docs, or start a conversation. A visitor who does not find the answer is one click from the chat.
Help articles only
The widget opens on the search, with no chat. No conversations reach your inbox from it.
AI replies
With the assistant on, new chats are answered by AI first and reach your team only when it cannot help. Turn it on in Chat widget → AI assistant by setting who answers new chats to AI assistant first. Your team is not notified when a chat opens; from there:
- It waits for a short pause after each message, so "hi" followed by the real question is answered once, not twice.
- It reads the conversation and decides whether to reply, search your docs or hand the chat over. To search, it writes its own queries — usually sharper than the visitor's wording.
- It answers only from the sections it found, in the visitor's language, and can link to the pages it used. A link to a page it was not shown is turned back into plain text, so it cannot send anyone to a made-up URL.
- Its messages carry its name and an AI label, so the visitor always knows who they are talking to.
When it hands over
The assistant is built to say "I'm not sure" rather than guess. It passes the chat to your team when:
- your docs have nothing on the question;
- what it found does not clearly answer it;
- the visitor asks for a person — in their own words, or with the Talk to a person button under the chat;
- it has already answered six times in this conversation;
- the plan's monthly allowance of AI replies or knowledge base queries is used up;
- the model fails or times out.
It then posts your handover message in the visitor's language, the conversation is reopened and your team is notified exactly as for any new chat. The agent sees the whole exchange, so nobody has to ask the question twice.
As soon as anyone on your team replies, the assistant stands down for that conversation and does not answer again.
Shaping the assistant
Name
Shown above its messages, next to the AI label. Defaults to "AI assistant".
Handover message
What it says when it passes the chat on — a good place to set expectations about when a person will reply.
Instructions
Tone, topics to always leave to the team, facts about your product. They shape how it answers, not what it knows: answers still come only from your docs.
Finding the gaps
Knowledge → Customer queries lists what visitors searched for in the help articles and what the assistant looked up for them, newest first. Filter it to Found nothing: that list is the documentation you have not written yet. Any query opens in Test search, so you can check the fix once the page is published and synced.
Plans and SDKs
Plans include a monthly number of knowledge base queries — each help-article search and each assistant lookup counts as one — and of AI assistant replies; the Billing page shows both and what is left. When either runs out, help search returns nothing and the assistant hands every chat to the team until the next month.
The Help articles screen and the AI label are part of the JavaScript widget. The mobile, desktop and game SDKs talk to the same API: their chats are answered by the assistant too, and its answers appear there as ordinary replies.
NextCustomer portal →Show each signed-in user their own conversations inside your app, without an API key in the page.