What Is Spintax? One Template, a Unique Message per Recipient
Spintax: the syntax, a worked example, nested sentence-level variety, the quality rules that keep variants readable, and why identical bulk text fails.
If you have ever sent the same message to a thousand people and wondered why it felt like a thousand copies of a flyer, spintax is the missing piece. It is the difference between a broadcast and a thousand notes - and it is the most underused feature in campaign tooling.
This is the complete explanation: the syntax from zero, a worked example followed through real recipients, nested variants, the rules that keep it readable, and why it matters at all.
What spintax actually is
Spintax (short for “spinning syntax”) is a way of writing alternatives inside a template, and letting the tool choose one per recipient:
{Hi|Hello|Hey} {name}!
The braces wrap a group; the pipes separate options. One recipient gets “Hi Priya!”, the next “Hello Rahul!”, the next “Hey Meera!” - drawn at random, per person, from the same line of text.
That is the entire syntax. No programming, no templates engine, nothing to learn beyond braces and pipes - which is why it travels so well: paste the same template into any spintax-aware tool and it behaves identically.
A worked example, start to finish
Take this campaign template:
{Hi|Hello|Hey} {name}! Our new catalog is live.
Claim your {20% off|discount|welcome offer} {today|this week}.
Three groups: two with three options, one with two. The combinations multiply - 3 × 3 × 2 = 18 distinct bodies from one template - and each recipient receives exactly one, assembled for them:
- Hey Priya! Our new catalog is live. Claim your 20% off today.
- Hello Rahul! Our new catalog is live. Claim your welcome offer this week.
- Hi Meera! Our new catalog is live. Claim your discount today.
Eighteen unique messages, and every one of them reads like it was written by a person who had this particular customer in mind. Nobody saw the template; everyone saw a message. That is the whole trick - and in a thousand-recipient campaign, a handful of groups produce more unique bodies than any team could write by hand.
Nesting: variety at the sentence level
Groups can live inside groups, which moves variety up from word choice to sentence choice:
{{We miss you|It has been a while} - here is 10% off|Your 10% welcome code
is waiting} {name}!
This single line produces openings as different as “We miss you - here is 10% off, Priya!” and “Your 10% welcome code is waiting, Rahul!” - not the same sentence with a synonym swapped, but different sentences carrying the same offer.
Nested spintax is where campaigns start feeling genuinely hand-written, and where the quality rules below stop being optional: every path through the nesting must read cleanly, because a recipient walks exactly one of them.
Spintax plus variables
Spintax varies the wording; variables vary the person. They compose:
{Hi|Hello} {name}! Your order {is confirmed|is on its way}.
Reply here if {you need anything|we can help with anything}.
{name}becomes the contact’s name from your list (blank if none).{phone}carries their number, for templates that reference it.- In Automate, a CSV row can even carry its own message, overriding the campaign default per contact - with spintax inside it.
The division of labor: variables handle identity, spintax handles phrasing. A template with both produces messages that are personal and unique, which is the combination recipients read as one-to-one.
Three ways to vary a message
Spintax is one of three layers of variation, and knowing which to reach for is most of the craft:
| Layer | What it varies | Where it lives |
|---|---|---|
| Variables ({name}, {phone}) | Who the message is about | Filled per contact from your list |
| Spintax | How the sentence reads | Chosen per recipient at send time |
| Per-row message column | The entire copy for that contact | Set by you in the CSV |
Segment first for meaning - a VIP and a cold lead should genuinely get different copy, which is what the per-row column is for. Then spintax the wording inside each segment so no two recipients receive identical text. Variables and spintax then ride on top of both. The personalization pillar places these layers in the full per-recipient system, with the data each one needs.
The quality rules
Spintax is easy to write and easy to ruin. Five rules keep it clean:
- Every variant must stand alone. Read each option as its own sentence, out of context. If one only works after another option, restructure the groups.
- Two to three options per group. Combinations multiply across groups; depth in one group adds writing time, not received variety.
- Spin synonyms, not facts. Alternate greetings, phrasings, sentence order. Never spin the price, the date, or the offer itself into ambiguity.
- Match register across a group. “Hey!” and “Dear Sir/Madam” do not belong in the same group; a recipient could compare notes.
- Proofread paths, not just the template. Read the message once per major variant path - especially through nested groups - before sending.
Mistakes that show
The five failures that give spintax a bad name, all avoidable:
- Spinning facts. {20% off|50% off} produces recipients who compare notes and one of whom was misled. Spin wording, never offers, prices, or dates.
- Register collisions. {Hey!|Dear Sir/Madam} in one group means two customers of the same shop received different personalities.
- Over-nesting. Three levels deep in a 200-character message usually means some paths were never read aloud by anyone. Depth is for sentence-level variety, not depth for its own sake.
- Reusing one group everywhere. The same {Hi|Hello} in every group of every campaign narrows variety back down; vary the groups themselves across campaigns.
- Punctuation outside the braces. “{Hi|Hello}!” and “{Hi|Hello!}” are different outputs - decide whether the punctuation belongs inside the variants or after the group, and be consistent.
Testing before you send
Two checks catch everything the rules miss. The compose box renders a live example of the template as you write - watch it across a few re-rolls to see different paths. Then send the test message to your own phone, which delivers one true assembled copy exactly as a recipient would receive it. For nested templates, send the test a few times: each run walks a different path, and the paths you have not read are the ones that embarrass.
Why identical messages fail
The mechanical reason first: two hundred identical messages from one number is a bulk-sender fingerprint. The wording, the timing pattern, the file hash of the attachment - sameness at scale is the signature enforcement systems and recipients both read as spam, and it is the behavior the WhatsApp Terms of Service name when they prohibit automated bulk messaging. A handful of spintax choices dissolves it: two hundred messages that differ in wording, with the offer intact, look like a person writing to people.
The human reason matters just as much. Recipients compare notes - family share phones, friends compare screenshots. “Did you get this weird message from a shop?” is a different conversation when both messages read as if a person wrote each one.
And there is a measurement reason: unique messages earn individual reads, and reads are what your health report counts. Sameness suppresses the engagement signal that everything downstream depends on.
The same logic extends to attachments: Automate re-encodes images slightly per recipient - different quality, different width, metadata stripped - so a 500-person campaign does not deliver one identical file hash 500 times. Text and image get the same treatment: varied at the individual level, consistent at the offer level.
How Automate runs it
The engine picks one option per recipient at random as each message is assembled, so uniqueness happens naturally inside the paced queue - no pre-generation step to manage. The compose box shows a live preview of one rendered example before you send, and the test message delivers a true rendered copy to your own phone: spintax expanded, variables filled.
Combine it with the campaign examples library
- every template there ships with its spintax written - and the personalization demo on the homepage, where you can watch the assembly re-roll live. One template in; a unique message per recipient out. That is the entire promise, kept by two characters of syntax.