Microsoft Dynamics CRM Business Process Flow Lessons Learned

Visit Website View Our Posts

I’ve had the pleasure of completing multiple upgrades to Microsoft Dynamics CRM 2013, and one of the most popular new features for our clients is Business Process Flow. BPF is a great way to see where you are in a process, and it gives users a helpful guide for what needs to happen to close a sale, resolve a case, or complete many other types of processes.

In the “process” of implementing BPF, I’ve seen many areas where process flows work great, but I’ve also seen some situations where certain configuration choices may not be optimal for Business Process Flow.

Benefits of business process flow

  • Provides visual indication of where we are in a process.
  • Gives users a guide to what should be done at each stage.
  • Works consistently across all interfaces, including tablet app.
  • Can provide actions that are required to complete before the process can be moved to next stage—good for things like approvals.
  • Can tie two or more entities in the same process together—for example, the Lead to Opportunity process flow connects a lead with its converted opportunity. Users can toggle between the lead and opportunity, making a previously disconnected process seamlessly connected. This is one of my favorite things about BPF.
  • Allows users to indicate what phase the record is “in” currently, while also looking ahead to see what needs to be done in future phases, or what was done in previous stages. This behavior may be confusing to some—they think “if I click the close stage, it should move to close stage.” However, I appreciate the design choice of having a definite action to move the phase ahead by hitting the next phase button, because it allows me to plan for what I need to do in the future without moving the current phase.

Limitations of business process flow

  • You cannot use javascript on fields that are not on the current/active stage. For example, if you want to conditionally hide a field with javascript based on the value of another field, you can only do that to fields on the “active” phase (the one with the flag). But users can click on one of the other phases and see all of the fields on the non active phases, and can populate those fields, circumventing your business logic. See the recommendations section of this post for an alternative approach to conditional hide/show/required logic.
  • You cannot filter lookup fields on process flow. If the same lookup field is on the form and has filtering applied to it, the filter will not apply to the field on the process flow.  Do not include filtered lookups in Business Process Flow.
  • Users must advance the process flow one stage at a time. If you have a scenario where the stage can move 2 or more phases at a time, this means that users will have to push the next stage button multiple times. Also, if you have a workflow that fires on change of the process stage, and users click the next stage button multiple times, the workflow will run multiple times because the form is automatically saved each time the process stage is changed, even if auto save is disabled.
  • You can display the process stage name field in a view, but since the process stage is a separate entity, you cannot sort the view by that field. There is a text field called Pipeline Phase on the process enabled entity (like opportunity) that contains the process stage name with a number in front of it. You can use this field to sort the view. The numbers are chronological, so views and charts sorted by this field will be in the correct order. However, this field will not display in Outlook client views.


  • Don’t include fields that require complex logic
  • Do include fields that indicate an action has been completed (review meeting complete).
  • Don’t include long text fields or so many fields that the business process flow takes over the whole form.
  • If you want to have conditional logic, like a phase that shows up only when the opportunity is a specific type, rather than using javascript, create two different process flows and switch them programmatically.
  • To programmatically switch the process and stage, use this fantastic workflow assembly. It makes it very easy to use a real time workflow to conditionally switch between different process flows.


Business Process Flow is a great addition to Microsoft Dynamics CRM, and it provides a great looking way to track your progress through a business process. But remember, BPF is not the process—it is merely a visual indication of where you are in the process. When used correctly, it can enhance your user experience and give users a good understanding of what they need to do to finish a process. Just make sure you aren’t overcomplicating the process, don’t overload it with too many steps, and you take the time to plan it out before configuring the process flow.

by Customer Effective

Show Buttons
Hide Buttons