Visual Workflow – Make Reminder Flow Work When Event.DueDate Changes

conditionaltime-dependent-workflowvisual-workflow

I have a Time-Triggered Flow that reminds people one week before the Meeting Due Date. That is easily implementable.

enter image description here

But now I also want to cover the use case where somebody changed the Due Date. In such cases the reminder should be rescheduled as well.

  1. When I make the Flow also trigger on Update I run into this:

For a path that runs asynchronously, configure the flow to
run only when a record is updated to meet the condition requirements
or select the Is Changed operator in a condition.

  1. When I add ActivityDate.IsChanged == TRUE as condition I get:

A flow with a scheduled path that has a time source based on a date or
date/time field can’t contain the Is Changed operator in a condition.

  1. When I change the condition to check for ActivityDateTime.IsNull == FALSE I again get:

For a path that runs asynchronously, configure the flow to
run only when a record is updated to meet the condition requirements
or select the Is Changed operator in a condition.

ADDED LATER
I considered what commenters said and added a custom Checkbox to the Event and a separate flow to enable it first. To make this work in update cases, I Reset the checkbox in the original flow. But magically, the "Immediate Path" is not executed. It resets the field only when I move it into the scheduled path. But that is of no use to me.

enter image description here

I am lost. Is there a workaround to get that working?

Best Answer

The confusion I think is coming from the fact that the flow is being configured to re-trigger when the Event.DueDate is changed.

What actually happens with Flow Time Triggers is that the Time Based Workflow re-evaluates the Event.DueDate against the Flow criteria when the Event is changed. Automatically. Under the hood.

There are the steps that the Time Trigger follows

  1. Create a record that meets the criteria of the Time Trigger
  2. Time Based Workflow record is created with a ScheduledDate set by the flow (e.g. 1 day before ActivityDate)
  3. When the Trigger Date is changed (in this case Event.ActivityDate) the time based workflow automatically re-evaluates the Event against the same Flow
  4. Because the Flow is creating a Slack post 1 day before the DueDate, if the due date has changed, the TimeBased Workflow.ScheduledDate is updated accordingly.

I'm pretty confident that combining a Flow Time Trigger with and Async Trigger isn't possible.

The reason being

  • The Time Trigger should be triggered when the record is created or changed
  • The Time Trigger must reference a date/datetime field
  • The Async trigger requires the inclusion of the IsChanged operator or must be triggered when the record is updated to meet the criteria
  • The IsChanged Operator is not compatible with the datetime field in the criteria.

Trying to get around this may well be possible, but I would urge against it because it will just create mess (i makes my head hurt trying to devise a workaround). Save yourself a headache and just just have two flows, one for your Time Trigger and another for the Async flow. :)