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

> Discover CloddsBot's supported messaging channels including Telegram, Discord, WhatsApp, Slack, and Teams. Configure your connection with our easy guide.

- Repository: [AL/CloddsBot](https://github.com/alsk1992/CloddsBot)
- Tags: how-to-guide
- Published: 2026-09-13

---

**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`](https://github.com/alsk1992/CloddsBot/blob/main/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:

- **Telegram**: `createTelegramChannel` factory in [`src/channels/telegram/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/telegram/index.ts) (uses grammY library)
- **Discord**: `createDiscordChannel` factory in [`src/channels/discord/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/discord/index.ts) (uses discord.js)
- **WhatsApp**: `createWhatsAppChannel` factory in [`src/channels/whatsapp/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/whatsapp/index.ts) (Twilio/WhatsApp API)
- **iMessage**: `createiMessageChannel` factory in [`src/channels/imessage/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/imessage/index.ts) (macOS only)
- **BlueBubbles**: `createBlueBubblesChannel` factory in [`src/channels/bluebubbles/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/bluebubbles/index.ts) (iMessage bridge for non-macOS)
- **Signal**: `createSignalChannel` factory in [`src/channels/signal/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/signal/index.ts)
- **LINE**: `createLineChannel` factory in [`src/channels/line/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/line/index.ts)
- **Zalo**: Dual support via `createZaloChannel` (Official Account) and `createZaloPersonalChannel` (Personal) in [`src/channels/zalo/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/zalo/index.ts)

### Enterprise Collaboration Tools

For workplace environments, CloddsBot supports:

- **Slack**: `createSlackChannel` factory in [`src/channels/slack/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/slack/index.ts) (Bolt SDK)
- **Microsoft Teams**: `createTeamsChannel` factory in [`src/channels/teams/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/teams/index.ts)
- **Google Chat**: `createGoogleChatChannel` factory in [`src/channels/googlechat/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/googlechat/index.ts)
- **Mattermost**: `createMattermostChannel` factory in [`src/channels/mattermost/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/mattermost/index.ts)
- **Nextcloud Talk**: `createNextcloudTalkChannel` factory in [`src/channels/nextcloud-talk/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/nextcloud-talk/index.ts)

### Decentralized and Specialized Protocols

For privacy-focused or specialized use cases:

- **Matrix**: `createMatrixChannel` factory in [`src/channels/matrix/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/matrix/index.ts)
- **Nostr**: `createNostrChannel` factory in [`src/channels/nostr/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/nostr/index.ts) (decentralized protocol)
- **Tlon (Urbit)**: `createTlonChannel` factory in [`src/channels/tlon/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/tlon/index.ts)
- **Twitch**: `createTwitchChannel` factory in [`src/channels/twitch/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/twitch/index.ts) (streaming platform chat)
- **Voice (Telephony)**: `createVoiceChannel` factory in [`src/channels/voice/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/voice/index.ts) (Twilio/Telephony)

### Web-Based Interface

- **WebChat**: `createWebChatChannel` factory in [`src/channels/webchat/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/webchat/index.ts) provides a WebSocket-based UI for browser-based interactions.

## How the Channel Manager Discovers Adapters

The `ChannelManager` class in [`src/channels/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/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`](https://github.com/alsk1992/CloddsBot/blob/main/config.yaml) or environment variables. The Channel Manager reads this configuration during initialization.

```yaml
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.

```typescript
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.

```typescript
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`](https://github.com/alsk1992/CloddsBot/blob/main/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`](https://github.com/alsk1992/CloddsBot/blob/main/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`](https://github.com/alsk1992/CloddsBot/blob/main/src/channels/index.ts).

### Can CloddsBot run with only some channels enabled?

Yes. The Channel Manager designed in [`src/channels/index.ts`](https://github.com/alsk1992/CloddsBot/blob/main/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`](https://github.com/alsk1992/CloddsBot/blob/main/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`](https://github.com/alsk1992/CloddsBot/blob/main/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.