Back to blog

Design Telegram bot command menus: scope, language, and authorization

Turn private-chat, group, administrator, and localized command menus into clear requirements without confusing menu visibility with backend authorization.

Published October 10, 2026

A command menu is more than a help list. It determines what people see after typing /, and it can prevent private-chat, group, and administrator actions from being mixed together. A good bot specification describes command visibility, localized descriptions, and actual authorization as separate rules.

Name tasks before naming commands

List the actions people need, then give each frequent action a specific command. A community event bot might use:

  • /join to register for the current event;
  • /my_status to view the user's registration;
  • /rules to read participation rules;
  • /close_signup for administrators to close registration;
  • /export for administrators to export results.

Commands should be specific. /new_event or /new_rule is clearer than /new followed by another parameter explaining what to create. Descriptions should state the outcome instead of repeating the command name.

Use scopes to reduce menu noise

Telegram supports different command lists for different scopes. A practical design has four layers:

| Context | Commands worth showing | Checks still required in code | | --- | --- | --- | | Default | /start, /help | Input validity | | All private chats | /my_status, /settings | Ownership of the current user's data | | All groups | /rules, /join | Group state and membership | | Group administrators | /close_signup, /export | Whether the sender is still an administrator |

Telegram's command documentation explains that owners can configure commands through the official BotFather, while bots can also change their own command lists. Scopes and language codes can produce different menus.

Scope controls who sees a menu item; it does not authorize the action. Incoming updates do not prove which command scope displayed an item, and a user can manually type a command that is absent from their menu. When /export arrives, the bot still needs to verify chat type, sender identity, and current administrator status.

Keep behavior consistent across languages

Stable command names with localized descriptions are easier to maintain. A Chinese menu might show “/join 报名活动,” while English shows “/join Join the event.” Telegram's setBotCommands method accepts both a scope and language_code; provide a default list for users without a dedicated language configuration.

Do not translate only the menu. Verify that:

  • /help uses the same language as the command descriptions;
  • errors, empty states, and success messages have matching translations;
  • changing the Telegram interface language does not change stored data or command behavior;
  • unsupported languages fall back to an understandable default.

Write the menu as a generation-ready requirement

Adapt this requirement fragment:

Build a group event registration bot. The default menu shows only /start and /help. Private chats add /my_status and /settings. Groups show /join, /leave, and /rules. Group administrators additionally see /close_signup and /export. Provide English and Chinese descriptions while keeping the same English command names. Anyone can manually type an administrator command, so verify current administrator status before every protected action. An unauthorized request receives a short explanation and no registration data. Unknown commands show help for the current chat. The first version needs no natural-language intent recognition or runtime AI.

This separates menu display, behavior, authorization, and localization, making the generated result easier to inspect.

Test four account scenarios

After publishing, verify that:

  1. A regular user typing / in a private chat sees only private and default commands.
  2. A regular group member does not see administrator entries; manually typing /export is still rejected.
  3. A group administrator can see and run protected commands, then immediately loses access after the role is removed.
  4. English and Chinese clients see the same command set with localized descriptions, while an unsupported language receives the default menu.

Also test arguments, casing, bot-username suffixes, and command links from old messages. A correct menu configuration does not prove correct parsing or authorization.

Where BotFatherV2 fits

BotFatherV2 creates and modifies Telegram Serverless bots through AI conversation. It is an independent product, separate from Telegram's official BotFather. Its public beta documentation names menus as an initial use case, but a fixed SDK surface does not imply support for every new Telegram method. Put scopes, languages, and authorization into the requirement, review the validation report, and test the actual bot in Telegram.

AI-assisted development does not automatically make the deployed bot a runtime AI agent. Command menus and authorization checks are deterministic workflows that can provide a clear, safe interface without any model calls.

Sources and verification date

  • Telegram, Bot commands, official English technical documentation; no publication date displayed. Checked October 10, 2026.
  • Telegram, bots.setBotCommands, official English API documentation; no publication date displayed. Checked October 10, 2026.

Related articles

Continue with articles that share the same product tags.

Import a Telegram Serverless bot: a migration checklist

Confirm import eligibility, preserve the live cloud baseline, inventory modules and integrations, and verify versions, data, and real Telegram behavior before and after changes.

Specify a Telegram poll bot: revoting, new options, and result rules

Turn Telegram's 2026 poll capabilities into testable requirements for multiple answers, revoting, member limits, added options, closing times, and result visibility.

Telegram bot rollback: restoring old code does not restore old data

Separate code versions, database structure, and business records before rolling back a Telegram bot, then check compatibility, cloud conflicts, and real behavior.

Build a Telegram bot with AI: write requirements and acceptance checks first

Turn a personal task-bot idea into clear commands, ownership rules, error handling, and observable acceptance checks before generating a Telegram bot with AI.

Does your Telegram bot need an AI agent? Ask who chooses the next step

Distinguish rule-based Telegram bots, model workflows, and autonomous agents using event examples, then examine tool access, human review, and runtime limits.