Skip to content

Preheader Text — The Hidden Conversion Booster in AcelleMail

After the subject line, recipients see the preheader — the gray text snippet that follows. Setting it explicitly can lift open rates 5-10% over the auto-extracted default. This guide walks the AcelleMail field + the writing patterns.

What the preheader is

The preheader is the gray text shown immediately AFTER the subject line in most inbox lists. Examples:

Inbox preview:
─────────────────────────────────────────────
Brand Marketing  ·  Last chance for 20% off
The sale ends tonight — your discount code...
─────────────────────────────────────────────
              ↑
         Preheader

If you don't set the preheader explicitly, the inbox auto-grabs the first text from your email body. Usually this is garbage like "Trouble seeing this email? View in browser" — wasted real estate.

Setting an explicit preheader = 5-10% higher open rates, measured across many senders.

Set the preheader in AcelleMail

In the campaign builder's Setup step, find the Preheader field. It sits next to the Subject:

Preheader field in setup

Type your preheader text. Once typed:

Preheader typed + saved

Save. The campaign's metadata now includes both subject + preheader; receiver inboxes display both.

Preheader writing patterns

Treat the preheader as a "second subject line" — different angle, complementary message:

Pattern Subject Preheader
Extend the subject "Last chance for 20% off" "Discount ends tonight at midnight"
Add urgency "Spring sale is live" "1,247 customers already saved $40+"
Soften with empathy "We noticed you're inactive" "No pressure — just curious how you're doing"
Curiosity tease "This is the email I should have sent last month" "Better late than never. Let me explain..."
Concrete benefit "Your weekly digest is here" "5 actionable tips, 5 minute read"
Personalization "{{ subscriber.first_name }}, here's your update" "We've been working on something — hope it helps"

Length matters

Preheaders display ~40-100 characters in most inboxes:

Apple Mail iOS:        ~50 chars before truncation
Gmail desktop:         ~80 chars
Gmail mobile (Android): ~55 chars
Outlook desktop:       ~60 chars
Yahoo:                 ~70 chars

Aim for 40-80 chars. Front-load the most important words.

Verify in Preview

After typing the preheader, click Preview in the campaign builder:

Campaign preview — desktop

The preview shows the full email body but NOT the inbox-preview format. For the actual recipient-side inbox view:

  1. Click Send test → send to your own personal Gmail / Outlook
  2. Open the test in each client
  3. Verify the preheader text is what you typed (not the auto-extracted default)

In mobile view:

Mobile preview

Common UI signals + fixes

Symptom Likely cause Fix
Preheader field grayed out Selected campaign template overrides preheader Some templates hardcode preheader; remove the override in template settings
Preheader saved but inbox shows "View in browser" Preheader text contains hidden HTML / image alt text first Verify preheader is plain text only
Preview shows preheader, real inbox doesn't Inbox auto-extracted first body text instead Add hidden preheader markup at top of email body (advanced)
Mobile preview truncates the preheader Too long Cut to 40-50 chars front-loaded
Preheader includes merge tags that don't resolve Tag name mismatch Use `{{ subscriber.first_name
Test send shows preheader correctly in 3 of 4 clients Client-specific auto-extraction differences Lengthen the explicit preheader to 80+ chars to ensure all clients use it

Common preheader mistakes

Mistake Why it hurts
Leaving preheader blank Inbox auto-extracts garbage ("View in browser")
Repeating the subject verbatim Wasted space; no incremental signal
Putting the unsubscribe link in preheader Recipient sees "unsubscribe" before opening — reduces open rate
Cramming 200+ chars Most gets truncated; first 40 chars are all that matter
Using emoji-only preheader Some clients render as boxes; not all support emoji
Generic ("Hi there!") Provides no incremental signal

What to put in the preheader

Best uses (ranked by reliability):

  1. Restate the benefit + add urgency — "Sale ends tonight"
  2. Show social proof — "1,247 customers already saved"
  3. Hint at content — "5 actionable tips inside"
  4. Tease curiosity — "Wait until you see #3..."
  5. Personalize — "Maria, your update is ready"

Worst uses:

  • Generic greeting ("Hello!")
  • Sender reminder ("From Brand")
  • Already-in-subject information (redundant)
  • Unsubscribe link (kills open rate)
  • "View in browser" (signals automation; lowers trust)
Advanced: hidden preheader markup + A/B testing preheaders + per-segment preheader personalization

Hidden preheader markup (for ensuring the right text appears even when inboxes auto-extract):

Most email templates include hidden preheader text at the top of the body:

<!-- Preheader (hidden visually; readable by inbox extractors) -->
<div style="display: none; max-height: 0; overflow: hidden;">
  Your preheader text here. Cannot exceed ~80 chars to avoid truncation.
</div>

Then add invisible filler to push the actual email content:

<div style="display: none; max-height: 0; overflow: hidden;">
  &zwnj;&nbsp; &zwnj;&nbsp; &zwnj;&nbsp; (etc — pad with zero-width-non-joiner)
</div>

The inbox extractor reads the first ~80 chars; recipients see only the visible email body.

AcelleMail's builder handles this automatically when you set the Preheader field. For raw HTML mode, add it yourself.

A/B testing preheaders:

If your subject lines are well-optimized, the next ROI lever is preheader testing:

  1. New campaign → A/B test type
  2. Variant A: "Sale ends tonight"
  3. Variant B: "1,247 customers already saved"
  4. Same subject + same body for both
  5. Test on 20% sample; winner sends to 80%

Subject + preheader together = "what they see before opening." Combined optimization yields compound gains.

Per-segment preheader personalization:

For sophisticated segmentation, vary the preheader by audience tag:

Engaged segment:   "You're one of our most active subscribers"
At-risk segment:   "We've missed you — here's something to come back"
New segment:       "Welcome — here's the catch-up you've been waiting for"

In AcelleMail, this requires per-segment campaign splits (one campaign per segment with appropriate preheader). Some senders use dynamic Liquid in the preheader:

{% if 'vip' in subscriber.tags %}VIP early access — 24h before everyone else
{% else %}Spring sale starts now{% endif %}

But preheader display from receiving clients can be unpredictable with dynamic content — test before relying on this.

Preheader for transactional emails:

For password resets / receipts / order confirmations, the preheader should:

  • Mention the action briefly ("Password reset link inside")
  • NOT include sensitive details (not "Your code: 123456" — visible in inbox preview = security issue)
  • NOT include the unsubscribe link (transactional emails don't have one)
Transactional subject: "Your password reset link"
Transactional preheader: "Click below; expires in 30 minutes"

Multi-language preheaders:

For multilingual senders:

{% if subscriber.locale == 'es' %}Última oportunidad: 20% de descuento
{% else %}Last chance: 20% off{% endif %}

Test in Spanish-speaking + English-speaking client previews to ensure render correctly.

Related articles

11 comments

7 comments

  1. Carlos
    How do you handle this when your campaign list spans multiple language audiences? We have EN + ES + FR subscribers in one campaign
    1. Admin
      The preheader is one field on the campaign, so it can't branch per subscriber on its own. Two ways people handle it. Cleanest is to split: add a `language` custom field on the list, build three segments (EN/ES/FR), and run three campaigns off the same template. You get a real preheader per audience, plus subject lines that match, and the open-rate numbers stay readable per language instead of being averaged into mush. If you must keep it as one send, put a merge tag in the preheader field and populate it from a per-subscriber custom field, something like a `PREHEADER_TEXT` column you fill on import. The preheader field goes through the same tag substitution as the body. Downside is you're maintaining copy in a spreadsheet rather than in the campaign. I'd go with segmentation. The multi-language case isn't in the article at all right now, I'll add a section on it.
  2. Brian
    Any guidance on how this interacts with the time-of-day send optimization? Conflicts with our scheduled-blast pattern.
    1. Admin
      No interaction. Preheader is content, rendered at build time, so scheduling never reads it. A different preheader per send time isn't supported, you'd need separate campaigns.
  3. Joel
    our open rate jumped from 18% to 24% after we restructured around these principles. took about 6 weeks to see the full lift.
  4. Sarah
    the personalization-beyond-first-name section is what i needed. most articles talk about it abstractly.
  5. Mai
    saved this. going to use as a reference for our next campaign cycle.
    1. Admin
      One thing worth adding to the checklist: preview the preheader in a real inbox, not the editor's character count. Gmail, Apple Mail and Outlook all truncate at different points.
  6. Sofia
    confirming the a/b-test sample size guidance. we were testing too small for too long — switching to bigger batches over fewer cycles was the right call
    1. Admin
      That's the right read, and preheaders are one of the worst offenders for it. The lift from a preheader change is usually small enough that a few hundred recipients per arm will never separate it from noise, so you end up staring at a result that's really just day-of-week and inbox timing. Bigger batches, fewer cycles, and only call it if the winner holds on a second send. One caveat worth adding, if you're rotating preheader copy while also changing the subject line in the same test, you can't attribute the difference to either. Test one at a time even though it costs you a cycle. I'll work the sample size point into the article, it's currently implied and it shouldn't be.
  7. Marcus
    Pro tip from our team: build campaign templates with a single CTA. Multiple CTAs always underperform in our data.

More in Email Marketing