Supported Channels
OpenFang supports these messaging platforms:Core Platforms
Telegram
Popular messaging with bot API
Discord
Gaming and community platform
Slack
Enterprise team communication
Global messaging leader
Signal
Privacy-focused messaging
Matrix
Decentralized protocol
IMAP/SMTP support
Enterprise
Microsoft Teams
Office 365 integration
Mattermost
Self-hosted Slack alternative
Google Chat
Workspace messaging
Webex
Cisco collaboration
Feishu/Lark
ByteDance workplace
Zulip
Threaded conversations
Social & Community
LINE
Popular in Asia
Viber
Global messaging
Facebook Messenger
Meta platform
Mastodon
Federated social
Bluesky
AT Protocol
Community discussions
Professional network
Twitch
Live streaming chat
Privacy & Open Source
Threema
Swiss privacy messaging
Nostr
Decentralized protocol
Mumble
Low-latency voice
Nextcloud Talk
Self-hosted chat
Rocket.Chat
Open source platform
Ntfy
Push notifications
Gotify
Self-hosted notifications
Legacy & Niche
IRC
Classic protocol
XMPP
Extensible messaging
Guilded
Gaming communities
Revolt
Discord alternative
Keybase
Crypto messaging
Discourse
Forum platform
Gitter
Developer chat
Pumble
Team messaging
Flock
Business messaging
Twist
Async communication
DingTalk
Alibaba workplace
Zalo
Vietnamese messaging
Webhooks
Custom integrations
Quick Setup Examples
Telegram
- Message @BotFather on Telegram
- Send
/newbotand follow the prompts - Copy the bot token
- Add token to environment variable
- Start OpenFang
Environment variable containing the Telegram bot token
List of Telegram user IDs allowed to interact. Empty array = allow all.
Discord
- Go to Discord Developer Portal
- Create a new application
- Go to “Bot” section and create a bot
- Copy the bot token
- Enable “Message Content Intent” in bot settings
- Invite bot to your server using OAuth2 URL
Environment variable containing the Discord bot token
List of Discord guild (server) IDs. Empty = respond in all guilds.
Slack
- Go to Slack API
- Create a new app (“From scratch”)
- Enable Socket Mode
- Add bot token scopes:
chat:write,app_mentions:read,channels:history - Install app to workspace
- Copy both Bot Token and App Token
Environment variable containing the Slack bot token (starts with
xoxb-)Environment variable containing the Slack app token (starts with
xapp-)- Go to Meta for Developers
- Create a new app with WhatsApp product
- Get phone number ID from WhatsApp API settings
- Generate a permanent access token
- Configure webhook with your verify token
Channel Behavior Policies
Each channel can have custom behavior policies:DM Policy
How to handle direct messages:
respond: Reply to all DMsallowed_only: Only reply to users in allowed listignore: Ignore all DMs
Group Policy
How to handle group messages:
all: Respond to all messages in groupmention_only: Only respond when @mentionedcommands_only: Only respond to slash commandsignore: Ignore all group messages
Rate Limiting
Maximum messages per user per minute. Set to 0 for unlimited.
Output Formatting
Format of agent responses:
markdown: Standard Markdown (default)telegram_html: Telegram HTML subsetslack_mrkdwn: Slack’s mrkdwn formatplain_text: No formatting
Per-Channel Model Override
Use different models for different channels:Advanced Channel Configuration
Discord with Custom Intents
Slack with Socket Mode
Telegram with Allowed Users
Matrix with Encryption
Email Channel (IMAP/SMTP)
Webhook Channel
Typing Indicators
Show “typing…” indicators while agent is thinking:Multi-Channel Agent
Configure an agent to work across multiple channels:Channel Health Check
Verify channel connectivity:Troubleshooting
Bot Not Responding
- Check token:
echo $TELEGRAM_BOT_TOKEN - Verify permissions: Ensure bot has required scopes
- Check logs:
openfang logs --follow - Test connection:
openfang channels test telegram
Rate Limit Errors
Adjust per-user rate limits:Group Messages Ignored
Ensure group policy allows responses:Permission Errors (Discord)
Enable required intents in Discord Developer Portal:- Message Content Intent
- Guild Members Intent (for user info)
Next Steps
Security Settings
Configure authentication and rate limiting
Model Configuration
Setup LLM providers and routing