Analytics
Understand what your visitors are asking and improve your content based on real data.
:::info Plan access
The Analytics and Content Gaps tabs require Pro or Business. Logs and Test Chat are available on every plan. Open a chatbot from /dashboard; these are project tabs, not workspace Overview metrics.
:::
Use the launch checklist to validate your rollout, then compare plans and limits before choosing the right evaluation path.
Dashboard Overview
Open Analytics (/chatbot/<projectId>?tab=analytics). The dashboard uses the last 30 days, with at most the 5,000 most recent recorded interactions in that window. There is no date-range selector or full-history export in this tab. High-volume results can therefore be a capped view rather than all traffic in the period.
The dashboard shows:
- Total Questions - Recorded interactions in that window, subject to the cap
- Answered - Interactions not flagged by the content-gap detector
- Unanswered - Interactions flagged as content gaps, including missing-context fallbacks
- Answer Rate - Answered divided by total recorded interactions
These are automated classification metrics, not verified answer accuracy, customer satisfaction, unique visitors, or support tickets avoided. The detector checks source context, fallback-like wording, and some question-specific terms; it can misclassify responses. Test Chat contributes to these metrics and consumes the owner's message allowance. This is not a visitor-only report or the billing usage ledger, and failed requests need not produce an analytics record.
Conversations and Logs
Open Logs (?tab=logs) to page through saved project conversations, expand a row to read messages and timestamps, or delete one conversation or all conversations after confirmation. Logs combines dashboard tests and public chat; it is not the internal API request/error log. Expanded conversations load the first 100 stored messages, so a row's total count can exceed the messages displayed.
Test Chat (?tab=test) also lets you select saved conversations, start a new chat, copy answers, and delete history. Its search filters conversation previews on the currently loaded page, not every message in the project. New / Reset Chat starts a fresh conversation without deleting existing history; Clear is a separate destructive action. Conversation IDs group stored messages, but previous turns are not currently passed to the answer generator. Include the necessary context in each question rather than relying on conversational memory.
Deleting conversations removes their messages, not analytics records, content-gap records, or already consumed message usage. Some early fallback responses are returned to the chat UI without being stored as assistant messages, so a saved conversation can show a question without that displayed fallback.
Most Asked Questions
See the top 10 question texts within the analytics window/cap. Text is trimmed, lowercased, and truncated to 500 characters before grouping; this is not semantic clustering of differently worded questions. Use this to:
- Understand what visitors care about most
- Prioritize content improvements
- Identify FAQ opportunities
Content Gap Detection
Open Content Gaps (?tab=gaps) to review questions flagged by the detector. A gap is not tied to one exact fallback sentence: missing source context, recognized refusal wording, and some overly general answers can all produce a gap. The tab shows:
- Question - What the visitor asked
- Count - How many times this was asked
- Last Asked - When it was most recently asked
Use these as candidates for review, not proof that a page is missing. Check the source selection, retrieval, wording, and the actual answer first. After adding content, re-scrape within your refresh allowance and test again, then select Resolve. Resolution is a manual tracking flag; it does not train the chatbot or verify the new answer. Delete removes the gap record.
The dashboard lists only unresolved gaps: resolving one removes it from the list, and there is no resolved-history/undo control in the current view. A later occurrence of the same normalized question increments its existing count but does not automatically reopen it. The list takes the newest 100 unresolved records and sorts that subset by count; the unresolved badge is capped at 500. These records are separate from the Analytics tab's 30-day window.
Use these gaps with the ticket-reduction measurement guide to test repeat-question coverage and compare any support impact with your own baseline rather than assuming an outcome.
Peak Traffic Hours
See the five hour-of-day buckets with the highest counts in the same analytics window. Hours are recorded on the backend and displayed without conversion to the visitor's timezone; they do not identify your audience's timezone. Use them to:
- Schedule content updates during low-traffic times
- Compare busy and quiet hours on a consistent reporting basis
- Plan for capacity if you're approaching limits
Popular Pages
The dashboard labels this panel Popular Triggers. It shows the top 10 page URLs where recorded questions originated, not the most-cited documentation pages or pageviews. The hosted widget.js, including the widget mounted by Chattybox.mountWidget(), automatically sends page context without query strings or fragments.
The headless SDK's sendMessage() currently accepts message, conversationId, and idempotencyKey; it does not accept or send sourceUrl or sourcePath. Do not add an unsupported SDK option expecting page attribution. Dashboard Test Chat likewise has no source-page URL, so questions can be counted even when Popular Triggers is empty.
For a custom direct HTTP integration, POST /chat accepts optional sourceUrl and/or sourcePath. Source context requires an HTTP(S) request origin, taken from Origin or the fallback Referer origin; sourceUrl must match it and must not contain credentials. A supplied path must start with / (not //), contain no query or fragment, and match the URL's pathname when both are sent. The server strips query strings/fragments and normalizes the URL before recording it. Never send private paths or sensitive visitor data as page context.
Page context is used for analytics, including interaction telemetry; it does not change which indexed sources the assistant retrieves.
Source Citations
Answers can include clickable source links showing which pages the information came from. This:
- Builds trust with visitors
- Lets users verify information
- Drives traffic to relevant pages
The widget presents citations in a native disclosure. Visitors can expand Sources to review the cited links without interrupting the answer.
Improving Your Answer Rate
Tips to get more questions answered:
- Review content gaps regularly - Add missing information to your site
- Scrape more pages - Include FAQ pages, help docs, and blog posts
- Use clear headings - Well-structured content is easier to search
- Keep content updated - Enable automatic re-scraping within your plan's cadence and monthly refresh budget
- Retest before resolving - Confirm the answer and citations, rather than treating a higher Answer Rate as proof of accuracy