Tag: goal management

  • 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.

    CRM_2013_recurring_goal_configuration

    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:

    Digital_Illustrated_CRM_Goals_for_Windows_Phone

    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?

  • Creating recurring goals with some workflow magic

    Goal management is one of those features in Microsoft Dynamics CRM 2011 that has a relatively high barrier for utilization. The initial thought of measuring the business results of your organization through a built-in mechanism in your CRM system resonates with almost any customer that you tell about goal management, yet the excitement tends to wear out quickly once they discover the effort required in configuring and maintaining the goals. Sure, if you’ve only got a small organization and set goals on annual or quarterly level, it’s not such a big burden to key in the goal records with metrics and targets. But what if you’d like to measure something on a more real-time basis, like monthly or weekly? Even daily? Not such a fun thought anymore, now is it?

    There are creative workarounds available for generating goals for a larger number of data points. The most practical tip I’ve come across has involved copying goal records by creating a dialog process to streamline the steps required for reproducing existing goals. I originally read about it from a presentation by Richard Knudson on Scalable Goal Management in Dynamics CRM 2011. You can view the slides from eXtreme CRM 2011 Las Vegas in PowerPoint Online or alternatively read this blog post by PowerObjects that walks you through the dialog creation process.

    A different way to define goal time periods

    Sometimes what you need in terms of process measurement isn’t down to the detailed level of setting individual target values for each week or each user. Maybe you have a steady weekly target of X records in a particular state and you’d just want to easily see how you’re currently performing against this target. Here’s were a more recent article by Richard comes in handy: Goal Criteria and Dynamic Goals. The big message here is that you’re not actually forced to use the From and To dates of a goal record to determine the measurement period. You can basically set a goal to be running for 20 years and instead limit the number of records evaluated by the goals Rollup Query through a dynamic date criteria like “last 7 days”.

    Whit this little trick, setting up a dashboard that shows the current performance is super easy, no matter how short your goal time period is. The charts will update once per day based on the default roll-up recurrence  frequency, so displaying the difference between the target and the actual value for metrics like leads qualified or calls made requires you to only set up the goal once per each variant (owner, status, type…) but not the different dates. Just stretch the goal period to be as long as you like and control the dates in the Rollup Query definition.

    The downside of this approach is that the goal measurement is completely dynamic, meaning past values will leave no trace. Sure, you could enable audit on the goal entity to keep some form of results history, but since the audit data is not available for views, charts or even custom SQL reports (without some hacking), it’s not quite as easy as with the traditional method of creating goals for each time period separately.

    Tracking historical results without manually creating goals

    Another recent Dynamics CRM blog post favorite of mine comes from Yaniv Arditi. In his three part series (part 1, part 2 and part 3) Yaniv presents a model of how to implement an asynchronous batch process in Microsoft Dynamics CRM. Best of all, in his final post he provides a solution file that you can download and apply in your CRM organization.

    What does the solution do then? Basically it is a way to implement a much needed but currently missing feature of Dynamics CRM: easily scheduling recurring workflows on a group of records. With this solution you can specify a batch process that runs every X days, performs a query of the required CRM records and then initiates a workflow process for each of those records found. You schedule it once, leave it running and the related process will always create a new waiting instance of itself once it stars at the defined intervals.

    What’s the Fetch XML in there? It’s the Target Records Definition that determines for which records the workflow process selected in the Action Workflow lookup field will be executed. Where do you get the Fetch XML then? That’s easy: from any Advanced Find view, just by clicking the “Download Fetch XML” button on the ribbon.

    To put this solution into work together with the concept of dynamic goals, I’ve got the following sample use case: track the number of active cases on a daily basis and compare it with a target value. This is an example of a status metric that’s not so simple to directly calculate from the records in CRM. To produce a figure like helpdesk queue length you would need to not only retrieve the number of cases created on any given day but also compare it with the closure dates of cases. It would be much easier if we could just take a snapshot of the currently open records on a set interval and store the information into CRM. So, why don’t we do just that?

    First, let’s set up a custom entity called “Snapshot” to hold the data for us. We’ll establish relationships to both Goal and Goal Metric, then add the necessary fields for holding the types of data we want to track, in this case integer values for target and actual.

    Next we need an on-demand workflow process that will create these Snapshot records for us from the goal data.

    The batch process record shown previously has already been configured to perform the task we want: based on a daily schedule, retrieve all the goal records for which we want to be tracking the snapshots. All we need to do is set its Status Reason field to Scheduled, save the record and the process kicks off. The Asynchronous Batch Process Pattern solution will run every day (unless residing on a shut down virtual machine, like in my example image below), triggering the Take Goal Snapshot workflow, which in turn will create a daily snapshot of the actual and target number of active cases in the system. You can naturally visualize the history data with a chart, too. If you have different goal owners or several different goals to take snapshots of, just create the necessary views to filter the data shown.

    To summarize, in this solution we use the Goal record as merely a “calculation machine” that produces the Actual Integer value we need. It also holds the data for the Target Integer, with the ability to update this figure if the targets should ever change. The scheduling is managed by the Batch Process record. It takes care of initiating the Take Goal Snapshot process for the selected Goal on a daily basis, which results in the creation of the Snapshot records you see above. All we had to do was to create each record once and we can leave this solution running for as long as we need.

    I think this is quite a wonderful example of how you can mix’n match the different functionality of the Dynamics CRM platform to come up with a new feature that doesn’t exist in the product right out of the box, yet it can be implemented by using the platform components and supported extensions developed on top of it. Thanks again to both Richard and Yaniv in providing me with the building blocks for implementing the recurring goal solution.