Spintax for Telegram Messages: Syntax, Variation Counts and Honest Limits
· 7 min
What spintax is and how to write it for Telegram: brace syntax, nested groups, empty options, how variations multiply, good and bad examples, a checklist.
Spintax is a way to put several wordings into one message template. You list the options inside curly braces, separated by |, and one of them is picked at random each time the message is sent. Write {Hi|Hello|Good morning} and one recipient gets "Hi" while the next gets "Good morning".
This guide covers the syntax, how to work out how many variations a template produces, how spintax differs from variables like {isim}, and what spintax does not fix. You can paste any example below into the free spintax previewer to see it run.
The syntax
There are three building blocks.
1. An option group. Open a brace, separate the options with |, close the brace:
{Hi|Hello|Good morning}, your order is ready.
2. An empty option. Leave one side of a | empty and "write nothing" becomes one of the choices. This sentence ends with an exclamation mark about half the time and with nothing the rest:
Thanks for your order{|!}
3. A nested group. An option can contain another group:
{today {before noon|after lunch}|tomorrow morning}
That produces three results: "today before noon", "today after lunch" and "tomorrow morning".
Two details are worth knowing. Braces with no | inside are not spintax and are left exactly as written, which is why {isim} survives. And a brace you forget to close is sent as plain text, so {Hi|Hello with no closing brace reaches the recipient looking just like that.
How variations multiply
The rule is short:
- Options inside one group add up.
- Groups that follow each other multiply.
- A nested group counts as its own number of variations in place of the option it sits in.
Take this template:
{Hi|Hello|Good morning} {isim}, your {order|package} ships {today {before noon|after lunch}|tomorrow morning}{.|!}
| Group | Working | Count |
|---|---|---|
| Greeting | 3 options | 3 |
| Order or package | 2 options | 2 |
| Timing | 2 for today, 1 for tomorrow morning | 3 |
| Punctuation | 2 options | 2 |
Total: 3 × 2 × 3 × 2 = 36 variations. {isim} is not a group, so it doesn't change the count.
You don't have to do this by hand. The spintax previewer shows the total as you type along with five sample outputs, and "Generate again" gives you a fresh set.
Variables are not spintax
Both use curly braces, so they get mixed up. They do different jobs.
| Spintax | Variable | |
|---|---|---|
| Written as | Options separated by a vertical bar inside braces | A single field name inside braces |
| Who decides the value | A random pick | The recipient's own data |
| Purpose | Vary the wording | Make the message personal |
In MyCRM the built-in variables for bulk DMs are {isim} (first name), {soyad} (last name), {ad_soyad} (full name), {kullanici_adi} (username) and {telefon} (phone). The names are the same whichever language you use the panel in, so the name variable is {isim}, not {name}. Custom CRM fields work too, using their own keys.
Three practical notes:
- Keep variables outside groups.
{Hi {isim}|Hello}does not work and the message goes out broken. Write{Hi|Hello} {isim}instead. - Variables are only filled in one-to-one messages. In a post to a channel or group,
{isim}is published as is. Use spintax alone there. - Plan for an empty value. If a contact has no name on record, the variable is replaced with nothing. Write the sentence so it still reads properly without the name.
Good and bad examples
In a good template every variation reads naturally by itself and says the same thing.
Good:
{Hi|Hello} {isim}, your {appointment|booking} is tomorrow at 2 pm. {If that no longer works|If you need a different time}, just reply here.
Bad, and why:
{Hi|Yo|Dear valued customer} {isim}
The tone jumps around. The same brand sounds formal to one customer and careless to the next.
Get {10%|20%|30%} off this week
The facts change. Spintax should vary phrasing only. Prices, dates and promises must be identical in every variation.
We sent you an {update|quick note} about your order
The grammar breaks. The second option produces "an quick note". When an article, a verb form or a plural depends on the word, spin the whole phrase: {an update|a quick note}.
{Hi|Hello} {there|}, your order is ready
When the empty option is picked, a stray space is left before the comma. Move the space inside the option: {Hi|Hello}{ there|}, your order is ready.
Spintax does not make spam acceptable
This is the part people most often get wrong. Spintax changes the text. It does not change whether the recipient wanted the message.
Telegram restrictions are driven largely by recipients pressing "Report spam". Someone who doesn't know you can report you whichever of your thirty-six wordings they received. Rate limits don't depend on the text either: an account that messages too many people too quickly can still get PEER_FLOOD or FLOOD_WAIT, however different the messages are. Telegram doesn't publish exact numbers for user accounts.
What spintax is actually good for is smaller: messages to an opted-in list stop looking copy-pasted, and an announcement posted to several groups isn't the exact same text every time. For the list, pacing and opt-out side of things, see how to send bulk Telegram messages without spamming.
Spintax in MyCRM
The Spintax button in the message editor inserts a sample group at the cursor, and you replace the options with your own. In a bulk DM, the menu next to it inserts personal variables. Spintax works both in one-to-one bulk DMs and in broadcasts to channels and groups, and a separate pick is made for every send.
Checklist
- Is the list opted in? If not, fix that before you touch the wording.
- Is every brace closed?
- Are all variables outside the groups?
- Does every variation give the same facts (price, date, time)?
- Do grammar and spacing hold up for every option?
- Have you read at least ten samples in the previewer?
- Are the daily cap, delays and opt-out list set?
FAQ
Will spintax stop my account from being restricted? No, nothing guarantees that. Restrictions depend on reports and on sending pace. Spintax only reduces repeated text. You still need an opted-in list, a daily cap and delays.
How many variations do I need? There is no fixed number. Don't pad the count with awkward options. Write natural alternatives in two or three places, such as the greeting, the main sentence and the sign-off. One variation that reads oddly does more harm than a repeated text.
Can I use ordinary curly braces in a message? Yes. Braces without a | are not treated as spintax. They are only replaced when the content matches a defined variable such as {isim}, and only in one-to-one messages.
Does spintax work in channel posts? Yes. When the same content goes to several channels or groups, each target gets its own pick. Variables are not filled in those posts.
Related: How to send bulk Telegram messages without spamming · PEER_FLOOD vs FLOOD_WAIT · Posting to multiple Telegram groups