Help›Message chains
How a chain behaves
Once and for all, several chains at once, and how a user goes through a chain from message to message.
A chain follows a few hard rules. They are simple, but they are exactly why a user sometimes does not get what you expected — so read them all.
A person can get messages from several chains at once
If someone is already receiving messages from one of your chains and another chain’s trigger fires, the second one starts too: both send their messages on their own pauses. Nothing is lost and nothing waits.
Moving from one chain to another
There are two ways to move a user from one chain to another, and you set up both.
- With a button under a message. The “Add a label” button has a switch “And end this chain”. The user taps: the label is set, another chain starts on it (the “Got the label” trigger), and this chain ends for them. Switch off: the label is set, the second chain starts, and this one keeps going alongside.
- With a setting of the chain itself. A chain has a step of its own, Other chains, right after What starts it. This way the move works from any trigger, not only a button: the user enters here, and the selected chains stop for them.
The “Other chains” step
At the top it explains: “A person can get messages from several chains at once. So that they are not flooded with messages, this chain can stop their other chains when it starts.” Below is the row When this chain starts with three options:
- Do not stop the others — “The other chains keep sending their messages”.
- Stop all the others — “Every other chain of this person stops. The messages they have not sent yet will not arrive”.
- Stop the selected ones — “Only the chains ticked below stop”. A row Which chains to stop appears underneath, with checkboxes: “Tick the chains that stop when this one starts.”
If you have no other chains yet, the checkboxes are replaced by “There are no other chains yet. Tick them here once they appear” — and you can still save that answer: there is simply nothing to stop.
The conversation shows the end as a grey line: “Chain «Name» ended: the user moved to «Other»”. On the user’s card such a chain sits in the “Taken off chains” list with the words “moved to another chain”, and the Put back button returns them.
Each chain takes a user once, for good
If the user has already been in this chain — finished it, dropped out on a condition, or you removed them by hand — they never come back into it. There are no repeat runs and no “repeat after N days”.
This is the guard against the most common failure: a one-message chain would otherwise send that message every time the user writes to the bot again.
You can only put someone back by hand, one at a time, with the Put back button on their card (see The user’s card).
How a user goes through a chain
- A trigger fires — the user is in the chain. The trigger is never checked again.
- The first message’s pause runs out — we look at its Conditions.
- They match — the message goes out and we start counting the next pause.
- They do not — the chain is over for this user: no further messages. Their card spells it out: “no longer matches the conditions”.
On top of its own conditions every message has one shared one: the user must have received the previous one. If they did not, there is no next message. A message you skipped yourself from their card still counts as passed: you made that call, and throwing the user out of the chain for it would be unfair.
Conditions never carry over. Every message decides on its own.
Who a chain never writes to
- Do not message — a switch on the user’s card. They asked not to be disturbed: chain messages and broadcasts do not reach them. Turning it on takes them off every chain at once.
- Tapped “Unsubscribe” under a message — the same thing, by their own hand. Depending on how the button is set up, they leave one chain or everything.
- Stopped the bot (the “Stop” command in Telegram) — new messages will not reach them. The note clears itself if they start the bot again.
- Blocked the bot — the user is taken off the chain, and we do not put them back until they write to the bot themselves.
A chain only writes to its own bot’s contacts
Messages go out as the bot you picked on the Bot step, so the chain also takes users from that bot’s conversations. A label put on someone who has never written to that bot will not start the chain: there would be nowhere to write anyway.
If a message does not go out
Sometimes the platform does not accept a message the first time. We then hold it for a few minutes and try again, several times over. The person’s next messages never overtake the retry: their due times move along with it.
If it still does not work after every attempt, the user is taken off the chain and their card shows the reason: “the message could not be sent”. Everything scheduled after that is marked skipped.
Such a user sits in the Taken off chains list, with a Put back button next to them — put them back and that very message comes back with them.
One case is different: the user blocked the bot. There is nothing to retry, so they are taken off the chain straight away, and the chain does not take them again until they write to the bot themselves.
More about large volumes of messages: Telegram specifics, the section “Private messages under heavy load”.
What shows in the conversation
- What the chain sent sits in Chats as a normal message of yours, signed “Chain «Name»”.
- A skipped message leaves a grey line with the reason: “the condition did not match”, “while the bot was off”, “another sequence is running”.
- “You skipped a message from the chain «Name»” — that is you tapping Skip on the card.
- “You removed this user from the chain «Name»”.
When a chain ends because the user stopped matching the conditions, you do not get ten grey lines in a row: the remaining messages show up in Message history on their card, marked “skipped: the chain ended”.