How I Fell in Love with Klaviyo


Our site, My Community Made had been integrated with the CRM Mailchimp for a little over a year. Mailchimp is one of the most popular CRM's on the market, likely due to it being one of the first cloud CRM's on the market oriented towards small business use.

As a marketplace, what we relied on our CRM for most, was the email automation functionality. Specifically, add-to-cart reminders and product recommendation emails that would keep our brand in customers' minds on an ongoing basis throughout the month. In addition to these automated emails, we also ran periodic single email blast campaigns as well.

We knew that Mailchimp wasn't the most affordable email marketing platform, but we did assume that the platform's popularity would result in some impressive integrations and automation capabilities.

From the very beginning, the integration functionality left something to be desired, as the software only had a barebones integration with WordPress, that allowed users to be added as subscribers to the email list by adding their email to the "subscribe to our newsletter" field in the footer of the website, or by selecting that they would like to be subscribed to the email during checkout. For a multi-vendor marketplace, it's important to be able to identify whether an email subscriber is a vendor or a customer, but the Mailchimp integration assumes all email subscribers are the same.

To receive this "Add to Cart" automation, we were required to purchase the Mailchimp Essentials tier subscription, which for an email list of our size at the time was around $160/month.

After upgrading to this Essentials tier, it became clear to us just how underbaked the MailChimp platform is.

For example, vendors on My Community Made can purchase subscriptions, ranging from free to $5/month depending on the number of products that the vendor is looking to sell. We wanted to turn off the "Abandoned Cart Reminders" for these users since we didn't want to apply pressure on users who were still deciding which type of subscription they would like to purchase. Additionally, our Add to Cart marketing copy was based on the presumption that the user had added a handmade product to their cart, and the language didn't suit the digital nature of the subscription products.

However, instead of storing normal WooCommerce Product Data (Product Type, Product Parent, Product Author), the WooCommerce integration only collects barebones data (product image, product title, product price, product description). This means, that for all abandoned cart emails, I needed to use their broken interface to select each subscription product that we offer (this includes the three different payment periods available for the $5/month plan, meaning in total four products). This mess would be easily avoidable if the author field was also ingested by the Mailchimp integration. It's important to note as well, that for the entire time we were subscribed to Mailchimp, the input fields for the product names were broken. The input field for product titles uses an auto-complete feature with a timer delay. This means if you are looking to add a filter to prevent "Basic Package Yearly" from triggering 'Add to Cart' reminders, you must start typing the word Basic, then click the yearly option without pausing, otherwise the "Basic Package Monthly" option will be chosen automatically due to M appearing earlier in the alphabet than Y.

This system is probably harmless for most stores, but our site has over 5k products, and using a text field with autocomplete for product names is not an efficient way to go about creating filters.

To some, this might come across as nitpicking, and it kind of is, even Klaviyo is not perfect in the fields that it ingests through its WooCommerce integration. However, the Klaviyo API is so easy to use that in any cases where the integration leaves something to be desired, it is fairly easy to write up a custom plugin that can take over that desired behavior.

The Final Straw

We continued paying more than $160/month for Mailchimp for well over a year.

We were surprised that the abandoned cart reminders had not led to any purchases and were even more surprised that not a single dollar had ever been converted from the product recommendation emails. Mailchimp claims they use machine learning to develop customer profiles and match them with relevant product recommendations, however, for whatever reason out of the 4k+ products sold on My Community Made at the time, MailChimp failed to find a single match.

Late in 2023, I received an abandoned cart email from Mailchimp, however, this email had blank images instead of product images. After logging in and checking the platform myself, I noticed that all products imported by the WooCommerce integration that month also had blank product images.

The cause of the issue seemed pretty obvious. We recently converted all of the product images on our site to the WebP image format.

For anyone who doesn't know, WebP is the new defacto standard image format introduced by Google in 2010. WebP boasts an impressive 26% reduction in image size compared to other image formats. With more than 4k products on our site, WebP was a must.

It was pretty clear that Mailchimp was having trouble ingesting the new WebP image formats from our site. So we contacted support to see if they could let us know what settings needed to be changed to resolve the import issue of the products.

However, it turned out that Mailchimp simply does not support WebP at all, and had no plans to introduce support anytime soon.

The Move to Klaviyo

I had seen advertisements for Klaviyo in the past but had never worked with them directly due to my assumption that the cost would be higher than what we were currently paying.

Surprisingly, the monthly cost of Klaviyo for the same features and email list size was only $116/month. Post-migration, we are now saving $44/month and we have WebP image support!

I then received a phone call within about thirty minutes of creating my account. An account executive from Klaviyo was calling me to schedule a meeting to answer any questions I had about the platform, and they were able to meet as early as the next day to review those questions.

At the meeting, I brought up questions regarding segmentation and creating advanced flows that could take our multi-vendor nature into account, and I asked about how flexible the Klaviyo API was for making custom behaviors from our site to the CRM.

I received all of my answers the next day and started getting to work on finishing up the migration.

First Impressions

The very first day we set up an abandoned cart flow we received a conversion driven by that email flow. This motivated us to implement the welcome, product abandonment and customer thank you flows as well.

These flows are easy to edit, and we can easily remove the subscription products from interacting with the flow by adding a simple if/else point in the email flow.

In addition to marking data on conversions, the Klaviyo platform also tracks many other metrics as well. For example, if a user receives an email letting them know that a product they viewed but did not order is still available, and that user does not buy the product but instead adds the product to their cart. That data is still stored as an 'add to cart' conversion. This is useful data, that typically would be lost in Mailchimp.

Later on, I would be even more impressed, when I realized that the conversions that I defined in my custom APIs were also tracked as conversion metrics by Klaviyo for these flows as well. For example, I can sort which email automation leads to the most products added to the wishlist.

Creating Custom Klaviyo Integrations

Perhaps the most important feature of any modern data platform is how easily pre-built and custom systems can integrate with that service.

While the basic integration covers most conversions that you would expect (Add to Cart, Abandoned Checkout) as well as some that you wouldn't expect (Viewed Product), there are likely a few features that you would like to track outside of these basic conversions.

Because of this, CRMs must have an intuitive API or a flexible integration that allows you to create these custom events. For example, on our site My Community Made, customers can add a product to their wishlist. It makes sense that we would want to be able to track that activity in a similar way to how the basic Klaviyo integration tracks 'Add to Cart' behavior.

To do this, we created a simple plugin that hooks into the action triggered by the Wishlist software we use on the site. We then build a simple HTTP request to Klaviyo as seen below.

We then submit our private API key from Klaviyo into the plugins setting panel, and now every time a user adds a product to their wishlist, we can use that same info to inform our flows and segmentation definitions.

This ability to easily customize the behavior of our email platform through the use of the Klaviyo API is a game-changer. It allows us to build complex email flows and gather better data on how users respond to the emails we send.

Should You Use Klaviyo?

If you run an e-commerce store, then yes, you should be using Klaviyo.

However, if you sell services I recommend using HubSpot instead. While Klaviyo makes it easy to write custom behaviors, it does not provide an intuitive method for handling incoming messages from multiple platforms in the same way that HubSpot does.