Free Telegram Link Generator

Build a t.me deep link - a bot link with a ?start= payload your code can read, a startgroup link for adding a bot to a group, or a plain channel, user or bot link. Everything runs in your browser, so nothing you type is sent to us or stored anywhere.

Link type

0 characters / 64 allowed

How Telegram's start parameter actually works

A wa.me or m.me link opens a chat and, at best, pre-fills a message the recipient still has to send by hand. A Telegram bot link is different: when someone opens t.me/my_support_bot?start=ref_newsletter_aug and presses Start, Telegram calls the bot API method behind the scenes and your bot receives the payload as the argument of a /start command - no message, no typing, no chance for the user to edit or drop it. That makes the payload a clean attribution channel: encode a campaign ID, a referral code, or the page the link was placed on, and your bot can branch its very first reply on it.

The payload is public, not a secret

Because the payload is just a query string, it travels in plain text in the link itself - anyone who has the URL can read it, and it can end up logged in browser history, ad-platform click reports, or a forwarded message. Telegram's own apps choose not to render the raw parameter into the chat transcript when the Start button is pressed, but that is a client display decision, not encryption at the protocol level. Treat it the way you would a UTM parameter: fine for a campaign tag or a short reference code, wrong for a session token, an email address, or anything you would not want screenshotted.

Bot usernames, and why the plain-link mode is different

Telegram requires every bot username to end in bot - tetris_bot and TetrisBot are both valid, a bare tetris is not. That rule exists specifically to keep bots visually distinguishable from real accounts in search and chat lists; it does not apply to the public username of a channel, group or person, which is why the plain-link mode above does not enforce a suffix. All Telegram usernames, bot or not, share the same underlying format: 5 to 32 characters, Latin letters, digits and underscores only.

start vs startgroup vs startapp

start targets a private chat: the user presses Start and the payload arrives immediately. startgroup targets a group: the user is prompted to choose which group to add the bot to, and the payload arrives once that group add completes, so it is better suited to tracking which community installed a bot than which person did. A third parameter, startapp, exists for Telegram Mini Apps and launches a web app inside the client instead of sending a chat command - it is a different mechanism aimed at a different feature, which is why it is not one of the modes above.

When base64url encoding earns its keep

Telegram's 64-character payload only accepts letters, digits, underscore and hyphen. An order number or a short campaign slug fits that charset already and needs nothing extra. Anything with spaces, punctuation, or non-Latin characters has to be base64url-encoded first - which costs roughly a third more characters, so a 64-character ceiling becomes closer to 48 raw bytes once encoded. The toggle above encodes for you and shows the encoded length live, so you can see exactly when you have run out of room rather than finding out from a broken link.

Channel, group and bot links are not interchangeable

A username link (t.me/name) resolves whatever public channel, group or bot owns that name - that is what every mode on this page builds. A private group or channel with no public username instead needs an invite link (t.me/+hash), and that hash is issued by Telegram itself when someone generates an invite from within the app or API; it cannot be constructed by hand, which is why this tool does not attempt to build one. Message links into a private channel (t.me/c/channel/id) are a third, separate format again. If your bot receives updates from Telegram over HTTPS rather than by polling, that delivery mechanism is a webhook, and it is what turns a start payload into something your chatbot analytics can actually attribute to a source.

On Conferbot, Telegram is available on the Pro plan and above. Once a bot is connected, incoming /start messages - payload included - can route into a Telegram chatbot rather than a personal inbox, so the attribution the link carries is not wasted the moment someone presses Start.

Frequently asked questions

What does the ?start= parameter actually do?

It is delivered to your bot as the argument of the /start command the moment someone opens the chat and presses Start. Telegram's Bot API hands your code the exact string after start=, so you can match it against a campaign, a referral code, or a specific landing page and reply accordingly - without asking the user anything first.

Can people see what I put in the start payload?

Yes. The payload sits in plain text inside the URL itself, so anyone with the link, or checking browser history, a shared screenshot, or an ad platform's click log, can read it. Telegram's own apps do not print it into the visible chat bubble, but that is a client UI choice, not encryption - never put passwords, tokens or personal data in it.

Why do Telegram bot usernames have to end in 'bot'?

Telegram's documentation requires it so bots are visually distinguishable from real accounts in search and chat lists, for example tetris_bot or TetrisBot. A small number of legacy or collectible usernames without the suffix exist, such as @gif or @wiki, but those were grandfathered in or purchased separately - new bots cannot opt out of the suffix.

What is the difference between start and startgroup?

start opens a private chat with the bot and sends the payload the instant the user presses Start. startgroup instead prompts the user to pick a group to add the bot to, then delivers the same payload once the bot joins - useful for tracking which group added a bot, rather than which individual person did.

Do I need to base64url-encode my payload?

Only if it contains characters outside A-Z, a-z, 0-9, underscore and hyphen - spaces, punctuation or non-Latin text, for example. Encoding adds roughly a third to the length, so a 64-character budget shrinks to about 48 raw bytes once encoded. Plain identifiers like order codes or short slugs never need it.

How is this different from a WhatsApp or Messenger link?

WhatsApp and Messenger links open a chat with an optional pre-filled message the recipient still has to send manually - there is no parameter your code can read programmatically. Telegram's start payload is delivered straight to your bot's backend, and unlike WhatsApp Business, Telegram has no message-template approval process before a bot can reply.

What is the difference between a channel link, a group invite and a bot link?

A username link (t.me/name) opens whatever public channel, group or bot owns that name. An invite link (t.me/+hash) grants access to a private group or channel with no public username, and the hash can only be issued by Telegram itself - you cannot construct a valid one by hand. A bot start= link is a username link aimed at triggering a bot.

Related

Automate your Telegram bot's replies

Connect it to a Conferbot chatbot in minutes. Telegram is available on the Pro plan.