All Features
Security
UI/UX
System
Content
Business
Marketing
🤖
Admin SettingsSystem
AI ChatBot
Multi-provider AI chatbots with streaming responses
Overview
Intelligent chatbot system supporting OpenAI and Anthropic APIs. Configure different chatbots for different page sections with URL pattern matching. Features streaming responses, role-based access control, content awareness, rate limiting, and comprehensive usage analytics.
Design Considerations
UX patterns and visual design notes for this feature:
- •Floating widget should not obstruct content - position matters
- •Streaming responses feel conversational and responsive
- •Typing indicators reduce perceived wait time
- •Clear visual distinction between user and bot messages
Key Benefits
What makes this feature stand out:
- ✓Two AI providers: OpenAI and Anthropic
- ✓Three display modes: floating, embedded, full-page
- ✓URL-based chatbot selection
- ✓Content-aware responses (blog, events)
- ✓Rate limiting for API cost control
- ✓Detailed usage analytics dashboard
Technical Note
ChatBotHelper provides all chatbot operations. ChatBot model stores configuration per bot. Analytics tracked daily in chatbot_analytics. Streaming via Server-Sent Events.
Helpers
ChatBotHelperModels
ChatBotChatBotAnalyticsDatabase Tables
chatbotchatbot_analyticsConfiguration
Config Relationship Legend
⚙ DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration
Config path: params['chatbot']
params['features']['chatbot'] => trueparams['chatbot']['streaming']['enabled'] => trueparams['chatbot']['defaultProvider'] => 'openai'params['chatbot']['rateLimit']['perHour'] => 20params['chatbot']['rateLimit']['perDay'] => 100Database Settings (system_setting table)
| Key | Type | Description | Relation |
|---|---|---|---|
chatbot_enabled | boolean | Enable chatbot feature globally | ⚙ |
chatbot_default_provider | string | Default AI provider (openai/anthropic) | ⚙ |
Note: AI API keys (OpenAI, Anthropic) must be in .env file. Individual chatbot configurations stored in chatbot table.