This is basically a design question. I have a field (lookup to User record), called Recruiter__c. And lets say there is checkbox field that acts like a criteria for a WF. Lets call it Send_Reminder_Email__c checkbox field.

This is my requirement- Whenever Send_Reminder_Email__c is checked, send an email to "Recruiter_c" right away (using email alert action), and also have a 24 hr reminder, which can be accomplished by adding a time based action (an email alert) on the same WF. If after 24 hrs, Send_Reminder_Email__c is still checked, send another email (and that would be it, no third reminder).

This is easily doable. But now the ask is to make sure we kick off the WF again when value of field Recruiter_c (which is the intended recipient of email alerts) changes.

I am unable to find a design to marry those two criterias.

While creating a WF, if i select "When record is created and every time its edited", i can use ISCHANGED function in formula for criteria, that will help me detect changes to field Recruiter_c. But it doesn't allow time-based Wf actions.

Now if i chose "When record is created and every time its edited to meet the criteria", i can have immediate as well as time-based actions, but now i can't use ISCHANGED function, so no way for me to incorporate changes to Recrutier__c field in Wf criteria.

Using process builder has same issues.

Can anyone suggest me any design to solve this? Even if it is combination of code and declarative features.

Update as per recommendation of sfdcfox (but still not working)

So i added a checkbox field "Control_Flag_for_WF__c", default state of field being TRUE. We effectively turn it off and on again, in conjunction with other rule criterias, to fire the email WF again. I have total of 3 workflows, out of which two are dedicated to turning the control flag off and on again when change in "Recruiter" is detected

Workflow 1 when to fire = When a record is created and every time its edited (this is when we can use ISCHANGED function) criteria = ISCHANGED(Recruiter__c) Immediate action = Field Update, Control_Flag_for_WF__c = False In field update, i have selected "Re-evaluate WF rules after field update"

Workflow 2 when to fire = When a record is created and edited to meet the criteria Criteria = Control_Flag_for_WF__c = False Immediate Action = Control_Flag_for_WF__c = true In field update, i have selected "Re-evaluate WF rules after field update"

Workflow 3 (the actual Wf that sends email) When to fire = When a record is created and edited to meet the criteria Criteria = (Control_Flag_for_WF__c = true) && (other relevant criterias) Actions = Immediate and a time based action to send email

Workflow 1 and 2 work. But workflow 3 never fires. If i test WF 1 and 2 in isolation (deactivate Wf 3), they work .. which means when Recruiter__c is changed, the control flag is set and reset. If i deactivate WF 1 and WF 2, and manually uncheck and check the control flag, it fires WF 3. But somehow when i put all of them together, WF 3 doesnt fire

1 Answer 1


I believe you can do this, but you need three rules/criteria. In both cases (workflow/process builder), the first rule/criteria fires when the recruiter changes, and unchecks the checkbox. The second rule/criteria fires when the box is unchecked, has changed, and the recruiter has changed, and its purpose is to check the box again. Finally, the third rule/criteria sends the immediate email and schedules a time delay email 24 hours later. The process builder would need to allow recursion (the Advanced setting on the object selection box), while the workflow field updates need to reevaluate rules.

  • sounds fantastic. Let me try it out and come back here to give the updates. But i think it will work. Thank you Dec 5, 2018 at 14:58
  • Doesnt seem to be working (it should, your idea was excellent). I am about to post an edit to my question. Let me know if you see what am i doing wrong. Thank you for your help Dec 5, 2018 at 21:47

You must log in to answer this question.

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