Migrating from Mailchimp to EmailOctopus

I started the year off on a free Mailchimp plan. I’ve been a free user for ages
now and decided that I wanted to start taking my email marketing seriously.

This included knowingly growing my lists beyond what the free tier’s limits.

I didn’t have much of a problem with that, but the moment I started paying for
Mailchimp, nearly every month thereafter, I saw a rate hike.

Part of that was because I was kicking ass at list building, but the bigger
issue was that Mailchimp had redefined what I was actually paying for as part of
my “audience” and increased rates for “legacy” customers like myself.

I understand that maintaining unsubscribed addresses does incur some overhead
for the provider, but having to pay for people that I would never be emailing
again seems like a money grab.

Perhaps their point is to encourage better list building, that would result in
less bounces and unsubscribes. Perhaps it’s just a play to get rid of the lower
end customers by either turning them into higher paying customers, or having
them leave the platform.

I get it, free doesn’t pay the bills, and it takes a ton of $10 a month
customers to build an empire.

Regardless of what is going on over at Mailchimp, I’m fucking over it.

The latest rate hike came in the form of a change in pricing, and not even
because I had grown my list past another threshold.

Because I’ve seen 4 different rate hikes this calendar year, not even counting
going from free to paid, I have decided that I need to get a move on.

I explored quite a few different providers out there, and most of them have
higher pricing structures. Nothing really wrong with that, as long as they can
provide some sort of pricing stability.

With that, I auditing how I’m using email and realized that based on my usage,
most of these providers are simply offering too much.

My current email situation looks as such:

  • I email my blog subscribers via an RSS to email setup.
  • I add new Holiday API customers to an on boarding drip.
  • I send out product updates 2 to 3 times per month.
  • I send out transactional emails from multiple products I run.

Could I be doing more? Certainly. But I’m not, mainly because I don’t like to
spam people, so I try to keep things very simple.

Because I didn’t need a ton of functionality, I decided to start exploring less
feature rich products. Companies focusing on sending email easily, and not
necessarily trying to be some all-in-one marketing tool belt.

The name EmailOctopus had been on my radar for the last few years and initially
I felt like they were just capitalizing on the race to the bottom on price
given the current landscape of email pricing.

I’m always skeptical of services that are solely competing on pricing, because
given enough time, they will wise up and realize they need to actually make
money if they want to be in business long term.

This is something that fucked me recently with SparkPost, which I migrated
from Mandrill for
many moons ago.

They coaxed me over to their service with a free “forever” plan that recently
they decided to get rid of completely.

Fortunately SparkPost offered up a small discount, but based on their pricing
and my volume, I’m utilizing around 10% of what I’m paying for. Definitely good
to have a bit more than not enough, but when I’m barely utilizing anything like
that, I do have explore other options.

Back to EmailOctopus though, they offer a version of their service that allows
you to leverage your own AWS account’s SES and provide even lower costs than
their plans that use their own SES. This is especially true as your list grows,
which I do plan to continue to do more of.

Moving my lists at their current size from Mailchimp to EmailOctopus had cut my
costs by around 70% (not counting tax or SES usage which should be pretty
minimal considering my overall volume).

From a programmatic perspective, I have a small bit of code that subscribes
people to a list, in PHP, using the Mailchimp PHP library:

$mailchimp = new Mailchimp($key
$mailchimp->lists->subscribe(
    $list_id,
    ['email' => $_POST['email']],
    null, 'html', false

Which I changed to use some vanilla cURL to talk to EmailOctopus:

$curl = curl_init

curl_setopt_array($curl, [
    CURLOPT_URL => "https://emailoctopus.com/api/1.5/lists/${list_id}/contacts",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'api_key' => $key,
        'email_address' => $email,
        'status' => 'SUBSCRIBED',
    ],


curl_exec($curl
curl_close($curl

A bit more code, but a trivial change overall.

EmailOctopus definitely lacks in regard to having official software libraries,
but that really shouldn’t stop anybody from making the switch.

Honestly wish I had the time to invest in putting together a couple of solid
wrappers, but I’m busy writing my own for my projects. The stuff I did find out
there just didn’t do it for me.

That all said, I’ve been happy with the switch and am still in the middle of
what I am going to do with my blog’s newsletter. Unfortunately, EmailOctopus
doesn’t offer any sort of RSS to email option.

This is one of my favorite features, so there’s a good chance I may leave that
list over on Mailchimp. That is, once they let me downgrade my account.

Thing is, I did a send a week or so ago, and I’m unable to delete the larger
audience that’s pushed my account into the paid tier.

Good chance this post won’t be going out on Monday as per usual due to my
Mailchimp account being locked up because I removed my credit card on file.

Sadly, I’m somewhat skeptical that I’ll even be able to delete the audience
without Mailchimp insisting that the folks I deleted as still technically part
of my audience.

If that’s the case, I may roll my own RSS to email service similar to how I
rolled my own version of MeetEdgar last year. Doesn’t need to do much, check for
a change to the RSS feed on a schedule and trigger a send to a list on
EmailOctopus with the provided content.

It’s not ideal, but sometimes you just gotta do it yourself.

Obviously I’m pretty early into things with EmailOctopus. I did have a pretty
early snafu where I had signed up for the hosted version instead of the version
that uses my own AWS account.

There was no way to toggle my account, and I had to delete my account and start
over again.

Honestly, they very well could have lost me as a customer over that, so still a
bit of a shocker that starting over was the only option presented.

All good though, for whatever reason didn’t piss me off too bad.

Their reporting is sufficient enough, drips are easy to configure, they have an
email editor. The UI could use some polish, but I’m happy to not have
notifications about marketing features for e-commerce sites and other upsell
opportunities being shoved down my throat all day.

Now that I’m using AWS for my marketing email sending, there’s not much holding
me back from moving from SparkPost to using SES for my transactional emails as
well.

Thinking of giving EmailOctopus a shot? If you sign up with my referral
link
we’ll both get $15 in credit!

Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.