Contact us

Schedule a video callA 15-minute walkthrough of the dashboard with a manager Contact supportHelp with the platform and payments Send an emailCollaboration, partnerships and other proposals

Reference

All blocks, placeholders, comparisons, conditional text rules and the reasons for the “not ready” label.

Blocks

BlockWhat it does
StartStarts the first-message branch
IncomingStarts the branch that runs on every reply from the person
ScheduledStarts the branch that runs once an hour — for follow-ups
Send messageA ready-made text or a text written by AI
Set variableSaves a value — by hand or with AI
ConditionSplits by rules: a “met” output and a “not met” output
Set conversionMarks that the dialog has reached a stage
A/B testRandomly splits into variants in set shares
Send notificationA message to your team in the bot and the bell
Finish dialogStops processing this person’s replies

Placeholders

Written in square brackets: [user.name]. Inside [if …] and in the Condition block, without brackets.

PlaceholderWhat gets inserted
Recipient
[user.name] [user.username] [user.about]Name, username, bio (“About”)
[user.phone] [user.telegram_id]Phone number, Telegram ID
[user.premium] [user.verified] [user.scam] [user.fake] [user.restricted]Profile badges: true or false
[user.last_seen_at]When the person was last online
[user.channel.title] [user.channel.about] [user.channel.pinned_post] [user.channel.recent_posts_list]Personal channel: title, description, pinned post, latest posts
[user.source.messages_list]The person’s messages from parsed chats
Sender — your account
[account.name] [account.username] [account.about]Name, username, description
Conversation
[message.incoming.last] [message.outgoing.last]The person’s last message and yours
[message.count] [message.incoming.count] [message.outgoing.count]How many messages in total, from the person, from you
[message.iteration.count]How many of the person’s replies have been processed
[message.history]The whole conversation — for AI tasks
Only in the Condition block
message.downtime.hoursHours since the last message
message.last.is_outgoingThe last message is yours
user.offline.hoursHours the person has been offline
Variables
[variable.name]A script variable or an audience list variable

No data means an empty string. A placeholder with a typo stays in the text as is, brackets included.

Comparisons in a Condition

Value typeComparisons
Textequal, not equal, contains, not contains, contains word, not contains word
Numberequal, not equal, greater than, less than
Yes/Noequal, not equal

“All” means every rule must hold; “Any” means one is enough.

Conditional text

SyntaxMeaning
[if user.name]…[/if]Show if filled in
[if not user.name]…[/if]Show if not filled in
[if variable.city = London]…[else]…[/if]Show one thing or the other
= != contains !contains word !word > <Equal, not equal, contains a fragment, contains a whole word, greater than, less than
and orBoth conditions must hold / one is enough

You can’t nest [if] tags or mix and and or in one tag. The editor underlines tag errors in red.

Text variants

{variant 1|variant 2|variant 3} — the person gets one variant at random. To write a literal curly brace, escape it with a backslash: \{.

Why “not ready”

ReasonWhat to do
The Start branch doesn’t send any messageAdd a Send message block to it
A message, notification or variable text has an [if], [else] or [/if] tag underlined in redClose the tag or fix the comparison — how to write conditions

Variable and conversion names

They start with a letter, followed by letters, digits and _. A name must be unique within the script. A script variable and an audience list variable with the same name are one and the same variable — see whose value is used.