Running it
Telegram bot privacy mode: why your bot ignores group messages
By the Botable team
Privacy mode is on by default and limits what a bot receives in groups to commands, replies to its own messages, mentions of itself, and service messages. Turn it off with /setprivacy in BotFather — then remove and re-add the bot.
The short version
Privacy mode is a Telegram Bot API setting that determines how much of a group conversation a bot is given, and it is enabled by default. With it on, the bot receives messages beginning with a slash, replies to messages the bot itself sent, messages that @mention it, and service messages such as joins and leaves. Everything else — the actual conversation — is never delivered, which is a deliberate privacy protection rather than a limitation to work around casually. Turning it off with /setprivacy in @BotFather gives the bot every message in every group it is in, which is necessary for moderation filters, keyword watchers and auto-translation, and unnecessary for anything command-driven. The detail that costs people an afternoon is that the change applies only to groups joined afterwards: an existing group keeps the old behaviour until the bot is removed and added again.
Step by step
How do you tell whether privacy mode is the problem?
If the bot answers commands in the group but ignores everything else, it is privacy mode — not a bug in your handlers. If it ignores commands too, the problem is elsewhere: check that it is actually in the group and that the process is running.
How do you turn it off?
Message @BotFather, send /setprivacy, choose the bot, and select Disable. BotFather confirms the new setting immediately. Nothing about your running code needs to change.
Why does nothing change after disabling it?
Because the setting is applied when the bot joins a chat. Groups it is already in keep the previous behaviour indefinitely. Remove the bot from the group and add it back, and it will then receive everything. This step is missing from most explanations of the setting.
Should you disable it?
Only if a feature requires it. Moderation, keyword triggers, auto-translation and analytics over conversation all do. A command-driven bot does not, and leaving privacy on means a compromised token exposes far less history. Default to leaving it on.
What catches people out
- Disabling privacy has no effect on groups the bot is already in — the re-add is mandatory
- Privacy mode does not apply to private chats; a bot always receives everything there
- A bot promoted to group admin receives all messages regardless of the privacy setting
Questions
Does privacy mode affect channels?
Channels work differently — a bot must be an admin to be in a channel at all, and admins receive channel posts. The privacy setting is about groups and supergroups.
Can users tell whether privacy mode is off?
Not directly from the interface. This is worth stating plainly in your bot's description if it reads all messages, because people reasonably assume the default and the honest disclosure costs nothing.
Want a bot that does this?
Describe it in plain language and Botable writes the code, gives the bot its own database, deploys it and keeps it running. Everything on this page is handled for you — the token, the webhook, the storage, the hosting.
Keep reading
- Add a bot to a grouphow to add a bot to a telegram group
- Bot admin rightstelegram bot admin rights
- Bot not respondingtelegram bot not responding