In December of last year we released a project that we’d been working on for a long time. It’s since saved us countless hours, reduced errors, improved accuracy, and opened the doors for some really unique future opportunities. The project was a complete overhaul of how we perform one of our most critical business processes, one that is one of our largest revenue drivers. Yet none of our customers have noticed. And that’s the way we wanted it. That meant it was a success.
From the title, you’ve probably already figured out that I’m talking about a custom built newsletter system. For years we had used phpList, a powerful open source email manager. Overall it did a great job. There are some downsides to running your own email server, but we put the work in to configure both our server and IP addresses for sending large amounts of email (there’s a good post on the 37Signals blog that outlines some of the best practices for running your own mail servers).
There were some disadvantages to phpList though. The process of sending a newsletter was very manual. It involved a lot of exporting from our database and importing into their system. Unsubscribes and bounces didn’t sync with our database so we had manual processes for updating those. We weren’t using it to send our Daily Special newsletter, which is almost as large as our regular newsletter list. And as with any third party software, it needs to be updated regularly to fix bugs and prevent vulnerabilities.
We finally decided it was worth bringing it in house. In doing so, we wanted to build our dream system that made every part of sending emails better. I thought it was going to be a monster project, but it turned out to only take about a month from start to finish. One of those rare projects where everything sort of worked on the first try, and even a year later we haven’t had any issues at all (knock on wood).
Here’s a list of features:
- A newsletter can be created in a matter of minutes: pick a list, enter a subject, enter some HTML content, preview it, send a test to yourself, and then schedule it (or save it as a draft for later).
- A web version is automatically created and linked to from within the newsletter.
- Links are auto-tagged for Google Analytics.
- Real-time stats. Leave the browser window open and see a completion % bar as well as opens, clicks, and unsubscribes.
- Pause a newsletter during sending. This is helpful if we notice an error while the newsletter is going out. It can then be edited and restarted.
- Email throttling based upon variables we set (i.e. send no more than 100 emails per minute).
- Creating a new template is simple. There are support for “widgets” that one might want to add to a newsletter, such as the latest Ask a Pro Blog articles.
- Lists are pulled live from our database.
- Adding a new list is as simple as writing a MySQL query for the users you want on the list.
- One-click unsubscribe links are automatically placed in each template, and if someone clicks the link the database is updated instantly.
- Automated bounce management. If someone’s email bounces X number of times, we automatically unsubscribe them from our list.
Mike can literally now send better newsletters in a fraction of the time with a fraction of the stress. To this point, it has been a big accomplishment to seamlessly transition our rather large lists over to this system.
Now that it works though, it opens up doors for all sorts of opportunities. With our newsletter system so tightly integrated with our shopping cart, we can tie data together that other companies can’t.
For instance, we could send a special offer to any customer from New York who has placed 2 or more orders with us, hasn’t placed an order in the past year, but has opened more than 50% of the newsletters we’ve sent to them. That’s just the first thing that popped in to my mind. Really any combination of content, tips, or offers could be paired with any combination of user behaviors or traits.
We’ve done some segmented newsletters in the past, but nothing like this. If done well, this has the potential to increase revenue per order, orders per customer, and overall customer satisfaction.