I wanted to segment a list using the following criteria:
- Customer had not opened any messages in the last 12 months (365 days)
- Customer record was created before 12 months ago (365).
However, when I created the segment it failed.
This is because I set the expression to 'record creation date' is 'before' 365 'days ago'.
However, when the expression is changed to 'record creation date' is 'after' 365 'days ago' it works correctly.
It appears the Act-On is working on numeric logic, rather than date logic.
In English when referring to a time in the past, we say it happened 'before' a specific point in time. For example, "I bought a gift for my mother before Mother's Day'.
Therefore, I had set the expression to 'before' the date that was '365 days ago'.
In Act-On the number of days are counted. So, the day before 365 days ago was 366 days ago. Therefore, this is treated by Act-On as being 'after' 365 days ago because 366 is after 365 in a numerical sequence.
I would imagine that there are many list segmentations set up in Act-On that are not working correctly, because of this faulty logic. You have to know how Act-On behaves in order to set the expression so that it will work as you intend it to.
We picked this up because we manually checked the segments to ensure they were listing contacts we expected to see. This is easy for us to do as we are a B2B business and familiar with many of the contacts we have in Act-On.
It would be more difficult for B2C businesses to identify the problem, if they are handling a large number of contacts they may not know. Who has time to manually check the record creation dates to ensure the contacts in the segments are the ones they expected to see.
I think Act-On should switch the labels 'before' and 'after' in this instance, so that the logic is in accordance to what is used in everyday language.