
SapotaCorpTeam designs a stunning email, nails the copy, polishes the CTA. Open rate stays flat. The email is never read because the subject line didn't earn the tap. Here's what we've learned about the two fields before the envelope.
A client campaign we audited last quarter: polished design, thoughtful segmentation, strong offer. 11% open rate. The subject line read "Weekly Newsletter - March Edition." Nothing in the inbox preview earned the tap.
Subject line and preheader are the two fields subscribers read before the envelope opens. Everything else is invisible until they decide to look.
Keep it under 50 characters. Most email clients truncate longer subjects, and the part that gets cut is often the hook.
Mobile previews show 30-40 characters on average. Desktop clients show more, but design for the stricter limit.
Under 50 characters isn't a hard cap - sometimes 55 is right - but every character past 50 risks being hidden.
Pattern
Example
Curiosity
"You won't believe what we found"
Personalization
%%FirstName%%, your 20% voucher inside
Urgency
"3 hours left - flash sale ends midnight"
Direct benefit
"Buy 1 get 1 free - today only"
Audience-specific
"For our Gold tier members only"
Pick one angle per subject line. Stacking three creates noise.
Subject line
Why it fails
Monday Newsletter
Says nothing beyond the day
RE: Previous email
Misleading, damages trust, risks spam reports
, check this out
Missing default value for personalization field
Our latest product line is now available for pre-order with free shipping
Truncated - subscribers see "Our latest product line is no..."
Subject line with %%FirstName%%. Some subscribers have FirstName populated, some don't.
Without a Default Value set in the field definition:
Always set a Default Value. Something neutral like "there" or empty-string-with-rewritten-copy.
FirstName with default "there":
"Hi %%FirstName%%, your voucher" →
"Hi Maria, your voucher" (with data)
"Hi there, your voucher" (without data)
Common mistake: trying to use AMPscript (%%=IIF(...)=%%) in the subject line for conditional logic. Doesn't render.
Only personalization strings (%%FieldName%%) work in subject lines. For conditional subject line logic, either:
Preheader is the preview text after the subject in the inbox list. If blank, email clients grab the first text from the body - usually "View in browser" or an alt text attribute. Looks amateur.
Best practices:
Subject: "Flash Sale starts now"
Preheader: "Up to 50% off - 24 hours only. Shop before it's gone."
Bad pairing:
Subject: "Flash Sale starts now"
Preheader: "Flash Sale starts now - shop the sale"
Wasted space. The preheader should add information, not repeat.
Preheader is as impactful as subject line and gets 10% of the A/B testing attention. Worth testing.
Patterns that work in preheader tests:
Run A/B tests with the 4-rule framework covered in the A/B testing post.
Email Studio > Admin has a Subject/Preheader Validation feature. Configure forbidden strings - [DRAFT], [TEST], [APPROVAL], TACO prefix, etc. - and the system blocks send attempts that include them.
Takes five minutes to configure. Prevents the embarrassing "production email went out with [DRAFT] in subject" incident that every marketer will eventually cause.
Emojis can lift opens in some audiences and flatten them in others. Data points:
Test in your audience. Don't assume.
Also: some email clients render emoji differently, and a few still show empty boxes. Preview across clients before committing.
Subject line earns the tap. Preheader seals it. Both are the 80% of open rate optimization that most teams underweight. Set Default Values on every personalization field, avoid AMPscript in subjects, don't repeat the subject in preheader, and enable Subject/Preheader Validation to block embarrassing placeholders. These are five-minute habits that compound across every send for years.
Optimizing subject lines on client SFMC accounts? Our Salesforce team runs A/B test programs and builds subject line strategy frameworks on production engagements. Get in touch ->
See our full platform services for the stack we cover.