Free spintax generator and checker for cold email

Type your versions, and this spintax generator writes them in the syntax your sending tool reads and checks every bracket.

Try:

Runs in your browser. Nothing is sent or stored.

All 13 formats
  • {{spin: a | b}} rotations and {{Column name}} variablesOneprofile sequences
    Spintax
    {{spin: Hi | Hello}}
    Merge tag
    {{First Name}}
    Fallback
    None. A required variable left blank skips that contact rather than sending a gap.
    Nesting and limits
    No. A version cannot hold a variable or another rotation.Each contact locks onto one version, so a preview and the real send agree. Two to 20 versions per rotation.
    Source: backend/app/api/assistant_tools/tools_sequences.py, docs.getoneprofile.ai (opens in a new tab). Checked Nov 9, 2026.
  • {a|b} single-brace spintaxCold email sequencers and email platforms; the classic spintax form
    Spintax
    {Hi|Hello|Hey} there
    Merge tag
    Not part of the format; merge tags follow the sending tool's own syntax.
    Fallback
    Not part of the format.
    Nesting and limits
    Depends on the tool. Spintax libraries read {a|{b|c}} and empty options; some email tools do not read nested braces at all.The pipe separates versions, so a version cannot contain a pipe.
    Source: help.mailercloud.com (opens in a new tab), hackage.haskell.org (opens in a new tab), en.wikipedia.org (opens in a new tab). Checked Nov 9, 2026.
  • {{a|b}} double-brace spintax with {{first_name}} tagsA cold email sequencer
    Spintax
    {{Hi|Hello|Hey}} {{first_name}},
    Merge tag
    {{first_name}}
    Fallback
    Not documented.
    Nesting and limits
    Not documented. Single braces are not read as spintax.Every expression must be closed and needs at least two alternatives. Works in subject, body and LinkedIn messages.
    Source: help.salesforge.ai (opens in a new tab). Checked Nov 9, 2026.
  • {{RANDOM | a | b}} with {{fname|default('there')}} tagsA cold email sequencer
    Spintax
    {{RANDOM | Hi | Hello | Hey}}
    Merge tag
    {{company}}
    Fallback
    {{fname|default('There')}}
    Nesting and limits
    Not documented.Spaces around the pipes are optional.
    Source: help.mystrika.com (opens in a new tab). Checked Nov 9, 2026.
  • {{SPINTAX | "a" | "b"}} with {{FIRST_NAME | "fallback"}}A cold email sequencer
    Spintax
    {{SPINTAX | "Hi" | "Hello" | "Good morning"}}
    Merge tag
    {{FIRST_NAME}}
    Fallback
    {{FIRST_NAME | "there"}}
    Nesting and limits
    Not documented. A merge tag may sit inside a version, without its fallback.Each version sits in double quotes. Works in the subject and the body. Fallbacks do not work inside a spintax formula.
    Source: woodpecker.co (opens in a new tab), woodpecker.co (opens in a new tab). Checked Nov 9, 2026.
  • {{Random | 'a' | 'b'}} with {{FirstName | 'fallback'}}A cold email sequencer
    Spintax
    {{Random | 'quick call' | 'short chat'}}
    Merge tag
    {{FirstName}}
    Fallback
    {{Company | 'your company'}}
    Nesting and limits
    No merge tags inside a block; put them before or after it.Each version sits in single quotes. A space is required before and after each pipe.
    Source: how.reply.io (opens in a new tab). Checked Nov 9, 2026.
  • {spin} a | b {endspin} with {{First Name}} tagsA cold email sequencer
    Spintax
    {spin} Hey there | Hello | Hi {endspin}
    Merge tag
    {{First Name}}
    Fallback
    Not shown on the spintax page.
    Nesting and limits
    Not documented.Close every {spin} with {endspin}. Formatting is applied to each word separately.
    Source: docs.saleshandy.com (opens in a new tab). Checked Nov 9, 2026.
  • {%spin%}a|b{%endspin%} with {{First_Name}} tagsA cold email sequencer
    Spintax
    {%spin%}Hi|Hello{%endspin%}
    Merge tag
    {{First_Name}}
    Fallback
    Not documented on the spintax page.
    Nesting and limits
    Not documented.The docs suggest two to five versions per block. A wrong tag can show the raw code in the email.
    Source: help.smartreach.io (opens in a new tab). Checked Nov 9, 2026.
  • {{spin}}a{{variation}}b{{end spin}} with {FirstName|fallback}A mail merge tool for Gmail
    Spintax
    {{spin}}Hello{{variation}}Hi{{end spin}}
    Merge tag
    {FirstName}
    Fallback
    {FirstName|Friend}
    Nesting and limits
    Not documented. A merge tag may sit inside a version.Merge tags use single braces. Spintax works in subject lines too.
    Source: gmass.co (opens in a new tab), gmass.co (opens in a new tab). Checked Nov 9, 2026.
  • *|FNAME|* merge tags with *|IF:FNAME|* blocksAn email marketing platform
    Spintax
    None documented.
    Merge tag
    *|FNAME|*
    Fallback
    *|IF:FNAME|* *|FNAME|* *|ELSE:|* Friend *|END:IF|*
    Nesting and limits
    Not applicable.FNAME inserts the contact's first name if the audience has it. A conditional block shows other text when the field is empty.
    Source: mailchimp.com (opens in a new tab), mailchimp.com (opens in a new tab). Checked Nov 9, 2026.
  • {{ contact.firstname }} tokens with |defaultA CRM's marketing email
    Spintax
    None documented.
    Merge tag
    {{ contact.firstname }}
    Fallback
    {{ contact.firstname|default("there", true) }}
    Nesting and limits
    Not applicable.The property's internal name follows contact. A token with no default shows blank for a contact without the value; the second parameter true makes the default apply to empty values too.
    Source: developers.hubspot.com (opens in a new tab), developers.hubspot.com (opens in a new tab), knowledge.hubspot.com (opens in a new tab). Checked Nov 9, 2026.
  • {{ first_name | default: "there" }} Liquid tagsThe Liquid template language, which several email tools read
    Spintax
    None in the language.
    Merge tag
    {{ first_name }}
    Fallback
    {{ first_name | default: "there" }}
    Nesting and limits
    Not applicable.default shows its value when the input is nil, false or empty.
    Source: shopify.github.io (opens in a new tab). Checked Nov 9, 2026.
  • {{first_name}} Mustache tagsThe Mustache template language
    Spintax
    None in the language.
    Merge tag
    {{first_name}}
    Fallback
    None. A missing value prints nothing.
    Nesting and limits
    Not applicable.A tag looks the key up in the current context.
    Source: mustache.github.io (opens in a new tab). Checked Nov 9, 2026.
Photo of Utku Zihnioglu

By

· CEO & co-founder

Updated Nov 11, 2026

Shorter page: the tool first, the answer in a few lines.

A spintax generator takes the versions of a line you want to rotate and writes them as one string your sending tool can read. Writing the versions is the easy part. The syntax is where it breaks: one tool reads {Hi|Hello}, another wants {{Hi|Hello}}, a third needs a keyword, and text that works in one reaches a prospect as raw braces in another.

The generator above runs in your browser. Nothing you type is sent or saved.

How to use it

Type each version on its own line and pick the format your sending tool's help page shows, then copy the result. For an email or a sequence you already wrote, paste it, pick the format it is in and the one you want, and you get the converted text. Merge tags can be renamed to the target's style as well.

Then draw a few random versions and read them aloud. An opener with three versions and a closing line with three more make nine emails, and nobody read most of them.

What the checker flags

Some findings break the email: an opening brace with no closing brace sends the braces as text. The rest are worth a look. The one people miss is the empty version. {Hi|} looks like a stray pipe, and part of your list gets an email with a word missing.

Nesting is mostly undocumented. Spintax libraries read nested braces, and Wikipedia's entry on article spinning describes many levels of them, but most sending tools say nothing and one says it will not process them. Keep rotations one level deep.

What to do next

Spintax only earns its keep on a list worth writing to, so start with finding the right people to write to.

To send from Oneprofile, convert to the {{spin: a | b}} format and paste it into a sequence's email step. Rotations arrive as rotations, and a merge tag that matches a column becomes a variable. Each contact locks onto one version, so the preview matches the send. The variables and spintax guide covers the editor.

Spintax generator: common questions

Why does my spintax show up as raw text in the email?

Usually because the sending tool reads a different syntax. One tool reads single braces, another double braces, another a keyword or a closing tag. Convert the text to your tool's format and paste the result instead.

Can I put a merge tag inside a spintax version?

It depends on the format. Some allow a merge tag inside a version, one allows it only without its fallback, and others not at all. Oneprofile's rotations hold words only, so put the variable before or after the rotation.

Does spintax keep cold email out of spam?

Not on its own. Spintax varies the wording, but filters also weigh your domain's authentication, your sending reputation and whether people want your mail. Treat it as a way to avoid identical emails, not as a deliverability fix.

About this article

Photo of Utku Zihnioglu

Utku Zihnioglu

CEO & co-founder

Serial entrepreneur who built infrastructure companies handling billions of requests. Now leads engineering at Oneprofile, which finds the people worth talking to, researches each one, and follows up until they reply.

Drafted with AI from our product docs and code. Utku Zihnioglu answers for what it says.

Paste your spintax into a sequence

A Oneprofile sequence reads rotations, variables and AI-written steps together.

Free plan: 200 credits a month, 3 integrations, no card

Paste your spintax into a sequence

A Oneprofile sequence reads rotations, variables and AI-written steps together.

Free plan: 200 credits a month, 3 integrations, no card