Telegram Inline Buttons: Create a Bot with BotFather and Add URL Buttons to Channel Posts
· 4 min
Telegram inline buttons explained: create a bot with BotFather, make it a channel admin and add clickable URL buttons under your channel posts, step by step.
Telegram inline buttons are the clickable buttons under a message, like "Read more", "Join the webinar" or "Buy now". They are a bot feature: Telegram's API describes message buttons as "reply markup for sending bot buttons", so to put them under a channel post you create a bot with @BotFather, make it an admin of your channel, and publish the post through that bot. This guide walks through each step and the rules buttons have to follow.
What inline buttons are (and aren't)
Per Telegram's bot features guide, inline keyboards appear right below the message they belong to, and pressing them doesn't send a message into the chat. There are two main kinds:
- URL buttons open a link: your website, a product page, another channel, a chat with your support account.
- Callback buttons send data back to the bot so it can react, which requires a bot that runs its own code.
For channel posts, URL buttons cover almost every need. In the Bot API, each button has a label text and exactly one action; for a URL button that is an HTTP or tg:// link. Buttons are arranged in rows, so you can put two short buttons side by side and a wide one below.
Step 1: create the bot in BotFather
- Open @BotFather in Telegram (check for the blue verification mark) and send
/newbot. - Send a display name, for example "Acme News". This is the name people see in the bot's profile.
- Send a username. It must end in
bot(likeacmenews_bot), be 5–32 characters long, and use only Latin letters, digits and underscores. - BotFather replies with a token that looks like
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw.
Optional but worth doing: /setuserpic for a logo and /setdescription for a short "what is this bot" text. If you also want the bot in groups, make sure /setjoingroups is enabled; for channels it doesn't matter.
Step 2: make the bot an admin of your channel
A bot can only post in a channel where it is an administrator with the right to post messages. In the Telegram app: open the channel settings → Administrators → Add Admin, search for your bot's username, and keep Post messages enabled. You can switch off rights it doesn't need, such as adding new admins.
Doing this by hand for one or two channels is fine. For twenty channels it's tedious, which is where a panel helps (see below).
Step 3: write the post and add buttons
Whichever tool you use, a good button post has:
- One clear main action. A post with six buttons gets fewer clicks than a post with one obvious one.
- Short labels. Two to four words, a verb first: "Get the guide", "Book a demo".
- Working links. Check every URL before you publish; a broken link under a post in fifty channels is painful.
https://links andtg://links work; plain text isn't a link. - Rows that read well on a phone. Two short buttons per row at most.
If a link changes later, buttons can be edited without reposting: the Bot API has an editMessageReplyMarkup method that replaces the buttons of a message the bot sent.
Doing it in Telegramte
- Connect the bot: in Bots → Connect bot, paste the token. It is stored encrypted on the server.
- Make it admin everywhere at once: on Groups & Channels, select your channels and choose Add bot. Telegramte adds the bot as admin through one of your connected numbers that already owns or administers those channels and has the right to add admins.
- Create the post: in bulk posting, pick the bot as the sender, write and format the text, attach an image or video, and in the Buttons section add one or more buttons per row, each with a label and a valid
https://…ortg://…link. - Choose the targets and send now, schedule it, or set it to repeat.
Limits to know
Telegram's Bots FAQ lists the limits: avoid more than about one message per second in a single chat, at most 20 messages per minute in one group, and roughly 30 messages per second across many chats for bulk notifications. One post to a few dozen channels is well within that when sends are queued, which Telegramte does automatically.
Also note that bots cannot use Telegram's own "schedule message" feature, so scheduling bot posts is always done by the tool that sends them.
Quick checklist
- Bot created with
/newbot, token saved somewhere safe. - Bot is admin with Post messages in every target channel.
- Post has one main button with a short, verb-first label.
- Every link tested,
https://ortg://. - Post sent through the bot, not your personal account (personal accounts can't attach inline buttons).
Related: How to schedule posts to multiple Telegram channels · Recurring Telegram posts