Help›Bots
Launch rules — which bot replies
Exactly one bot replies to each message. How it is chosen, what launch precision means, the 24-hour conversation, and what cannot be saved.
One account can run several bots: one catches the word "want" in comments, another answers any direct message, a third hands out a gift for following. So they never collide and a user never gets two replies at once, there is a single rule: exactly one bot replies to each message. This article explains how that bot is chosen.
The four rules
- Of all the account's bots, keep those whose launch matches the event: same channel (Instagram or Telegram), same event type (direct message, comment, story reply), same post if a post is selected.
- Of those, take the most precise: an exact message beats "contains a word", "contains a word" beats "any message"; a bot on a specific post beats a bot "under all posts".
- If several are equally precise, the one switched on most recently replies.
- If the user is already talking to a bot, that bot replies, no selection.
All other bots stay silent. Two bots with equally precise launches on the same event cannot be saved — see below.
What a launch is
A launch is the event that makes the bot start a conversation. In the wizard it is called "What starts it" or "When to start".
Telegram has five launches:
- The /start command — the user tapped "Start".
- Opening a link — the user came through this bot's link. Every bot has its own link, so this launch never overlaps with anything.
- Exact message — the text matches the word as a whole. Case does not matter: "Want" and "want" are the same; spaces at the edges do not count.
- Message that contains a word — the word stands in the text as a separate word: "yes" is found in "Yes!", "yes, I want" and "oh yes", but not inside "yesterday". A code word made of several words is matched as a whole; punctuation between the words does not get in the way.
- Any message — any text, plus a photo without a caption, a voice message, a sticker.
In Instagram a launch is an event type: direct message, comment under a post, comment in a live broadcast, reply to a story, reaction to a story, mention in a story. For direct messages, comments and story replies you choose which message to react to: any, contains a word, exact; reactions and mentions have no word filter. For comments you also choose posts: under all posts or only under selected ones.
The precision ladder
When a message matches several bots, the more precise launch wins. From most precise to most general:
- The /start command (Telegram only).
- Exact message.
- Message that contains a word.
- Any message.
As soon as a bot is found on one step, nothing below is checked.
Example. Bot A launches on the exact message "fire", bot B on a message that contains "fire", bot C on any message.
- The user writes "fire" — A replies.
- Writes "I want fire" — A does not match (the text is not identical), B replies.
- Writes "hello" — C replies.
- Sends a photo with no caption — C replies: a photo has no text, so it counts as "any message".
A photo caption counts as text and goes through the word steps.
Posts in Instagram
A comment bot can be limited to specific posts. A bot on a specific post is more precise than a bot "under all posts" — this is one more step of the ladder, and it is checked first.
Under a post, the bots that have this post selected are checked first, using the word ladder among them. If one is found, it replies and the "under all posts" bots stay silent. If none is found, the "under all posts" bots are checked with the same ladder.
Example. Bot A catches the word "fire" under all posts. Bot B answers any comment under the giveaway post.
- Someone writes "fire" under the giveaway post — B replies: it has this post selected, so it is more precise.
- Someone writes "fire" under another post — A replies.
- Someone writes "nice" under another post — nobody: A has no such word, and B only works on its own post.
Equal precision
Two bots on the same step with different words, and both words appear in the message: for example, a bot on "contains fire" and a bot on "contains water", and the user writes "fire and water". The bot switched on most recently replies. Switching on is the toggle on the bot card: turn it off and on again, and that bot becomes "the most recent".
The 24-hour conversation
While a user is talking to a bot, all their messages go to that bot: another bot's keyword, "any message", button taps and even the /start command. Other bots do not take them over. That is how a bot never loses answers to its own questions, and a user never gets two conversations at once.
The conversation ends in two cases:
- the bot reached its last step;
- the user stays silent longer than the setting "Finish the conversation after (hours)". The default is 24 hours; the value is in each bot's "Additional settings".
After that, the user's next message goes through the four rules again.
A chain with a message trigger does not interrupt the conversation, but does not lose it either: it takes the user and waits for the conversation to end, then sends its own messages (see How a chain starts after a bot).
What cannot be saved
Two bots with equally precise launches on the same event cannot be saved: when creating, editing or switching on, you will see "This start is already taken" with the name of the bot that holds it. In the setup wizard it appears right when you tap "Next" on the trigger step. The "Turn off" button with the bot's name switches that bot off and carries on with what you were doing; "Change the trigger" takes you back to the step where the trigger is chosen. There is no way around it. You cannot have at the same time:
- two bots with the same exact message;
- two bots that share at least one word in their "contains" lists;
- two bots on "any message" for the same event type;
- two bots on the /start command;
- in Instagram: the same word under all posts for both, or the same word with at least one post in common.
A bot that is off does not hold its trigger: switch it off and the word is free for another bot. You cannot switch it back on while another bot that is on holds the same word.
What is allowed, with a warning
Launches of different precision on the same word can be saved; the ladder keeps them apart. When switching on, you will see a warning with the other bot's name — just so you know who overrides whom.
- Exact message "fire" and "contains fire" — allowed.
- "Fire" under all posts and "fire" on a specific post — allowed; under that post the post bot wins.
- One word on different posts with no overlap — allowed; they never meet.
- Opening a link — always allowed; it has its own link.
Sequences
A message sequence can also be launched by a message: it has the same five launches as a Telegram bot, on the same ladder and under the same bans. A sequence "on any message" sits on the bottom step: it fires only when no word of any bot matched.
A sequence does not hold a user: it sends messages over days rather than running a conversation. So while a sequence is running, bots launch as usual, and while a user is talking to a bot, a sequence launched by "Completed a bot" or "Got a tag" starts without waiting. Details in Sequence rules.
Instagram and Telegram: what differs
- In Instagram, different event types are different worlds. The word "want" in direct messages and the word "want" in comments are two separate launches; they do not interfere and both can exist.
- In Instagram, after a comment the bot can send only one direct message, and only for the user's first comment under that post. The conversation continues only if the user replies or taps a button. This is Instagram's rule, not ours — see Instagram limits.
- Telegram has the /start command and a bot link; Instagram does not.
- The /start command is an ordinary launch on the top step of the ladder. Inside an ongoing conversation it does not interrupt anything.