Skip to content

Telegram funnels

A funnel is a step-by-step scenario your Telegram bot runs on its own. A link from an ad or a post brings people in, buttons capture their choice, reminders count down to your event, an offer goes out afterwards, and the agent takes over the moment someone has a question. People stop getting the selling messages the instant they buy.

Funnels live on the Automations page as the Telegram funnels automation. Each funnel belongs to one agent and runs on one of that agent's connected Telegram bots. Everything a funnel sends and does shows up in the person's chat, next to the agent's own replies.

In the app

Open Automations at app.mychatbot.app/automations, pick the agent, then choose Telegram funnels in the list. The pane lists the agent's funnels; Use a template or New funnel opens the builder in the same place, with the automations list still on the left. The arrow at the top of the builder brings you back to the pane.

At a glance

You needWhere in the appResult
A Telegram bot connected to the agentChannels → agent → Telegram tab (how to connect)The bot the funnel will speak through; the builder shows it by its @handle
A funnelAutomationsTelegram funnelsUse a template or New funnelA draft opens in the builder
The bot and the way inBuilder → Settings tabThe bot, the link key or "every new chat", the event, the exit rules
A working scenarioBuilder → Builder tab → CheckEvery block connected and filled in
A live funnelBuilder → ActivateYour link appears; people who open it enter the funnel

The first template, Countdown funnel, is the classic launch sequence: register with one tap, remind before the event, make the offer after. It fits a live session, a product launch, a sale or a course start. Set the event date in Settings before activating it. Templates come in the language your app is set to (English, Ukrainian, Russian, Polish, Italian); every message, button and block name is yours to edit.

How people enter

Choose in SettingsHow people enter:

ModeWho entersNotes
Through a linkAnyone who opens https://t.me/<your_bot>?start=<key>Put the link in an ad, a post, a story, a QR code. The link key is yours to choose: lowercase letters, digits and underscores, 2–32 characters, unique among the bot's active funnels
Everyone who writes to the bot for the first timeEvery brand-new chat with the bot, whatever the first message saysOne such funnel per bot. Existing chats are not affected
BothEither of the above

Track where people came from. Add -source-campaign after the key: ?start=launch-fb-sept enters the launch funnel and records fb as the source and sept as the campaign. On the lead you get:

  • Lead source — "Telegram link" (telegram_deeplink) when the lead had no source yet.
  • Custom fields tg_start (the whole start value), funnel_key, funnel_source, funnel_campaign — refreshed on every visit, so the latest ad wins.

A person can be in one funnel at a time. Opening a second link, or the same link again, restarts them from the beginning; the timeline records the previous run as cancelled (superseded).

Blocks

The builder is a canvas: add a block from the palette, fill it in on the right, drag from a block's bottom port to the next block to connect them. Every exit has to lead somewhere — Check tells you which one does not.

BlockWhat it doesLimits
StartWhere the funnel begins. One per funnel
MessageThe bot sends a textUp to 4096 characters
ButtonsA text with inline buttons under it. A tap continues along that button's line; a link button opens a page and the funnel keeps waiting. An optional timeout continues on its own line when nobody tapsUp to 10 buttons, labels up to 40 characters
If / elseGoes the «yes» way when the person writes anything, taps a specific button, or stays silent for a while; otherwise «no». Optional "wait up to"
PauseWaits before the next block1 minute to 30 days
Wait until eventWaits until a moment relative to the funnel's event: 1 day before, 1 hour before, at the start, 90 minutes after. People who join after that moment skip itWithin 30 days of the event either way
ActionAdds or removes a label, moves the lead to a status, or sends the lead to a webhookLabels and statuses must already exist; webhooks need a public https:// address
AI checkAsks the AI a yes/no question about the conversation so far ("wants to buy?") and branches on the answerOne short AI call per check
Hand to agentEnds the funnel; the agent answers from now on, with your note added to its instructions for this chatNote up to 4096 characters
Hand to operatorEnds the funnel and switches the chat to a person, with your note
Final messageSends a last text and ends the funnel, optionally adding a label

Free text while the funnel waits. When a person writes instead of tapping a button, the agent answers as it normally would and the funnel keeps waiting for the tap. Only an If / else block set to "the person writes anything" consumes a reply. A tap on a button from an earlier step, after the funnel has moved on, gets a short "this choice is no longer active" note and changes nothing.

Follow-ups pause. While a person is inside a funnel, the agent's silence follow-ups leave that chat alone. They resume when the funnel hands over or ends.

The event

SettingsEvent the funnel counts down to: a date, a time and a time zone, with an optional Repeats every week switch for a recurring session. Wait until event blocks count from it. Saving a new date or time re-times everyone currently waiting on the old one.

A one-off event that is already past is skipped: people who enter late continue straight to the block after the wait. A weekly event always counts to its next occurrence.

Exit rules: stop selling the moment they buy

SettingsStop the funnel for a person when: one or more statuses and one or more labels. The moment the lead lands on one of them, the funnel ends for that person (cancelled — exit rule in the timeline) and normal follow-ups take over. It does not matter who made the change: a manager in Leads, the agent itself, or a webhook from your payment system.

Purchase webhook recipe

  1. In AutomationsTrigger Outreach, create a trigger (for example "Payment") and copy its webhook URL.
  2. Make sure the paid status exists in the agent's pipeline and is listed in the funnel's exit rules.
  3. When a payment lands, have your system POST to that URL:
json
{ "client_id": "<the lead's id>", "action": "set_status", "status": "Paid" }

client_id is the lead's id from Leads (the Telegram user id of the chat works too). The reply is 200 with "Status updated…", 400 when the status is not in the pipeline (the message lists the ones that are), 404 when no such lead exists. The status change goes the same road as the agent's own: it lands in the chat timeline, re-arms follow-ups for the new status, and fires the funnel's exit rule.

Check and activate

Check validates the draft and lists what to fix, each line clickable to the block. Activate runs the same checks plus the live ones: the bot is still connected and belongs to this agent, the link key is free on that bot, the statuses and labels the funnel names exist, an event is set when a wait block needs one. When the only thing missing is a status or a label (every template names a few), the builder lists them and offers Create and activate: they are created in Leads for this agent and the funnel goes live in one step. On success the pane and Settings show Your link.

A funnel is either Draft or Active. Edits to an active funnel are saved as you go; people already inside continue on the graph they were on until their next step, so keep edits to a live funnel small. Pause funnel stops it and takes everyone out (cancelled — deactivated).

Rehearsal

The Rehearsal tab plays the funnel with nothing sent to anyone. Pauses and waits are skipped and marked, you tap the buttons and type the replies, and you pick the AI check's answer yourself. Save first: the rehearsal replays the saved version.

People

The People tab shows who is inside right now: counts per block, and for each person the step they are on, the next moment the funnel will act (or "waiting on them"), when they entered, and a link to the chat. Stop takes one person out (cancelled — stopped).

The history of a person is in their chat: the messages the bot sent, the buttons they tapped, and a timeline entry for every step — funnel started, button, action, wait, hand-over, completed, cancelled, error.

When things go wrong

SituationWhat happens
The bot is switched off in ChannelsThe funnel waits. Timers are pushed back 5 minutes at a time until the bot is on; taps are ignored meanwhile
The bot is disconnectedThe funnel ends for everyone on it (channel missing)
A person blocks the botThe funnel ends for them (bot blocked); the chat is marked accordingly
A message cannot be sentThree retries a minute apart, then the funnel ends for that person (send failed)
A webhook action failsRecorded in the timeline; the funnel continues
An operator takes the chatThe funnel ends for that person (operator takeover)
A funnel loopsA single run stops after 200 steps

Limits

Message length4096 characters
Buttons per block10, labels up to 40 characters
Pause1 minute – 30 days
Wait until eventWithin 30 days before or after the event
Link key2–32 characters: a-z, 0-9, _; the prefixes ses_, conv_ and assistant_ are reserved
First-message funnelsOne active per bot
Funnels per personOne at a time
Steps per run200

See also