Saturday, 19 July 2014

Pipeline Phase field deciphered

I've been working on a project where we are implenting Microsoft Dynamics CRM 2013 and the area of CRM that will be used intially is the Sales module. The last time I customised the Sales module was in Microsoft Dynamics CRM 4. Yup, that was in 2009.

So when I started customising the Opportunity entity, I was confused about a field in Microsoft Dynamics CRM 2013 where my memory kicked in - I was sure this wasn't how it used to be in Microsoft Dynamics CRM 4. The field that I couldn't figure out in terms of the significance and what it was used for in Microsoft Dynamics CRM 2013 is "Sales Stage."

There were two things that needed to be customised,
  1. Add new Sales Stage values that my client wanted. eg. "Quote"
  2. Update the Sales Stage to match the Stage Name of the Opportunity Business Process Flow. eg. When the Stage in the Business Process Flow changes to Quote, the Sales Stage field should also be "Quote"
In this vlog I share my learnings with you.



The first thing I did was added the Sales Stage field to the entity form and it didn't update at all when changing to and from stages in the Business Process Flow. Hmmm... The second thing I did was to check out the Sales Stage field. I scratched my head when I discovered Sales Stage is an Option Set field where you cannot edit the values. I was sure the values could be changed previously.


My next step was researching the online sphere for some clues regardings the Sales Stage Option Set field. There were CRM 2013 blogs that discussed how to show the Stage Name of the current stage in the Business Process Flow of the Opportunity using a custom field which is then added to the entity form or view. However nothing in detail that pointed to my discovery about this particular field. The next step was that I checked Micrososft Dynamics CRM 2011. Yup, the same as CRM 2013. Option Set cannot be updated. I decided to check a Microsoft Dynamics CRM 4 environment to further investigate this field. Luckily there was a legacy environment available that I could access. In Microsoft Dynamics CRM 4 you can change the values however back in CRM 4 land, the field type was not an "Option Set," it was a "Picklist." I don't know whether this is related but this is what I noticed.


OK, but it didn't help me since I'm now customising in CRM 2013 where editing the Option Set for Sales Stage is not possible. My trip back to CRM 4 only confirmed that my memory did not fail me. Self-high five! So what to do now in CRM 2013 about getting new values in the Sales Stage field? I could get around this inconvenience by creating a new custom field in CRM 2013 with the required values where this custom field was to be used instead of the out-of-the-box Sales Stage. For a moment I thought this was the route to be taken. Something inside of me told me, "This is not where your journey ends little caterpillar, there's something else." So I trusted my instincts and got on with it. Back to staring at this field - mentally questioning it and more online research. Within an hour I found two separate pieces of information in these two blogs,
  1. Create Business Process Flow for custom or any OOB entity in CRM 2013 - refer to the first two comments
  2. Dynamics CRM 2013 Sales Pipeline 2
Here's what I found:
  1. Sales Stage is not really used but possibly only exists for the purpose of an old version of Microsoft Dynamics CRM upgrading to a newer version as seen in the first blog. Hmmm but in CRM 4 the field can be edited so how on earth did it become not editable in future versions. Or was Sales Stage used differently in CRM 2011? 
  2. From the second blog I learnt that when progressing in the Business Process Flow Stages, another field in CRM 2013 is being updated, "Pipeline Phase." So then I checked it out. I added and Pipeline Phase fields to the Opportunity entity form. I moved to and from Stages in the Business Process Flow. The Sales Stage field never updated, yet the Pipeline Phase field did. Referring back to the second blog, the Stages are driven by a Global Option Set, "Stage Category." The Pipeline Phase is being updated by the Business Process Flow Stage, and the Business Process Flow Stage is driven by the Global Option Set. I had to insert the client's Sales Stage values in the Stage Category Option Set and update the Opportunity Business Process Flow with the new stage categories. This will then update the Pipeline Phase field whenever the Business Process Flow Stage changes. 


I did this and it worked. This will also coincide with the out-of-the-box Sales Dashboards. The funnel chart will also display the new Stage Category value in the Global Option Set. Boom.


Summary
I suggest using the Pipeline Phase field rather then the Sales Stage field to identify the progress of Opportunities in Microsoft Dynamic CRM 2013. The Pipeline Phase field is tied into the Business Process Flow where the Stage Category of the Business Process Flow is reflected in the Pipeline Phase field. This will also save the need to create a custom field in the Opportunity entity that will be popluated when the Business Process Flow changes from stage to stage. The Sales Stage is not customisable and I think is only there in case a legacy CRM Organisation was previously using Sales Stage.

The only gotcha is to make sure you order your values correctly in the Stage Category Option Set as the digit number of the order will be displayed in the Pipeline Phase field and Sales Dashboards.

Awesome sauce!