Help›Message chains
What starts a chain
Seven triggers — finished the bot, got the label, and five ways a message can start it — and how each one is set up.
A chain does not go looking for users; it waits for something to happen. That something is a trigger: the user finished your bot, got a label, or wrote to your bot. The moment any trigger fires, the user is in the chain and starts receiving messages.
The “What starts it” step
It comes after the About the bot step (name and description) and the Bot step (the bot that sends the messages; until you pick one, the step will not let you through: “Pick the bot that sends the messages.”) — the counter reads “Step 4 of 7”. The step itself holds only the triggers:
- The list of triggers and a dashed Add a trigger row. Tapping a row opens its settings; a red Delete button sits at the bottom of that page.
The footnote under the step states the main rule: “The chain picks up users who match after you turn it on. Nothing goes out to users who already match right now. You can add several triggers — any one of them starts the chain.”
The seven triggers
The Add a trigger menu holds seven rows. The first two are about what the user has already done with you; the other five are about a message they send, and they are exactly the five a normal Telegram bot has.
- Finished the bot — “A user finished another bot of yours. You can narrow it down: reached the goal or not.” You pick the bot from a list, then set How it went on its page: — “No matter how it went”; — “Reached the goal” — the same count the bot card shows as conversion; — “Did not reach the goal within a day” — a day passed after the talk and the goal was never reached.
One trigger is one bot. Need two bots? Add two triggers. More on the outcomes: Starting a chain after a bot.
If the trigger's bot is deleted, the row says so under its name: “Bot deleted — choose another”. Open it and choose another bot in the Bot field, or add another trigger: while every trigger of the chain is a deleted bot, you cannot go further (“Bot “…” is deleted. Choose another bot or add another trigger”), and the “Bots” list shows “Bot “…” deleted — not starting” for the chain, and a tap on the card opens the wizard. Users already inside the chain keep getting its messages.
- Got the label — “The user got a label: on the card, from an “Add a label” button in a message, or from the “Save to the card” step.” Labels are ticked in a list of the ones your users already carry: “Any one of the ticked labels starts the chain.” There is only one such trigger per chain, but it can hold any number of labels. Nothing there yet? The page says so: “No labels yet.” It fires on a NEW label, wherever it came from: you put it on the card, the user tapped a button, a bot step set it.
- The /start command — the user tapped “Start” or sent
/start. Nothing to set up. - Opening a link — the user opened your link; you can put it in your bio or in an ad. The trigger page shows the ready link (copy it from there) and the field Where users come from — name the source: an ad, profile bio, a post. It becomes the link tail, and it shows where each user came from. You can add as many of these as you like, one per source.
- Exact message — fires only when the message is exactly the code word and nothing else. The field is Code words: you can add several — any one is enough, and capital letters do not matter.
- Message that contains a word — fires when the code word appears in the message, even among other words. Same field.
- Any message — fires on anything at all, no code word needed. Nothing to set up.
Triggers are joined by “or”
Their order means nothing and cannot be changed: the chain starts on whichever trigger fires first. One is enough.
What cannot be added twice
- A kind that is already on the list stays in the menu but goes grey, with the reason Already added.
- Finished the bot goes grey when every bot of yours is already there (“All your bots are already added”) or when there are no bots yet (“No bots yet”).
- The one exception is Opening a link: you can have any number of links, as long as each has its own source label.
When the step will not let you through
The Next button waits until the triggers are complete and tells you what is missing:
- “Add at least one trigger” — the list is empty;
- “Pick at least one label” — the label trigger is there but nothing is ticked;
- “Add at least one code word” — a word trigger has none;
- “Give the link source a label” — a link has no source name.
The same input cannot live in two places
A code word belongs to one place per Telegram account. If another bot or another chain of yours already uses that word, we will not save the new one: we name the bot that owns it and offer to turn it off or change the trigger. The same goes for the “Start” command and for “Any message” — one per account. Links never clash: each one has its own tail.
For the same reason two chains cannot share the trigger “Finished the bot” with the same outcome, or share a label: otherwise it is impossible to say which chain should take the user.
The full rules on which bot answers a message are in Launch rules.
The trigger is checked once
Once the user has joined, the trigger is never re-checked: from there they receive the messages one after another, and every message decides on its own (its Conditions are checked at send time). See How a chain behaves.