I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around business process flows.
You can see below that we have a section of the exam which covers managing the user experience. Within this section under the heading “Create and manage processes” business process flows are mentioned.
Business Process Flows – Overview
All organizations will have specific business processes they follow, these could cover lead qualification, case logging / resolution etc. Each business process will include a number of stages and each stage will contain a number of steps (or actions). Some steps may be mandatory before allowing the user to progress to the next stage in the process.
These business processes are referred to as business process flows. They may be linear with all stages applying in all situations, or they may contain condition branches. For example: Very large value opportunities may follow a different process to smaller opportunities.
The benefits of business processes include;
- Condition branching to enforce business best practice
- Easy customization to tailor them to specific organizational need
- Direction based conditions, meaning that one business process flow can span multiple record types. For example, when a lead becomes an opportunity.
Dynamics 365 ships with a number of out of the box business process flows. Including common ones such as “Lead to Opportunity Sales Process” and “Phone to Case Process”. In addition, further example (ready to use) processes can be enabled. You do this by using the “Add Ready-to-Use Business Processes” option that can be found in the data management area of Dynamics 365 advanced settings.
Be aware that if you add these ready-to-use business processes they cannot be removed. So if you wish to experiment with them that is best done in a development environment.
I will often take an existing business process flow and tweak it to meet a company’s needs. It is also (obviously) possible to create new business processes from scratch.
Example Process – Lead To Opportunity Sales Process
By way of an example, I would like to look at one of the out of the box processes in greater detail. In my experience the process to qualify a lead and develop it into an opportunity is a perfect example of how to use a business process flow. So let’s look at that!
As you use this process, a few things to notice …
- Each stage is represented by a name chevron (arrow). Such a qualify, develop etc.
- The flag denotes the current active stage.
- On the current stage (marked with a flag) we can see how long that stage has been active.
- The highlighted / coloured chevron is the currently selected stage.
- Below the coloured chevron you see the steps (field) that must be completed to complete this stage.
- Some steps maybe mandatory, moving to the next stage will be prevented until entered.
- Fields shown on in the business process may be repeated in the main form.
The lead to opportunity business process flow is shown below;
Notice that with the lead to opportunity business process flow, qualifying the lead will progress from the qualify stage to the develop stage. And load the opportunity just created. Again it is important you try this. This demonstrates how one business process can span multiple entities.
It is worth noticing that the “highlight circle” moves as the process progresses. (It denotes the active stage.)
It is also possible to click on arrows (next to the next stage button) to make a previous stage the active stage.
If you moved all the way back to the qualify stage, the lead would be displayed. But as the lead will have already been qualified it would be read only. If you do this, don’t forget that you’d need to also reactivate the lead if you need to change it.
Enabling Entities for Business Process Flows
Before you can create business processes on an entity it needs to be enabled for business process flows. We do this by amending the properties of an entity. (As shown below.)
Each business process flow will have a primary entity. If an entity is to be used within a business process flow as a primary or “secondary” entity it must be enabled for business process flows.
Once set you can NOT turn off business process flows. But having said that, just because an entity is enabled for business process flows doesn’t mean you have to use them with it!
When we enable an entity for business process flows some fields get automatically created on the entity. Including Process Session and Process Stage. These are links to the current process and the stage within it.
Tip: We have two interfaces for maintaining customizations. The newest experience can be found at “make.powerapps.com” (I normally recommend you use this one most of the time). But we also still have a the classic experience. Currently (Oct 2019) the property to enable an entity for business process flows is only available by switching to the classic experience.
Create Business Process Flows
Below you can see that within the classic customization experience, under the processes option I have new and add exiting options.
When I select the new option I will be prompted to enter the details of my process. To create a business process flow set the category to “business process flow” and then select the required entity.
Below you can see that once my business process flow has been added into my solution using the classic interface I can see and edit it from the newer “make.powerapps.com” experience.
Tip: Notice that an entity gets added automatically which relates to the process!
Order Process Flow
It is possible for one entity to have multiple business process flows. The sequence that the process flows are presented to a user is governed by selecting the Order Process Flow option.
Below you can see that out of the box knowledge articles have more than one business process flow available. When creating a new article, the top process called “New Process” would be started. Assuming your role has access to that process.
Enabling for Roles
In addition to defining the order of business process flows they can be enabled for selected roles or all roles. Using the “Enable Security Roles” ribbon button.
Stages, Steps and Stage Category
A business process is split into multiple stages. Each stage is represented by a “dot /circle” within the business process flow.
Each stage relates to an entity. All of the stages in a process can relate to the same entity. Or different entities can be used as the process progresses. For example, with the lead to opportunity business process flow processing moves from lead to opportunity after the qualify stage.
Each Stage is made up of a number of steps. (Each step being a field that should be completed at that stage in the process.) Some steps will be mandatory, some optional.
The fields in each step will show in the business process flow but the exact same fields can also present on the form.
The stage category is really just for reporting and logically groups the stages.
- There can be no more than 10 active business process flows per entity.
- Each process can contain no more than 30 stages.
- Multi-entity processes can contain no more than 5 entities.
Understanding how to create a business process flow with a conditional branch will be required. Try actually creating a conditional branch, it will help you understand them! As always the best revision approach is to create “something” to see how it performs.
Below you can see that I have created a conditional branch which effectively adds an extra stage for leads. When a budget greater than 20,000, I want to make some additional information mandatory!
You can see below that once this change has been applied a different stage appears when the budget amount is greater than 20,000.
Workflows and Business Process Flows
We can also additionally add workflows into the stages on a business process flows. Dragging a workflow component allows us to trigger a workflow.
Notice that there is a preview component to additional trigger a Flow from a Business Process Flow!
This trigger can be set to start the workflow on stage entry or exit. Importunately, the workflow you select must be an active, OnDemand workflow.
Additionally we can add global workflows. As shown below these have different triggers. For example, you could run a workflow whenever a process is completed or abandoned.
Action Steps and Business Process Flows
As described above typically workflows will be triggered on a stage entry or exit. Action steps allow users to execute an action inside a stage plus they have the ability to pass information into the resulting action.
First we create an action and then define any required inputs and steps. Below you can see that I have started the create process dialog. (Just as I would when creating as workflow, except the category is set to action.)
Notice that I have set the entity to lead, as in my example I want to generate a task from within the qualification business process flow on my leads.
Next I define the process. Importantly the property “Available to run as a business process flow action step” has been selected.
I have then entered two arguments. One being a date and another a string. In my example, I plan to use the date as the due date on my task and the string as the tasks description.
Then below the arguments I can define one or more steps. In my example I have simple added a step to create a task.
If we look at the properties associated with my task create step you will be able to see that I am using my arguments to set values for the description and due data fields.
Also notice that the regarding field has been set to lead. This will automatically link this task to the lead in question.
Next we can add the action step into our business process flow. Below you can see that I have dragged an action step component into a stage in my business process flow. Additionally you can see that in the properties I have defaulted my input parameters based on fields from the lead.
When my business process flow runs the user now sees an execute “button” within the stage.
Clicking execute will prompt the user to enter the required arguments. Notice that they have been defaulted from fields on my lead!
Finally we can see that a task has been created linked to my lead.
I admit that the first time I created an action step I found the process quite involved! But it is a really worth while step in your revision to try to create a business process flow that contains condition branches and makes use of action steps and workflows. (And you may even what to experiment with the new Flow component!)
In summary, I have covered,
- Using business process flows.
- Enabling entities for business process flows.
- Creating a business process flow.
- Stages and steps.
- Setting the order of business process flows.
- Enabling business process flows for specific roles.
- Conditional branches.
- Workflows and business process flows.
- Adding Action Steps into business process flows.
As part of your preparation for the MB 200 certification you should gain hands-on experience for all of these features. Doing so will help ensure you understand the concepts involved. I hope this post has helped you understand the basics of business process flows. Enjoy!