Issue #012

"Locking" your email list subscribers

This week's essay is full of actual examples focused on helping you better control who's getting pitched or emailed what. This is going to be helpful if you've ever worried about "automation gone wild."

Automation isn't difficult to technically set up. After all, anything can be learned.

The difficulty is generally around not knowing what's going on in the inbox of your subscribers. If you automate too many things... email courses, lead magnet follow-up sequences, onboarding, evergreen newsletters, pitches, and so on... the fear is that you'll overwhelm your readers.

A few weeks ago, in Issue 009, I talked about some of the high level ways you can mitigate that concern.

Today I'd like to show you exactly how I ensure that my subscribers don't get overwhelmed.

Let's jump in.

4 custom fields you need to start using

Every subscriber in my ConvertKit database has the following four custom fields:

  • onboarded_at: if it's set, they're fully onboarded and eligible for product promotions/pitches. The value is the date and time they were onboarded.

  • pitch_status: if it's set, something (either automated or "live") is currently pitching them. The value is how they're currently being pitched.

  • newsletter_status: if it's set to "all", they're getting all of my weekly emails. If blank, they're not eligible yet - they're probably still being onboarded, and if "unsubscribed" then they've chosen to not get my newsletter but they want to keep getting product update emails, etc.

  • lbps_status: are they currently going through an email sequence, like one triggered by the downloading of a lead magnet? If it's set, they are. And the value is the sequence they're currently going through.

These fields are written to and deleted throughout the automations I have running in my account, and they're used to determine who CAN be pitched, who CAN end up on an educational nurturing sequence, and so on.

I don't use tags to track these "locked" states, because by using a custom field I can immediately know not only if someone is eligible to be pitched ("is pitch_status blank?") but also what's currently pitching someone (the value of pitch status, like mck_price_hike_launch). You couldn't easily achieve this with tags.

Example: an educational sequence that leads to a pitch

Step #1: Control opt-ins

When someone is on my website, I use RightMessage to see if lbps_status is currently set.

If it is, I don't show the opt-in form for the lead magnet / email course, but instead show the product associated with the sequence they're going through now. This is all easily handled by my Offer Funnel.

I've made a conscious decision to not allow for someone to double-up on email courses.

Enrolling in too many educational sequences at once is too hectic, and since most of my email courses eventually lead to a product pitch I don't want to overwhelm the subscriber with too many promotions.

By using RightMessage to simply not show lead magnet registration forms for subscribers who are currently going through a sequence, there's little risk of doubling up.

Step #2: When a sequence starts, set lbps_status

If someone can opt-in to an educational sequence, the first step is to "lock" them. This will ensure if they're back on my website they won't see any other lead magnets until they've completed this one.

And once they've completed the automation, I simply just blank out that custom field:

(Didn't I tell you it was easy? 😀)

Now if I wanted to send a broadcast email to everyone who isn't going through some sort of educational email sequence, it's as simple as targeting lbps_status=(blank)

Example: a live product launch or seasonal promotion (i.e. Black Friday / Cyber Monday)

The same set field → remove field logic applies for both evergreen pitches and live pitches.

If I'm going to run a big listwide promotion, like a Black Friday / Cyber Monday (BFCM) deal, then all I need to do is set pitch_status=bfcm2021 to all my subscribers.

And if I'm using broadcast emails (rather than an automation) to send out the promotional emails, I just need to target anyone who fits that criteria. This helps because:

  1. If I decide to add a "I'm not interested in your BF/CM deals" as a link to my promotional emails, clicking that link would just blank out the pitch_status field. Then subsequent broadcast emails would skip anyone who clicked that link.

  2. I don't like sending pitch emails to people who just subscribed. So if someone joined the list after I set pitch_status on all of my subscribers, they wouldn't get future scheduled pitch emails.

Likewise, if I'm delivering evergreen, fully automated pitches (usually after an educational email sequence wraps up), then I'll have that pitch automation set pitch_status:

Now if I decide to do a listwide product launch or seasonal promotion, I can just exclude anyone who had pitch_status set elsewhere automatically.

It just... works.

(And don't forget to remove pitch_status after your pitch emails wrap up.)

Example: adding someone to my newsletter after they've completed their first lead magnet

Generally people join one of my emails lists via a lead magnet, like an email course.

Which email course or lead magnet they start with doesn't matter, because each lead magnet sequence ends the same way: by marking them as onboarded (onboarded_at=$now) and enrolling them to the newsletter (newsletter_status=all).

This only happens, however, if they haven't yet been onboarded. But, again, this is really simple to set up:

Don't get overwhelmed by too much automation

Hopefully I've made a strong case for why it's important to "lock" your subscribers.

By using just a few custom fields to track what someone is doing, you can eliminate a bazillion ugly tags that will (...WILL) end up failing you somehow.

When I teach the practicalities and theory of this in my course, Mastering ConvertKit, I always love seeing when that lightbulb moment happens and someone begins to truly appreciate the power of email automation and eliminates the fear of "automation gone wild."