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.
- Gateway WebSocket connection
- Slash command support
- Thread-per-conversation routing
- Server role-based access
- Requires a Developer Portal bot
- Events API + Socket Mode
- Block Kit response formatting
- Channel and DM routing
- Workspace SSO integration
- Requires a Slack App
- 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
-
1Open the Developer PortalGo to discord.com/developers/applications and click New Application. Name it — this will appear as the bot's username.
-
2Create 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.
-
3Set required intentsUnder Privileged Gateway Intents, enable Message Content Intent. ClawHQ needs this to read message text, not just metadata.
-
4Generate an invite URLGo to OAuth2 → URL Generator. Select
botscope. 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
#general → support-agent
#dev → coding-agent
#help → support-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.
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
-
1Go to api.slack.com/appsClick Create New App → From scratch. Name it and select your workspace.
-
2Enable Socket ModeIn the sidebar, click Socket Mode and toggle it on. Generate an App-Level Token with
connections:writescope. Save this token — it starts withxapp-. -
3Add 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 withxoxb-). -
4Enable 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
#support → support-agent
#engineering → coding-agent
@DM → assistant-agent # direct messages go here
* → default-agent
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 (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
-
1Open Telegram and search @BotFatherStart a chat and send
/newbot. Follow the prompts: choose a display name, then a username (must end in "bot"). -
2Copy the API tokenBotFather replies with a token in the format
123456789:ABCdef.... Copy it — this is all you need. -
3Optional: configure bot commandsSend
/setcommandsto 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
private → assistant-agent # 1:1 DMs
group → support-agent # group chats
channel → broadcast-agent # Telegram channels
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:
- Send a test message in the connected channel (or DM the bot)
- Check Dashboard → Activity — you should see an incoming event appear in the live feed within a few seconds
- 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