Launching a SaaS email program from scratch

At Code School, we experimented with a lot of tactics to grow traffic and increase subscribers. As a bootstrapped company we had to get creative about how we approached growth. Now looking back at the success we had, one of the biggest takeaways for me, from a marketing standpoint, is how valuable email was.

I spent around 50% of my time in my first year at the startup developing our email program from the inside out. This included revamping our transactional emails, launching upsell and onboarding campaigns, and maintaining a weekly promotional email schedule and newsletters. All in all, we sent over 30 million emails over the course of the year that first year.

A conservative calculation put our email ROI at 20-30x – and that’s just last-click conversions. Using multi-channel attribution would likely double that ROI number.

Below are some of the things I learned along the way.

Know your goals #

Email marketing, like all other marketing channels, is metric driven – and rightfully so. People hone in on a couple of key metrics to determine the success or failure of a campaign.

I think this is the wrong approach. Each email is unique, and each email should be judged differently based on its purpose. The metrics that you use to determine the success of a campaign can vary drastically between each send, depending on its purpose, and only you can know what that purpose is, but it should be decided on prior to sending each campaign.

For instance, at Code School, our promotional email campaigns are measured by signups or subscriptions because converting free users to paid users was the goal.

Our newsletters are measured by the total number of clicks and opens because the goal is to introduce our users with the new content that we published each month.

Our course launch emails are measured by opens because our goal is to inform users about the topics covered in the newly launched course. Email was a part of the broader launch, not its own launch This approach benefits our users because it often saves them a click to our site. We would then set time check-ins on course data to see how successful each launch was 7, 14 and 30 days post-launch.

Each type of email is created with the main goal in mind. For emails with a conversion goal, we tended to make a more sales-oriented copy and push hard for a click to the signup page by using scarcity and a sense of urgency.

We also tried to address any possible questions that could come up about the promotion that would discourage someone from finding out more.

Our newsletters maintain a similar style each month and read like a digest. We structure the content so that our most important announcements (course releases) are at the top and work downward to our less important announcements like new blog posts.

The course launch emails are structured in a way that introduces the reader first to the course, then to why they would want to learn this topic, and then it goes into each level. This detailed information gives readers all of the information that they need to decide whether they’d like to play (and pay for) that particular course.

For course launch/announcement emails, we also spent a lot of time optimizing the open rate. This includes using A/B testing on send times, from names, and subject lines.

Do not take this as law, but this is what worked for us for each component:

●  Send time - Between 9 am and 10 am EST on Tuesday, Wednesday or Thursday has produced the highest click and open rates.

●  From names - [First name] at [company name] has performed best, i.e. “Corey at Code School.”

●  Subject lines - This varies a lot from send to send. For newsletters, we keep the same structure (December at Code School). For other emails, 4–6-word subject lines that mention some sort of timing (i.e. today, tomorrow, now) were best on an aggregate basis. Our top performer was: “How to Choose a JavaScript Framework.”

Not all emails have the same goal. Know your goals and optimize accordingly.

Automated emails = WIN #

Automated emails are a great way to scalably communicate to new customers as they join your email list. This can sometimes seem like a big, complicated project, but I’ve found the best way to approach automation is to start small and slowly add on additional emails, variations, and segmentation as you begin to see what is working.

Two campaigns everyone should be running are:

●  Upsell Flow – If you have a free opt-in product like an eBook, whitepaper, or free trial (we had free courses at Code School for this), use at least four emails to introduce new subscribers to the benefits and features of your paid product or service. Show them why they should give you their money. Ending the flow with a special offer works well. This campaign increased our free-to-paid-conversion rate by 50%.

●  Onboarding – After someone has started paying for your product, your goal immediately transitions to keeping them around for as long as possible. I recommend sending at least 3 emails that give your new customers useful information about your product.

Ideas for these emails are FAQs, key features, and upsells or cross-sells. Your support forum is a great place to find information to share in these emails. We used the last email in this flow to cross-sell users into other products or upsell them into annual plans if they were currently paying monthly. This campaign has increased our average lifetime value (LTV) by 20%.

You’re not sending enough #

This concept was the biggest hurdle for us to get over. We spent a lot of time and effort developing trust with our subscribers and didn’t want email overload to hurt that trust.

The biggest breakthrough for us was when we started hearing from users that they were looking forward to the emails. For most users it became a way to stay in the know about course releases and promotions.

We moved from sending one email per month (newsletter) to sending at least one per week. This didn’t include transactional emails, which were event-driven.

The new weekly emails highlighted new features, courses releases, and promotions. Sometimes the content would even be about older features that weren’t widely used.

These additional emails resulted in a ~30% jump in overall email conversions. Even if a few users complain about the number of emails, I would recommend sticking with it.

You’ll know if it becomes a bigger issue and you can introduce more nuanced email preference options. As long as you keep the content fresh and written with the user in mind, you’ll be A-OK.

Write for humans #

Copy is one of the biggest issues that I see in most email campaigns. Marketers get so laser-focused on conversions that they don’t have empathy towards the end user.

Do not write for the “average user.” If you try to write for everyone, you’ll end up writing for no one. Write your email copy with a specific user in mind just like you’d write a personal email.

Nobody likes to be talked to like a robot. The best way that I’ve found to think about the copywriting process is to picture the user reading the email asking, “What is this and why should I care?” Taking this approach makes it easy to develop each email’s structure and content.

The email should then end with a strong call to action. The CTA template that has worked well for me is using the “I want to ______” method. Just use whatever you would fill in the blank with as your CTA.

For example, the bold words would be your CTA:

I want to Subscribe to Code School

I want to Read the Blog Post

I want to View more information

I want to Request a custom quote

Design matters #

Even though we had some email designs that made “Best of email design” lists, I’m not talking about design in the “ooooh that’s so pretty” sense. What matters is a clear visual hierarchy that gives a reader the opportunity to scan and then read deeper or click if needed.

Steve Krug’s book Don’t Make Me Think is the best book I’ve read on web usability, and its principles are easily translatable to email. If you haven’t read it, order it now.

Really, what it comes down to is the fact that people are in a rush. They’re going to scan your email and look for a CTA if the offer interests them.

A couple of rules of thumb that I like to follow:

  • Cut your first draft of copy in half, and probably in half again after that.
  • Clearly, differentiate your CTA button or link from the rest of the email design.
  • Make headlines (h1) significantly bigger than your body copy

At Code School, we were fortunate enough to have some amazing designers working on illustrations for our emails. However, if you don’t have the time or resources to have a highly stylized HTML design for each email, use a “regular ole’ email” style. Sticker Mule has success with this style.


Mailchimp’s email beamer is a great tool for this.

We had a transactional email like this that comes from Gregg, our founder, and it is one of our best-performing emails. It was a personal note that warmly welcomes new users and let them know that there are real humans behind the product they are using.

Know your ‘I LOVE THIS THING’ moment #

Now, transactional emails are a whole other post, but one email every company should be sending an email with a direct ask following their ‘I Love This THING’ moment.

You’ll have to determine what this moment is for you, but for us at Code School, it was immediately following course completion. After a user finds out what makes us special, it is a perfect time to recommend their next course and tell them the benefits they’ll receive by becoming a paid subscriber.

Too many companies ask for this too early. IRL, you rarely ask someone for a favor right after you meet them. The email asks should be no different. Let them get to know how awesome your product is, and then invite them for more.

Email is a great tool for increasing engagement and revenue and is well worth the investment.