What it means
Spintax is a tiny templating language with one rule: anywhere you write {a|b|c}, the spinner picks one of a, b, or c at random when it generates an output. That's it. Every other feature is a layer on top of that one rule.
The point is variation. If you are sending a thousand DMs in a week, sending the exact same string a thousand times looks like spam to every spam filter, every social platform, and every recipient who compares notes with a colleague. Spintax replaces that single string with a generator that produces a thousand slightly-different versions, while keeping the writing and review work the same as a single template.
Spintax is content-agnostic; it works in DMs, emails, push notifications, ad copy, SMS, or anywhere else you have a text-templating engine and a bulk send. In practice, the place where it earns its keep is outbound DMs on Telegram, X, Instagram and LinkedIn, where platforms aggressively fingerprint duplicate messages.
The {a|b|c} syntax in detail
The grammar is:
{a|b|c}: pick one ofa,b, orc.{a|b|}: pick one ofa,b, or nothing. The trailing pipe is how you say "optional".{a}: degenerate case; always picksa. Sometimes used as a placeholder while drafting.
Nesting works recursively:
{Hi|Hey {there|friend}} →
• Hi (50% chance)
• Hey there (25% chance)
• Hey friend (25% chance)
The outer branch picks first, then any nested branch picks. This lets you write conditional structure ("if I say Hi, no suffix; if I say Hey, add a suffix") without writing a separate template for each path.
Most engines support these escape conventions:
\{and\}for literal braces in the output.\|for a literal pipe inside a branch.{{firstName}}(double braces) for merge variables, which spintax leaves alone; variables are substituted by a different pass.
How spintax prevents account flags
Spam-detection systems on Telegram, X, Instagram, and major email providers run a fuzzy-hash on every message body. If 500 of your sends in a day produce the exact same hash, or even close enough hashes, the system flags the sending account for review.
Spintax breaks the hash by introducing structured variation. A template with 5 branches of 3 variants each produces 3⁵ = 243 unique strings, so a 200-send batch has effectively no duplicates. The platform sees 200 different conversations, not 200 copies.
What spintax does not do:
- Defeat content-classifier filters that look for sales/spam-intent language ("buy now", "limited offer", suspicious URLs).
- Hide a high send rate from rate-limiters; that is what flood waits and account rotation are for.
- Make a message that violates platform ToS suddenly compliant.
Spintax is one tool in a stack. Without warm accounts, paced sending, and content that does not break ToS, no amount of spinning will save the campaign.
Why it matters
For any team doing outbound at meaningful volume, spintax is the difference between "1,000 DMs land and 8% reply" and "200 DMs land before the account gets restricted". The replies-per-account economics get dramatically better when the platform stops penalising you for duplicate content.
It also makes A/B testing trivial: if branch 1 is {question|story|stat}, you can see which opening style produces the most replies and rewrite the template accordingly. The same template doubles as an experimentation framework.
Real-world examples
- Cold opener for a SaaS SDR.
{Hey|Hi} {{firstName}}, {saw your post on|came across your work via} {{source}} and {wanted to ask|had a quick question}.produces 16 unique openers from one template. - Real-estate follow-up.
{Quick update|Wanted to check in|Following up}: the {3-bedroom|4-bedroom} property in {{neighborhood}} {opened up|is now showing} this week.keeps follow-ups distinct even for agents working a single neighbourhood. - Course launch DM.
{Heads up|Quick note|FYI}: doors {open|close} {tomorrow|this Friday} and {I noticed|saw} you {liked|saved|commented on} {a recent post|the launch teaser}. - Welcome message from an AI agent.
{Hey there|Hi|Welcome}! {Thanks for|Glad you're} {reaching out|connecting|stopping by}. {How can I help|What can I do for you|What's on your mind} today? - Telegram support reply for a clinic.
{Thanks for|Appreciate} your message. {We'll get back to you|Someone from the team will reply|A booking specialist will respond} {within an hour|shortly|in the next 30 minutes}.
Common mistakes
- Forgetting to count the variants. Two branches of two variants each is only 4 unique outputs, not enough variation for a 500-send batch. Aim for at least 50 unique outputs per template.
- Spinning grammar wrong.
{This|These} {product|products} {is|are} greatproducesThis products is great. The spinner does not understand singular/plural; you have to enforce agreement manually, usually by nesting:{This product is|These products are} great. - Over-spinning. Every word in the message wrapped in
{…|…|…}reads as if your tool is broken. Spin 3-5 anchors per message, not 30. - Spinning the CTA.
{Click here|Tap this|Hit reply}looks like a spam test. Keep the CTA consistent; that is the part you actually want to measure. - Using spintax to lie.
{8 weeks|3 months|half a year}for the same statistic is dishonest, not a variant. Spin tone, not facts.
Related concepts
- Drip campaign: the primary place spintax earns its keep.
- Cold outreach: modern outbound is unthinkable without spintax.
- Flood wait: the partner tool that handles platform rate-limit responses.
- MTProto: the protocol that defines what duplicate-content detection looks like on Telegram.
- AI agent: increasingly replaces static spintax with full LLM-generated personalisation.
- Omnichannel CRM Needs spintax baked into every channel's send pipeline.
How CRM Solid handles it
CRM Solid has a spintax engine on every send path: Telegram, X DMs, WhatsApp, Instagram, email and the in-app composer. The inline editor highlights branches as you type, shows a live preview of one possible output, and counts how many unique outputs the template can produce. Stop-on-reply respects spintax; account rotation respects spintax; and the API accepts spintax templates directly so you can spin from external workflows too.