# Universal Messaging & Multi-Channel BotServer automatically handles conversations across different channels (Web, WhatsApp, Email, etc.) using the same BASIC scripts. Write once, deploy everywhere. ## How It Works Your BASIC scripts don't need to know which channel they're running on. The same `TALK` and `HEAR` commands work universally: ```basic TALK "Hello! How can I help you?" HEAR response TALK "You said: " + response ``` This script works identically whether the user is: - Chatting via web browser - Messaging on WhatsApp - Sending emails - Using Microsoft Teams ## Supported Channels ### Web (Default) The primary channel. Users access via browser at `http://localhost:8080`. ### WhatsApp Business Requires WhatsApp Business API configuration. Messages are automatically formatted for WhatsApp's constraints. ### Email Bots can receive and respond to emails. Each email thread becomes a conversation session. ### Microsoft Teams Deploy bots directly to Teams channels and direct messages. ## Channel Detection BotServer automatically detects the channel based on the session context. No special code needed: ```basic ' This works on ALL channels TALK "Welcome to our service!" TALK "What's your name?" HEAR name TALK "Nice to meet you, " + name ``` ## Channel-Specific Formatting While your code stays the same, BotServer automatically handles channel-specific formatting: ### Web - Full HTML support - Rich formatting - Images and media - Interactive elements ### WhatsApp - Plain text with emoji - Media as attachments - Quick reply buttons - 1024 character limit per message ### Email - HTML email format - Subject line handling - Attachments - Proper threading ### Teams - Adaptive cards - @mentions - Channel vs DM detection - Teams-specific formatting ## Media Handling Send files and media universally: ```basic ' Works on all channels that support files SEND FILE "report.pdf" TALK "I've sent you the report." ``` Each channel handles files appropriately: - Web: Download link - WhatsApp: Document attachment - Email: Email attachment - Teams: File card ## Session Management Each channel maintains its own session handling: - **Web**: Cookie-based sessions - **WhatsApp**: Phone number as session ID - **Email**: Thread ID as session - **Teams**: User/channel context ## Configuration Channel configuration is done in the bot's `config.csv`: ```csv channel-web,enabled channel-whatsapp,enabled channel-email,enabled channel-teams,disabled ``` ## Best Practices 1. **Keep messages concise** - Some channels have length limits 2. **Use simple formatting** - Not all channels support rich text 3. **Test on target channels** - Ensure your bot works well on each 4. **Handle media gracefully** - Not all channels support all file types 5. **Consider response times** - Email is async, chat is real-time ## Channel Limitations | Channel | Message Length | Media Support | Rich Text | Real-time | |---------|---------------|---------------|-----------|-----------| | Web | Unlimited | Full | Yes | Yes | | WhatsApp | 1024 chars | Images, Docs | Limited | Yes | | Email | Unlimited | Attachments | HTML | No | | Teams | 28KB | Full | Adaptive Cards | Yes | ## Summary Universal messaging means your BASIC scripts work across all channels without modification. BotServer handles the complexity of channel-specific formatting and delivery, letting you focus on the conversation logic.