Skip to main content
travis_floyd
Contributor ⭐️⭐️⭐️⭐️
September 9, 2020
New Idea

Ability to have CTA Due Date exceptions for black-out dates (i.e. holidays) much like "skip all weekends"

Related products:CS Cockpit & Playbooks
  • September 9, 2020
  • 13 replies
  • 247 views

When assigning CTA Due Dates via Rules Engine, we currently have the option to “Skip Weekend if Due on a Weekend”, or “Skip All Weekends”.  My end users have asked to have an Exception Calendar that could also be skipped for Holidays, or shut-down periods, etc.

13 replies

Stuart
Helper ⭐️⭐️
January 8, 2024

Adding my +1 here as the idea in principle is sound - providing the functionality to skip weekends or holidays for CTAs/Rules/JOs.  A couple of considerations I had were:

 

1) this will be considerably complex across account regions/CSMs. Segment 1 for US would need one set of exclusion dates, Segment 2 for UK another, Segment 3 for mainland Europe another, etc etc, and I wonder how we would in practice keep these dates separate and also these would require to be maintained.  Additionally, this is just for the accounts, a separate set of logic would then be required for the CSM being OOO.  And if CSMs have accounts across multiple regions, you can see already the layers of complexity such a solution will require to work effectively and reliably.

2) to consider how the send/trigger logic would work.  I’ll preface this by saying i’m not 100% on how the current skip logic works, so apologies if this is how it works right now! Let’s say a rule or JO skipped send/trigger because of an exclusion date, depending on how the logic was written, that particular account or participant may not meet the trigger criteria again.  We’d want the action to happen on the next working day, rather than just skip over it if it lands on an exclusion date.

​​​​​​​

alizee
VIP ⭐️⭐️⭐️⭐️⭐️
January 8, 2024

2) to consider how the send/trigger logic would work.  I’ll preface this by saying i’m not 100% on how the current skip logic works, so apologies if this is how it works right now! Let’s say a rule or JO skipped send/trigger because of an exclusion date, depending on how the logic was written, that particular account or participant may not meet the trigger criteria again.  We’d want the action to happen on the next working day, rather than just skip over it if it lands on an exclusion date.

 

So the skip logic is an evaluate stage / conditional wait, and it will reevaluate the condition until it becomes true for the duration you set on that evaluate stage / conditional wait (every 11 hours for X days). After that duration, if it still doesn’t meet all conditions to proceed to the next email or step, it will consider it to be false and send participants down the false branch, which could be whatever you configured for that. 

So, when we build this today for weekends, it checks if DAY of WEEK =/= SAT or SUN (usually in a custom object or on company object), this way when it is or becomes true, it sends the email. If you have a max period for vacation of like 2 weeks in a row, you would make sure your evaluate stage re-evaluates the condition for that duration + 1 day for safety. 

The trick is to make sure that you engineer it so the condition becoming true sends them down the “main branch” (in advanced JO - in Dynamic JO, there’s of course a lot more flexibility in the way this could end up being configured so it’s wise to be careful with the branching as it’s more complex). 

Hope this clarifies how the skip logic can be built in JO today.

Thanks

A.

The most expensive part of building is the mistakes. That's true in construction. Not so much in CSOps. So ask questions, make mistakes and learn. All views expressed here are my own.
Expert ⭐️
January 9, 2024

Maybe I am over simplifying this.

 

But, couldn’t you simply create a Calendar object and simply add an additional column that is filled with Actual Send date.

 

So now all you need to do it fetch the record where actual date = today and then see if Send Date is also today. If not filter them out.

 

I.E. if today is Saturday(1/13/24) and send date in Monday(1/15/24) that condition is false so it it filtered out.

Sunday(1/14/24) comes, send date is Monday(1/15/24) and still does not match today.

Monday(1/15/24) rolls around and Send date(1/15/24) does = today so it makes it through.

 

This works beautifully with holidays also as you can map your own company holidays to skip those days.