{
  "id": 19612811,
  "title": "One bot, four channels: what actually differs between web chat, WhatsApp, Messenger and Telegram",
  "url": "https://urgent.news/2026/11/12/one-bot-four-channels-what-actually-differs-between-web-chat-whatsapp",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-12T06:37:15.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/chatnory/one-bot-four-channels-what-actually-differs-between-web-chat-whatsapp-messenger-and-telegram-1bk9"
  },
  "original_language": "en",
  "account": "Developing a bot that functions across multiple messaging platforms presents a unique set of challenges. While the underlying messaging APIs are relatively straightforward, the real complexities lie in how each platform handles user identity, message restrictions, and formatting rules. By comparing the differences between web chat, WhatsApp, Messenger, and Telegram, developers can better understand the obstacles they'll face and approach the design of their bot more effectively.\n\nThe first major hurdle is user identity. On the web, the user is anonymous, while WhatsApp requires a verified phone number, which introduces personal data concerns. When a user interacts with multiple channels, their identity must be consistent across them all. The bot must maintain a \"contact\" layer that links different channel identities to a single user. This layer is crucial for managing conversations and should be implemented from the outset, even if it wasn't initially planned for the first channel. The bot's contact layer should be securely stored, isolated from logs and analytics, and easily deletable upon user request.\n\nAnother significant constraint is the reply window. While web chat allows replies at any time, WhatsApp imposes a 24-hour window after a customer message, after which only pre-approved templates can be sent. Messenger and Telegram also have their own 24-hour rules, each with different exceptions. Designing the bot to handle these varying constraints is essential. The reply path should include a gate that checks the current time against the last inbound message time, ensuring that replies are sent within the permissible timeframe for each platform.\n\nFormatting rules vary significantly across platforms. The bot's generated response, originally in Markdown, must be adapted for each channel's specific requirements. Telegram accepts HTML or MarkdownV2, WhatsApp uses its own asterisk-and-underscore conventions, Messenger supports plain text with structured attachments, and web chat can render any format. To avoid re-inventing the wheel for each channel, the bot should generate neutral Markdown and then let each adapter convert it into the appropriate format. Specific considerations include rendering links as full URLs for plain-text channels and capping message length according to each platform's limits.\n\nFinally, the adapter boundary is key to maintaining a clean and manageable codebase. Each messaging platform should have its own adapter that translates inbound and outbound messages into a standardized shape. This adapter handles the specifics of identity, reply windows, and formatting for its respective platform. The core of the bot remains agnostic to the channel, focusing solely on generating the correct message format and content. By following this structured approach, developers can create a bot that offers a seamless experience across multiple messaging platforms, despite their differing requirements.",
  "summary": "\"Put the same bot on WhatsApp and Telegram too\" sounds like a configuration change. It is not a hard project either — but the parts that differ are not the parts people expect. The messaging APIs are the easy half. Each one is a POST with a token. What actually costs you time is that the four channels disagree about who the user is, how long you may speak, what a message can contain, and whether…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}