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, defaulttrue) — gated to paid plans viafeatures.excustom_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, default3) -
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
- 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
- Create your first chatbot — walks through the onboarding wizard screen by screen
- Best practices — the in-app Prompt Tips