Birthday/Anniversary campaign

Quite new to Mautic. I would like to set-up an birthday campaign. Purpose would be to select the leads that have their birthday & send them a personalised message. I tried creating a smart list, however don’t really see how I could add a this filter. I have birthday as a date type filed but there seems to be no possibility to compare this date with the current date to check if it’s the persons birthday. Am I missing something or is this function simply not available?

Thanks,

Dirk

Quite new to Mautic. I would like to set-up an birthday campaign. Purpose would be to select the leads that have their birthday & send them a personalised message. I tried creating a smart list, however don’t really see how I could add a this filter. I have birthday as a date type filed but there seems to be no possibility to compare this date with the current date to check if it’s the persons birthday. Am I missing something or is this function simply not available?
Thanks,
Dirk

Good idea! In fact, this feature has been requested already at https://github.com/mautic/mautic/issues/306 . Feel free to comment below it to make it more appealing for programmers to develop it.

Seems the feature has now been implemented into Campaign Builder and merge on 2017-02-01

I can see it in Mautic 2.7.1

My question is then an easy one.

  • I have created a custom field birthdate (type date) and add somes dates to my contacts
  • I have setup a segment with filter (birthdate not empty) named “Contacts with birthdate”
  • i have setup a new campaign which takes the segment “Contacts with birthdate” and add a decision step to check the birthdate (field birthdate, operator “date”, value “Anniversary”)

If the condition is true, I am sending an email, but what if the condition is not true, must I “loop” the campaign ? I don’t catch how the campaign builder will not “end” right after the first condition test and will be re triggered next day ? Should I remove the contact to the segment and re-add it immediatly after ?

How people are doing these kinds of looping for testing dates field ?

I thought about one segment (with all contacts having a birthdate) running in a single campaign, but the campaign design seems impossible
I then try to see if we could dynamically create the segment telling birthdate within the next x days but seems this is not possible too

What is the logical way to create such campaigns using Mautic ? Maybe just a designer habits to have but for now i don’t catch it !

Feedback from Slack :

[quote]Currently there is no way to loop a campaign. The only workaround that I have found is this:

  1. Create a segment where the filter is on a date field (like birthday) Birthday LIKE %03-31%. When the cron runs everyone who’s birthday it is will be added to the segment.
  2. Have a campaign based on that segment that sends out a personalized email. (you can do that with tokens etc.)

The main problem - you have to manually update the segment each day.
The issue is - once a contact has gone through a campaign - it can’t loop back… even if you stop and re-start it
I know its on the radar to fix… I have no information when that will happen
[/quote]

@Yannick038 did you find a solution for that??

I have a possible approach, following thread: https://www.mautic.org/community/index.php/7641-how-can-i-create-a-segment-for-contacts-that-last-login-date-mo

I believe, there is no need to loop within a campaign and having a decision based on a field.

My approach (not tested): Simply create a segment with a filter [birthday field] equals today (type the “today” in the field instead of picking a date value). Create a simple campaign with a segment source and an email (withou any decisions). On a new day, contact with birthday will be added and old ones are removed. The new ones are put into the birthday email campaign and processed.

@PeterTL
That won’t work because the Birthday’s year will be say 1985 and Today’s year is 2017.
Do you know if we can use regex to do something like this in the segment: [birthday field] like [getMonthandDay(Today)] ?

@pongacme
you have to use [birthday field] equals anniversary (type the “anniversary” in the field instead of picking a date value).

And… you have to set up the cron jobs of course.