# Better Anniversary handling in Campaigns

**URL:** <https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610>\
**Category:** Ideas and Feature Requests\
**Created:** [January 3, 2025, 11:24am UTC](https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610 "2025-01-03T11:24:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![driskell](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/driskell/32/10405_2.png) [@driskell](https://forum.mautic.org/u/driskell)\
**Post date:** [January 3, 2025, 11:24am UTC](https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610/1 "2025-01-03T11:24:50Z")

</div>

My idea is:

Currently when you do a campaign for example for an anniversary - you end up having to run a condition on the field value with the date operator and value Anniversary. Maybe there’s better ways but this is the only one I have found. But then you need a 1 day wait to then restart the campaign if condition doesn’t match. This is fairly non-intuitive and means anyone wanting to setup a birthday campaign is left scratching heads or Googling.

My thinking is that on the “on relative date” option for actions, we just allow an additional dropdown that is introduced as “Schedule this action relative to the” and options “current time” / “contact field: Date Field 1” / “contact field: Birth Date”. Then display the same relative fields but allow 0 day to be specified.

This would then allow you to:

- send an email
- on a relative date
- relative to contact field: birthdate
- being 2 days in the future

Of course the only complication implementation wise, is the need to reschedule the campaign for a contact when the date field changes.

I think these groups of people would benefit from this idea:

Anyone wanting to setup anniversary campaigns, which feel really hard to setup at the moment and not really intuitive or efficient as they end up calculating every day. And it feels really easy to make a mistake with the wait 1 day before condition check, and having to have the restart properly setup, which could then mean accidentally sending lots of emails if the send email path doesn’t hold them long enough.

I think also system admins will love the fact that each contact has a single schedule entry that waits for the anniversary, rather than checking every single day, so there’s not huge running campaign processes every day processing the condition for every single contact. Though this could be a misunderstanding from my side but it feels like this is how it is happening currently.

Why I think they would benefit from this idea:

Simpler process for anniversary campaigns that is more discoverable and flexible, and reacts super fast as the schedule time means extremely fast execution

Any code or resources to support this idea:

No

Are you willing to work on this idea?:

Yes

What skills and resources do you need to explore this further?

Just looking for feedback on this idea.

---

<div class="post-metadata">

**Author:** ![driskell](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/driskell/32/10405_2.png) [@driskell](https://forum.mautic.org/u/driskell)\
**Post date:** [January 3, 2025, 11:26am UTC](https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610/2 "2025-01-03T11:26:57Z")

</div>

The current method I reference is outlined here pretty much:

> [@Big Birthday Email Problem](https://forum.mautic.org/t/big-birthday-email-problem/22656/2):
>
> @media31 It looks like you used this video as a guide. [[OSTips - How To Create A Happy Birthday Email Campaign In Mautic] ](https://www.youtube.com/watch?v=Lms6z8Frm5c) Perhaps what you should do is test with a smaller segment, as this is done at the beginning part of this video. You should also execute this with the CLI command so you can see the results, as this would technically be cron triggered, and run silently in the background. M

It really is a bit of a “stretch” and feels like the system is being manipulated into something it wasn’t intended to do.

---

<div class="post-metadata">

**Author:** ![ivan.kosutic](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/ivan.kosutic/32/13690_2.png) [@ivan.kosutic](https://forum.mautic.org/u/ivan.kosutic)\
**Post date:** [February 13, 2025, 6:02pm UTC](https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610/3 "2025-02-13T18:02:01Z")

</div>

Mautic supports relative values for date fields, and you can find more on this on the following link [How to create a date-based segment in Mautic - Mautic Knowledgebase](https://kb.mautic.org/article/how-to-create-a-date-based-segment-in-mautic.html)

---

<div class="post-metadata">

**Author:** ![driskell](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/driskell/32/10405_2.png) [@driskell](https://forum.mautic.org/u/driskell)\
**Post date:** [February 13, 2025, 7:06pm UTC](https://forum.mautic.org/t/better-anniversary-handling-in-campaigns/34610/4 "2025-02-13T19:06:43Z")

</div>

Ah that’s interesting - I think I can see the issue here is this is not documented very well or at least not intuitive in the interface

I think it has issues though for birthday campaigns in that it relies on reliable segment updates happening in good time as well and if you wanted to do a 2 week long campaign before the birthday to lead into it your segment setup would have to keep them in segment for that timeframe so I think having a dedicated scheduling for this would really make things easier.

Definitely will look at how that can be improved in the UI though
