Using CRM 2015 Calculated Fields for Opportunity Estimated Revenue

Using CRM 2015 Calculated Fields for Opportunity Estimated Revenue

It’s time for part 2 in the Smarter Sales Process article trilogy. As described in my previous blog post about lead qualification process customization, this content is taken from my webcast titled “A Non-Developer’s Guide to Smarter Sales Processes in Microsoft Dynamics CRM 2015“. After having adjusted the lead to opportunity process to better suit our needs, we’ll next have a look at how the data managed in the opportunity stage could be more easily entered and maintained by leveraging the no-code customization tools available in Dynamics CRM.

Introduction to Calculated Fields

As you should have noticed by now, the CRM 2015 release added the possibility for defining two new “complex” field types in addition to the traditional “simple” fields. Rollup fields is something I’ve covered in more detail in an earlier blog post, so this time we’ll be working with the other type, which is the calculated fields. Essentially these are the types of fields where you don’t directly insert a value in CRM, but rather the field value is calculated from one or more other fields in the system, based on the formula and conditions you specify in the calculated field definition editor found from the field’s properties in the CRM customization menus.

How calculated fields differ from rollup fields is that with them we’re always working on the current record, whereas rollup fields retrieve data from related records. Well, actually that’s not entirely true, since a calculated field can also reference a value from a related parental record in its formula. A more accurate description could therefore be that calculated fields can access data from the “1” side of the 1:N one-to-many relationship, whereas rollup fields are the tool for retrieving data from the “N” side of the logical data model in our CRM organization.

Another aspect that the system customizer must be aware of before starting to leverage these new tools for building CRM 2015 solutions is how and when the field values are calculated. As demonstrated in my post “CRM 2015 Rollup Fields: The Gotchas“, the data shown in rollup fields may be up to 30 minutes old, since these are updated based on an asynchronous job (unless you apply the workaround described in that blog post). Once they are updated, though, the values are persisted in the database. Calculated fields work in the exact opposite way, meaning they are calculated in real-time, but the data is not actually stored in the CRM database. While the latter part of that sentence might sound strange at first, it simply means that the CRM platform performs the calculation any time the specific calculated field is needed. This includes opening a form that contains the field, browsing a view with such columns, accessing a dashboard with charts referencing calculated fields, making SDK calls for retrieving this data and so on.

To familiarize yourself with the details of these features, have a look at the TechNet article Define Calculated Fields. Or if you’re in a hurry, spend 5 minutes watching this YouTube video from the CRM product team, to see how what the new fields look like in the customization UI.

Applying Calculated Fields on Revenue Estimation

The scenario that I chose for the Smarter Sales Process series deals with the way we determine an estimated value for an opportunity record in Dynamics CRM. By default, you have the option of either entering a lump sum into the Est. Revenue field of an opportunity record, or creating individual opportunity product records as line items that have a specific revenue value. This is what the bit field IsRevenueSystemCalculated is all about, with its options of “User Provided” or “System Calculated”. Since many organizations using Dynamics CRM don’t actually bother maintaining the detailed product catalog and price details in corresponding CRM records (at least not without a custom integration being built to sync the data from other systems), the “User Provided” option is quite often used for recording just the total estimated revenue value for the opportunity. What this means in practice is that the sales people end up using their own Excels to calculate the various components from which the revenue is generated and just entering the end result into CRM. If any parameter in the equation changes, it’s back to updating your Excels, then CRM again. Oh joy.

Could there be some middle ground between taking just a single figure from an external Excel sheet and having a full blown product & price catalog maintenance process for CRM? If the products and services you’re selling consist of a limited set of key revenue components that are typically included in each quotation you make, then exploring the possibilities of creating custom fields for these components directly onto the opportunity record might well be in order. While these will not provide the high granularity data of having opportunity product line items with links to the related product record, the data entry and maintenance experience is probably going to be a lot easier for you to sell to the CRM end users. (After all, we’re talking about sales people here, who are the toughest crowd you’ll ever need to please with your CRM system functionality.)


In this example scenario we’re selling CRM consulting projects that have three common revenue categories: consulting revenue, license revenue and “other” revenue. The total value of each area is calculated via a specific formula, after which each area specific revenue is summed up into the Total Amount field. As you’ve probably guessed by now, this is achieved by using the CRM 2015 calculated fields feature. Compared to adding the line items one by one, configuring unit prices and other variables, the data entry process is considerably faster, since all the user needs to do is tab through the relevant fields on a single form and enter values where necessary. You can catch a quick glimpse of the live opportunity form in this YouTube recording of the webcast.

For a detailed explanation of how this type of functionality can be configured in Dynamics CRM, have a look at the following slides: Smarter Sales Process in Dynamics CRM 2015 – Part 2: Revenue Estimation.

A Few “Gotchas” on Calculated Fields

If you’ve implemented a similar custom opportunity form in the past by using Javascript to perform the calculations, then you should be aware that the native calculated fields in Dynamics CRM don’t offer exactly the same user experience as custom scripts do. The reason is that the calculation logic is executed whenever the fields referenced in the formula are retrieved from the CRM, meaning not before you’ve submitted the updated source field values into the database. So, the moment you change a field value (let’s say “consulting hours” in our example”) and click/tab to the next field, a client-side script would be able to recalculate the fields instantly, triggered by the onChange event of the field. A calculated field will just sit there waiting for the source data to be saved to CRM first, either via the auto-save feature every 30 seconds or the user explicitly clicking on the save icon in the bottom right corner of the form.

Considering that with CRM 2013 we received the Business Rules feature that acts in practice the same way as a custom script (meaning it’s executed on the client side), this may seem like a slight setback in the level of application UI responsiveness for Dynamics CRM. Knowing that there are also some calculation capabilities available with Business Rules, you might be wondering if this feature could be used instead of calculated fields, to deliver an even better user experience. Well, based on my personal experience, if you try to build a very complex chain of calculations by using Business Rules, you’ll soon find yourself in a world of pain trying to figure out why the events don’t always trigger the way you want them to, how to handle resetting field values and so on. Although I haven’t yet used the calculated fields feature in as many real life scenarios as Business Rules, at least I haven’t run into similar problems in ensuring validity of the calculations performed with them, so my recommendation would be to always opt for calculated fields whenever you need to… calculate the value of a field (ever get the feeling that us consultants just state the obvious things?).

Another thing to be aware of when it comes to calculated fields and Business Rules is that the two don’t mix. More specifically, a Business Rule cannot reference a calculated field, so you cannot grab the results of the calculation and use them in a subsequent business logic implemented via a Business Rule. Luckily, you can still access the calculated field values in a workflow process, which is the workaround that I’ve used in my aforementioned presentation.

During the webcast, there was also a very good questions presented on whether there are some limitations on how many calculated fields you can use on a single entity. Based on the official documentation, there doesn’t seem to be any hard limit on the number of calculated fields you can create, but you cannot include more than 10 calculated fields into a single view (or chart), which could potentially be reached if creating a highly complex calculation scenario and a summary view to export the resulting data out of CRM.

As always, the responsibility on system performance impact ultimately lies on the system customizer, even if the solution is created just via clicking the CRM configuration options instead of writing custom code. As the no-code customization tools get more advanced with every release of Dynamics CRM, it’s becoming increasingly important also for people in the business analyst role to have a basic understanding of how the underlying application platform operates. I want to highlight a couple of recent whitepapers that Microsoft has released around the solution design and performance topic, which should give you plenty of food for thought, whether you’re approaching Dynamics CRM from a developer point of view or if you’re an analyst that’s aspiring to design more complex CRM solutions:

Customizing Lead Qualification Process in CRM 2015

Customizing Lead Qualification Process in CRM 2015

This is the first part in an article series where I’ll be presenting a few customization tips & tricks that you can use in Microsoft Dynamics CRM 2015 to enhance the functionality used in a typical sales process. The content was first shown in my live webcast on on May 6th: “A Non-Developer’s Guide to Smarter Sales Processes in Microsoft Dynamics CRM 2015.” As promised during the webcast, I’ll be releasing all the slides here on my blog, but since there was a lot of details to go through in the 1h session, it will be split into three separate articles, to improve the accessibility to this information for those who didn’t attend the live webcast.

The overarching theme of this series is to show you how the creative combination of the various customization tools available in Dynamics CRM 2015 can be used for building whole new functionality into the application – without having to write any custom code. The emphasis is on the word combination, since very often you’ll need to use several different pieces of the platform’s customization tools to achieve the end result. This isn’t something that you can easily learn just by reading the official product documentation that typically focuses on the introduction of a single feature at a time. With the examples in this article series I hope to demonstrate what these combinations could look like, in the context of customizing the standard application behavior in the sales process.


The techniques are by no means exclusive to the sales area of Dynamics CRM. Any process that you manage with our CRM/XRM application can surely benefit from the type of custom functionality that you can build via Business Process Flows, Real-time Workflows, Business Rules, Calculated Fields and Rollup Fields. The absolutely best way to gain an understanding of what you can achieve with the point & click customization tools in Dynamics CRM is to experiment with the tools in a sandbox environment, so I encourage you to go and try out these scenarios in an actual working CRM system. (Why not spin up a new CRM Online trial org and also get access to all the new CRM Online 2015 Update 1 goodies while at it?)

What’s Wrong with CRM 2015 Lead Qualification?

Those of you that have been working with Dynamics CRM for more than just a couple of years will probably remember how the things used to work before CRM 2013. When clicking on the Qualify button on a lead record, the user was presented with a dialog that allowed them to choose whether a new account, contact and opportunity record should be created from this lead. In the new world of Business Process Flows and no-popup UI of CRM 2013 (and CRM 2015), such options are no longer presented to the user. While this makes for a smooth user experience in general, it creates severe conflicts with many real life business processes of companies who either A) don’t use opportunities or B) don’t want to directly convert each lead into an opportunity. There are lots of suggestions on MS Connect (registration required, see here) to restore the ability for users to select not to create an opportunity from a qualified lead, but so far we haven’t seen any changes in the product to accommodate this.


So, if CRM wants to create opportunities but the user doesn’t, what could a mere system customizer do, without any knowledge of how to write plugins or scripts to develop new functionality by using the CRM SDK? Well, I’ve come up with a reasonably good workaround that uses the following solution components to establish a true user driven lead qualification process:

  • Branching Business Process Flow (BPF) to show stages that don’t take the user to the opportunity entity
  • Real-time Workflow to hand the lead status change and record creation instead of the built-in, non-configurable business logic of Dynamics CRM
  • Business Rules to conditionally show/hide fields for account/contact details on the form
  • Quick View Forms to present the records created from lead qualification process on the lead form after it’s closed

You can find the detailed description of how I’ve configured each components from the below presentation:

(For those of you who are not reading this article directly on and can’t see the embedded SlideShare presentation, click this link to access it.)

I hope that this example has given you some ideas on how the lead management process and related Dynamics CRM functionality could be further developed in your own CRM organization. Stay tuned for part two of this Smarter Sales Process series, where we’ll be moving to the opportunity record and exploring how the estimated revenue information can more easily be managed by using the Calculated Fields feature introduced in Microsoft Dynamics CRM 2015 release. If you simply can’t wait for it or want to see the lead qualification process in action, then the webcast recording is available on YouTube already today.

This Month in CRM: What Have I Been Up To?

This Month in CRM: What Have I Been Up To?

If you’re working with Microsoft Dynamics CRM then I bet you’ve had a busy spring so far! At least I have, due to the great buzz around the CRM ecosystem and an ever growing demand for customer solutions that leverage the latest & greatest Microsoft Dynamics product versions. Here’s a quick update on things I’ve been working on recently in the Dynamics CRM community.

Our Book: CRM Field Guide v2

Yay, I’m a published author (again)!  Long before I was awarded the CRM MVP title, this group of Dynamics CRM top experts put their smart heads together and came up with a must-have book on practical dos & don’ts of deploying Microsoft Dynamics CRM 2011 in real life scenarios: The CRM Field Guide. Now, after the big platform revolution that took place with CRM 2013, there is a much needed version 2 of the CRM Field Guide available that covers all updated, changed and expanded features of the product. A joint effort from 20+ CRM MVP’s has produced 29 chapters of brilliant content, with my humble contribution on the CRM user experience design aspects being one of them. Great job, guys, and especially Julie for making this V2 book happen!

CRM_Field_Guide_v2“Hmm, I’m in CRM Online and we’ve already upgraded to the CRM 2015 release. Is there anything in this book for me?” You bet! I’d say 98% of the book’s ~1000 pages will be perfectly applicable for your environment, even though additional features have been introduced in the v7.0 update released at the end of last year. Just have a look at the book’s chapter descriptions to get a glimpse of what type of insights you can expect to gain from this book – and then click to purchase your copy for only $49.99!

Our Podcast: Ikkunastudio Episode 4

Even though the market for Finnish language content aimed at Microsoft professionals is a tiny fraction of the audience that all the text produced in English has, that doesn’t mean there wouldn’t be also some quality tech talk out there on the Internet that is catered in this quirky lil’ language of ours. One of the latest entrants into this space is the Ikkunastudio podcast series that focuses on covering the Microsoft scene in Finland. I was honored to be invited into the fourth episode titled “XRM to rule them all“.


So, who’s behind this Ikkunastudio thing anyway? The show is hosted by two distinguished gentlemen: Jouni is the Regional Director for Microsoft developer community in Finland and Sakari runs a company focused on Microsoft Azure based solution development. The three of us took over the Digital Illustrated HQ on one fine morning and explored a world that many of the MS developers and IT pros may not be so familiar with – Microsoft Dynamics CRM. In addition to explaining what business scenarios CRM is typically used for and how the latest announcements from Convergence 2015 are shaping up the platform’s future in Microsoft’s product portfolio, we also had an interesting discussion on the XRM side of things – where the platform is coming from, what you can do with it today and where it might be heading towards. Jos suomen kieli sujuu, niin kuuntelehan siis miksi Dynamics CRM:ään kannattaa perehtyä pintaa syvemmältä!

My Webcast: Smarter Sales Process in CRM 2015

In addition to this glamorous MVP lifestyle consisting of writing books and appearing on radio shows, I also need to spend a fair amount of time designing and configuring real life Dynamics CRM solutions for customer organizations out there. As you listen to the functional requirements coming from customers who want to make Dynamics CRM better serve their own sales processes, you gradually notice that many of these scenarios are dealing with CRM customization work that isn’t exactly unique to the organization in question. At the same time the Dynamics CRM platform has evolved to offer us an extensive toolkit for configuring solutions that can solve these business problems without needing any custom code development.

When I look at some of the customization work I’ve been doing lately with CRM 2013 and 2015, using features like real-time workflows, business rules, rollup fields, quick view forms and BPF, it has become apparent that the crucial skill is not in just knowing the way a single Dynamics CRM feature works but rather how you can combine them in a creative way to come up with an end product that solves the customer’s business problem. The growing complexity of these no-code solutions means that it’s by no means a trivial task to figure out how they actually work and how they could be applied to different real world business processes that Dynamics CRM customers are looking to manage with the help of modern business software. So, instead of just writing individual blog posts I’ve decided to cover this topic in a one hour webcast: A Non-Developer’s Guide to Smarter Sales Processes in Dynamics CRM 2015.


In this webcast hosted by I’ll be introducing a few scenarios that I believe are common needs for Dynamics CRM customers and show you how the graphical customization tools offered by the CRM platform’s latest versions can be put into use in building solutions for them. For example, would you want to bring back the ability to not always create a new sales opportunity from every qualified lead record? Or how about being able to use Dynamics CRM for tracking not just the current sales pipeline value but also storing historical data about how the pipeline has developed over time? Join me on May 6th to see a few tricks on how a system customizer could tackle such requirements and make the Dynamics CRM application support the sales process management work even better than the product does with out-of-the-box configuration.