Personalized Community is here!
Quickly customize your community to find the content you seek.
Check out the latest Sales updates!Learn about the key capabilities and features of Dynamics 365 Sales and experience some of the new features.
Download overview guide | Watch Sales video
2021 Release Wave 1Discover the latest updates and new features to Dynamics 365 planned April 2021 through September 2021.
Release overview guides and videos Release Plan | Preview 2021 Release Wave 1 Timeline
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance and Operations TechTalks | Customer Engagement TechTalks | Upcoming TechTalks | All TechTalks
I'm a newbie in Dynamics 365. I have 5-6 stages in my sales opportunity pipeline and i want to send email notifications (reminders) to sales person if an opportunity stays in same stage for more than lets say a week (7-days) then on 8th day the workflow send email. Then again after next 7 days (14 days), it sends another notification, then again after next 7 days. And in the end if a particular date field (estimated sign date) is reached, we send notification every day. How do we achieve this?
Is it fine if i create a single workflow for all stages and for any number of opportunity in database. The workflow starts when first stage starts. Then it waits for next 7 days, if the status is still the same, it sends out a notification. Then it waits for next 7 days and send another notification after 7 days and so on.
We create one workflow for one stage?
please suggest the best business practice for such scenario.
Ideally, you should implement this using scheduled batch job which runs every day. Workflow sessions with wait condition can impact performance in the long run. For instance, as the no. of opportunities grows in the system, the no. of waiting workflows will increase. This will be bad for performance.
Check this blog for more information:
If you still want to go ahead with workflow approach, you may refer the blog post below for 'Best Practices'
As far as I am concerned, there is no no best practice when a wait workflow is concerned!The thought of so many workflows in wait condition just scares me from a performance perspective. Instead, try have custom code that is executed every day, which is outside the system.
Here is one way you can achieve this -> by calling a child workflow: https://www.powerobjects.com/2012/11/09/create-recursive-or-scheduled-workflows-in-crm/
I would argue that best practice is that any workflow with a wait command within it should only ever contain a single wait command and just the functionality that is called when it is triggered. This ensures an administrator can at a glance see what is actually happening within the record / workflow without having to open up every monolithic workflow individually to see what state it is in.
It also means that when you finally switch to an approach where the workflow is triggered via an external trigger / batch process, as everyone here is recommending, the workflows could continue to be used / be reused without additional changes.
Equally as everyone else is commenting - wait condition workflows really should be avoided as they have a significant performance impact on async services (all pending workflows are continually loaded to check if the wait criteria has been met).
if you run cloud version (but it can be achieved with onprem too), I would recommend you to go with Logic Apps (or Microsoft Flow). You can use Schedule trigger and periodically check Active business process flows (their base entity). It won't affect performance in any way.
Base entity of BPF has all the information you need, including lookup to the actual opportunity.
You can iterate through all the active BPFs (beware there can be multiple running processes on one entity since 8.2) and then decide what action you need to take.
Thankyou Mayank Gadodia it really helped in resolving the issue.
Thankyou Shidin Haridas it really helped in resolving the issue.
Thankyou Tomas Prokop it really helped in resolving the issue.
Business Applications communities