Skip to main content

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/account has 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-locale only 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.