What I Learnt From Migrating 3 Transactional Email Services Quickly – What to Avoid.

Ah transactional emails… The only type of email that people actually read these days

I’m joking. People don’t read emails anymore

Joking again. People don’t read anymore

For the rest of you non-people reading this, here’s the story of why + how I migrated 3 transactional email services (ElasticEmail to SendGrid to Postmark) within a few hours and what you can learn from it.

Premise

Imagine a website with 100,000 visitors a month

That’s roughly

  • 3,300 people a day
  • 140 people per hour
  • 2-3 people per minute

That was my client’s website. And that’s just visitor count. We also had 300-400 new signups per day.

And, as it was an interactive course platform, there were hundreds or sometimes up to a thousand logged-in users.

I was helping him move from Teachable to Self-hosted WordPress.

So we were moving the number of students in stages to not disrupt their experience. And in the process, I found out that after a certain limit, the web host’s servers cannot handle the volume (or) the high frequency of emails.

If you have to receive a contact form notification email 5-10 times a day. That’s okay. But if you have to send a few emails every minute, you need a dedicated email server for such emails.

That’s where Transactional email services come in.

Teachable

Teachable is an easy platform for people who want to sell their online courses. It takes care of everything. It is great for people who want to escape the technical stuff.

But there are limitations as they do with most pre-built hosted platforms. Once a business crosses certain limits, it can be hard to grow on Teachable. It is not very flexible for online marketing or growth hacking.

Also, there’s no gamification or anything other custom ideas you might want to experiment with.

So for those reasons I was helping him migrate from Teachable to a WordPress-based stack. I’ll write more about my learnings from that experience later.

transactional emails

Transactional emails are sent to facilitate (or notify) events important to the user.

Examples are

  • password reset email
  • purchase confirmation, invoices
  • password change notification
  • signup confirmation
  • subscription state changes (start, canceled, renewed, etc.)

The other type is marketing emails.

Imagine not receiving the email that helps you change your password?

Or an email that has an OTP that helps you log in!

When you’re a paid subscriber, imagine not receiving the email that helps you reset your password.

I don’t know about you… I’d be frustrated when basic things don’t work as expected.

Elastic Email – My first setup

So I quickly lookup the top transactional email services and read a few reviews to quickly grasp this space.

I had to choose between Twilio SendGrid and Elastic Email.

And I decided to go with ElasticEmail.

Why?

  1. Their website seemed cleaner and simpler than SendGrid.
  2. Their marketing was on point. I’m someone from a software development background who switched to marketing. Just see that headline!
  3. And when I tried their service for free, the user experience was slick, elegant, and simple.

Trigger – Angry Customers

I woke up one morning to an email from a student who was locked out of the site because they forgot their password, and when they tried to reset it, they didn’t receive the password reset email.

These were paid monthly or yearly subscribers who were pretty angry as they were not able to use something they are paying for, naturally! I would be too.

So I go inside Elastic Email, and… after a little bit of time I find that there is a section where I could clearly see what emails have not been delivered.

The server had rejected them.

“Why wasn’t I notified?”

And the first thought that came up to my mind was – “Why wasn’t I notified about this?”

Because from a developer perspective, it would be so simple to write some code that would send me an email (esp. when my account is on fire, metaphorically speaking).

And when email delivery fails – I mean, that’s the whole point of me using your platform!

It was your only job… to send emails.

To send important emails, time-sensitive emails. NOT marketing emails.

Work Office GIF - Find & Share on GIPHY
semi-accurate representation of the team at elastic email when their service fails.

But they hadn’t sent me any email notifications.

It was just appalling.

So that’s the first point where they lost my trust.

I was thinking – “something doesn’t add up”. They can design a website/user-interface that’s so slick, but, when the core of their service fails, they’re not sending me an email notification?!

I contacted their customer support and the customer support was acting like this was normal – “Oh yeah. I’m sorry. Uh, we’ve got to get it checked out.”

I mean, you are not supposed to wait for me to get that checked out. It raised even more questions within my head.

So the customer support from Elastic Email came back. The gist of what they said was this:

The IP address that we’re using to send emails, the reputation for that has gone bad. It is not your fault, but as many accounts share the same IP, some other account was sending low-quality emails and now everyone sharing the IP is suffering.

I may have paraphrased their reply

And I would have expected them to add something like this:

“And… the abusive account was quickly kicked out and the rest of the accounts have been moved to a new IP with good reputation. We apologise for this, and would like to compensate you with free hot chocolate for life”, but NO…

That’s NOT what they said.

Im Serious Joe Biden GIF by The Democrats - Find & Share on GIPHY
three words that customer support should have added to avoid confusion.

Instead, they added that buying a dedicated IP address “may” resolve this.

So a bit of sales 101 to Elastic Email and you, the reader – the best time to upsell is NOT after you’ve broken your delivery promise.

Then, I go out on the internet and dig deeper about Elastic Email’s deliverability.

I find out a lot of bad reviews. People are furious on the internet about how bad their deliverability is.

And then I tell myself -“you do get what you pay for”. Elastic Email was one of the cheapest services out there.

So this time I think, okay let’s move to SendGrid.

SendGrid seemed like a big company with a 100 million dollar revenue. They were acquired by Twilio another massive company.

Migration to SendGrid

So I go in and to my surprise, they were just five DNS records I had to change. That’s it. We were using Cloudflare for DNS and quickly changed it.

On the WordPress side, we installed the WP Mail SMTP plugin, and just input the SendGrid configuration API key. That’s it.

A quick test with a forgot password email and a sample woo-commerce purchase was done. The emails came fast. I saw reports on SendGrid as it was happening.

So I was happy. It felt relatively more transparent at the time.

Peace didn’t last long

Again, I received reports of some people not receiving emails. And I’m like, okay, so why is this happening again?

So I contact SendGrid’s support.

Bombarded with our own customer support tickets on one side, and on the other side, emails escalated from our own team saying – “Hey, nobody’s getting emails. People are angry. They’re not able to get inside!”

Imagine somebody who just comes in and pays for your product and then they don’t get to use it. So this was a stressful situation.

My experience with SendGrid’s customer support was bad. I remember they didn’t even read my message fully and replied with scripts.

After a few exchanges, I get a similar response –

“I’m sorry, but your account uses shared IP addresses to send emails. So you don’t have control over the reputation of the IP. Please get a dedicated IP address to have better control of the reputation.”

Digging deeper into dedicated IP address for email

Feeling like that might be my only choice, I read more about dedicated IP addresses.

And I find contradictory information on their own documentation about dedicated IP addresses.

  1. They actually don’t recommend dedicated IP if we sent less than 100K emails per month. And we didn’t. We had about 300-400 new signups per day. So that’s about 12K emails per month. But the rest of the emails didn’t add up to 100K.
  2. Buying a dedicated IP address isn’t going to solve it. They had a full guide for IP warmup. Basically, you have to send in lower volumes at first and build reputation. Then you can slowly increase the volume.

Reading all this I think – “How is this so hard? Esp. sending something as simple as welcome emails and password reset emails.”

It’s not even marketing emails!

And our users are not going to wait for me to build IP reputation. Our domain had good reputation already due to our history of sending emails with best practices.

The only other solution was to set up everything ourselves on our servers and hire an email-deliverability expert to find the best strategy for warming up the IP.

Shouldn’t there be a better solution?

Killian Scott Starz GIF by Dublin Murders - Find & Share on GIPHY

Discovering Postmark

I was almost on the verge of just hiring an email deliverability expert. For the scale at which we were operating, the whole thing seemed unnecessary. But I felt like this was the last choice left!

But… while researching a bit more about dedicated IP addresses, I discovered Postmark. And what I read on their blog was a refreshing, logical take on the subject.

They were the first company to discourage buying a dedicated IP address, unless you really need it. In fact you couldn’t buy it directly.

You had to ‘make a request’, and there was a clear eligibility guideline – more than 300K emails per month minimum.

They had a delightful website. I fell in love the first time. But then I do fall in love with websites often too soon. I put them on a pedestal and sing ballads. So I stay careful.

But then, I signed up for the free trial and loved the entire experience. Even the way they explained the concepts and communicated the benefits was outstanding.

Everything I read and saw made me go – “This is what everyone should have been doing in the first place”

Final Switch

Again, I changed a few DNS records on my side. On the WordPress side, I switched from SendGrid to Postmark using the WP Mail SMTP‘s Other SMTP option.

And then the emails started flowing. And this was the best. There were no problems. Nobody complained about emails going to spam. Emails were quick as expected for transactional emails.

And also, the UI of Postmark was so far the best.

WILDBIT – THE COMPANY BEHIND IT

I was so in love with the design, writing and the product, I looked up the company that made it. As expected they weren’t your run-of-the-mill software company.

They gave so much importance to their brand and the messaging. They had a page dedicated to each role in their company with clear guidelines of what’s good and bad.

And as of now, Postmark has been acquired by ActiveCampaign. I really hope they maintain the standard and do not mess up the product (or the team).

TL;DR

If you’re looking for a transactional email service just go and try Postmark. Avoid Elastic Email or SendGrid.

I hope this article saves you from the same frustration I went through. Thank me later in the comments if this did help. It took me a long time to write this up.