AI Customer Service Bot
AI-first · React + Node (Express) · 21 @molecule/* packages
FAQ chatbot with knowledge base, escalation, and learning from conversations — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (14)
- Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Landing
/ - Conversations
/conversations(signed in) - ConversationDetail
/conversations/:id(signed in) - KnowledgeBase
/knowledge(signed in) - KnowledgeArticleDetail
/knowledge/:id(signed in) - Analytics
/analytics(signed in) - Settings
/settings(signed in) - Profile
/profile(signed in) - Notifications
/notifications(signed in)
Data model (13 tables)
- conversations — id, owner_id, end_user_id, customer_name, customer_email, channel, status, escalated, …
- messages — id, conversation_id, sender, role, content, intent_id, model_used, citations_json, …
- knowledge_articles — id, owner_id, title, slug, content, body_md, category, tags_json, …
- escalations — id, owner_id, conversation_id, requested_at, agent_assigned_id, accepted_at, resolved_at, summary, …
- feedback — id, owner_id, conversation_id, message_id, rating, comment, created_at, updatedAt
- notifications — id, user_id, kind, type, title, body, link, metadata_json, …
- user_settings — id, user_id, bot_tone, auto_escalate, greeting, signature, notify_escalations, notify_mentions, …
- api_tokens — id, owner_id, label, hashed_token, scopes_json, last_used_at, created_at, revoked_at, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
- threads — id, title, creatorId, resourceType, resourceId, closed, createdAt, updatedAt
- thread_messages — id, threadId, userId, body, editedAt, createdAt, updatedAt
- thread_read_status — threadId, userId, lastReadMessageId, updatedAt
API (9 handlers)
- analytics
api/src/handlers/analytics.ts - api-tokens
api/src/handlers/api-tokens.ts - conversations
api/src/handlers/conversations.ts - escalations
api/src/handlers/escalations.ts - feedback
api/src/handlers/feedback.ts - knowledge
api/src/handlers/knowledge.ts - notifications
api/src/handlers/notifications.ts - reset-password
api/src/handlers/reset-password.ts - settings
api/src/handlers/settings.ts
Subscription tiers
free / pro / team — gated by: maxConversations, maxKnowledge, advancedFeatures, canExport, retentionDays
Built from 21 @molecule/* packages
@molecule/api-ai-agents@molecule/api-ai-agents-llm@molecule/api-ai-anthropic@molecule/api-ai-embeddings-openai@molecule/api-ai-rag@molecule/api-ai-rag-llm@molecule/api-ai-vector-store-pgvector@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-realtime-socketio@molecule/api-resource-payment@molecule/api-resource-thread@molecule/api-resource-user@molecule/app-ai-assistant@molecule/app-ai-copilot@molecule/app-billing-react@molecule/app-data-table@molecule/app-realtime-socketio
Required secrets
DATABASE_URLPostgreSQL connection stringANTHROPIC_API_KEYAnthropic API key for ClaudeOPENAI_API_KEYOpenAI API key for embeddings
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing