ClawHQ supports 20+ messaging channels. This guide covers the three with the most community traction: Discord (maker communities, developer teams), Slack (enterprise and internal tooling), and Telegram (international teams, communities that prefer mobile-first). All three follow the same pattern: create a bot in the platform's developer console, copy credentials into ClawHQ, point it at the right agents.

Before You Start

Channels are configured in Dashboard → Channels. You'll need ClawHQ running and at least one agent deployed. If you haven't done the initial setup, follow the 5-minute deployment guide first.

Discord
  • Gateway WebSocket connection
  • Slash command support
  • Thread-per-conversation routing
  • Server role-based access
  • Requires a Developer Portal bot
Slack
  • Events API + Socket Mode
  • Block Kit response formatting
  • Channel and DM routing
  • Workspace SSO integration
  • Requires a Slack App
Telegram
  • Long-polling or webhook
  • Group and private chat routing
  • Inline keyboard buttons
  • No platform approval required
  • Requires BotFather token only

Discord

Step 1: Create the bot in Discord Developer Portal

  • 1
    Open the Developer PortalGo to discord.com/developers/applications and click New Application. Name it — this will appear as the bot's username.
  • 2
    Create a bot userIn the left sidebar, click Bot. Click Add Bot. Copy the Token — you'll need this in ClawHQ. Do not share this token publicly.
  • 3
    Set required intentsUnder Privileged Gateway Intents, enable Message Content Intent. ClawHQ needs this to read message text, not just metadata.
  • 4
    Generate an invite URLGo to OAuth2 → URL Generator. Select bot scope. Under permissions, select: Send Messages, Read Messages/View Channels, Use Slash Commands, Read Message History. Copy the generated URL and open it to invite the bot to your server.

Step 2: Configure in ClawHQ

Go to Dashboard → Channels → Discord and enter:

# Dashboard → Channels → Discord
Bot Token:      your-bot-token-from-developer-portal
Client ID:      your-application-id  # found in General Information
Guild ID:       your-server-id       # right-click server → Copy Server ID

Step 3: Set agent routing

Channel routing controls which agent responds in which channel. Configure it in the Channels page after entering credentials:

# Route by Discord channel name
#generalsupport-agent
#devcoding-agent
#helpsupport-agent
*default-agent   # fallback for all other channels

With thread routing enabled (default on), ClawHQ creates a new thread for each conversation and routes all replies in that thread to the same agent, preserving context.

Slash commands

ClawHQ automatically registers /ask as a slash command in your server. Users can invoke it from any channel to trigger the routed agent directly. Register custom commands via Channels → Discord → Slash Commands.

Slack

Step 1: Create a Slack App

  • 1
    Go to api.slack.com/appsClick Create New App → From scratch. Name it and select your workspace.
  • 2
    Enable Socket ModeIn the sidebar, click Socket Mode and toggle it on. Generate an App-Level Token with connections:write scope. Save this token — it starts with xapp-.
  • 3
    Add Bot Token ScopesGo to OAuth & Permissions → Bot Token Scopes. Add: app_mentions:read, channels:history, chat:write, im:history, im:read, im:write. Install the app to your workspace and copy the Bot User OAuth Token (starts with xoxb-).
  • 4
    Enable Event SubscriptionsGo to Event Subscriptions. Toggle on. Subscribe to bot events: app_mention, message.channels, message.im. ClawHQ uses Socket Mode so no public URL is needed — events come through the websocket.

Step 2: Configure in ClawHQ

# Dashboard → Channels → Slack
Bot Token:        xoxb-your-bot-token
App-Level Token:  xapp-your-app-level-token
Signing Secret:   from Basic Information → App Credentials

Step 3: Set agent routing

# Route by Slack channel name or DM
#supportsupport-agent
#engineeringcoding-agent
@DMassistant-agent   # direct messages go here
*default-agent
Mention vs. always-on

By default, ClawHQ only responds when the bot is @mentioned. Set "mode": "always" in the Slack channel config to respond to all messages in a channel. Use this for dedicated bot channels only — not #general.

Enterprise Grid workspaces

Enterprise Grid (org-level Slack) requires additional steps: the app must be installed at the org level, not just the workspace, and you need admin.conversations:read scope. Contact your Slack admin to complete the install.

Telegram

Telegram is the fastest channel to set up — no developer portal, no app review, no OAuth. One token from BotFather and you're live.

Step 1: Create a bot via BotFather

  • 1
    Open Telegram and search @BotFatherStart a chat and send /newbot. Follow the prompts: choose a display name, then a username (must end in "bot").
  • 2
    Copy the API tokenBotFather replies with a token in the format 123456789:ABCdef.... Copy it — this is all you need.
  • 3
    Optional: configure bot commandsSend /setcommands to BotFather to register slash commands that appear in the command menu for users.

Step 2: Configure in ClawHQ

# Dashboard → Channels → Telegram
Bot Token:  123456789:ABCdef...
Mode:       polling    # or "webhook" if ClawHQ is publicly reachable

Polling vs. webhook: Use polling if ClawHQ is behind a firewall or on a local network. Use webhook if your instance has a public HTTPS URL — it's more efficient for high message volumes. For webhook mode, set the Webhook URL field to https://your-clawhq-domain.com/webhook/telegram.

Step 3: Set agent routing

# Route by chat type
privateassistant-agent    # 1:1 DMs
groupsupport-agent      # group chats
channelbroadcast-agent    # Telegram channels
Groups and privacy mode

In Telegram groups, bots only receive messages that start with / (commands) unless Privacy Mode is disabled. Disable it via BotFather: /setprivacy → Disable. Only do this if the bot needs to read all group messages — otherwise keep it enabled for cleaner signal.

Testing Your Channel Connection

After saving credentials in the Channels page, ClawHQ runs a health check automatically. You'll see a green status indicator if the connection is established. For manual testing:

  1. Send a test message in the connected channel (or DM the bot)
  2. Check Dashboard → Activity — you should see an incoming event appear in the live feed within a few seconds
  3. Confirm the agent responded in the channel

If the health check is green but the agent isn't responding, the most common cause is routing — the channel or DM doesn't match any routing rule. Check your routing config and make sure there's a * wildcard fallback entry.

Advanced: Multi-Channel Routing

Once multiple channels are connected, you can route based on message content across channels. A support message in Discord can trigger the same agent as a DM in Telegram. Configure this in Dashboard → Channels → Cross-Channel Routing:

{
  "cross_channel": {
    "enabled": true,
    "rules": [
      {
        "match": { "contains": ["urgent", "down", "broken"] },
        "route_to": "incident-agent",
        "notify": "slack:#ops-alerts"   // escalate to Slack regardless of origin
      }
    ]
  }
}

20+ channels, one control plane

Discord, Slack, Telegram, WhatsApp, Teams, email — configure all your channels in one place and route messages to the right agent automatically.

Deploy ClawHQ → Read the docs