Customer Segmentation for Growth Teams

Posted by Josh Weissburg on Oct 30, 2015

Fresh bread

How will you slice it?

Every growth team faces the same basic challenge: “What changes should we make to our current product and marketing that will get us more customers who stick around longer and pay us more?” The answers rely on how you do customer segmentation: effective segmentation allows for analysis, which generates ideas that you will act on and test.
Both sides of the growth toolkit—analysis and testing—require that your customer segmentation is up to the task.

The Three Levels of Data Freshness

Over the past year I've onboarded dozens of product and marketing teams onto Outbound, and almost all of them have had questions about how we do customer segmentation compared to other tools. With the rise of Segment.com as a universal data collector, there are a lot of tools to choose from! As a starting point, it's helpful to break customer segmentation into three buckets based on the answer to one key question: How fresh is the data?

Level 1: Manual Lists

What are manual lists?

In the context of customer tracking and engagement, I’ll define a list as a manually-created collection of users with some associated attributes. For as long as companies have had customers, we’ve had lists. Over the past decade, the tools we use to manage lists (e.g. Excel, Google Sheets) and use lists (e.g. MailChimp) have become more accessible and powerful.

What are manual lists good at?

Everyone can use lists; you know exactly who’s on the list and why they are on the list—because you put them there. The overhead to creating manual lists is almost non-existent. The definitions and criteria can be changed any time. Exceptions to these criteria can be added manually. With a manual list, you’re in complete control and you can shape the list as needed.

The overhead to manipulating manual lists is also very low: create a few pivot tables and voila, you’ve got your answer. There’s a good reason most most marketing departments run on Excel—manual lists are a natural part of our workflow.

What are manual lists not good at?

The manual list has one glaring problem: updating the list is a huge pain. As soon as you make the list, it’s out of date because, for most businesses, your data is changing all the time. Some customers who used to fit the criteria don’t fit anymore, some new ones do and some of those customer attributes have changed. Now you have to pull a new list. Because everyone understands this limitation, the chance for awkwardness is fairly low: you’ll generally keep things simple since you’re working with a simple tool.

Level 2: Snapshot Segments (aka Auto-Updating Lists)

What are snapshot segments?

Inevitably, once we all started working with lists, our tools began automating the list-building for us, and segments were born. Instead of manually rebuilding the list each time you need it updated, you just tell your segmentation tool what your criteria are and it refreshes your list. Snapshot segments are a “pull” process: you must go to the system that’s calculating your segment and ask it to give you a new list. Many tools (Intercom, Mixpanel, Customer.io, Appboy) will automatically re-calculate your segments at regular intervals for you.

What are snapshot segments good at?

Any task that can be done with a fixed snapshot of customer data is a great candidate for snapshot segments. The cohort analysis that Amplitude offers is a good example: each cohort is group of customers that shares certain attributes (i.e. signup date, geographic region, app version, etc.). You actually want to look at this group at a particular point in time and compare it to the same group (or another one) at a particular point in time. Traditional email (or mobile push) blast campaigns are another good candidate for snapshot segments: just calculate your segment then hit send.

What are snapshot segments not good at?

Snapshot segments are a strange beast: they’re dynamic (they update by themselves) but they’re also stale (they are out-of-date between updates). Snapshot segments occupy the uncanny valley of the segmentation landscape: close to accurate but always missing something. While this is fine for analytics and blasts, it's problematic when you need a true “push” process to inform your system that something has changed.

Abandoned cart messages are a good example: a customer adds an item to his cart, and you want to send a message if he hasn’t finished checkout within 10 minutes (of his add to cart action). With a snapshot segment, this scenario is not feasible because each customer is on his own schedule and you need to know the status of that specific person exactly 10 minutes after he added the last item to his cart. Your snapshot segment will always be running behind.

Level 3: Live Segments (aka Event-Based Segments)

What are live segments?

Live segments are the “push” version of snapshot segments: new data is pushed into the system right away in the form of events, then the system checks to see if it should do something with that data, like send a message. Live segments can have simple criteria or complex criteria, but regardless of the conditions, the key difference is that live segments will re-evaluate the status of a given user every time new information is pushed into the system for that user.

What are live segments good at?

Live segments are most useful when the action you're performing with your segment is time-sensitive. We all have experience with at least one type of live segment: transactional emails (e.g. password reset, receipts) are the simplest example in this category. In this case, the segmentation criteria is just “when a user takes this action, they’re in my segment.” This is such a common use case that most email products offer this kind of event-based capability. Where live segments become much more powerful (and rare) is when you check against multiple conditions—like the absence of an event—at a set time in relation to that user’s actions. 

The cart abandonment example above is a great candidate for a live segment because you need to reach out, while there is still intent, based on whether each user has completed checkout. You should also be using live segments to:
  • provide immediate assistance to users who fall behind in your onboarding flow;
  • notify a user when you want to communicate something every time they’re in a certain state (e.g. “You have an unread message in your inbox”);
  • use a combination of behavioral criteria (events) and profile criteria (user attributes)—the event data will be much fresher;
  • look inside event data for your segment criteria (e.g. “send this message if the user has ever made a purchase greater than $50 in value).

What are live segments not good at?

Live segments are computationally expensive because they must immediately check the the status of each user for whom new data is received. Unlike snapshot segments, which are predictable because you can run a batch job at a regular interval, live segments need to be able to handle spikes in activity and still process the state of each user. And of course sometimes you actually want to look at a snapshot.

Use All Three (For Different Scenarios)

Each of these segmentation methods will be useful in different situations. At Outbound we’ve made a big bet on live segments because we see a lot of companies trying to run time-sensitive customer engagement campaigns based on snapshot segments. This leads to a lot of awkward situations: companies send messages based on stale customer data, and customers get confused. Our system was designed from the ground-up to fill the need for a simple, powerful live segmentation tool. (Recently we even launched a new webhooks feature, which allows you to use Outbound for live segmentation even if you're not sending a message.)

Once you have access to live segmentation, you’ll see opportunities to use it throughout your product flows—especially when you branch out beyond email to start doing customer engagement across mobile push, SMS and website notifications. I love talking about this stuff, so shoot me a note at josh@outbound.io if you want to learn more.

Topics: Best practices