Spintax is old, unglamorous, and still one of the cheapest deliverability levers a cold email campaign has. It is also easy to do badly. This is the spec we use across our own campaigns: what to spin, how small the blocks should be, where the opt-out and signature go, and a worked example with the rendering counts so you can see how the width is built.
Written by Jeremy Norris, founder of ForceFlow. Published 2026-09-05. The small-block rule and the subject/opt-out/signature spec build on advice from Eric Nowoslawski and Nikita of Maildoso; the rendering counts and the before-and-after are ours.
Spintax is a notation for alternatives inside one template. {Quick|Short|One} question tells the sending tool to pick one of the three words for each recipient. Nested and repeated blocks multiply: three blocks of three options render 27 ways; ten blocks of three render 59,049 ways. Sending tools built for cold email (Smartlead, Instantly, and most others) resolve the syntax at send time, so every recipient gets a different string.
The purpose is narrow. Mailbox providers score incoming mail partly on whether the same message is arriving in volume from a cluster of senders. Identical bodies, identical subjects, and identical signatures across a few thousand sends are a fingerprint. Spintax removes the fingerprint. It does not make a bad email good, and it does not rescue a list that bounces or a domain that was never warmed. Treat it as hygiene, in the same category as verification and warm-up, not as a strategy.
The most common mistake is writing spintax as a handful of whole-sentence alternatives. It looks like more variation and produces less. Compare:
| Sentence-level spintax | Small-block spintax | |
|---|---|---|
| Shape | One block, 3–5 whole sentences as options | Many blocks, 1–5 words per option, 2–4 options per block |
| Renderings from one sentence | 3–5 | Dozens to hundreds |
| Editable by hand | Barely; every fix has to be made in each option | Yes; the sentence reads almost normally |
| Length and tone across variants | Drifts; options end up different lengths and registers | Held constant, because options are near-synonyms |
| Risk of a broken rendering | High; a stray brace or pipe corrupts a whole sentence | Low and localized |
| Where it fits | Only as separate A/B variants in the tool, not as spintax | Everywhere in the body, roughly one block every five words |
The rule in one line: one word or a short phrase per option, at most five words, two to four options per block, and a block roughly every five words of body copy. Whole-email variants (a different hook, a different structure) belong in your tool's A/B feature as separate versions, where you can read the reply rate of each. Mixing two hook structures inside a single spintax block hides that signal.
Most campaigns that spin the body still send the same subject line, the same opt-out line, and the same signature to every recipient. Those three are the easiest fingerprint in the whole email because they are short, repeated, and rarely touched. Each should have fifteen or more renderings, and each is built from three or four small blocks.
{Quick|Short|One} {question|thought|idea} {on|about|for} {{company_name}}
Three blocks of three, 27 renderings, and every one reads like a subject a person typed. Keep the merge field; keep the length under about six words.
{Just|Simply} {reply|respond} {"no thanks"|"no"|"pass"} and {I'll|I will} {stop|drop it|leave you alone}.
Two by two by three by two by three, 72 renderings. This line moves out of the account-level signature and into the sequence body. Account signatures in most tools are static text and are not spun, so an opt-out line left there is identical on every send.
{Jeremy Norris|Jeremy N.|Jeremy}
{Founder|Owner}{ @| at|,} ForceFlow
{123 Example Ave|123 Example Avenue}{, Ste 4|, Suite 4|, #4}, City, ST 00000
Name, title, and address each spin; every rendering still carries the complete postal address, which is required for compliance. Once the body carries the signature, blank the account-level signature or it will appear twice.
A variation some operators use: replace the title line in some renderings with a one-line proof, such as a result or a case study. Only do this with a claim you can stand behind in writing. We don't have client case studies to cite yet, so our proof lines describe the system itself ("this email is the system") rather than a client result.
To show how the width is built, here is spintax applied to a generic first-touch cold email. One thing to be clear about first: this is not an example of a good cold email. It is a deliberately plain, familiar template, the kind that is already saturated in most inboxes, chosen so the spintax is easy to see and nothing else competes for attention. It is not what we send. Our campaigns open with something specific to the recipient and are written per segment; spintax is applied on top of that, not instead of it. Merge fields are in double braces; spin blocks in single braces.
Subject: Quick question about {{company_name}}
Hi {{first_name}},
Noticed {{company_name}} services commercial properties in {{metro}}. We book sales calls for cleaning companies with property managers who are actively switching vendors, and we only make money when a call shows up.
Worth a 15-minute look?
Just reply "no" and I'll stop.
Jeremy Norris
Founder, ForceFlow
123 Example Ave, Ste 4, City, ST 00000
Subject: {Quick|Short|One} {question|thought|idea} {on|about|for} {{company_name}}
{Hi|Hey|Hello} {{first_name}},
{Noticed|Saw|Came across} {{company_name}} {services|handles|covers} commercial {properties|buildings|sites} in {{metro}}. We {book|set up|arrange} sales calls for {cleaning companies|commercial cleaners|janitorial firms} with property managers who are {actively|currently} {switching|changing|reviewing} vendors, and we only make money when a call {shows up|actually happens|takes place}.
{Worth|Open to|Up for} a {15-minute|quick|short} {look|call|chat}?
{Just|Simply} {reply|respond} {"no thanks"|"no"|"pass"} and {I'll|I will} {stop|drop it|leave you alone}.
{Jeremy Norris|Jeremy N.|Jeremy}
{Founder|Owner}{ @| at|,} ForceFlow
{123 Example Ave|123 Example Avenue}{, Ste 4|, Suite 4|, #4}, City, ST 00000
| Part | Blocks | Renderings |
|---|---|---|
| Subject | 3 | 27 |
| Greeting | 1 | 3 |
| Body sentence 1 | 8 | 3 × 3 × 3 × 3 × 3 × 2 × 3 × 3 = 4,374 |
| Body sentence 2 | 3 | 27 |
| Opt-out line | 5 | 72 |
| Signature | 5 | 3 × 2 × 3 × 2 × 3 = 108 |
| Whole email | 25 | about 74 billion distinct strings |
Read the "after" version aloud with any combination chosen and it sounds like the "before" version. That is the test: the meaning, length, and tone are constant; only the surface changes. If a rendering reads oddly, the block that produced it has an option that is not a true synonym, and the fix is to remove that option, not to add more.
{Quick|Short} text to a real person.{{first_name}} stays exactly as the tool expects it. Spin the words around it.A list that bounces. A domain that was never warmed or is sending too much. Copy that gives nobody a reason to reply. A sending pattern that looks like a farm (dozens of inboxes on one domain, all starting the same day). If a campaign is failing, check data, infrastructure, and message, in that order, before touching spintax. Spintax is what you add once those three are right, so that a good campaign is not mistaken for a blast.
Every ForceFlow campaign ships with the full spec above: small-block spintax through the body, spun subject lines, spun opt-out and signature lines in the body, and three or four whole-email variants tested against each other. Clients approve the copy before it sends and see the rendered variants, not just the template. It is part of what the flat infrastructure fee covers; details on pricing and how it works.
A notation for alternatives inside one template, such as {Quick|Short|One} question, so the sending tool picks a different combination for each recipient. It makes each sent email textually different, which reduces the chance mailbox providers fingerprint a campaign as bulk mail.
It addresses one specific failure: identical messages sent in volume being pattern-matched. It does not fix a bad list, a cold domain, or copy nobody wants to answer. With verified data and warmed infrastructure, it is a low-cost way to keep a campaign from looking like a blast.
Many small blocks of one word or a short phrase, at most five words per option and two to four options per block, rather than a few large blocks of whole sentences. Small blocks multiply into thousands of renderings, stay readable, and keep every variant the same length and tone.
Yes. Subject, opt-out, and signature lines are the parts most often left identical across a campaign, so they are the easiest fingerprint. Spin each into fifteen or more renderings and put the opt-out and signature in the body, since most tools do not spin account-level signatures.
Enough that no two recipients in a campaign get the same string. A few thousand combinations covers a few thousand sends; the worked example above produces billions, which is more than needed but costs nothing. The constraint is readability, not count.
Book a free 30-minute strategy session. We'll audit your current sending, including whether your copy is fingerprinted, and quote what a managed system would cost for your market.
Book a Free Strategy Session