A customer recently reached out to me with an interesting problem. They wanted to be able to segment their customers based on whether they were engaged or not, so that they could measure the impact of their campaigns on the two distinct segments. I figured that this was probably a relatively common problem, so I decided to cover the topic in depth.
In this article we are going to cover some advanced segmentation techniques. Specifically, we want to segment our existing contacts based on how engaged they are with their messaging. Our goal is to adjust the timing of one or more automation sequences based on their level of engagement. In order to prevent message collisions, we also want to make sure that contacts can not exist in more than one engagement segment simultaneously.
We will handle our engagement segmentation using one of two methods; an “analog” method, and a “digital” method. The “analog” method is preferred and takes advantage of ActiveCampaign’s Lead Scoring. It is “analog” because contacts can exist along an engagement continuum, using their engagement scores. We will be able to then choose a threshold for what counts as engaged and what counts as disengaged.
The “digital” solution will have less flexibility, but should still work reasonably well for ActiveCampaign customers who don’t have access to lead scoring because they’re on a lite plan. In this case, we will set a more rigid structure for what counts as “engaged” or “disengaged” and will apply a tag accordingly.
Part I: Using Lead Scores (Analog)
Using lead scores gives you the flexibility to sort your contacts by how engaged they are, instead of who is and isn’t engaged. This will give you more control over where engagement is coming from. We will also be able to break apart different types of engagement, by creating an “Engagement Open Score,” “Engagement Click Score,” “Engagement Site Visit Score,” or whatever else you would like to consider engagement. Using events it is even possible to track offline behavior as well (although that is another post entirely).
Using ActiveCampaign Lead Scoring for Engagement Scores is easy. ActiveCampaign Lead Scoring is available on the Small Business plan and up. In this example, we are going to create 3 engagement scores; an Engagement Open Score, Engagement Click Score, and an Engagement Visit Score. We will increment these values whenever the users (you guessed it) open an email, click a link in an email, or visit our website.
In order to track site visits we need to make sure ActiveCampaign Site Tracking is installed. Read more about how to set up ActiveCampaign Site Tracking.
From the Contacts tab, click the drop down menu in the upper left and select Manage Scoring. You will be presented with the option to choose “Contact Score,” or “Deal Score.” We will be using the Contact Score option. Click the title in the upper right to edit it. Give it a name like “Engagement Score – Site Visits”.
Next create a rule, so that whenever a contact visits your site based on the domain, give them one point. You can set the expiration of points if you prefer. A word about expiration: points do not expire 1 per day. If you set points to expire after 8 days, and your contact opens three different emails, one Monday, Tuesday, and Wednesday, then next Tuesday they should have 2 points (+1 +1 + 1 -1). This is fine for a lot of uses based around actions that take place at regular intervals.
Building a Time Decay Automation
If you are comfortable with this type of system feel free to leave it. Since I like to make things a bit more difficult, I prefer to opt-in to a “time decay” model. With site visits, there is a flurry of activity, followed by periods of downtime. If I stuck to the default, then it doesn’t matter how severe the site visit activity is, it will all disappear at the same time. Put another way, if a contact earns a 25 of points on one visit, and then doesn’t log in for a week, then she will go from 25 points to zero right away.
It is possible to “weigh” different actions differently, however I prefer to keep a strict “unit” framework and follow the single responsibility principle. So we we will count each page visit, open, and click as one.
The goal of our time decay model, is to decrement a point from our “Engagement – Site Visits” score every n days. That way if a contact earns 25 points on the first of the month, those points will slowly “decay” over time, so on the 14th they may have only 11 (if points decayed one per day).
We will use an automation to build a time decay “decrementor,” but first, we need to create a couple of custom fields. The first custom field will tell us the last known time the contact visited the site, and the second will let us know the last known time the site visit time decay automation ran.
Head on over to the Forms tab. Choose “Manage Fields” from the menu in the upper left. Choose “New Custom Field” from the upper right, and select “Date” as the type of field. Give the field a name like “Engagement – Last Visit” and save the field. Repeat the process to create a second date field called “Engagement – Last Visit (Decay Timer).” We will use this timer to start our decay automations.
My biggest hesitation to building a time decay engagement score is too many custom fields, which can become unweildy and hard to manage. Fortunately, a solution to this is just over the horizon, so I think custom fields will work if used in moderation.
Create a new automation, and choose “Web page is visited” as the start trigger. Make sure the trigger is set to run multiple times, and set the path to be a wildcard (*).
This will be a simple automation with a single action. Choose “Update contact field,” select the “Engagement – Last Visit.” Set the action to update the field to right now. End the automation, and make sure switch the automation to be active.
This will make sure to update the field to be the last time the contact visited the site.
Next, we want to setup an automation to run every day, to decrement a point from the “Engagement – Site Visits” score. We also want to set the custom field “Engagement – Last Visit (Decay Timer)” to be the first time the contact visits the site. To accomplish this, we will need two automation start triggers. The first will be a “Web site visited” trigger, that is set to run only one time, matching a wildcard path (*). The second, will be a “Date based” trigger, set to run one day after the custom field “Engagement – Last Visit (Decay Timer).”
Inside the automation, we need two actions; we want to reduce the “Engagement – Site Visits” score using the Adjust Score action, and then we want to update the contact field “Enagement – Last Visit (Decay Timer)” to be the current time.
The first time a contact visits the site, the automation will run and set the “Engagement – Last Visit (Decay Timer),” and remove a point. The automation won’t run each subsequent time the contact visits the site.
Before you send the comment you are about to send, I understand that this will essentially remove the point the contact just got for visiting the site just the one time. I am okay with that, since they were going to lose it tomorrow anyway. You could adjust this by using some IF conditions in the automation, or setting the goal rules to grant the contact 2 points for their first visit and 1 point for each subsequent visit. Dealer’s choice here, but I prefer maintainability over complexity.
Once the contact visits the first time, it will kick off a system of daily loops through this automation, reducing the number of points in the “Engagement – Last Visit” score by one each time.
Where to go from here
You can take engagement scoring in a number of different directions. You could repeat the process for “Engagement – Opens” and “Engagement – Clicks.” You could also create a new automation, to add and remove tags based on an “engagement threshold” that you determine — say 7 points, to label contacts as either “ENGAGED: Engaged,” “ENGAGED: Suppressed,” and “ENGAGED: Disengaged.”
Here are a few examples of automations that could take advantage of this engagement score.
- Send a series of re-engagement messages when engagement falls to zero. This is a great opportunity to let your contacts know what has changed since the last time they logged-in/visited.
- Adjust your messaging cadence based on engagement so highly engaged contacts receive more messages with shorter waits.
- Introduce a referral program to your most engaged customers to turn them into outspoken advocates (and put that pile of logo t-shirts to good use).
- Prune your list. Remove contacts that have been dis-engaged for a while to keep your list clean and responsive. Read more about Shawshank marketing.
- Send a “how can we help?” message or gather feedback from customers who disengaged. By starting a conversation you can funnel the customers who need help to resources and gather valuable insight into how you can improve. Use this feedback to adjust your earlier sequences to close the information gap.
- Send (and report on) two different campaigns based whether or not a contact is engaged, suppressed, or disengaged. Play with experiments like the length of content and formatting.