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. cmendoza.mx
    How do you handle this when your campaign list spans multiple language audiences? We have EN + ES + FR subscribers in one campaign
    1. admin
      that config is exposed in 5.2+. for older versions you'll need to edit the config file directly. we'll add a version-matrix in the article.
  2. bos.devops
    Any guidance on how this interacts with the time-of-day send optimization? Conflicts with our scheduled-blast pattern.
    1. admin
      Currently a manual step. There's a feature request tracking it on the repo if you want to +1...
  3. joel.anders.se
    our open rate jumped from 18% to 24% after we restructured around these principles. took about 6 weeks to see the full lift.
  4. sobrien.kw
    the personalization-beyond-first-name section is what i needed. most articles talk about it abstractly.
  5. phuong.mai.hn
    saved this. going to use as a reference for our next campaign cycle.
    1. admin
      Thanks for the kind words. We try to keep these source-grounded so they age well.
  6. sofia.costa.pt
    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
      Confirming your experience matches what we see in support cases. We'll cite the cause-#5 'wait it out' guidance more prominently in the next revision.
  7. m.schmidt78
    Pro tip from our team: build campaign templates with a single CTA. Multiple CTAs always underperform in our data.

More in Email Marketing