Most Telegram bot tutorials hand you a list of 20 commands and call it a day. But I've watched dozens of small business owners set up bots with too many commands, confusing labels, and zero logic behind the structure — then wonder why customers ignore the bot entirely. The real question isn't how to create a telegram bot command. It's which commands to build, how to name them so customers actually tap them, and what command architecture separates a bot people use daily from one they mute after the first interaction.
- Telegram Bot Command: The Complete Command Architecture Guide for Small Business Bots That Actually Get Used
- Quick Answer: What Is a Telegram Bot Command?
- Frequently Asked Questions About Telegram Bot Commands
- How do I create a custom command for my Telegram bot?
- How many commands should a small business Telegram bot have?
- What's the difference between bot commands and inline keyboards?
- Can I make Telegram bot commands work in different languages?
- Do Telegram bot commands work in group chats?
- What happens if a user types a command that doesn't exist?
- The 3 Command Types Every Business Bot Needs (And the 2 Most Owners Waste Time On)
- Command Naming: The 4-Second Rule That Determines Whether Users Tap or Scroll Past
- Building a Command Architecture: The Decision Framework
- The /start Command: Your Bot's Most Important 3 Seconds
- Real Command Structures for 5 Business Types
- The Technical Layer: Registering and Managing Commands
- Command Analytics: Measuring What Matters
- Build Your Telegram Bot Command Structure Without Writing Code
This guide is part of our complete guide to the Telegram API for small business automation. Where that piece covers the full integration landscape, this one zooms in on the command layer — the part your customers actually touch.
Quick Answer: What Is a Telegram Bot Command?
A telegram bot command is a text instruction starting with a forward slash (/) that triggers a specific action in a Telegram bot. Commands like /start, /help, or /book let users interact with your bot through simple taps rather than free-text typing. Telegram's Bot API supports up to 100 custom commands per bot, though effective business bots rarely need more than 8–12. Commands appear in an auto-complete menu, making them the primary navigation layer for your bot's functionality.
Frequently Asked Questions About Telegram Bot Commands
How do I create a custom command for my Telegram bot?
Register commands through Telegram's BotFather using the /setcommands method, or programmatically via the setMyCommands API endpoint. Each command needs a name (1–32 characters, lowercase letters, digits, and underscores only) and a description (3–256 characters). BotFather is faster for initial setup; the API method lets you update commands dynamically based on user context or language.
How many commands should a small business Telegram bot have?
Between 5 and 12 commands covers most small business use cases. Bots with fewer than 5 often feel limited, while bots with more than 15 see a measurable drop in engagement — users scroll past the command menu without tapping anything. The sweet spot I've seen across client deployments: 7 commands for service businesses, 9–10 for e-commerce, and 5–6 for appointment-based businesses.
What's the difference between bot commands and inline keyboards?
Commands are text-based instructions users type or select from a menu. Inline keyboards are clickable buttons attached to specific messages. Commands work globally from anywhere in the chat; inline keyboards are contextual to a single message. Best practice: use commands for primary navigation (starting flows, accessing main features) and inline keyboards for choices within a conversation flow (selecting a date, picking a product).
Can I make Telegram bot commands work in different languages?
Yes. The setMyCommands API accepts a language_code parameter conforming to IETF BCP 47 language tags. You can register entirely different command sets for each language. If a user's Telegram app is set to Spanish, they'll see your Spanish command descriptions automatically. Default commands (no language code) serve as the fallback for unsupported languages.
Do Telegram bot commands work in group chats?
Commands work in groups, but behavior differs. In groups with multiple bots, users must append the bot's username: /help@YourBotName. You can also scope commands to only appear in private chats, only in groups, or only for group administrators using the scope parameter in setMyCommands. Most small business bots should restrict lead capture commands to private chats and leave informational commands available in groups.
What happens if a user types a command that doesn't exist?
Nothing, by default. Telegram doesn't auto-reply to unrecognized commands — your bot simply ignores them. This is a missed opportunity. Configure a fallback handler that catches any message starting with / that doesn't match a registered command and responds with your command menu or a help message. Unhandled commands are the number-one reason users abandon bots, thinking they're broken.
The 3 Command Types Every Business Bot Needs (And the 2 Most Owners Waste Time On)
Every telegram bot command falls into one of five categories. Three of them drive actual business outcomes. Two are time sinks that feel productive but rarely move the needle.
The Three That Matter
1. Entry commands start a conversation flow. /start, /book, /quote, /order — these are revenue-generating actions. They should lead directly into a structured conversation (not a wall of text) that captures information or completes a transaction.
2. Information commands answer the questions that would otherwise become support tickets. /hours, /menu, /pricing, /location. Each one should return a concise, formatted message — not a link to your website. If customers wanted to visit your website, they wouldn't be in Telegram.
3. Status commands reduce follow-up inquiries. /track, /myorders, /appointment. A pizza shop I helped set up saw support messages drop 34% within two weeks of adding a /track command. These commands pull real-time data and return a specific, personalized answer.
The Two That Waste Time
Settings commands (/preferences, /notifications, /language) feel important during development but get used by fewer than 3% of users in most small business contexts. Build them last, if ever.
Social/gamification commands (/refer, /points, /leaderboard) require significant backend infrastructure and ongoing maintenance. Unless your business model specifically relies on referral mechanics, skip them entirely in version one.
The average small business Telegram bot needs exactly 7 commands to handle 90% of customer interactions — yet most tutorials teach you to build 20. More commands don't mean more engagement; they mean more confusion and more maintenance.
Command Naming: The 4-Second Rule That Determines Whether Users Tap or Scroll Past
Your command menu is a UX surface. Users glance at it for roughly 4 seconds before deciding whether to engage. Here's what I've learned about naming commands that actually get tapped.
Keep Names to One Word When Possible
| Weak Command | Better Command | Why |
|---|---|---|
/getaquote |
/quote |
Shorter, scannable |
/makebooking |
/book |
Action-oriented verb |
/checkstatus |
/status |
Removes filler word |
/viewmenu |
/menu |
Noun is clearer than verb+noun |
/contactsupport |
/help |
Universal, expected |
Use Verbs for Actions, Nouns for Information
This pattern matches how people already think about bot interactions:
- Verbs:
/book,/order,/cancel,/track - Nouns:
/menu,/hours,/pricing,/location
Mixing these patterns (using a verb for information, like /checkhours) creates cognitive friction. It's small, but across thousands of interactions, it compounds into lower engagement rates.
Write Descriptions That Sell the Tap
Each command's description appears in the menu. Most developers write descriptions like "View the menu" for /menu. That's a wasted opportunity.
Better descriptions answer why the user should tap:
/menu— "Today's specials + full menu with prices"/book— "Reserve a table in under 30 seconds"/help— "Get a response within 2 minutes"
The description is a micro-conversion point. Treat it like button copy, not a label.
Building a Command Architecture: The Decision Framework
Not every feature needs a command. Here's the framework I use when planning a business bot's command structure, which aligns with the bot best practices we've covered previously.
Step 1: List Every Customer Action That Currently Requires a Human
- Pull your last 30 days of customer messages, emails, or support tickets.
- Categorize each into: question, booking/order, status check, complaint, or other.
- Tally the frequency of each category.
The top 5–7 categories become your command candidates.
Step 2: Apply the Automation-Readiness Filter
For each candidate, score it on two axes:
- Predictability (1–5): How consistent is the information needed? A "What are your hours?" question scores 5. A custom catering quote scores 2.
- Data availability (1–5): Can your bot access the answer without human intervention? Hours from a database scores 5. A subjective design consultation scores 1.
Commands scoring 7+ (combined) are strong automation candidates. Scores of 4–6 can work as lead capture flows — the bot collects information, then a human follows up. Below 4, don't automate it; route to a human via /help.
Step 3: Map the Command Flow, Not Just the Command
Each command needs a defined conversation path. Here's a minimal spec for a /book command at a salon:
/book
→ Bot: "What service? [Inline keyboard: Haircut | Color | Styling | Other]"
→ User taps: Haircut
→ Bot: "Preferred day? [Inline keyboard: Today | Tomorrow | Pick a date]"
→ User taps: Tomorrow
→ Bot: "Available slots tomorrow: [Inline keyboard: 10:00 | 11:30 | 2:00 | 4:30]"
→ User taps: 2:00
→ Bot: "Confirmed: Haircut, tomorrow at 2:00 PM. Reply /cancel to change."
Notice: after the initial /book command, every subsequent interaction uses inline keyboards, not additional commands. This is the right pattern — commands open flows, keyboards navigate within them. If you're building this kind of structured flow, a no-code chatbot maker can save you weeks of development time.
Step 4: Set Command Scopes
The Telegram Bot API's BotCommandScope parameter lets you show different commands to different users. This is underused and incredibly powerful:
- Default scope: The commands every user sees (
/start,/help,/hours) - Private chat scope: Lead capture and account-specific commands (
/quote,/myorders) - Group chat scope: Informational commands only (
/menu,/hours,/location) - Admin scope: Management commands (
/broadcast,/stats,/export)
According to Telegram's official Bot API documentation, scopes are evaluated from most specific to least specific, with the first matching scope taking priority.
A bot with 7 well-scoped commands feels more powerful than one with 20 flat commands — because users only see what's relevant to them, exactly when they need it.
The /start Command: Your Bot's Most Important 3 Seconds
Every Telegram bot interaction begins with /start. It's not just a greeting — it's your conversion point. Get it wrong, and users never send a second message. I've seen this pattern across hundreds of bot deployments, and the data is consistent: bots that respond to /start with a text wall longer than 4 lines lose 60%+ of users immediately.
Here's what a high-performing /start response looks like:
👋 Welcome to [Business Name]!
I can help you:
📋 /menu — See today's specials
📅 /book — Reserve a table
❓ /help — Talk to our team
What would you like to do?
Three things make this work:
- One line of greeting, max. No "We're so glad you're here! Our bot can do many wonderful things..." — get to value.
- Three to five command suggestions with emoji prefixes. Visual anchors make scanning instant. For advice on writing these openers, see our deep dive on chatbot welcome message examples.
- An open question at the end. This invites engagement without requiring it.
Deep Links: The /start Command's Secret Weapon
Telegram supports deep links that pass parameters to /start. The URL format is https://t.me/YourBot?start=PARAMETER. When a user clicks it, your bot receives /start PARAMETER.
This matters for small businesses because you can create unique entry points:
- QR code on a menu:
?start=menu_table12→ Bot shows the menu and knows which table - Instagram bio link:
?start=ig_promo→ Bot opens with a specific promotion - Email campaign:
?start=email_june→ Bot tracks the lead source
Each deep link parameter lets you customize the /start response and track which channels drive engagement.
Real Command Structures for 5 Business Types
Rather than abstract theory, here are the exact command sets I'd configure for five common small business types. Each is based on patterns that work in production, reflecting what we've seen at BotHero across dozens of industry-specific deployments.
Restaurant / Café (7 commands)
| Command | Description | Type |
|---|---|---|
/start |
Welcome + quick menu | Entry |
/menu |
Full menu with prices and photos | Information |
/book |
Reserve a table | Entry |
/hours |
Opening hours + location map | Information |
/order |
Place a pickup/delivery order | Entry |
/track |
Check your order status | Status |
/help |
Talk to our team | Entry |
Real Estate Agent (6 commands)
| Command | Description | Type |
|---|---|---|
/start |
Welcome + what I can help with | Entry |
/search |
Find listings by area and budget | Entry |
/schedule |
Book a viewing | Entry |
/market |
Latest local market stats | Information |
/calculator |
Quick mortgage estimate | Information |
/help |
Speak with me directly | Entry |
Fitness Studio / Gym (8 commands)
| Command | Description | Type |
|---|---|---|
/start |
Welcome + class schedule | Entry |
/classes |
This week's full schedule | Information |
/book |
Reserve a spot in a class | Entry |
/pricing |
Membership plans + day passes | Information |
/trial |
Claim your free trial class | Entry |
/myplan |
Your membership details | Status |
/cancel |
Cancel or reschedule a booking | Entry |
/help |
Talk to our front desk | Entry |
E-commerce Store (9 commands)
| Command | Description | Type |
|---|---|---|
/start |
Welcome + today's deals | Entry |
/shop |
Browse products by category | Entry |
/deals |
Current promotions and discounts | Information |
/cart |
View your cart | Status |
/order |
Place your order | Entry |
/track |
Track your shipment | Status |
/returns |
Start a return or exchange | Entry |
/sizing |
Size guide for all products | Information |
/help |
Customer support | Entry |
Healthcare / Dental Practice (6 commands)
| Command | Description | Type |
|---|---|---|
/start |
Welcome + book or ask a question | Entry |
/book |
Schedule an appointment | Entry |
/services |
Treatments we offer + pricing | Information |
/insurance |
Accepted insurance plans | Information |
/appointment |
Check your next appointment | Status |
/help |
Speak with our office | Entry |
If your business spans multiple channels beyond Telegram, the principles here apply to how small businesses can use chatbots across any messaging platform.
The Technical Layer: Registering and Managing Commands
For those who want to understand what's happening under the hood — even if you're using a no-code platform like BotHero to build your bot — here's how telegram bot command registration actually works.
Registering Commands via BotFather (Manual Method)
- Open a chat with @BotFather on Telegram.
- Send
/setcommands. - Select your bot from the list.
- Send your commands in this exact format (one per line):
menu - Full menu with today's specials book - Reserve a table in 30 seconds hours - Opening hours and location help - Get a response within 2 minutes - BotFather confirms the update. Commands appear immediately in the bot's menu.
Registering Commands via API (Programmatic Method)
POST https://api.telegram.org/bot<token>/setMyCommands
{
"commands": [
{"command": "menu", "description": "Full menu with today's specials"},
{"command": "book", "description": "Reserve a table in 30 seconds"}
],
"scope": {"type": "all_private_chats"},
"language_code": "en"
}
The API method is superior for businesses that need to update commands dynamically — for example, adding a /valentine command in February or a /holiday_hours command in December. If you've read our Telegram API guide, you'll recognize this as part of the broader bot management toolkit.
The No-Code Alternative
If you're reading the code examples above and thinking "I don't have time for this" — that's a rational response. A platform like BotHero lets you configure commands, conversation flows, and lead capture through a visual interface. You define the command name, map it to a conversation flow, and publish. The platform handles the API calls, scope management, and multilingual descriptions. For most small business owners, this is where the Python Telegram bot example path ends and the no-code path begins.
Command Analytics: Measuring What Matters
Setting up commands is half the job. The other half is knowing which ones perform and which ones sit unused.
Track these three metrics for every command:
- Trigger rate: How often each command is used per unique user per week. Commands below 0.1 triggers/user/week are candidates for removal.
- Completion rate: For entry commands that start a flow (like
/book), what percentage of users complete the full flow? Below 40% completion signals a UX problem in the flow, not the command itself. - Conversion rate: For revenue-generating commands, what percentage result in a booking, order, or captured lead? This is the number that ties your bot directly to business outcomes.
If you want to go deeper on measurement, our guide to chatbot KPIs covers the full metrics framework.
Build Your Telegram Bot Command Structure Without Writing Code
A well-designed telegram bot command structure turns your Telegram presence from a novelty into a genuine business tool. The commands you choose, the way you name them, and the flows behind them determine whether customers engage or abandon.
Here's the shortest path from reading this article to a working bot:
- List your top 5 customer interactions using the framework in the decision section above.
- Name your commands using the one-word, verb/noun convention.
- Map each command to a conversation flow with a clear end state (booking confirmed, lead captured, question answered).
- Set command scopes so users only see what's relevant.
- Launch with 5–7 commands, measure for two weeks, then iterate.
BotHero makes steps 2–5 a visual drag-and-drop process. If you'd rather spend your time running your business than debugging API calls, that's exactly what it's built for.
About the Author: BotHero is an AI-powered no-code chatbot platform for small business customer support and lead generation. The BotHero team has helped businesses across 44+ industries deploy Telegram bots, website chat widgets, and multi-channel automation — turning customer conversations into captured leads and closed sales without requiring a single line of code.