Supported Messaging Channels for CloddsBot: Complete Platform List and Configuration Guide

CloddsBot supports 20 messaging platforms including Telegram, Discord, WhatsApp, Slack, and Microsoft Teams through a modular Channel Manager that auto-discovers adapters based on your configuration.

The alsk1992/CloddsBot repository implements a universal bot framework capable of operating across virtually every major messaging ecosystem. Understanding the supported messaging channels for CloddsBot is essential for deploying the right integrations for your use case, whether you need consumer chat apps, enterprise collaboration tools, or decentralized communication protocols.

Supported Messaging Platforms

The Channel Manager in src/channels/index.ts maintains a hard-coded registry of adapters. During startup, it iterates through factory functions and instantiates only the platforms with valid credentials present in your configuration.

Consumer Chat and Social Platforms

CloddsBot connects to popular messaging apps used by billions of users:

Enterprise Collaboration Tools

For workplace environments, CloddsBot supports:

Decentralized and Specialized Protocols

For privacy-focused or specialized use cases:

Web-Based Interface

How the Channel Manager Discovers Adapters

The ChannelManager class in src/channels/index.ts handles platform discovery through a declarative registry. It checks for required credentials in your configuration and calls the corresponding factory function only when the platform is enabled.

If credentials are missing, the channel is skipped silently, allowing the bot to start even with partial integrations. Each instantiated adapter implements the common ChannelAdapter interface, providing standardized methods: start(), stop(), sendMessage(), editMessage(), deleteMessage(), reactMessage(), sendPoll(), and createDraftStream().

Configuring Messaging Channels

Enable platforms by adding them to your config.yaml or environment variables. The Channel Manager reads this configuration during initialization.

channels:
  telegram:
    enabled: true
    botToken: YOUR_TELEGRAM_BOT_TOKEN
  discord:
    enabled: true
    token: YOUR_DISCORD_BOT_TOKEN
  slack:
    enabled: false  # Disabled - bot runs without this integration

  whatsapp:
    enabled: true
    accountSid: YOUR_TWILIO_SID
    authToken: YOUR_TWILIO_TOKEN

Sending Messages Across Platforms

Once initialized, the Channel Manager routes outgoing messages to the appropriate adapter based on the platform field. Import createChannelManager from src/channels/index to interact with the system programmatically.

import { createChannelManager } from './src/channels/index';
import { loadConfig } from './src/utils/config';

const cfg = await loadConfig();
const manager = await createChannelManager(cfg.channels, {
  onMessage: async (msg) => { 
    // Handle incoming messages
    console.log(`Received from ${msg.platform}: ${msg.text}`);
  },
});

await manager.start();

// Send to Telegram
await manager.send({
  platform: 'telegram',
  chatId: '12345678',
  text: 'Hello from Clodds Bot!',
  parseMode: 'Markdown',
});

// Send to Discord
await manager.send({
  platform: 'discord',
  channelId: '987654321',
  text: 'Hello Discord users!',
});

Using Draft Streams for Progressive Updates

The createDraftStream method (available on supported adapters like Telegram) allows you to send progressive message updates, ideal for long-running operations.

const telegramAdapter = manager.getAdapters()['telegram'];
const draft = await telegramAdapter.createDraftStream('12345678');

await draft.start('Processing your request...');
await draft.update('Analyzing data... 50% complete');
await draft.finish('Analysis complete! Here are the results.');

Summary

  • 20 platforms supported: From Telegram and Discord to Nostr and Urbit (Tlon), covering consumer, enterprise, and decentralized ecosystems.
  • Modular architecture: The Channel Manager in src/channels/index.ts conditionally loads only configured adapters via factory functions like createTelegramChannel and createDiscordChannel.
  • Consistent interface: All adapters implement ChannelAdapter with methods for sending, editing, deleting, and reacting to messages.
  • Flexible configuration: Enable channels via config.yaml or environment variables; the bot starts even if some credentials are missing.
  • Advanced features: Support for draft streams, polls, and unified message routing across all platforms.

Frequently Asked Questions

How do I add a new messaging channel to CloddsBot?

To add support for a new platform, create a new directory under src/channels/ implementing the ChannelAdapter interface. You must provide a factory function (e.g., createNewChannel) that returns an object with platform, start, stop, and sendMessage methods. Register this factory in the Channel Manager's adapter list in src/channels/index.ts.

Can CloddsBot run with only some channels enabled?

Yes. The Channel Manager designed in src/channels/index.ts skips any platform where credentials are missing or enabled: false is set in the configuration. The bot starts successfully with partial integrations, making it safe to deploy with only the specific supported messaging channels for CloddsBot that you need.

What is the difference between Zalo Official Account and Zalo Personal channels?

Both variants are defined in src/channels/zalo/index.ts. Zalo Official Account (createZaloChannel) connects to verified business accounts via the Zalo Official Account API, while Zalo Personal (createZaloPersonalChannel) connects to personal user accounts. They require different authentication tokens and API endpoints.

Which adapters support the draft stream feature?

The draft stream API (createDraftStream) allows progressive message updates. While the interface is defined in ChannelAdapter, implementation varies by platform. According to the source code, the Telegram adapter in src/channels/telegram/index.ts fully implements this feature, enabling typing indicators and message updates for long-running operations. Check individual adapter implementations for platform-specific capabilities.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →