FAQ

Questions answered verbatim by the app's own copy or controller responses.

Every answer on this page is a literal quote (or paraphrase of an enum value) from a source file. Citations are inline.

Billing FAQ

The four items below are rendered verbatim by components in assets/js/pages/App/Billing/Plan/Index.jsx.

What happens if I hit my message limit?

Your chatbot keeps running but will reply with a friendly 'please try later' message to new visitors until the next billing period — or until you upgrade.

What counts as a 'training character'?

Every character of the content you feed your chatbot — URLs crawled, files uploaded, Q&As, and text sources. We measure the raw text, not images or HTML.

Can I switch plans later?

Yes. Upgrade instantly (prorated) or downgrade at the end of the cycle. No hidden fees, no contracts.

Do you offer a free tier?

Yes — Free forever, 1 chatbot, 50 messages/month, 400K training chars. Great for testing. Production customers typically start on Starter.

What happens when I try to upload a file that exceeds my plan?

Verified from lib/chatbotgen_web/controllers/app/knowledge/file_controller.ex:

  • If your current document count already meets or exceeds the plan cap, the server responds HTTP 422 with:

    File limit reached ({N} on your plan). Upgrade to add more.

  • If the file's size would push total chars past max_chars_trained, the server responds HTTP 422 with:

    This file would exceed your plan's training limit. Upgrade to add more content.

  • If the upload record can't be persisted for any other reason, the server responds HTTP 422 with:

    Failed to save file record

The client also blocks files over 10 MB before upload (see assets/js/pages/App/Knowledge/Index.jsx), flashing:

File too large. Maximum size is 10MB.

What's the deletion flash when I delete a file?

Verified from the same controller:

File deleted

What happens when I click Retrain and I'm over the char limit?

Verified from lib/chatbotgen_web/controllers/app/chatbot/retrain_controller.ex:

  • On success, the controller flashes:

    Training started. Your chatbot will be ready shortly.

  • If your total training chars exceed the plan's max_chars_trained, the controller flashes (with real numbers filled in):

    Training content ({N} chars) exceeds your plan limit ({M} chars). Remove some sources or upgrade your plan.

What do the Training-tab action-bar messages mean?

Verified from TrainingStatusMessage in assets/js/pages/App/Knowledge/Index.jsx, the banner's text is one of:

  • "Discovering pages — URLs will appear below as we find them…" (crawling)
  • "Training in progress…" (training)
  • "Over plan limit — reduce training content to retrain." (over-limit)
  • "Preparing N source(s) — retrain unlocks once they're ready." (sources still ingesting)
  • "You have unsaved changes — click Retrain agent to apply." (needs_retrain is true)
  • "Agent is up to date" (nothing pending)

What are the three conversation filter tabs?

Verified from STATUS_TABS in assets/js/pages/App/Conversation/Index.jsx:

  • All → status filter ""
  • Needs Reply → status "handed_off"
  • Closed → status "closed"

What flash appears when I cancel an invitation?

Verified from lib/chatbotgen_web/controllers/app/member_controller.ex: the delete route is the same for both members and invitations, and the flash message is always:

Member removed.

(This applies whether you clicked Remove on a member row or Cancel on an invitation row.)

What happens when an invitation email doesn't match my account's email?

Verified from lib/chatbotgen_web/controllers/app/invitation_controller.ex: the index lists invitations by calling Accounts.list_pending_invitations_for_email(user.email). Invitations sent to an address that doesn't match your current user's email won't appear.