Close an opportunity 90 days after its last commercial activity (change of stage in this case).


I'm pretty sure this can be done with a pair of workflows, I just can't seem to find the correct approach. I've tried to create a first one with the formula ISCHANGED( StageName ) that updates a hidden date field. Then, on the time-based workflow, set the condition to Hidden_Date_field__c = TODAY(), but this isn't working. And even if it did, I'm sure the following day the time-based action would be revoked due to the condition not being met.


Are you guys aware of any workaround for this, preferably standard without code? The formula ISCHANGED(field)can't be used in a time based-workflow and I'm not too keen on developing a trigger just for this... but I'm all ears.

  • 1
    I'm far from an expert but... have you tried Process Builder? Jul 13, 2017 at 23:26
  • I have currently have something like this working. The TBWFR is set to go 30 days after (action date) a Date field (trigger date). Whenever the date field changes the TB Email alert task is reset to new date. This works even when the action date has passed and the trigger date is updated. Granted I update the trigger date via code. Did you check the reevaluate WFR on the first WFR that sets the date so the TBWFR is reevaluated?
    – Eric
    Jul 13, 2017 at 23:56
  • You just validate Stage values you want WR to kick in. Evaluation Criteria Evaluate the rule when a record is created, and any time it's edited to subsequently meet criteria will only trigger when value didn't have the value you are validating and it just was set.
    – o-lexi
    Jul 14, 2017 at 0:01
  • It’s great that you have arrived at the solution, Instead of using workflow you can always start with process builder which is easy to use and lot many things can be done as compared to workflows.
    – Raghu
    Aug 7, 2017 at 23:17

1 Answer 1


Checking out the different features of the Process Builder, I found it's possible! (Thanks to @Sebastian). Here is my solution:

Process Builder

  • I'm pretty sure that solution has a flaw. If you use 'ISCHANGED()' in a time-lapsed process, any time another change is made that doesn't satisfy your formula (in this case, any change that doesn't involve StageName), the queued process will reevaluate, the formula will evaluate to False and your queued process will be canceled. You can check this in the list of waiting Interviews (under the Flows screen), see the waiting process disappear as soon as you make any change that isn't StageName.
    – Nori
    Jun 19, 2018 at 11:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .