Esta página aún no está traducida al español — mostrando la versión en inglés.

Plan limits

Every numeric limit enforced by the codebase, with its source file.

This page is a cross-reference of every limit in ChatbotGen that's visible from code. Each row cites the file where the constant lives.

Per-plan limits

Verified from priv/repo/seeds/plans.exs:

Plan Price (cents) Chatbots Documents / bot URLs / bot Messages / mo Chars trained
Free 0 1 3 5 50 400,000
Starter 2,900 3 20 50 2,000 2,000,000
Growth 7,900 10 100 200 10,000 11,000,000
Business 19,900 50 200 500 30,000 40,000,000

All plans are monthly (interval: "month"). No yearly plans are seeded.

Upload and import limits

Limit Value Source file
File upload max size (PDF / DOCX / TXT) 10 MB assets/js/pages/App/Knowledge/Index.jsxfile.size > 10 * 1024 * 1024 check
Accepted file types .pdf, .docx, .txt same file —
Client error when oversized "File too large. Maximum size is 10MB." same file
Widget icon max size 5 MB assets/js/pages/App/Chatbot/WidgetSettings/Edit.jsxconst ICON_MAX_BYTES = 5 * 1024 * 1024
Widget icon accepted MIMEs image/png, image/jpeg, image/webp same file — ICON_ALLOWED_MIME
Q&A CSV max upload 2 MB lib/chatbotgen_web/controllers/app/knowledge/qa/import_controller.ex@max_upload_bytes 2_000_000
Q&A CSV max rows per import 500 lib/chatbotgen/knowledge.ex@max_import_rows 500

Crawl limits

Limit Value Source file
URL discovery hard ceiling per chatbot 1,000 lib/chatbotgen/workers/generate_urls_from_website.ex@absolute_max 1_000
Applied max min(plan.max_trained_urls, @absolute_max) same file, line available = max(min(plan_limit, @absolute_max) - existing_count, 0)

The absolute ceiling overrides any plan limit higher than 1,000. Currently no plan exceeds 1,000 URLs (Business caps at 500).

Conversation export

Limit Value Source file
Conversation export max rows 10,000 lib/chatbotgen_web/controllers/app/chatbot/export_controller.exChat.list_conversations(chatbot.id, per_page: 10_000)

Handoff summary generation

Knob Value Source file
Summary model google/gemini-2.5-flash lib/chatbotgen/workers/handoff_notification.ex@summary_model
Summary max tokens 200 same file — @summary_max_tokens 200
Transcript history size last 20 messages same file — @history_limit 20

Tools

Limit Value Source file
Wasi API timeout 15,000 ms lib/chatbotgen/ai/tools/wasi.exreceive_timeout: 15_000
Wasi city cache TTL 5 minutes same file — @cities_ttl :timer.minutes(5)
Wasi max properties per call 5 same file — Enum.take(5) in extract_properties/1

Password

Limit Value Source file
Password placeholder hint "At least 6 characters" assets/js/pages/App/Settings/Password/Edit.jsx and assets/js/pages/App/Registration/New.jsx

The exact backend password validation (length, complexity) lives in the accounts context and is surfaced via errors["user.password"] in the UI.

Chatbot schema defaults

Verified from lib/chatbotgen/chatbots/chatbot.ex:

Field Default
status "created"
model "google/gemini-2.5-flash"
embedding_model "openai/text-embedding-3-small"
widget_initial_message "Hello, how can I help you?"
widget_initial_message_delay 3
widget_input_placeholder "Ask me anything..."
widget_primary_color "#4F46E5"
widget_secondary_color "#E2F7CB"
widget_bg_color "#F9FAFB"
widget_suggested_messages ""
display_powered_by true

Knowledge source statuses

  • FileDocument (lib/chatbotgen/chatbots/file_document.ex) — pending | processing | completed | failed
  • WebsiteUrl (lib/chatbotgen/chatbots/website_url.ex) — pending | crawling | completed | failed
  • TextSource (lib/chatbotgen/chatbots/text_source.ex) — pending | processing | completed | failed
  • QuestionAndAnswer — no status field on the schema; pairs are available as soon as saved.