Spintax — Dynamic Text Variations

Spintax lets you write several versions of a phrase in one place, so every recipient gets a slightly different message. That variety is what keeps your outreach from looking like one template sent a thousand times — it improves deliverability and helps you avoid spam filters.

Syntax:
Wrap your alternatives in curly braces, separated by pipes:
{Hello|Hi|Hey} — one option is picked at random each time the message is sent.

Works In:

In short: if you can type a message in WarmySender, spintax works in it.

Examples:
Subject: {Quick question|Reaching out|Short intro} about {{company}}
Email body: {Hope you're doing well|Hope your week is going great}, {{firstName}}. {I wanted to reach out|I'm reaching out|I noticed your work} {about|regarding} {a potential collaboration|an opportunity I think you'd find interesting}.
LinkedIn invite note: {Hi|Hey} {{firstName}} — {loved your recent post|great to see your work} on {{company}}.
Instagram DM: {Hey|Hi} {{firstName}}, {quick question|one quick thing} for you.

Multiple spintax blocks multiply your variations:

The variation count is shown in the editor status bar so you can see your total unique combinations at a glance.

Nesting is supported:
You can put spintax inside spintax, to any depth, and every level resolves.
• {Hi {there|friend}|Hello} — 3 variations: 'Hi there', 'Hi friend', 'Hello'. (The first option itself has two versions, and 'Hello' is the third.)
• {Hope {you're|things are} {well|going great}|Hope your week is off to a good start} — 5 variations.
Count it by working outwards: each option counts as the number of versions it can produce, and you add the options of a block together.

LinkedIn invite notes:
LinkedIn limits an invite note to 300 characters. We count your LONGEST variation against that limit, so whichever version gets picked, it fits — you'll never have a note trimmed or refused because the random pick came out long. If your longest version is over the limit, we tell you before the campaign saves.

What if my braces don't match?
If a block is missing its closing brace (or has an extra one), we'll tell you which block to fix before the campaign saves — the message names the exact text, so nothing goes out with stray braces in it. This check runs everywhere a message is saved: the campaign editor, LinkedIn templates, and campaigns created by an AI agent or through the API.

Spintax vs Merge Tags:

Preview & Testing:

Processing Order:
1. Merge tags are resolved first ({{firstName}} → 'Scott')
2. Spintax is resolved second, inside-out, until no blocks remain ({Hi {there|friend}|Hello} → 'Hi friend')
3. Formatting and any channel length limits are applied last, to the finished text

FAQ — Why did a message go out with braces in it?
Honest answer: before September 2026, spintax only worked on email — LinkedIn, Instagram and WhatsApp messages sent the braces exactly as typed — and nested blocks weren't supported on email either, so the outer braces of a nested block went out literally. Both are fixed. Spintax now resolves on every channel and at any nesting depth. You don't need to re-save or rebuild anything: existing campaigns and templates pick it up automatically on their next send.

Best Practices:

Related guides in Campaigns

Back to all documentation | Contact support