Amazon has one of the most powerful recommendation systems on the web, and yet it probably has some of the worst targeted mail. Indeed, it’s so bad that, for the past 3 months, I have been subject to weekly doses of baby products. I looked at one joke toy! One. It wasn’t even in the baby section!
Photo by P_A_H via Flickr
So, here are some of my favourite tips when dealing with mail lists segmentation you may not have thought about:
Recently purchased list
“Amazing savings on TVs get a 42” for just £399”
Such an awesome offer, but I just bought a TV, which is why I’m on this list!
Sods law says an amazing sale will always happen after you purchase, but one of the most prolific reasons for unsubscribes with new users (and to a lesser extent existing companies) is badly timed emails. Keeping track of people who have recently purchased, and making sure they are not sent “sales emails” except for specific up-sells, will help your readers avoid seeing you as insensitive money grabbers. It will reduce your costs, and increase conversion rates, by reducing one of the groups least likely to purchase. Conversely, having a recently purchased list also means you can use this list to flog direct product up-sells. “Need help setting up that TV?”
Segment by purchase
You know who has purchased what, so make sure your email list knows too!
Segmenting by purchase has 2 very important uses: 1) You won’t try to sell someone something they already own 2) You can sell them something they are going to need or might not own. Segmenting by pages they visited when logged in may seem like an exceptionally cunning plan ala Amazon, especially for more niche sites, where it does work…
“Today only: One day sale on Your Secure Stream “
But, if you are selling lots of products, chances are the user is just browsing. By segmenting by purchases, at the very least, you can compare that to their behavioural history, before suggesting rattles.
I have a great tip for those looking to show a marked increase in conversion: don’t send emails to people who won’t purchase. Simples!
Virtually all good mail campaign providers will provide statistics and allow you to segment based on who clicked what, who opened what, etc. If a user rarely opens emails, don’t send him daily deals, as the next one they open will most likely lead to an unsubscribe.
Instead, target him only on major campaign pushes. Likewise, the person who opens regularly, but rarely clicks is a window shopper. Entice them and target them with coupons. Make offers especially relevant to them. You may also want to use this group for surveys and feedback. Chances are they will click a “free” anything.
Let’s face it: things happen, mistakes are made, and stuff get’s broken. It’s what customer support is for, but sometimes, it might not be wise to push the latest awesome deals to an upset customer. That said, one of my more interesting emails recently was from a company, who sent me an email suggesting I upgrade to their premium service, after providing some appalling customer service. I wasn’t sure if I should laugh or cry; it was either amazing timing, or a deliberate attempt at an up sell.
Looking at customers moods may not be a metric you have on hand. If it’s not, it might be worth asking support staff to try and gauge the mood of a customer through the support cycle.
I tend to recommend segmenting at least by who has contacted support recently, and if possible, their last known mood. Generally, we will not contact people who have requested recent support, unless the outcome was positive.
Building segments in MailChimp
In theory, you could do the above by hand, assuming you had the metrics to hand, but it would be long process, and one most mail manager GUIs of are not suited for. To get people started, here are some handy hints for doing the above in Mail Chimp. (Other mail managers can do the same, and if you are dealing with lots of products, you may wish to do this in house, as it will get messy.)
I’m going to assume you have built yourself a handy class for handling mail, which has some nice separation of method, parameters and all the boring stuff.
Setting up segments
To add a new segment within the API use the:
listStaticSegmentAdd (APIkey, ListID, Name)
The name can be more or less anything, but remember that it’s what you will see in the Mail Chimp screen. On success, you will be returned an ID. This ID is relative to the list. You will therefore need to make static segments per list.
Removing an unneeded segment is just:
listStaticSegmentDel (APIkey, ListID, seg_id)
Where seg_id is the relative segment ID. Note: It has to be the id, not the name.
Adding users to segments
This again is pretty straight forward:
listStaticSegmentMembersAdd(APIkey, ListID, seg_id,batch)
Batch is an array of IDs (of users in the system), or email addresses. You can mix between the two, if you want to be crazy. I tend to find using emails easier, as I’m often adding data from my own systems and won’t be using Mail Chimp’s internal system. Note: this does NOT add people to lists. If they are not on the list, it will return an error for the given user.
So, can you guess how to remove users?
listStaticSegmentMembersDel(APIkey, ListID, seg_id,batch)
The nice people at Mail Chimp were not imaginative in naming conventions, which to API writers is a good thing. Again, it’s worth noting the Batch is an array of emails or Ids. If you want to wipe all the users from a segment:
listStaticSegmentReset( APIkey, ListID, seg_id)
As tempting as it is when doing temporary segment lists such as new purchases etc to wipe the whole list on each cron job and rebuild, you may wish to avoid it. While it’s nicely efficient from your side of things, it may potentially upset Mail Chimp. Though, this would depend on the size of your list. Also, I confess that I am using this bad practice on one of my lists with a segment that is wiped and rebuilt weekly.
Segmenting by Lists in Mail Chimp
I’m sure it was the middle of last year when myself and Illiya Vjestica MD from Smart Dog were chatting via Twitter. At the time, I had written a simple tool for doing segmentation by list, so you could select a list to segment another list by, when someone from Mail Chimp mentioned the feature already existed. I even remember looking and going, ‘oh yeah, so it does’. Well, I can’t find it any more, and nor can the people at Mail Chimp live support. And, with their URLs all screwed (hmmm there is an SEO/usability post in there somewhere), I can’t even check properly.
That said, it is fairly easy to do via the API (though, sadly it means you will need to run a script before going into Mail Chimp).
1. Add a static segment on your main list, or Sorry Mail Chimp, listStaticSegmentReset if one exists, especially if lists are regularly updated.
2. Use listMembers to get all the user Ids from the list you are segmenting by
3. listStaticSegmentMembersAdd using the list of Ids you just did against your main segment.
That’s it! The only pain is needing to run it before you go into Mail Chimp.
This is the point where I go over to you. I haven’t covered bits like geography, time, etc. So, what are some of the ways you segment your list?