Appearance
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 AI sales assistant 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 assistant and runs on one of that assistant's connected Telegram bots. Everything a funnel sends and does shows up in the person's chat, next to the assistant's own replies.
In the app
Open Automations at app.mychatbot.app/automations, pick the assistant, then choose Telegram funnels in the list. The pane lists the assistant'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 need | Where in the app | Result |
|---|---|---|
| A Telegram bot connected to the assistant | Channels → assistant → Telegram tab (how to connect) | The bot the funnel will speak through; the builder shows it by its @handle |
| A funnel | Automations → Telegram funnels → Use a template or New funnel | A draft opens in the builder |
| The bot and the way in | Builder → Settings tab | The bot, the link key or "every new chat", the event, the exit rules |
| A working scenario | Builder → Builder tab → Check | Every block connected and filled in |
| A live funnel | Builder → Activate | Your link appears; people who open it enter the funnel |
| A menu for the bot | Automations → Telegram funnels → Bot menu | Keys under the input field that start a funnel or send a reply, from anywhere |
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 Settings → How people enter:
| Mode | Who enters | Notes |
|---|---|---|
| Through a link | Anyone 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 time | Every brand-new chat with the bot, whatever the first message says | One such funnel per bot. Existing chats are not affected |
| Both | Either 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.
| Block | What it does | Limits |
|---|---|---|
| Start | Where the funnel begins. One per funnel | |
| Message | The bot sends a text, files, or both. Attach photos, videos, PDF and other documents; each goes out as a file right after the text, so a photo arrives as a photo and a PDF as a document | Up to 4096 characters, up to 10 files |
| Message with buttons | A 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 taps | Up to 10 buttons, labels up to 40 characters |
| Menu | A text with the bot's menu — the keyboard under the input field. The block shows the bot's current keys; they are the bot's, not the funnel's, and are edited in the pane: see The bot menu | The bot must have a menu |
| If / else | Goes the «yes» way when the person writes anything, taps a specific button, or stays silent for a while; otherwise «no». Optional "wait up to" | |
| Pause | Waits before the next block: for a fixed time, or until a time of day — the next 10:00 in the funnel's time zone, optionally not before some time has passed, so «1 day, then at 10:00» is one block | 1 minute to 30 days; the time of day needs a valid time zone |
| Wait for the event date | Waits 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 it | Within 30 days of the event either way |
| Action | Adds or removes a label, moves the lead to a status, or sends the lead to a webhook | Labels and statuses must already exist; webhooks need a public https:// address |
| AI check | Asks the AI a yes/no question about the conversation so far ("wants to buy?") and branches on the answer | One short AI call per check |
| Hand to agent | Ends the funnel; the assistant answers from now on, with your note added to its instructions for this chat | Note up to 4096 characters |
| Hand to operator | Ends the funnel and switches the chat to a person, with your note | |
| Final message | Sends a last text (files too) and ends the funnel, optionally adding a label | Up to 10 files |
Free text while the funnel waits. When a person writes instead of tapping a button, the assistant answers as it normally would and the funnel keeps waiting for the tap. A tap on the bot's menu is the exception: it is handled first, whatever the funnel is waiting for (see The bot menu). 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 assistant's silence follow-ups leave that chat alone. They resume when the funnel hands over or ends.
Pauses
A Pause block continues either after a fixed time (from one minute to 30 days) or at a time of day: the next moment the clock shows that time in the block's time zone. The two combine: a pause set to «not before 1 day, then at 10:00» continues tomorrow morning, whatever hour the person reached it. A pause set to 10:00 when it is already 10:01 waits until the next day. Fixed dates — a launch, a live session — are the funnel's event, not a pause.
The event
Settings → Event date this funnel counts down to (optional): a date, a time and a time zone, with an optional Repeats every week at the same time switch for a recurring session. Wait for the event date 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.
The bot menu
The menu is the keyboard Telegram shows under the input field once the bot has sent it. It belongs to the bot, not to a funnel: set it up once in Automations → Telegram funnels → Bot menu (pick the bot when the agent has several), as rows of keys — one wide key, or two or three side by side. Each key does one thing when tapped:
| Key | What happens |
|---|---|
| Start a funnel | The person enters the chosen funnel from its start, whatever they were doing. A funnel they were in ends as superseded, exactly as when they open a second link |
| Send a message | The bot sends the key's reply. A funnel the person is in stays where it was |
Taps work at any step of any funnel, and when the person is in no funnel at all; the assistant never sees them. That is what makes «Main menu», «Events» or «Materials» keys possible: each is a funnel of its own, and the menu is the way back.
Showing the menu. Telegram shows the keyboard from the moment a message carries it, so a funnel sends it with the Menu block — a text plus the keyboard. A funnel with a Menu block cannot be activated on a bot that has no menu. When you change the menu, people see the new keys the next time the bot sends the menu; the old keyboard on their screen keeps working as long as its labels still exist.
A key that starts a draft funnel is saved with a warning: activate the funnel so the key does something. A key naming a funnel that is not on this bot is refused.
Labels have to be unique within the menu: a tap is recognised by the label's text.
Exit rules: stop selling the moment they buy
Settings → Stop 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 assistant itself, or a webhook from your payment system.
Purchase webhook recipe
- In Automations → Trigger Outreach, create a trigger (for example "Payment") and copy its webhook URL.
- Make sure the paid status exists in the assistant's pipeline and is listed in the funnel's exit rules.
- When a payment lands, have your system
POSTto 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 assistant'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 assistant, 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 assistant 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
| Situation | What happens |
|---|---|
| The bot is switched off in Channels | The funnel waits. Timers are pushed back 5 minutes at a time until the bot is on; taps are ignored meanwhile |
| The bot is disconnected | The funnel ends for everyone on it (channel missing) |
| A person blocks the bot | The funnel ends for them (bot blocked); the chat is marked accordingly |
| A message cannot be sent | Three retries a minute apart, then the funnel ends for that person (send failed) |
| A webhook action fails | Recorded in the timeline; the funnel continues |
| An operator takes the chat | The funnel ends for that person (operator takeover) |
| A funnel loops | A single run stops after 200 steps |
Limits
| Message length | 4096 characters |
| Files per message | 10 |
| Buttons per block | 10, labels up to 40 characters |
| Bot menu | 12 rows, 3 keys per row, labels up to 40 characters |
| Pause | 1 minute – 30 days |
| Wait for the event date | Within 30 days before or after the event |
| Link key | 2–32 characters: a-z, 0-9, _; the prefixes ses_, conv_ and assistant_ are reserved |
| First-message funnels | One active per bot |
| Funnels per person | One at a time |
| Steps per run | 200 |
See also
- Automations — the page funnels live on, and the Trigger Outreach webhook the purchase recipe uses.
- Connect a Telegram bot — the bot a funnel speaks through.
- Follow-ups — status/label sequences that resume once a funnel ends.
- Labels and statuses — what actions and exit rules point at.
