How to Cross-Sell Complementary Courses via Email in 8 Simple Steps

By StefanSeptember 5, 2025
Back to all posts

I’ve learned the hard way that cross-selling can go sideways fast. If your email reads like a pitch, people tune out (or worse—unsubscribe). But if you recommend the next course the way a good teacher would—helpful, timely, and clearly connected to what they just finished—students don’t feel “sold.” They feel guided.

In this post, I’ll walk you through an 8-step approach I use to cross-sell complementary courses via email without sounding pushy. You’ll also get copy-and-paste subject lines and email examples you can adapt right away.

So yeah—this isn’t about blasting everyone the same offer. It’s about sending the right recommendation at the right moment, with clear reasons to click.

Key Takeaways

Key Takeaways

  • Send at the right moment: trigger cross-sell emails within 0–2 hours of enrollment or completion, or 1 day after someone watches a key lesson. Use one primary CTA (e.g., “Add this course” or “Level up”). Include a thumbnail image + 2–3 sentence summary.
  • Segment like a human: split by skill level (beginner/intermediate/advanced), course interest, and behavior (enrolled vs. viewed vs. completed). If someone’s viewed the advanced track 3+ times but didn’t enroll, treat them differently than a brand-new beginner.
  • Make value obvious: rewrite course titles into outcomes. Instead of “Advanced SEO,” use “Get pages that rank and turn clicks into leads.” Back it up with a real quote, star rating, or mini case story.
  • Use timing that matches inbox habits: test late afternoon/early evening on weekdays first. If your audience is global, don’t rely on a single send time—run A/B tests for at least 2–3 time slots.
  • Build with a drip, not a one-off: a 5-email sequence works well: congratulation → “why this helps” → social proof → quick win/mini lesson → limited-time nudge (optional).
  • Offer discounts carefully: bundles usually convert better than random coupons. Try 20% off for “buy the next level” bundles, and cap it (e.g., ends in 48 hours). Personalize only when you have enough data.
  • Personalize the recommendation block: swap course suggestions dynamically based on what they viewed/enrolled/completed. Ask for goals only if you can act on it (otherwise you’ll get “interesting” answers nobody uses).
  • Include proof that reduces doubt: use short testimonials, screenshots, or “student achieved X” snippets. Keep it relevant—one proof point per email is enough.
  • Track the right KPIs: don’t just watch open rates. Look at CTR on the recommendation card, conversion rate after click, and revenue per send. Test subject lines and CTA wording first.
  • Avoid the common mistakes: don’t recommend unrelated courses, don’t send 5 promos in a week to the same person, and don’t hide the price/discount terms.

Ready to Create Your Course?

Try our AI-powered course creator and design engaging courses effortlessly!

Start Your Course Today

Cross-Sell Complementary Courses Via Email (Without the “Salesy” Vibe)

Let’s start with the simplest rule: recommend courses that genuinely build on what they just did. If the student enrolled in a beginner course, your “next step” should be the logical follow-up—not a random bestseller.

Here’s the flow I use:

  • Pick 1–2 complementary courses per primary course. If you can’t explain the connection in one sentence, don’t send it.
  • Trigger the email based on behavior. Enrolled? Send a “start here / next step” message. Completed? Send an “upgrade path” message.
  • Use one clear CTA. Not three buttons. One button wins.
  • Add a thumbnail + mini summary. People skim. Give them the “why” in 2–3 lines.
  • Test subject lines that sound like a person wrote them. For example:
    • “Next step for your {course name} progress”
    • “Want to go deeper? Here’s the upgrade”
    • “Level up: {skill} in 2 weeks (with this course)”

Quick decision rules (these matter):

  • Recommend within the same learning path (beginner → intermediate → advanced, or topic A → topic A+application).
  • Exclude anyone who already enrolled in the suggested course (no duplicates).
  • Cap frequency: don’t send more than 1 cross-sell email per 7 days to the same student unless they clicked.

Example email template (beginner → advanced)

Subject: Next step for your {Beginner Course}

Body:

Hi {FirstName},

Nice work getting through {Beginner Course} 👏

If you want to keep momentum, the next course we recommend is {Advanced Course}. It’s built for people who already understand the basics and want to level up with more practical, real-world lessons.

What you’ll be able to do after:

  • {Outcome #1 in plain language}
  • {Outcome #2 in plain language}

Here’s the course:

Ready to level up?
Add this course to your learning path

— {YourName}

That’s it. Helpful, connected, and easy to act on.

Segment Your Audience for Tailored Recommendations

If you send the same cross-sell email to everyone, you’ll eventually get the “why am I seeing this?” feeling. Segmentation fixes that.

When I set this up for a multi-course platform (I’ll describe the setup below), the biggest improvement didn’t come from fancier copy—it came from sending different recommendations to different behavior groups.

My go-to segmentation categories:

  • Beginners: enrolled but not completed (or completed < 30%).
  • On-track completers: completed 30–90%.
  • Completions: finished the course (100%).
  • Viewed-but-not-enrolled: viewed a course page 2–3 times but never enrolled.
  • Active learners: enrolled in 2+ courses in the last 30 days.

Simple segmentation logic you can implement:

  • If user status is Completed Beginner Course → recommend Intermediate Course.
  • If user status is Viewed Intermediate Course 3+ times → send “what you’ll learn” + a small social proof snippet.
  • If user status is Enrolled Beginner Course → recommend a companion course that supports the current lesson (not an upgrade yet).

Example email (viewed-but-not-enrolled)

Subject: Still interested in {CourseName}?

Body:

Hey {FirstName},

I noticed you checked out {CourseName}—but it looks like you didn’t enroll yet.

Here’s the part that usually makes people feel confident: this course teaches {specific outcome} with {specific approach}, so you’re not stuck guessing.

Quick snapshot:

  • {Lesson benefit #1}
  • {Lesson benefit #2}

Enroll in {CourseName}

If you want, reply with what you’re working on and I’ll point you to the best lesson path.

— {YourName}

Notice what I didn’t do: I didn’t guilt-trip. I didn’t spam. I gave a reason to click and made it feel like a helpful reminder.

Craft a Compelling Value Proposition

This is where most cross-sell emails fall apart. They list features or repeat the course title like that’s enough.

Students don’t buy “Advanced SEO tactics.” They buy outcomes. So I write my value prop like this:

  • Outcome first: “Get X result”
  • Proof second: “Students like you achieved Y”
  • Mechanism third: “Here’s how the course helps”

Value proposition examples (swap these into your emails):

  • Instead of: “Advanced SEO tactics”
    Use: “Learn SEO strategies that help your pages rank and bring in qualified traffic.”
  • Instead of: “Email marketing course”
    Use: “Write emails that get replies—plus templates you can reuse for every launch.”
  • Instead of: “Machine learning”
    Use: “Build a real model workflow end-to-end (data → training → evaluation) without getting lost in theory.”

What I tested that worked: In one campaign (edtech, ~12k names on the list, 3 course tracks), I swapped the recommendation CTA from “View course” to “Add this course to your learning path.” I also changed the first sentence to reference what they just completed.

Result: CTR on the recommendation block improved, and more importantly, conversions from click increased. Opens didn’t explode—but clicks did. Moral of the story: relevance beats hype.

Use Timing Strategies to Maximize Engagement

Timing matters, but only if your content is already relevant. I don’t believe in “send at 8 PM” as a universal law. I do believe in testing.

That said, I’ve seen patterns where late afternoon/early evening tends to perform well for education audiences—people check email after work or between tasks. One published benchmark I’ve used as a starting point is from Mailchimp’s marketing benchmarks (they regularly publish day/time performance ranges): https://mailchimp.com/resources/email-marketing-benchmarks/.

My practical timing playbook:

  • Trigger-based messages: send immediately after completion events (or within 2 hours).
  • Drip follow-ups: schedule 24–48 hours apart, usually on weekdays.
  • Test 2–3 send times: e.g., 4:30 PM, 7:30 PM, and mid-morning. Run A/B for at least 2 weeks.
  • Don’t stack sends: if a student already got a “new lesson” notification, wait at least 12 hours before your cross-sell email.

Implement Drip Campaigns to Gradually Build Interest

One email rarely does the job. A drip does—because it gives people multiple chances to understand the “why” without feeling pressured.

Here’s a drip schedule I recommend (5 emails total):

  • Day 0 (same day as completion): Congratulate + recommend the next logical course.
    CTA: “Add this course”
  • Day 2: Explain what changes after the next step (outcomes + what they’ll practice).
    CTA: “See what you’ll learn”
  • Day 4: Social proof email (testimonial + short result statement).
    CTA: “Enroll now”
  • Day 7: Mini lesson / “quick win” (2–3 bullet points or a short resource).
    CTA: “Get the full course”
  • Day 10 (optional): Limited-time bundle/discount nudge (only if they clicked earlier or are in the viewed-but-not-enrolled segment).
    CTA: “Use the 20% bundle”

Example email (milestone congratulation)

Subject: You hit the milestone in {Beginner Course} 🎉 Next step inside

Body:

Hi {FirstName},

Big win: you completed {Milestone} in {CourseName}.

Now that you’ve got the basics down, the course we recommend next is {NextCourse}—it focuses on {specific skill} and gives you practice with {specific task}.

Why it’s a good match:

  • You’ll build on what you already learned
  • You’ll tackle the next challenge step-by-step
  • You’ll leave with a clear outcome, not just theory

Level up with {NextCourse}

— {YourName}

Key point: the congratulation isn’t fluff. It’s the bridge into the recommendation.

Offer Bundles and Discounts to Sweeten the Deal

Discounts work, but they work best when they feel like a “smart next step,” not a desperate coupon.

What I’d do if you’re starting from scratch:

  • Create bundles that match a learning path (Beginner + Intermediate, or Skill A + Skill A Application).
  • Use a clear savings statement: “Save $24 when you buy these together.” People understand dollars.
  • Cap the discount: 48 hours is usually enough to create urgency without feeling scammy.

Offer wording you can steal:

  • “Bundle deal: Save 20% when you upgrade to {IntermediateCourse} after {BeginnerCourse}.”
  • “Want the fastest path? Get both courses for ${bundlePrice} (ends tonight).”
  • “If you clicked earlier and still haven’t enrolled, here’s your nudge: bundle pricing is active for the next 48 hours.”

Do/don’t rules:

  • Do show the discount only to segments who are likely to convert (clicked, viewed, or completed).
  • Don’t send a discount to every beginner on day 0. Some people don’t need it.

Leverage Personalization and Dynamic Content

Personalization isn’t “Hi Sarah!” and a random course image. Real personalization is: the recommendation fits their behavior.

I like to personalize in three levels:

  • Level 1 (easy): first name + course name they completed.
  • Level 2 (better): recommended course based on their path (beginner vs. advanced).
  • Level 3 (best): dynamic content based on viewed topics, lesson completion, and intent signals.

If you want a benchmark on data-sharing willingness, a commonly cited source is from Accenture on personalization and consumer willingness to share data for better experiences: https://www.accenture.com/us-en/insights/technology/personalization-consumer-expectations. (Use it as a directional reference, not a guarantee.)

Example dynamic recommendation block:

  • If they viewed {CourseA} → show {CourseB} (the “next step”)
  • If they completed {CourseA} → show {CourseC} (the “upgrade”)
  • If they’re idle for 14 days → show a “quick win” companion course instead of an advanced upgrade

That’s how you keep it relevant without turning every email into a guessing game.

Showcase Social Proof and Success Stories

Social proof is the fastest way to calm skepticism. But it has to be specific.

Generic “students love this course!” doesn’t do much. I prefer short, concrete proof like:

  • “I went from {before} to {after} in 3 weeks.”
  • “The templates saved me hours every week.”
  • “I finally understood {concept} after this module.”

Simple proof placements that work:

  • Under the course summary (one testimonial snippet)
  • In the middle of the email (after the value proposition)
  • As a “quote card” with a star rating

Example snippet:

“I completed {Beginner Course} and the next course made everything click. The practice assignments are what finally helped me apply the skills.” — {StudentName}, {Role}

Keep it short. You’re building confidence, not writing a novel.

Track Performance and Adjust Your Approach

Here’s what I track (and what I ignore):

  • Track: CTR on the recommendation block, conversion rate after click, and revenue per send.
  • Also track: unsubscribe rate and spam complaint rate (yes, even if conversions look good).
  • Don’t obsess over only opens: opens can be misleading if people use image loading settings or inbox previews.

A/B tests I’d run first:

  • Subject line: “Next step for your progress” vs. “Want to go deeper?”
  • CTA button text: “Add this course” vs. “See what you’ll learn”
  • Course order: show the upgrade first vs. show the companion course first

Decision rule: If CTR improves by 10%+ but conversions don’t, your landing page or course page may need work. If conversions improve but CTR drops, your creative/offer needs tweaking.

Avoid Common Pitfalls in Cross-Selling

Cross-selling is easy to mess up. Here are the mistakes I’ve seen (and made):

  • Irrelevant recommendations: if it doesn’t build on their journey, it feels like spam.
  • Too many CTAs: one CTA per email is the sweet spot for most course offers.
  • Over-emailing: if you send a cross-sell every day, you’ll train your audience to ignore you.
  • Hiding the terms: if it’s “limited time,” say when it ends and what the bundle includes.
  • Forgetting exclusions: don’t recommend courses they already bought or already enrolled in.
  • Using discount-first messaging: if every email is “20% off,” people stop trusting your value.

Do the boring fundamentals well—relevance, timing, and proof—and the sales part usually takes care of itself.

FAQs


Segment your audience, match recommendations to the learning path, and send emails right after meaningful events (enrollments, milestone completions, or key lesson views). Keep it simple: one primary CTA, a short summary, and proof that makes the next step feel safe.


Use dynamic content based on behavior—what they enrolled in, what they completed, and what they’ve viewed. At minimum, personalize the course recommendation and the first line to reference the exact course they just interacted with.


Send triggered messages quickly after a student completes something or shows strong intent (like viewing a course page multiple times). For non-triggered drips, test weekday late afternoon vs. early evening—then stick with the times that drive clicks for your list.


Track CTR on the recommendation area, conversion rate after click, and revenue per send. Also watch unsubscribe rates—if those rise, your segmentation or frequency needs adjusting.

Ready to Create Your Course?

Try our AI-powered course creator and design engaging courses effortlessly!

Start Your Course Today

Related Articles