What is a business process flow in Dynamics 365?
After the release of Dynamics CRM 2013, Microsoft introduced a new type of process: Business Process Flows. The business process flow in Dynamics 365 provides a simple and intuitive user interface introduced at the top of the CRM form to guide the user through pre-defined processes using stages and steps.
A business process flow is divided into several stages (A maximum is 30 stages per business process flow but honestly, you shouldn’t need more), with each stage containing at least one step (steps are fields from the entity we’re currently on. Also there’s a maximum of 30 steps which are more than enough).
How to make the most of Business process flows?
1. Multi-Entity Process Flows
It’s called “dynamics” for a reason and Microsoft likes to show you why. Business process flows are not limited to one entity. Realistically, an organization’s business process can expand on more than one entity, and Microsoft made sure the same process can be replicated in CRM.
Some stages can move you from one entity to the next one to make sure the process is going smoothly as long as all the required steps are completed from the previous stage.
This kind of business process flow is usually desired when there are relationships between entities (e.g. Opportunity and Sales Order) or even custom relationships that you create. That way, the move from one stage to the next will take you to the next entity with relationship to the new one.
You can still make a process flow span over new entities with no relationship to the previous one, but the next stage will be locked until you define the next entity to go to.
Limitation: The Business process flow can span over a maximum of 5 unique entities.
2. Business Process Flow Branching
One super useful feature Microsoft included in their business process flows is branching. Based on certain values in the stage steps, you can make the process flow branch out to different stages and then merge back when the stages are the same again or end the process at each branched out stage.
This is very easily implemented using If-else logic by combining one or more conditions with and-or operators during the creation of the business process flow. This functionality can increase usability and adds even more flexibility to ensure all the ends of the process are being met.
3. Enabling Security Roles
Like other Dynamics 365 components, you can easily control who can access the business process flow by enabling security roles in the designer.
You can choose to enable business process flows for everyone. Or, if you have more specific business process flows that not everyone should have access to, you can choose a selection of one or more security roles to see it (this comes in handy when you have more than one business process flow for the same entity and several people with differing security roles have access to different processes).
4. Business Process Flow Order
Each entity can have up to 10 activated business process flows. You can define which business process flow is selected by default for newly created entities and set up the business process flow order.
If one person has a security role that allows more than one business process flow to appear, the first one on the list will show by default. He can always switch to other available processes using Switch Process from the command bar.
5. Business Process Flow Automation
I’m going to split this into 2 sections. First, I will talk about how to automate the business process flow itself (move stages, select process, etc.). Next, I’ll talk about how we can automate stuff in Dynamics 365 using the business process flow.
Automating the business process flow
This will need a Dynamics 365 Developer since it involves writing client side code to achieve it. Microsoft provides loads of functions and methods in its SDK to manipulate the business process flows using client-side code (JS) on the form. We can select the active process, move stages, and make all stages and steps available (for more information, visit https://msdn.microsoft.com/en-ie/library/dn817878.aspx).
One of the most requested features clients ask for is the automation of moving stages. One popular demand I have faced with multiple clients is to change the stages depending on a certain status value and this is all doable using the libraries Microsoft provides for the developers.
One of the amazing features introduced in Dynamics 365 is the ability to run on-demand workflows directly from the business process flow.
In my opinion, this addition is of great importance because it changes the way we use business process flows. Previous to Dynamics 365, they were used to show the user where the process is at the moment, but it was more of a visual representation of the process and the actual functionality you used to get from it was pretty limited. Not anymore though. With the introduction of on-demand workflows from the business process flow, we’re able to automate most tasks and complete complex requirements without leaving the heading of the form.
On demand stage workflows:
To add this, we can just drag and drop a “Workflow” component into the stage we need. Then we choose a pre-defined, on-demand workflow or create a new one and it can be triggered on entry or on exit of that stage.
The only condition is that the on-demand workflow has the same primary entity as the business process flow stage.
On-demand global workflows:
To add this, we need to drag and drop the “Workflow” component into the process. It can be triggered when a process is activated or when it’s completed or abandoned.
The only condition is that the on-demand workflow has the same primary entity as the business process.