Guide

How to add buttons to a Telegram channel post

Buttons under a channel post are an inline keyboard: a label and a link. Two kinds you author, rows you arrange, colour and emoji — and one kind you can't.

AdminHub

TL;DR. A button under a channel post is an inline keyboard attached to the message, and Telegram’s own composer cannot attach one — only a bot can, which is why every buttoned post you have ever seen came through a tool. You author two kinds: a URL button and a WebApp button that opens a Mini App in place. You arrange them into rows, colour them, and can put a custom emoji on one. What you cannot do is make a button react rather than navigate — callback buttons aren’t on offer here. And if you publish with a broken link, editing the post replaces the keyboard without losing the message’s views.

If you have tried to add a button while writing a post in Telegram, you already know there is no field for it. That is not an oversight and not a setting you failed to find: buttons live in a part of the message that only a bot can fill in. Every buttoned post in every channel you follow was sent by one.

What the button actually is

Telegram calls it an inline keyboard, and it is attached to the message rather than being part of the text. That distinction explains most of its behaviour: the buttons travel with the post when it is forwarded, they survive edits, and they cannot be selected or copied like text.

It also explains why the composer in the app has no button field. The app sends messages as you; buttons come from the bot API, so something with a bot has to send the post. That something can be us or anyone else — the mechanism is Telegram’s, not ours.

Worth separating from a near neighbour: buttons in a chat with a bot — the menu you see when you open a bot and it offers you «Create post», «Statistics» and so on. Same underlying keyboard, entirely different job. This page is about the buttons under a post in a channel.

The two kinds you write, and the one you don’t

A URL button opens a link. This is the ordinary case and what most posts need: a product, an article, a form, a chat.

A WebApp button opens a Mini App without leaving Telegram. If you have a shop, this is the difference between sending a customer to a browser and having the catalogue open over the chat. It is the more interesting of the two and the one most guides skip, because it only exists if you have a Mini App to point at.

The third kind, a pay button, we assemble for you when a post is behind a paywall. You cannot hand-author it, and that is deliberate: a payment button that anyone could point anywhere is a phishing tool.

Adding them

Write the post in the editor, then add a button as a pair: the label people read, and the link it opens. That is the whole of the required part — everything below is optional arrangement.

A label can run to 255 characters and a link to 2048, but neither number is the real constraint. The real constraint is the width of a phone: a label long enough to wrap is a label nobody finishes reading.

Rows, and why one per row usually wins

Buttons stack into rows, and you decide which button sits in which row — up to eleven rows. Several buttons share a row, splitting its width between them.

We do not cap how many you put in a row; Telegram’s own layout does the capping for you, and not gently. Three short labels sit comfortably. Five become truncated stubs. The pattern that survives contact with real posts is one prominent button, or two when there is a genuine either/or — «Buy» and «Details», not five destinations competing for the same thumb.

Colour and a custom emoji

A button can be blue, red or green — Telegram renders these as its primary, danger and success styles — and can carry a custom emoji next to its label.

Use this less than you want to. Colour means something on a keyboard: red reads as destructive, green as confirmation. A red «Read more» is a small lie your reader resolves by not clicking. And because both features are recent, older Telegram versions show a plain button instead — which is the right kind of degradation, but it means the colour is never load-bearing.

What a button here cannot do

It cannot react. Callback buttons — the ones that answer in place, tally votes, reveal hidden text, toggle a state without leaving the message — are not something you can add. Every button you write goes somewhere.

This is the honest ceiling of the feature, and it rules out a real category of ideas: quiz posts that score you, «show me the answer» reveals, counters that tick up as people press. For a vote, Telegram’s native poll does the job properly and costs nothing.

Nothing is ruined. Editing a published post replaces its buttons and pushes the new keyboard to every channel the post went to, so a typo in a URL is a two-minute fix rather than a delete-and-repost.

That matters more than it sounds: reposting costs you the views, the reactions and the forwards the original accumulated. Editing keeps all of it.

If… then…

If…Then…
You want one clear action under a postA single URL button, no colour, no emoji
You are selling and have a shopA WebApp button — the catalogue opens over the chat
You want a vote or a quizNot buttons — Telegram’s native poll
You want five destinationsPick two; the other three will be ellipses
You spotted a broken link after publishingEdit the post; views and reactions survive
The post is behind a paywallThe buy button is assembled for you
Your audience is on old app versionsColour and emoji quietly fall back to a plain button

Where to start

Take a post you have already published and ask what you wanted the reader to do next. If the answer is a single verb — buy, read, join, book — that is your one button, and the label should be that verb rather than «Link» or «Here».

Then look at whether the destination is a page or your own shop. If it is the shop, a WebApp button keeps the reader inside Telegram, and the difference in how many people arrive is not subtle.

Leave the colours alone on the first few posts. A plain button that says the right word outperforms a green one that says «Click».


What the editor does in full — the post editor. What else the editor does — the post editor. Scheduling and repeats — the autoposting guide. Selling straight from a post — how to sell on Telegram.

What people usually ask

Can I add buttons to a post from the Telegram app itself?
No. Telegram's own composer has no button field — buttons live in the message's reply markup, and only a bot can attach that. So every post with buttons under it was sent by a bot, including the ones you see in big channels. That is the whole reason a tool is involved.
What kinds of buttons can I put there?
Two you write yourself: a URL button that opens a link, and a WebApp button that opens a Mini App inside Telegram — your shop, for instance, without leaving the chat. A third kind, the pay button, is assembled for you on paywalled posts; you don't author it.
Can a button do something instead of opening something?
No, and this is the honest limit. Callback buttons — the ones that react in place, count votes, reveal text, flip a state — are not available here. Every button you add goes somewhere. If you need a poll, use Telegram's native poll instead.
How many buttons fit in a row?
Several, and you arrange the rows yourself — up to eleven of them. We don't cap the count, but labels share the row's width, so three short ones read fine and five turn into ellipses. One or two per row is what actually gets clicked.
I published with the wrong link. Is the post ruined?
No. Editing a published post replaces its buttons and pushes the new keyboard to every channel it went to. The message keeps its views and reactions — you're editing it, not reposting.
Can I colour a button?
Yes — blue, red or green, which Telegram renders as its primary, danger and success styles. You can also put a custom emoji on a button. Both are recent Telegram features, so older app versions simply show a plain button rather than breaking.