Set up a junk-traffic split
Keep freshly-created, throwaway Telegram accounts off your manager's DM.
Ad traffic brings a mix of real prospects and throwaway accounts (trolls, bots, curious clickers on a burner). The gate can tell them apart well enough to matter: Telegram user ids grow roughly chronologically, so a very high id is almost certainly a freshly-created account. A junk-traffic split routes those to a public channel instead of your manager's DM, so junk never sees the DM link at all — while normal, older accounts (and anyone with Telegram Premium, a paying user by definition) still go straight through.
How the split decides
For each /start, the gate checks — in order:
- Is the split configured at all (a channel URL and a threshold are both set)? If not, everyone goes to the DM.
- Is the account Telegram Premium and is the premium bypass on? If so, DM — Premium is never filtered.
- Is the account's Telegram id ≥ the threshold? If so, channel. Otherwise, DM.
Any missing or malformed signal falls back to the DM — the split is deliberately revenue-safe: better a troll reaches the DM than a real buyer gets lost in the channel.
Configure it
The split is four fields on the gate row, sent as a partial PATCH:
curl -X PATCH https://app.tease.link/api/admin/tg/gate \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"split_enabled": true,
"channel_url": "https://t.me/your_overflow_channel",
"fresh_id_min": 7000000000,
"premium_always_dm": true
}'| Field | Type | Meaning |
|---|---|---|
split_enabled | boolean | Turns the split on/off. Off (default) = everyone goes to the DM. |
channel_url | string | Empty or https://…, max 1024 chars — where fresh accounts land. |
fresh_id_min | integer | ≥ 0 — accounts with a Telegram id at or above this count as "fresh". |
premium_always_dm | boolean | true (default) — a Telegram Premium account always goes to the DM, even if it's fresh. |
A channel_url that doesn't start with https:// (or exceeds 1024 characters) is rejected with
422; a negative fresh_id_min is rejected the same way.
This is the same DM-vs-channel decision the rules engine
can express as one rule (id_min + premium: false → your channel destination). If you've
already saved any rules, they take over the routing decision entirely and these four fields stop
being read — see the next section.
Picking a threshold
Telegram ids are already well past several billion and climbing. Rather than guessing, watch the
gate's stats for a day or two after a rough guess, then tighten or loosen fresh_id_min against
the live DM/channel ratio you actually see — the split only affects new /starts, so
tightening it later doesn't reclassify anyone already routed.
How to know it worked
The stats panel breaks /starts down by destination for the selected period. After saving,
watch for channel-routed starts appearing where you'd expect fresh accounts, and DM-routed starts
continuing normally for everyone else. A user already routed once is never re-routed on a
repeat /start — first decision wins, same as the click attribution itself.
If it didn't work
- Nothing ever routes to the channel — confirm both
channel_urlandfresh_id_min > 0are set; the split is a no-op gate on either condition being empty/zero. - Everything routes to the channel, including real subscribers — the threshold is probably
too low for how far Telegram ids have already climbed; raise
fresh_id_min. - A saved rule set exists and this split seems to be ignored — that's expected: once any rule is stored, the gate runs the rules engine instead of this legacy path. Express the same split as a rule, or clear the rules to fall back to this simpler mechanism.
What's next
- Route with rules for anything beyond a simple two-way split — country-specific destinations, language targeting, more than one overflow channel.
Connect your own turnstile bot
Route paid-traffic buttons through your own BotFather bot instead of the shared/legacy one.
Route different audiences with rules
Send non-premium fresh accounts to a channel, one country to a local manager, and everyone else to the DM — with named destinations and ordered rules.