Related sites:

Newsletter: Perspectives on Power Platform

Company: Niiranen Advisory Oy

Visualizing Your Progress with CRM Goals

Dynamics CRM is a great tool for making your business processes more quantifiable. Sure, you can maintain a list of your open sales opportunities in an Excel sheet and plan your customer meetings with your Outlook calendar, as many organizations do. You can get a pretty good understanding of the current status with such personal productivity tools that come with your Office package, so why bother using any other software for it?

Things become a lot more challenging if you need to be able to track your progress over time, let alone manage a team of individuals who are all using personal tools instead of a shared information repository. “How did we meet the monthly sales targets during the past quarter?” “How many meetings did our sales reps have with current vs. potential customers?” Having an always up to date report of not only the historical results but also estimates of how you’re performing during the current measurement period may become an overwhelming task if you need to create such reports manually.

CRM_goalsDynamics CRM 2011 introduced the goal management feature that allows you to configure a specific measurement criteria just once, define a target value for a certain time period and user, then just sit back and watch the goal progress chart get updated on a daily basis. It’s a generic feature that can be utilized for calculating pretty much any results that are based on data stored and maintained on CRM entities. Sales quotas are a typical example of leveraging CRM goals, but you shouldn’t look at the goal management feature as something that can only be used for tracking formally agreed targets associated with individual employees. Any metric that can be reflected as a quantity in CRM data can potentially be turned into a goal record.

Set Your Own Recurring Goals

There are a few aspects about goal management in Dynamics CRM that may stand in the way of organizations truly starting to leverage the feature. First of them is related to how the goals are by default presented as records that you need to separately create for each and every time period where the measurement should be applied. This means that if you would be interested in tracking a goal on a monthly level, you’d have to enter 12 different records into CRM with mostly the same field values, with the only difference being the “From” and “To” date fields (or alternatively selecting the fiscal period as defined in CRM system settings). Even though you can leverage Excel export/import to create more goal records in bulk, it’s still a tedious sounding step that may keep you from even starting to experiment with the goal management feature.

If you’re not dealing with a hard variable like a sales quota that will have a concrete effect on someone’s salary, then there’s an easier way to get started with goals. Instead of configuring them for a fixed time period, you can set them to be dynamically measured for the last X months, next Y days and so on. I’ve introduced the topic in a previous post, so I won’t dig into the details here, but basically what you can do to create a continuous goal for a dynamic time period is to set the “From” and “To” values as wide apart as you want and then restricting the measured time period in your Rollup Query definition instead.

In my example, I wanted to create a goal record that would measure how many web forms have been submitted per month in an online campaign that leverages the ClickDimensions Web Forms for automating the process and, naturally, tracking all of the data into the CRM database directly. What I did was 1) add a new Goal Metric for counting the number of Posted Form records, 2) enter a bogus time period of 6 years, 3) set the target value that I want to achieve for monthly downloads and 4) create a new Rollup Query in which I defined the criteria to be “Created On in last 30 days” and defined a specific Web Form record that I want to track the submissions from.


Once I saved the record and clicked on Recalculate, I received the current count of Posted Forms that meet this criteria. From here on to eternity this goal will now show the count of submitted forms in the last 30 days, as well as a percentage indicator of how close or far I am from the monthly target of 10 forms. All it took was a few minutes of configuring the goal, now the system will take care of updating it every 24 hours to show the latest result. Time well spent, eh?

Make Your Goals Visible

Another potential pitfall with the goal management feature is that while the calculation engine behind the scenes will now maintain these metrics, there’s no guarantee that the users will remember to pay attention to this data. If they know where to go and look for the data, they can access the goal record in a view that will display target, actual and percentage values. If they are really advanced users, they may even know how to display the goal data on a chart that can be opened up from the right side of this view. And, if they have a great CRM administrator in their organization, he or she may have configured the relevant goals to be shown on their role based dashboards.

That’s a lot of ifs, though. Unfortunately it is quite common that not all of the skills required to get this process right, from business analysis to CRM system customization, may always be available to produce an outcome that would lead to the business value of goals being fully presented to the end users. As we know, user adoption is typically the bigger challenge that CRM system implementations will face, rather than the technical limitations of the underlying software platforms. If it’s not really, truly obvious for the users how the new system will benefit them and make their everyday lives easier, they are unlikely to invest time in frequently visiting it and browsing through the various views and dashboards to review the information available there. So, with the goals feature, is there any other way we could promote the usefulness of these automatic calculations to the users?

I’ve recently started working at a company called Digital Illustrated, which delivers solutions based on various Microsoft technologies, including Dynamics CRM. The guys at my new office have developed a cool new app for Windows Phone: CRM Goals. As the name suggests, this is an application that enables you to review your Dynamics CRM goal information via a WP8 smartphone screen. The really cool part about it is that you can select the goals you want to show as a Live Tile right on the Windows Phone start screen! For example, I can select the above mentioned eBook download campaign goal and choose a place for it among my other frequently used apps like Dynamics CRM and Yammer:


Now, instead of me having to remember to review the goal in CRM, it’s available to me one the place I visit tens of times every day: my smartphone start screen. The likelihood of me keeping an eye on the campaign target has increased to a whole new level – even if I was already an active CRM user. Also, the convenient presence of these metrics on my personalized mobile start screen can very easily spark up new ideas of other processes where I could leverage the Dynamics CRM goal management feature. All it took was placing the information from CRM into the context of my existing daily workflow.

If you’re using CRM Online and have a Windows Phone device, then why not go and grab the free CRM Goals app to better visualize your own personal goals?


  1. Love the tip about having start and end periods far apartment using rollup queries as setting goals up by hand for every period seemed too clumsy and probe to error.

  2. @Jukka – great article, and a nice introduction to exposing CRM data better for users. The technique of using an open-ended goal with the filtering being done in a rollup query instead is a useful one (that I first picked up from Richard Knudson’s trick bag), but not to be overdone.

    @Scott – this method is great if you only ever want to know your current performance, but is not so helpful to compare one period against another using historical data (and note you still can’t do an advanced find or view filter for data “older than X”, so using Goals calculated on a time period is the best way to create aggregates of records from past periods. There may be cases where you want to use fixed period goals as well as these “current trend” goals.

    • Adam, you’re quite right that this open ended goal does not provide you with insights on how far or close to the target value the actual performance has been in the past. In some situations this might not be an issue if the targets are “softer”, meaning that you can just create a standard monthly chart of Posted Forms and visually compare that to the assumed target value, as would be the case in my example scenario. It wouldn’t match the exact “last X days” dynamic value, but might be perfectly sufficient for analyzing the historical performance.

      If you need to actually capture historic data about what were the target and actual values at a given date, then one alternative is a method I describe in my earlier post about recurring goals, in which you would schedule a snapshot of the goal record values being stored into a custom entity periodically. Again, this wouldn’t necessarily be the optimal method for all goal scenarios, but it would allow a “configure once, run forever” type of usage for the goal management functionality. Especially if you’re leveraging the pinned goal Live Tile feature of the CRM Goals WP8 app, then this would allow you to continuously monitor a single goal record without having to go and change it as the time period of the goal comes to an end.

  3. Jukka, thanks for delving into the Goal/Goal Metric/RU Query dynamic. Is there a way that you are aware of to push roll up updates more frequently than every 24 hours? I’ve wanted to add some dynamic recurring goals but they are the type of goals that need to be updated on an almost continual basis rather than simply daily. Thanks in advance-


  4. @Joe
    Settings > Administration > System Settings. Change Roll-up Frequency to something other than 24 hours – 1 hour would be the minimum. If you have lots (hundreds) of goals it may not be appropriate to make them all recalculate too frequently.

  5. Hi, very interesting article. I’m pretty new at crm and I’d like some directions. Let’s say I have a double goal monitoring (yearly and monthly) is there any way I can set a workflow as a recursive operation (similar to a “for each” operation) to create all in once “monthly fiscal period” goals?
    In fact, I can create a workflow where I set all the 12 months goals but It is very repetitive so I would like to know if there is a way to do something like: for each “Fiscal Period (month)” in “FiscalYear2014” create goal…a sort of “for cycle” applied to workflow that, by the way can be a useful method for other situations too. I hope I was clear, thank you for your answer.

    • Alex, there isn’t a “for loop” feature directly available in Dynamics CRM workflow processes that would allow you to iterate through the values. Although you could perhaps use a counter field on a parent entity that you decrement with each round and then recursively call the current process as a child workflow to start it again, setting this up for the purpose of bulk record creation might not be a feasible approach (at least I’ve never explored it further myself).

      What I’d suggest instead is looking at the possibility to create the goal record by importing data from Excel into CRM. There’s a nice blog post by Gareth Tucker that shows a method for bulk creating goal records via the Excel export/import method:

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.