Glossary

Telegram Deep Link: Definition and Examples

A Telegram deep link is an ordinary t.me bot link with a start payload attached — the one piece of data that survives the jump from your ad, post or QR code into the chat.

Definition in one paragraph

A Telegram deep link is a link that opens a specific bot and hands it a short string of your choosing at the same time. It looks like t.me/yourbot?start=summer24. When someone taps it, Telegram opens the chat with that bot and delivers the command /start summer24 — the payload arrives as an argument your bot can read on the very first interaction, before the person has typed anything. That is the whole mechanism. Everything marketers do with deep links — campaign codes, referral credit, source attribution, language or category pre-selection — is built on this single fact: one short string travels with the tap.

Anatomy of a t.me start link

The canonical form has three moving parts:

  • The host. https://t.me/ — the public web form that works everywhere, including inside browsers, ad platforms and QR codes. tg://resolve?domain=yourbot is the native scheme equivalent and is best avoided in public creatives because it fails for anyone without the app installed.
  • The bot username. The path segment, for example t.me/yourbot. This is what resolves the link to a chat.
  • The start parameter. ?start=PAYLOAD. This is the deep-link part. Without it, the link is just a bot link.

There are sibling parameters worth knowing so you do not reach for the wrong one. ?startgroup= opens a group picker and adds the bot to a group with the payload attached. ?startapp= launches a Mini App rather than the chat. For lead generation and promo funnels, ?start= is almost always the parameter you want, because it puts the person in a one-to-one conversation your bot fully controls.

What the payload can and cannot contain

The start payload is deliberately narrow. Telegram allows up to 64 characters, restricted to letters, digits, underscore and hyphen. That rules out spaces, ampersands, equals signs and anything else you would find in a UTM string. You cannot paste utm_source=facebook&utm_campaign=q3 into it and expect it to survive.

The practical consequence is that a payload should be a key, not a record. Put a short readable code in the link — ig_reels_oct, promo_welcome50, ref_A7K2 — and store everything else (the offer text, the language variants, the media, the active window, the destination URL) against that code in your panel. The link stays short enough to print under a QR code, and you can change what the code means without reprinting anything.

Three things the payload is not:

  • Not secret. Anyone can read it in the URL and craft their own link with any payload they like. Never let a payload alone unlock something valuable — validate on your side.
  • Not a browser context. No cookie, no referrer, no user agent, no click ID crosses into Telegram. The payload is the entire message. If a fact is not encoded in it, your bot will never know it.
  • Not automatically unique per person. A link is shareable and forwardable. If you need one-per-user semantics — one referral credit, one promo activation — that has to be enforced server-side against the subscriber record.

Common uses: campaigns, referrals, source tags

Campaign codes. The most common pattern. A code maps to a campaign record holding a promo code, a message per language, media, inline URL buttons and an active window. The person taps t.me/yourbot?start=SUMMER24, finishes onboarding, and receives that campaign's message instead of the generic welcome. A campaign can be limited to new subscribers only, and activation is recorded once per subscriber so a forwarded link cannot be claimed twice by the same account.

Source tags. Payloads do not have to correspond to a campaign at all. A string like instagram_2026_09 can simply tag the subscriber with where they came from. That tag then becomes a targeting dimension: send a different drip to people who arrived from a paid placement than to people who arrived from an organic post, and read growth and delivery numbers per source afterwards. This is the workhorse behaviour behind most affiliate and paid-traffic Telegram funnels.

Referrals. Encode the referring subscriber in the payload — ref_88213 — and credit the referrer when a genuinely new account starts. Because payloads are public and shareable, the two rules that matter are: credit only on first start, and ignore self-referrals.

Context handoff. A deep link can carry which product page, which offer or which content category the person was looking at, so the first message they see already matches their intent rather than starting from a cold menu.

Deep links versus plain bot links

A plain link — t.me/yourbot — is not a bad thing. It is shorter, it looks cleaner in a bio, and for a single undifferentiated audience it is entirely sufficient. What you give up is knowledge and control:

  • Attribution. With a plain link, every subscriber is anonymous in origin. Ten channels, one number. With deep links, each placement can have its own code and its own row in the report.
  • First message. A plain link produces the same welcome for everybody. A deep link lets the first message answer the promise of the ad the person just tapped.
  • Segmentation later. A source tag captured at the moment of arrival keeps working for months — it is what lets a follow-up sequence three days later speak differently to different cohorts.

The honest trade-off is operational overhead. Deep links only pay off if someone maintains a naming convention and actually reads the numbers. A dozen ad-hoc payloads invented by three people over two months produce a report nobody trusts.

Limits and edge cases to plan for

  • Returning subscribers behave differently from new ones. A first-time visitor sees a Start button; someone who already has the chat open is simply returned to it. Design the flow so that a repeat tap on the same link does something sensible rather than replaying onboarding from scratch.
  • Payloads are case-sensitive in practice. Pick one casing convention — lowercase with underscores is the least error-prone — and stick to it across every creative.
  • Link wrappers can eat the query string. Ad platforms, link shorteners and click trackers that redirect through their own domain sometimes strip or re-encode the part after the question mark. Always tap the final production link on a real device before spending money against it.
  • 64 characters arrives sooner than you think. Hierarchical schemes like fb_lookalike_es_video_a_2026_09_v2 hit the ceiling fast. Prefer short codes plus a lookup.
  • Attribution is last-touch by nature. The payload captured at start is the one you get. Someone who saw four placements and tapped the fifth is credited entirely to the fifth.
  • Deleting and restarting a chat. A subscriber can block the bot, delete the chat and start again from a different link. Treat the subscriber record, not the link, as the source of truth for what they have already claimed.
  • QR codes need error margin. Shorter payloads make denser codes scan more reliably on posters and packaging.

How deep links feed attribution reporting

The reporting value comes from the payload being captured once, at the moment of arrival, and then living on the subscriber for the rest of the relationship. That single stored string turns into several distinct readings.

The first is volume by source: how many subscribers each code brought, day by day. The second is quality by source — retention cohorts show whether the people from a given placement are still active a week later, which is usually a very different ranking from raw volume. The third is campaign activation: how many people who arrived on a campaign link actually reached and claimed the offer, versus dropping out at the language step or the channel-subscription gate. The fourth is delivery health for the follow-up messages you send to that cohort afterwards.

Read together, these answer the question a plain bot link cannot: not just how many people you got, but which placement produced subscribers worth keeping. For the naming conventions, the reporting workflow and the mistakes that corrupt a clean read, see the longer guide on Telegram deep link attribution and the overview of Telegram bot analytics.

Request access

mySkua is in an invite-only private beta, so accounts are created by request rather than self-serve. If you are running Telegram funnels and want tagged deep links, per-source drip messages, campaign activation tracking and retention cohorts on one panel, join the waitlist and tell us what you run — which traffic sources, which languages, how many bots. We prioritise access for setups we can genuinely help.

Related: Deep link attribution · Bot analytics · Affiliate marketing bots.

Want this on your own bots?

mySkua is in a closed beta and accounts are opened in small batches. Tell us what you run and we will come back to you.

Request access