-
-
Notifications
You must be signed in to change notification settings - Fork 69.4k
Feature request: Listen-only / suppress-outbound channel mode for WhatsApp #22791
Description
Feature Request
Add a channel-level configuration option to suppress all outbound messages on a given channel, enabling true "listen only" mode.
Use Case
We use WhatsApp to passively monitor ~100+ group chats (school, family, professional). We never want to send any outbound message — not even error messages or "NO_REPLY" responses. Currently, the only way to prevent outbound is requireMention: true on every group, which blocks agent processing entirely.
The problem: if an agent is bound to the WhatsApp channel and requireMention is false (or temporarily misconfigured), any agent error or response gets sent back to the WhatsApp group. This happened to us when a model 404 error was sent as a text message to a WhatsApp group — very embarrassing and hard to undo.
Current Workarounds
requireMention: trueon all groups — prevents agent processing, but also prevents any useful hook/agent logic from running on inbound messagesgroupAllowFrom: ["*"]+ rely on gateway log — messages are logged at INFO level byweb-inboundmodule, then extracted by a bridge script. Works but fragile.
Proposed Solution
A channel-level config option like:
{
"channels": {
"whatsapp": {
"suppressOutbound": true
}
}
}Or alternatively:
{
"channels": {
"whatsapp": {
"mode": "listen-only"
}
}
}This would:
- Allow inbound messages to flow through normally (access control, hooks, agent processing)
- Block ALL outbound messages at the transport layer (before they reach the WhatsApp API)
- Log suppressed outbound attempts for debugging
- Work independently of
requireMentionso hooks and agents CAN process messages without risk of replies
Why This Matters
- Safety: Prevents accidental outbound messages from agent errors, model failures, or misconfiguration
- Privacy: Allows passive monitoring without any group members knowing a bot is listening
- Flexibility: Enables running agent logic on inbound messages (summarization, extraction) without outbound risk
- Defense in depth: Even if
requireMentionis accidentally set tofalse, no message can escape
Related
- Workspace hooks for
message_receivedcurrently do not fire (Workspace hooks registered for message_received never fire (internal vs plugin hook dispatch mismatch) #22790) — fixing that plus this feature would enable clean passive capture pipelines
Environment
- OpenClaw version: 2026.2.19-2
- OS: macOS 26.3 (arm64)