Launch Checklist
Use this checklist before putting ChattyBox in front of customers. It catches the common setup gaps that make a chatbot look installed but not ready.
For a support rollout, pair this checklist with the AI customer support chatbot guide so public-content answers have a clear escalation path for account-specific, sensitive, or unresolved questions.
Content Readiness
- Public, crawlable content is selected for the chatbot to answer from.
- Private pages, admin pages, checkout flows, account pages, drafts, and staging content are excluded by deliberate source selection, not only
robots.txt(which the crawler does not enforce). - You chose the right input: sitemap, manual URLs, homepage only, or crawl. Crawl uses discovered conventional sitemaps before falling back to links; it does not fill an incomplete sitemap by following links.
- Important product, pricing, policy, support, FAQ, onboarding, and troubleshooting pages are included.
- Multilingual sites include the language versions you expect the widget to answer from.
Scraping Validation
- The scrape ended, saved/selected counts were compared, and the expected pages are present. A Completed badge alone does not prove full coverage.
- The indexed page count matches what you expected for your plan and launch scope.
- Partially indexed pages were reviewed for missing text beyond the 512 KiB limit; long pages were split where needed.
- Separate embedding work finished and representative retrieval was tested.
- Recently edited or migrated pages have been re-scraped.
- Any missing pages were checked for authentication, bot challenges, failed/unsafe redirects, source filters, or JavaScript-only content. Important text is available in fetched HTML without JavaScript rendering.
- Obsolete stored pages were deleted from Knowledge → Pages, not merely removed from the sitemap, and the source was adjusted to prevent rediscovery.
Usage and Ownership
- The project owner can access the dashboard and manage the chatbot; public keys and organization membership are not dashboard permissions.
- Account & Billing at
/settings/accounthas enough message allowance for tests and launch traffic across the owner's chatbots. - Stored-page limits and the separate monthly page-refresh budget were checked. Manual index rebuilds also consume refresh work.
- The refresh schedule fits the plan: Free at most weekly, paid plans at most daily. Manual scrape retries follow the same cooldown, including after failed jobs.
- Pro/Business PAYG is either off, capped per feature, or intentionally uncapped; it does not remove the crawler's refresh cooldown or monthly refresh budget.
- If config locking is used, its irreversible restrictions and the separate secret deployment-token workflow are understood.
Answer Quality
- You asked real test questions from sales, support, onboarding, and documentation use cases.
- Representative answers are grounded in indexed content, and unsupported questions receive the intended fallback. Review the answers; a successful test does not guarantee every future answer.
- Source citations appear on useful answers.
- Citation links open the expected public source pages.
- Weak answers have been fixed by improving source content or adding missing pages, then re-scraping.
- If Persona was changed, the save status confirms it was saved; validation errors were corrected or failed saves retried before testing. The enforced fallback was tested separately; Persona wording does not replace the configured missing-context response.
- Test questions include enough context: the answer generator receives at most 12 recent saved messages, each clipped to 2,000 characters, not the full conversation.
Widget Installation
- The widget is installed on the intended public pages.
- The script loads only once per page.
- The script includes
data-api-key. - The script includes
data-api-url. - Auto-detect / Fixed and Allow script override are set intentionally.
data-localeonly wins when overrides are enabled, even in Fixed mode. - Widget UI language, question/answer language, and indexed language versions were tested separately.
- The widget opens and sends a test question in an incognito window.
- Mobile viewport testing confirms the launcher and chat panel are usable.
API Key and Optional Origin Restriction Checks
- The intended public key is selected in Install → Website installation, and its settings can be managed under Keys & domains.
- Any rotation was completed by installing and testing the new key before deleting the old one. Key names alone do not restrict environments.
- The public key has been tested on the intended production, preview/staging, and localhost sites. Check its restrictions: a key prepared for a website can already be restricted to that origin; keys created without restrictions work across origins.
- If optional hardening is enabled, Keys & domains > Edit origins lists the intended exact origins (scheme, hostname, and port must match). Origin restrictions are not visitor authentication; public browser keys are not secrets.
- No private server API keys, admin tokens, or secrets are present in frontend code, GTM, CMS custom HTML, or page source.
Browser and Deployment Checks
- Browser console has no ChattyBox errors.
- Content Security Policy allows the widget script and API URL if your site uses CSP.
- Ad blockers or consent tools are not blocking the widget on the pages where it is expected.
- The final deployed site, not only local development, has been tested.
After Launch
- Review Conversations → History on any plan, and Analytics / Unanswered questions on Pro or Business.
- Interpret Analytics as up to 5,000 recorded interactions from the last 30 days, including Test Chat, not verified answer accuracy or visitor-only traffic.
- Check detected gaps, retest improved content, and resolve them manually. The default list hides resolved gaps; Include resolved and Undo can show and reopen them. Recurrence does not automatically reopen a resolved gap.
- If page attribution matters, verify Popular Triggers. The hosted widget sends page context, including the pathname; avoid loading or retaining it on sensitive/private routes. A route trigger alone does not remove an already initialized widget on an SPA. The headless SDK
sendMessage()does not send source-page context. - Add missing documentation, FAQs, or examples based on real visitor questions.
- Re-scrape updated pages after content changes.
- Rotate public widget keys if needed; update origin restrictions only when the optional restriction is enabled and your allowed domains change.
- Conversation deletion is not used to reset usage or analytics; those records are separate.
If any item fails, use Troubleshooting before launch.