Skip to content

Talon now works in group chats

PR #203 adds group chat support to the two most popular connectors: Telegram and WhatsApp Baileys. You can now add your Talon bot to a group or community and have it respond when mentioned, without flooding the chat with replies to every message.

Group chat support is opt-in. Set allowGroupChats: true in the connector config and the bot starts listening to group messages. It does not reply to every message — that would be noisy and expensive. Instead, it only responds when explicitly addressed.

ConnectorTrigger mechanism
Telegram@mention by bot username (detected via Telegram entities) or triggerWords prefix
WhatsApp BaileystriggerWords prefix only — no automatic mention detection

The matched trigger is stripped before the message reaches the agent, so @Talon what's the weather? becomes what's the weather?.

Telegram uses the Bot API’s entities array for exact mention detection. This avoids false positives — @talon won’t match @talon2. If no mention is found, the connector falls back to triggerWords.

channels:
- name: my-telegram
type: telegram
enabled: true
config:
botToken: ${TELEGRAM_BOT_TOKEN}
allowGroupChats: true
triggerWords:
- '@Talon'
- '!talon'

In groups, the bot only responds to messages that either @mention it by username or start with one of the configured trigger words. DMs still work normally — triggerWords also applies to direct messages if configured.

WhatsApp Baileys has no native mention entity format, so group messages require at least one triggerWord. Messages without a matching trigger are silently dropped.

channels:
- name: my-whatsapp
type: whatsappBaileys
enabled: true
config:
authDir: ./baileys-auth
allowGroupChats: true
triggerWords:
- '@Talon'
allowedSenders:
- '31612345678'

For group messages, allowedSenders checks the individual sender’s JID (from key.participant), not the group JID. This means you can restrict which group members the bot responds to, even in a large community.

Group messages are threaded by group ID, not by individual sender. Every message in the same Telegram group or WhatsApp community goes to the same conversation thread. This is intentional — the agent sees the group’s shared context, not a separate thread per member.

If you need per-member isolation, bind a separate channel to a dedicated number and use DMs instead.

Group chat support pairs naturally with multi-connector setups. You can run multiple Telegram bots in the same group — each bound to a different persona — and they only respond to their own @mentions. Sibling bot IDs are resolved at startup and filtered automatically, so there’s no risk of cross-talk.

Group chat for Discord Gateway and WhatsApp Business Cloud API is on the roadmap. The Discord connector needs a Gateway client first (see TASK-043); WhatsApp Business groups are gated by Meta’s API permissions.

For the full configuration reference, see the Channels guide.