I'm an experienced user with the flows and workflows but got stuck with this problem. Basically, I want to notify opportunity owner when the stage wasn't change for too long.

Let's say I got stages like 14 days, hot, in progress and many others. I want to trigger a time-based notification each and every time the stage was changed and reset the countdown for the notification when this happens.

The issue is in order to use time-based actions I need to use the trigger "any time the record is edited to subsequently meet criteria". Meaning it will trigger my notification only when the record didn't meet criteria in its previous state and is meeting it after the record was modified.

But all the stages mean that the record actually was meeting and still meets the criteria, e.g. if the stage was in hot and was changed to in progress, this won't reset and restart my time-based notification.

I can create a rule for each stage and trigger notification for each stage separately but it's not ideal solution.
If possible, give me some ideas with the flows and 'fancy' scheduled paths since Salesforce plans to retire the rest. But any solution would work (process builder, workflows etc)

  • 2
    This comes down to being able to track stage durations. Choose an option and implement it: one or two. There's a flow-based implementation example of option 2
    – identigral
    Jun 15 at 17:37
  • 2
    @identigral Can one not use LastStageChangeDate of Opportunity, comparing it with a variable holding TODAY-100 as an entry condition of a Scheduled-Triggered Flow? Maybe I've misunderstood what is required or misinterpret the field. Jun 15 at 18:11
  • @Felix van Hove The goal is to say 'this opportunity is stale, it has been in Stage X for > 100 days, please notify someone'. Last Stage Changed Date would only work with assumptions of a linear progression through stages. At one point Stage Duration and Last Stage Changed were "special", report-only fields but perhaps it's changed now and they're available to act on in formulas and/or flows.
    – identigral
    Jun 15 at 18:19
  • @identigral , I can select LastStageChangeDate in the entry condition of a Scheduled Triggered Flow and compare it with a variable that defaults to a date formula. I haven't found any documentation limiting LastStageChangeDate to a "linear progression through stages". Again, I have not used this, am not sure it would work, but it looks simple to set up and try. (Apologies, if I haven't got your point.) Jun 15 at 21:08
  • @Felix van Hove non-linear is a jump from stage 1 to stage 3 and/or from 3 to 1, skipping stage 2 in both cases. The most frequent use case is aging in the very first stage (Prospecting/Qualifying). LastStageChangeDate in this case might be something or might be null
    – identigral
    Jun 16 at 0:35

1 Answer 1


I've given it a try and set up the Schedule-Triggered Flow (e.g. can run every night). identigral (see the discussion in the comments) has surely more experience.

As a start, I created a Flow variable OneHundredDaysAgoVar defaulting to a formula TODAY() - 100.

I planned to use this variable as an entry condition of the Flow...

"LastStageChangeDate" "Greater Than" "OneHundredDaysAgoVar"

..., but this was met by Flow Builder with the warning

"$Record - The Start element can't have a record filter condition that references a resource or element..."

I therefore replaced this by an entry condition making sure processed Opportunities are not closed (which should be applied anyway). As a next step I added a decision element, using a very similar condition

"$Record > Last Change Date" "Greater Than" "OneHundredDaysAgoVar"

as the one that got disapproved as entry condition. The condition defaults to an Action "Remind Owner", but terminates immediately, if the Opportunity does not meet the condition.

As mentioned by identigral in the comments: Creating an Opportunity and not changing its Stage at all, seems to imply a null LastStageChangeDate. This is clearly a limitation of this approach.

Otherwise the flow seemed to do well. I debugged it by toggling the "Less than"/"Greater than" of the Decision element watching Notifications popping up.

Am I missing anything?

My Flow

  • Aside from null LastStageChangeDate, the other issue with this is lack of specificity with respect to Stage. "$Record > Last Change Date" translates to some stage last changed date. Needed: a specific stage was entered on date X.
    – identigral
    Jun 17 at 18:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.