Welcome

A map of ChatbotGen — what you can edit, where it lives, grounded in the actual sub-nav and schema.

This page is a literal map of the app: every tab, every editable field category, cited to the code that defines it.

Per-chatbot sub-nav (verified from assets/js/components/chatbot-sub-nav.jsx)

Every chatbot page shares the same sub-nav. The TABS constant in chatbot-sub-nav.jsx lists exactly eight tabs in this order:

Tab Route Docs
Overview /app/chatbots/:id Overview
Settings /app/chatbots/:id/edit Chatbot settings
Widget /app/chatbots/:id/widget/edit Widget appearance
Training /app/chatbots/:id/knowledge How training works
Conversations /app/chatbots/:id/conversations Conversations overview
Tools /app/chatbots/:id/tools What are tools?
Channels /app/chatbots/:id/channels Channels overview
Sandbox /app/chatbots/:id/sandbox

The Chatbot schema (verified from lib/chatbotgen/chatbots/chatbot.ex)

Every chatbot stores these fields. Only the ones editable via the UI are documented; the rest are platform-managed.

Editable on the Settings page (/app/chatbots/:id/edit):

  • name (string)
  • slug (string)
  • website (string)
  • description (string)
  • prompt (string)

Editable on the Widget page (/app/chatbots/:id/widget/edit):

  • widget_title (string)
  • widget_initial_message (string, default "Hello, how can I help you?")
  • widget_input_placeholder (string, default "Ask me anything...")
  • widget_primary_color (string, default "#4F46E5")
  • widget_secondary_color (string, default "#E2F7CB")
  • widget_bg_color (string, default "#F9FAFB")
  • widget_suggested_messages (string, default "")
  • display_powered_by (boolean, default true) — gated to paid plans via features.ex custom_branding
  • widget_icon_url (string) — set by upload on the Widget page

Schema-only (not exposed in any form):

  • model (default "google/gemini-2.5-flash")
  • embedding_model (default "openai/text-embedding-3-small")
  • widget_initial_message_delay (integer, default 3)
  • status (default "created") — changed by the system, never directly edited
  • chars_trained, last_trained_at, needs_retrain — updated by the training pipeline
  • crawl_include_paths, crawl_exclude_paths — edited via the URL crawl form on the Training tab, not the Settings form

Knowledge source types

Verified from schemas in lib/chatbotgen/chatbots/:

  • file_document.ex — PDF, DOCX, TXT (upload flow gated to 10 MB client-side)
  • website_url.ex — single URL or crawled
  • question_and_answer.ex — question + variations + answer
  • text_source.ex — raw pasted text

Status enums are declared on each schema's validate_inclusion call.

Available channels

Three tiles on the Channels page (assets/js/pages/App/Chatbot/Channel/Index.jsx):

  • Widget
  • WhatsApp
  • Telegram

Available tools

Two seeded in priv/repo/seeds.exs:

  • Wasi Real Estate (key: "wasi")
  • Human Handoff (key: "handoff")

Tools are gated behind the tools feature, which has min_sort_order: 2 (Growth) per lib/chatbotgen/features.ex.

Workspace-level pages (outside the per-chatbot sub-nav)

Routes verified across the codebase:

  • /app — dashboard
  • /app/chatbots — list of every chatbot
  • /app/members — workspace members + invitations
  • /app/invitations — invitations pending for your email
  • /app/billing — plans, subscription
  • /app/usage — usage meters
  • /app/settings/profile, /app/settings/password, /app/settings/account, /app/settings/notifications

Where to go next