CRM Solid logo
GLOSSARY

What is Spintax?

Spintax is a templating syntax (written as {a|b|c}) that produces multiple variant outputs from a single source string. It is used in bulk messaging to make every recipient see slightly different copy, reducing duplicate-content flags from spam filters and social platforms.

14-day free trial · No credit card required · Cancel anytime

Quick definition

Spintax is a templating syntax (written as {a|b|c}) that produces multiple variant outputs from a single source string. It is used in bulk messaging to make every recipient see slightly different copy, reducing duplicate-content flags from spam filters and social platforms.

In a single sentence: {Hi|Hey|Hello} picks one option per send.

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 of a, b, or c.
  • {a|b|}: pick one of a, b, or nothing. The trailing pipe is how you say "optional".
  • {a}: degenerate case; always picks a. 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

  1. 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.
  2. 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.
  3. 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}.
  4. 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?
  5. 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} great produces This 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.

Cheat sheet · syntax examples

The four spintax patterns you will use 95% of the time.

Copy any of these into the CRM Solid composer to see live output.

Basic

{Hi|Hey|Hello} there!

Possible outputs

  • Hi there!
  • Hey there!
  • Hello there!

Nested

{Hi|Hey {there|friend|stranger}}, hope you have a {great|good|nice} day.

Possible outputs

  • Hi, hope you have a great day.
  • Hey there, hope you have a good day.
  • Hey friend, hope you have a nice day.
  • Hey stranger, hope you have a great day.

Nested spintax expands recursively. The outer {…|…} picks one branch, and any nested {…|…} inside it picks its own.

With merge variables

{Hi|Hey} {{firstName}}, {saw your post|noticed your work} on {{platform}} and wanted to {connect|reach out|say hi}.

Possible outputs

  • Hi Maya, saw your post on Telegram and wanted to connect.
  • Hey Maya, noticed your work on Telegram and wanted to reach out.
  • Hi Maya, noticed your work on Telegram and wanted to say hi.

Spintax handles variant text; double-brace {{…}} variables pull from the contact record.

Multi-line opener

{Quick question: |Just saw your work and |Wanted to ask: }{are you still hiring SDRs|do you have a moment for a quick question|is this the right time to talk}?

Possible outputs

  • Quick question: are you still hiring SDRs?
  • Just saw your work and do you have a moment for a quick question?
  • Wanted to ask: is this the right time to talk?
The 5-anchor rule

A spintax template that actually works.

Pick five anchor positions per message, typically: greeting, opener, body verb, link phrasing, sign-off. Spin each anchor with 3 variants. That gives you 3⁵ = 243 unique outputs from a single template. Add 1-2 merge variables for {{firstName}} / context, and you can send 500 DMs with no two looking identical.

Anything beyond five anchors becomes hard to proofread; any fewer and the variation is statistically detectable. Five is the sweet spot.

Watch out for

Spintax is not a synonym dictionary.

Replacing every word in a sentence with {verb|verb2|verb3} produces messages that read like they came out of an LLM hallucination. Spin tone and connecting phrases. Keep nouns, facts, and CTAs identical. The point of spintax is to break a hash, not to disguise the message.

“We tracked send-account longevity before and after introducing five-anchor spintax. Average account lifespan went from 11 days to 47 days. Same volume, same content intent, just less duplicate-fingerprint signal.”
Daniel Reyes
Growth Engineer · OutreachIQ

Spintax: FAQ

The questions every operator asks before shipping their first spun template.

Spintax originated in the SEO content-spinning world in the early 2010s, then migrated into outbound-sales tooling. Today it is the de facto syntax for templating bulk DMs and emails, used by every serious outreach platform.
Yes, when used properly. Spam filters and social platforms detect bulk content using fuzzy fingerprints; exact-duplicate detection is decades old. Spintax breaks the fingerprint enough that 1,000 sends look like 1,000 different messages. It does NOT defeat content-based filters that detect intent (sales pitches, urgency words, suspicious links).
Three to five is the sweet spot. With three variants on five branches you can already generate 3^5 = 243 unique messages, plenty for a 500-send batch. Beyond five per branch the quality drops because you start reaching for synonyms that do not sound natural.
Yes. {Hi|Hey {there|friend}} expands by first picking the outer branch ("Hi" or "Hey {there|friend}"), then recursively expanding any nested {…|…}. Most engines support arbitrary nesting depth, but anything beyond two levels deep gets hard for a human to proofread.
Spintax alone: no. Ban prevention requires the full stack: warmed accounts, multi-account rotation, paced sending, flood-wait handling, opt-out compliance, and content that does not violate Telegram's ToS. Spintax helps with the "duplicate content" signal, which is one of many.
Definitely the first message. Subject lines for email: depends. Some email systems flag heavy subject-line variation as suspicious. Test it on a small audience first. For social DMs and Telegram, spin everything: first message, follow-ups, and the message body.
Ready to ship

Spin every send. Keep every account alive.

CRM Solid's spintax engine ships on every channel: Telegram, X, WhatsApp, Instagram, email. With live preview, branch counter, and account rotation.

Trusted by 2,500+ teams · GDPR-ready · 99.95% uptime

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.