rolling disengagement rules


Active Member
It's vital for list health and consistent deliverability to suppress disengaged users. The big players among email providers (Google, MSN, Yahoo etc.) punish email marketeers with local fails (straight into spam folders) who continue to send bulk emails to accounts that have long seized opening emails.

For that reason, it's good practice to set automatic rules that remove (or retire, filter-out, unsubscribe, unconfirm...) subscribers who have not opened x-many emails in a row or not for x-many days. At the same time, this rule should be able to exclude new subscribers, who have not yet received enough emails to genuinely fall into that category. Ideally, this rule runs permanently during the life of a list. As soon as a record matches this engagement suppression rule, it's marked as disengaged.

With engagement being such a vital component of successful email marketing, I feel it needs a little attention and some straight forward mechanism to implement, either via segments, or permanent filters. Is there a solution to achieve this?
I'd love to see a response here as I have the same need.
I was about to have my developer write a script to deal with this, but too many other projects and would prefer to find something out of the box. Any ideas anyone??
I am open to discussion related to this.
Maybe it should be an option to be enabled which should maybe deactivate subscribers that didn't do any action in certain amount of time.? Will that amount of time be adjustable?
I don't think we should do this automatically mainly because we don't know if all people will want this behavior, but i agree to add a option for it so it can be enabled/disabled as wished.
Let's discuss this if you will.
Thanks, @twisted1919. I agree, it should definitely not be automatic out of the box. I think I didn't make that clear enough. The key should be that
a) disengagement based on opens and click-throughs can be easily measured and associated to subscribers
b) customers can then easily apply actions/filters to retire or exclude disengaged subscribers via a segmentation or filter.

Establishing what "disengagement" means is different for each customer's email marketing. Therefore the rules have to be 100% customisable. However "Engagement" should be terminology that MailWizz displays and uses consistently within its UI, and helps customers to establish these rules and apply them to some automation.

Right now, a few of us here make our own engagement measuring, which is becoming increasingly complicated and is anything but solid or using industry best practice. We're retro-fitting available fields and field rules to make do to achieve what should ideally be a separate, dedicated feature looking at the increasing importance of this context within email marketing.
Yes, glad to see some attention to this thread. Thanks @nadworks & @twisted1919 !

In that it's this important to us, I already got my developer on it, but to the extent you build it into the tool, my feedback would be on a per list basis, per subscriber, to allow for parameters, i.e., if user hasn't opened past X# of emails, then unsubscribe. And to make that number configurable by list. (Just my 2 cents).

But in that I can't wait and have already begun our own solution, my developer has run into an issue that hopefully you can assist with;

Not to hog this thread, but it's relevant, so...

We are trying to use the following api method: All responses from that enpopint/method returns same empty response: {"status":"success","data":[]} even in cases when db has opens record




Subscriber id is: 39002;


and here are records in db that we would like to see in response of that api call

It appears that this may not be the correct call to use!

Can you suggest which call will allow us to get desired info without direct db access?

Thank you.
@nadworks - thank you, that makes sense.
Is there any chance you give me a few examples of rules that can work for you?

@TheKnight - thank you for the info and images, they help a lot.
my feedback would be on a per list basis, per subscriber, to allow for parameters, i.e., if user hasn't opened past X# of emails, then unsubscribe. And to make that number configurable by list. (Just my 2 cents).
I think this is the way to go, per list basis. When you create a list you get to create the rules as well.

All responses from that enpopint/method returns same empty response: {"status":"success","data":[]} even in cases when db has opens record
That's the correct answer to signal the data has been recorded. I don't think returning all the opens for that subscriber would be correct since that may be a lot of records which can take down the api response. Most likely what you need is to get a list of opens and clicks for a given subscriber and we should create those endpoints. If that's what you need, i assume we can have these created by next release, just let us know.
Thanks so much for considering this, @twisted1919

Here are my thoughts on what would be needed:

A flexible (custom) way to set rules
  • ... has not opened min. X out of last XX received emails
  • ... has not clicked links from min. X out of last XX received emails
I would avoid presenting these absolute metrics and rules in relation to time frames, simply because the sending frequency fluctuations hugely between different MailWizz users/customers. I.e. some newsletters may only be sent quarterly etc.
However, in addition, we could also enable the following:
  • measuring open rate as a percentage (rather than absolute) of received messages over time
  • measuring click-throughs as a percentage across all received messages

Engagement tiers
It would then be great to have a customisable tier system, each one qualified through individual rules made up from the above metrics:
  1. highly engaged
  2. engaged
  3. disengaged
  4. lost
Each MailWizz customer can set their own thresholds for each tier based on their sending profile, product type, list behaviour etc.

Segmentation and automation
The MW customer could then apply different automations (auto-responders) to each segment, i.e. send higher value offers to tier 1, or start a dedicated re-engagement campaign to tier 3, or set subscribers that drop to tier 4 to "unsubscribed".

Similar to the campaign rules you already have, an "open" event on a tier 3 message could move a subscriber back into tier 2 etc.

Key is that the process of applying associated tiers is done automatically and doesn't rely on a manual filter. It's also vital that the tier level is added to each subscriber in form of a variable custom field. That way an exported list includes the individual engagement values and retains them when being re-imported. In a way, we've been discussing current workarounds already here, but as you can see, that's all less than ideal.

I know this all sounds easier than it's done and I really appreciate your openness to introducing these options. Happy to elaborate further if you think that'll be helpful. The challenge will be the UX of all this, I guess.