How to Write Cold Emails That Actually Get Replies
Most cold emails get ignored. Here's how to write ones that don't — with 5 proven templates, subject line formulas that work, and the personalization techniques that doubled reply rates in real campaigns.
You spend 30 minutes researching a prospect. You craft what you think is the perfect email. You hit send.
Nothing. No reply. No "not interested." Just silence.
You send 100 more. Two replies. One says "unsubscribe." The other says "who is this?"
The problem isn't your offer. It's not your targeting. It's the email itself. Cold emails compete with 121 other emails in the average inbox every day. If yours doesn't earn attention in the first three seconds, it's invisible.
Here's how to write cold emails that actually get replies — based on real campaign data, not guesswork.
Why Most Cold Emails Fail (The 3-Second Test)
Open your Gmail promo tab right now. Scan the first 10 sender names and subject lines. How many do you actually read? One? Maybe two?
Your prospects do the same thing. They scan. They filter. They delete. The decision to open or ignore happens in about 3 seconds, and it's based on exactly three things:
- Sender name — Is it a real person or a company name? Real names get opened. Company names get ignored.
- Subject line — Does it look like something a human wrote to another human, or does it look like marketing? Marketing gets deleted.
- Preview text — The first line of your email body that appears next to the subject line. If it starts with "Dear [Name]" or "I hope this email finds you well," they already know it's a template.
If you pass the 3-second test, they open. Most cold emails don't.
Subject Lines That Get Opens (With Real Data)
We analyzed 50,000+ cold email opens across XSendFlow campaigns to find what actually works. Here are the patterns with the highest open rates:
Pattern 1: The Business Observation (42% open rate)
These subject lines mention something specific about the recipient's business that shows you did your homework.
Formula: [Observation about their business] + [implied question or opportunity]
Examples that work:
- "Noticed you launched the new pricing page"
- "Your recent Series A — quick thought"
- "Saw your Head of Growth job posting"
- "Congrats on the Product Hunt launch — one thing"
Why it works: It doesn't look like a mass email. It looks like someone who actually visited their website and noticed something specific. The implied question creates curiosity without being clickbait.
Pattern 2: The Gap-Spotting Question (38% open rate)
These identify a specific gap or missed opportunity on the recipient's website or LinkedIn.
Formula: "Question about [specific thing on their site]" or "[Honest observation] about [their company]"
Examples that work:
- "Question about your onboarding flow"
- "Your competitor [Name] is doing [X] — noticed you're not"
- "Quick observation about your pricing page"
- "One thing your demo is missing"
Why it works: It triggers a specific, slightly uncomfortable curiosity. "What did they notice that I missed?" People open because they need to know if there's a problem they should fix — even if they have zero interest in buying anything.
Pattern 3: The Compliment + Question (35% open rate)
Lead with genuine, specific praise, then pivot to a question that implies you have something relevant to add.
Formula: "Love [specific thing] — quick question"
Examples that work:
- "Love the work you're doing at [Company] — quick question"
- "Your blog post on [topic] was spot on — one question"
- "[Recent achievement] is impressive — curious about [related thing]"
Why it works: People open compliments. But a pure compliment goes nowhere — adding a question creates an open loop that demands resolution.
Pattern 4: The Local Social Proof (32% open rate)
Reference a mutual connection, shared background, or common context that creates an implicit "we're in the same tribe" signal.
Formula: "[Shared context] + [reason for reaching out]"
Examples that work:
- "Fellow [Industry] founder here — quick thought on [pain point]"
- "Also a [Tool] user — noticed something you might find useful"
- "We met at [Event] — following up on our conversation about [topic]"
Why it works: People open emails from people they perceive as peers. The shared context creates instant credibility that a generic "I'm reaching out because..." never will.
Subject Line Rules (Print These Out)
- Under 50 characters. Mobile inboxes cut off at ~40 characters. Desktop at ~60. 50 is the safe middle.
- No ALL CAPS words. Not even one. It's the fastest route to the spam folder.
- No exclamation marks. One is borderline. Two is spam. Zero is best.
- No "Re:" or "Fwd:" tricks. They might get the open, but the immediate trust break kills your reply rate. You're not clever — you're deceptive, and prospects notice.
- No question marks in every subject line. Two question-mark subjects in a row feel interrogating. Mix patterns.
- Lowercase is better than Title Case. "quick question about your pricing page" outperforms "Quick Question About Your Pricing Page" by 12% in our data. Title Case looks automated; lowercase looks human.
The Opener Rule: First Sentence = The Point
The worst first sentence in cold email history is "I hope this email finds you well." It signals "this is a template" faster than any other phrase in the English language.
Here's the rule: your first sentence must contain something that could only be about this specific recipient. If you could copy-paste your opener to another prospect and it would still make sense, rewrite it.
Bad openers (generic — delete these):
- "I hope you're having a great week."
- "I wanted to reach out because..."
- "My name is [X] and I'm the founder of [Y]."
- "I've been following your company for a while."
- "I know you're busy so I'll keep this short."
Good openers (specific — steal these patterns):
- "Saw you're hiring for a Head of Sales — that's the exact moment most founders start looking for outbound tools."
- "Noticed your pricing page doesn't have a free trial. We tested both models — free trial converted 40% better for our customers. Quick thought on why."
- "Your post on LinkedIn about SDR churn hit home. We solved the exact same problem by switching to AI outreach — here's what changed."
- "Your competitor [Name] just launched [feature]. Noticed you don't have it yet — here's what they're seeing."
Each of these only makes sense for a specific person at a specific company at a specific moment. That's the standard. If your opener doesn't clear this bar, you haven't done enough research.
Body Length: Shorter Than You Think
We analyzed reply rates against email body length across 50,000+ sends. The data is clear:
- Under 75 words: 4.2% reply rate — feels abrupt, lacks context
- 75-125 words: 8.7% reply rate — the sweet spot. Enough context, not enough to feel like work.
- 125-175 words: 5.1% reply rate — starting to feel long
- Over 175 words: 2.1% reply rate — nobody's reading this
Aim for 75-125 words in the body. That's roughly 5-8 short sentences. If you can't make your case in that space, your case isn't clear enough yet.
The 3-paragraph structure that works:
- Context (1-2 sentences): Why you're reaching out to them specifically
- Value (2-3 sentences): What's in it for them — not what your product does, but what outcome it creates
- Ask (1 sentence): A single, low-friction next step
One Email, One CTA
The most common mistake in cold email is asking for too many things. "Check out our website." "Book a demo." "Let me know if you're interested." "Here's a case study." "Follow us on LinkedIn."
Multiple CTAs create decision paralysis. The prospect doesn't know which action matters, so they take none.
Pick exactly one CTA per email:
- "Worth a 15-minute call?" — direct, low-pressure, yes/no answer
- "Would you be open to seeing how it works?" — implies a demo without saying "demo"
- "Can I send you a 2-minute example?" — super low friction, hard to say no to
- "Mind if I share how [Similar Company] uses this?" — curiosity-driven, case study adjacent
The CTA should require exactly one word to answer: "Yes," "Sure," "No," or "Not interested." If the prospect needs to check their calendar, get approval, or think about it, the friction is too high for a first email.
Personalization That Actually Moves Reply Rates
Not all personalization is equal. Dropping {{company_name}} into a template increases reply rates by roughly zero percent. Prospects know you didn't type their company name — a mail merge did.
Here's what actually works, in order of impact:
Level 1: Website-Specific Observation (2-3x reply rate lift)
Find one specific thing on their website and mention it. Their pricing model. Their onboarding flow. A blog post they wrote. A feature they launched. This can't be template-fill — it has to be genuine.
Example: "Saw you offer a usage-based pricing tier alongside flat-rate plans. Most SaaS picks one model — curious why you went hybrid?"
Level 2: Trigger-Event Relevance (2x reply rate lift)
Something happened that makes your outreach timely. They raised funding. They posted a job. They launched on Product Hunt. They spoke at a conference. Something changed in their market.
Example: "Noticed you just posted a Senior AE role. Hiring SDRs too, or are you testing outbound a different way first?"
Level 3: Role-Specific Insight (1.5x reply rate lift)
You understand their job and the specific problems that come with it. A Head of Sales cares about pipeline coverage. A CTO cares about integration complexity. A founder cares about burn rate and speed.
Example: "Most Heads of Sales I talk to are fighting two battles: SDR churn and pipeline predictability. We built something that addresses both — specifically for teams under 20 reps."
5 Cold Email Templates That Actually Work
These are real templates that have generated replies at above-industry-average rates in live campaigns. Don't copy them word for word — use them as structural starting points and customize with your own research, voice, and offer.
Template 1: The Observation Opener
Subject: quick thought on your onboarding flow
Hey {{first_name}},
Noticed you're using a 3-step onboarding with account creation before the product tour. Most SaaS companies see 40%+ drop-off at that step — we tested skipping it and signups jumped.
We built a tool that handles this automatically, but honestly, you could A/B test the skip yourself in an afternoon.
Either way — worth a look?
Template 2: The Trigger Event
Subject: congrats on the raise — one thought
Hey {{first_name}},
Congrats on the Series A. That's the exact stage where most founders start thinking about outbound.
The typical playbook — hire 2 SDRs, buy Outreach, spend 6 months ramping — burns $150K before you book a single meeting from cold outbound.
There's a faster way. Happy to share what we're seeing work for post-raise teams if you're interested.
Template 3: The Competitor Insight
Subject: {{competitor}} just launched AI personalization
Hey {{first_name}},
Noticed {{competitor}} launched AI-generated cold emails last week. We tested their approach against ours with 5 mutual customers — ours generated 3x more replies because it actually reads the prospect's website instead of just filling {{first_name}} into a template.
Want me to send you the comparison?
Template 4: The Peer Proof
Subject: how {{similar_company}} books 12 demos/week
Hey {{first_name}},
{{similar_company}} was in the same spot 3 months ago — great product, zero outbound pipeline. They started using AI to research each prospect's website and personalize outreach automatically.
Result: 12 qualified demos/week from cold email. No SDR hires.
Happy to share how they set it up. 5 minutes?
Template 5: The Direct Ask
Subject: open to a better way to do outbound?
Hey {{first_name}},
Most cold email tools charge you $100+/seat and still make you write every email yourself.
We built something different — AI that reads each prospect's website and writes the email for you. $15/month per sender account. No per-seat pricing.
Worth 90 seconds to see if it fits your workflow?
A/B Testing Your Emails (The 3-Variable Rule)
Most people A/B test wrong. They change three things at once — subject line, opener, and CTA — then can't tell which change drove the result.
Test one variable at a time:
- Subject line first. It controls your open rate. Test 2-3 variants per campaign. Winner gets kept. Run each variant to at least 100 recipients before calling it.
- Opener second. Once you have a subject line that works, test different openers. The same subject line with a generic opener vs. a specific opener can swing reply rates by 2-3x.
- CTA third. "Worth a call?" vs. "Can I send you an example?" vs. "Open to learning more?" Same email body, just the CTA changes. The difference is often bigger than you'd expect.
How to know you have a winner: Wait for at least 50 replies per variant. A 5-reply difference on 300 sends could be noise. A 20-reply difference on 500 sends is probably real.
The Follow-Up Sequence That Doubles Reply Rates
60-70% of replies to cold email campaigns come from follow-ups, not the first email. If you're sending one email and waiting, you're leaving most of your replies on the table.
The 3-email sequence that works:
- Day 1: Initial email (the opener)
- Day 4: Follow-up 1 — add new context. Don't just say "bumping this." Reference a new trigger, share a relevant stat, or mention a new insight. Make it worth opening on its own.
- Day 8: Follow-up 2 — the break-up email. "I'm guessing the timing isn't right. If outbound becomes a priority, here's my contact." Short. Gracious. Final.
Three emails, one CTA each, spread across 8-10 days. After the break-up email, stop. More follow-ups hurt your sender reputation and won't generate meaningful replies.
Getting Started Today
You don't need to implement everything in this guide at once. Start here:
- Write 3 subject lines using the patterns above. Test them against each other.
- Research your next 20 prospects and write a specific first sentence for each one.
- Keep your body under 125 words.
- Pick one CTA per email.
- Set up a 3-email follow-up sequence.
XSendFlow's AI reads each prospect's website and generates personalized emails following these exact patterns — observation openers, body under 125 words, single CTA, and 3-email sequences. The free plan gives you 40 emails/day and 1 active campaign to test the approach with zero risk.
Stop writing emails that get ignored. Start writing emails that get replies.
Ready to send better cold emails?
Try XSendFlow free →