We’ve come to the last part of the article series covering the evolution of the Microsoft Dynamics CRM platform. We’ll close things off by taking a more detailed look into the process automation tools available in CRM 2013.
No-code Process Automation Tools in Dynamics CRM
The workflow engine of CRM was renewed in version 4.0 to utilize the Windows Workflow Foundation, which opened up a variety of new scenarios for building process automation functionality via the point & click workflow editor. In addition, it was now possible for developers to enhance the set of actions available within workflow rules by writing custom workflow activities and uploading their own assemblies onto the CRM server. Still, workflows were strictly behind the scenes type of actions that executed asynchronously, meaning after a few seconds or several minutes, depending on the workload of the async service.
With CRM 2011 the concept of workflows was moved under a new umbrella term called “processes”. Alongside the familiar workflow processes, there was a new process type available called the Dialog. These dialogs could be described as “interactive workflows”, in the sense that they contained a user interface with which the users would be able to interact. You ran the dialog process on a single selected record in CRM and were then presented with a “wizard” style UI consisting of pages with question and answer fields. The most common use case promoted for these dialogs was a call script that would guide the customer service rep through a predefined process, with branching logic available to modify the subsequent steps based on the answers given. The actions could be completed in real time or asynchronously in the background, but a user always had to consciously start the dialog in order for it to perform any operations on CRM records.
All of these features are essentially built-in process automation tools that a business analyst can use for developing a custom application that not only has the data model necessary for storing the business information but can also automatically execute business processes on it. As this no-code toolkit grows, so does the likelihood of customers deploying intelligent functionality built on top of it, which can significantly enhance the value of the CRM system to the end users.
CRM 2013 Process Automation Functionality
Unfortunately we won’t have enough space for a detailed comparison of the different process automation capabilities of CRM 2013 in this article, but I’ll quickly highlight a few things of interest. You can read a more in-depth explanation of these features from a previously released set of articles on my blog: Getting Your Head Around Dynamics CRM 2013 Processes.
The Business Rules feature is designed for delivering system functionality that executes immediately in the browser when a user performs an action. They are therefore the key feature for delivering a more responsive application that provides direct feedback and reacts to the choices that the user makes while using CRM. They do have limitations in this first version, such as the inability to access data from beyond the current record, but the potential they have and the opportunities they already present make it well worth of your time to explore the Business Rules feature.
Another highlight of CRM 2013 is the option added for workflow rules to be executed in real time. What may seem like just a small checkbox on the workflow editor is actually a major leap forward. By promoting the workflows from the background processes into the forefront, Microsoft has actually introduced a graphical editor for building you to build plug-ins. Again, just like with Business Rules, there is naturally far more that you can do with custom code and a proper C# plugin developed in Visual Studio, but the scope of automated actions that you can cover with the new real-time workflows in a typical CRM environment is actually surprisingly high. For example, you can now enforce a custom business process via a workflow, because a real-time workflow process can actually cancel a platform transaction. For example, if the values of a parental account record do not meet the criteria defined by the organization, you can stop any unwanted updates or status changes to the child record.
Traditional workflows and dialog processes remain important pieces of the process automation toolbox, although they haven’t been touched in CRM 2013. Understanding the right use case for each of these tools is definitely something that each CRM system customizer needs to spend time on when moving onto the latest platform version.
Advanced UI Customization: Then and Now
With all these cool features in CRM 2013, you don’t always fully appreciate the opportunities that they offer for the system customizer to configure a user interface that not only displays a static information form but rather adapts to the current situation based on other variables. To demonstrate the long road that we’ve travelled with the Dynamics CRM platform evolution, I picked up an example from a blog post on “advanced UI customization” from all the way back in 2005.
This example presents a very typical use case of utilizing the account entity to store information about various different types of organizations. Based on the value that a user enters in the account’s relationship type field, the account form should automatically adapt to this selection and only show other profile fields that are relevant for the relationship type in question. This is certainly a fair expectation from the end user of a business application and a well justified customization, since reducing the number of fields presented on a data entry form will definitely increase the likelihood of getting the users to enter information into the required ones, as they will hopefully feel that what the system is asking from them is relevant information.
Reading through the steps listed in the article from 2005 on what it would have required to implement such a feature back in the days is quite enlightening. The text includes terms like “create an HttpModule”, “event handler”, “stylesheet” and “Init() function”. These might make perfect sense to a web developer familiar with the task of building custom applications, but to a person who has simply been trained on how to use a packaged software from Microsoft, they are unlikely to provide much guidance on how the feature in question could be accomplished.
Contrast this with the way that CRM 2013 makes it possible to approach such requirements. All we need to do is go into the system customization menu and navigate onto a solution that contains the account entity where we want to add our custom business logic to. By launching the Business Rule editor, we can basically enter the logic that we want to implement by using plain English language. First we define a condition on when the rule should run, such a when the account relationship type is set to “Supplier”. Then we enter the resulting actions that should take place. In this case we want to say that a bunch of customer related fields should be hidden, by selecting the “set visibility” action type. The resulting output in the Business Rule editor reads almost like a functional requirement document that a business analyst would have written. Anyone can understand what it’s about and it is quite easy to figure out how it can be modified later on if the data model or the business requirements change.
Comparing the instructions on the left with the feature on the right leaves no doubt for which one is easier to implement. The relatively insignificant effort required for such customization tasks in CRM 2013 is a critical factor in driving the delivery of more responsive, more user friendly applications on top of the Dynamics CRM platform today.
“Everything Is Different in CRM 2013 Because…”
So, why is CRM 2013 a paradigm shift and the start of a new chapter for the product? My top three reasons are as follows:
1) It can be natively consumed via number of completely different client applications. The importance of the new form factor devices is likely to only increase in the future.
2) You can bring in your old customizations from the previous CRM version, but you’re unlikely to get a smooth user experience without rethinking some of them. Reaching the new usability standards will require new design work for your existing CRM solutions.
3) The type of business logic you can now configure in the product, instead of developing them via custom extensions, is really impressive. The product will only keep evolving on this front and allow the customizers to start focusing on the user interaction level of solution design.
Looking at The Road Ahead
One thing that every customer needs to keep in mind is that the product is now changing faster than ever before. The platform is evolving via updates like the recently released Service Pack 1, a.k.a. Spring ‘14 Release, for both on-premises and Online customers. The regular Update Rollup packages will continue to cover bug fixes and software compatibility updates, but alongside them we’re likely to see a steady stream of brand new functionality being rolled out via either Service Packs or annual releases of new versions. The roadmap for your CRM system development should be aligned with this release schedule communicated by Microsoft to take advantage of the latest functionality within a reasonable timeframe from the release, so that you don’t run the risk of getting left behind and accumulating technical debt that will force you to postpone features or develop custom solutions for problems that may have already been resolved in the latest Dynamics CRM version.
The product team has stated their intention to make the out-of-the-box user experience of Dynamics CRM better by focusing more on delivering ready to use applications. As an example, the CRM 2013 release includes a default sales process for the lead and opportunity entities, whereas in all of the previous versions you had to go through a number of customization steps to build something like that. The future releases are likely to contain more of these type of templates that will help you get started quickly with CRM. Regardless of whether you’ve built your own customized features for the same processes in the past, you might want to keep an eye on new functionality that Microsoft will be shipping with the product, since these might reduce the Total Cost of Ownership for your CRM solution in the long run.
The latest no-code features like Business Rules and Real-time Workflows are just the start of the journey towards an application that is highly configurable in the areas that customers will most often want to tailor for their own processes. The good news here is that you may be able to reduce the amount of development work in Visual Studio for delivering and maintaining your solutions. Keep in mind, though, that it will place more demand on the application specific skills for Business Analyst roles that can now assume greater responsibility of the processes and features implemented in the CRM system.
Finally, the biggest changes to Dynamics CRM are actually taking place outside of the CRM platform as we know it. Microsoft’s acquisitions during the past few years have focused very much on products that are either being brought under the Dynamics umbrella or that integrate closely with CRM. Like it or not, the cloud is where the biggest innovation is taking place and that is the delivery mechanism for the new products of Dynamics Marketing, Social Listening and Parature – not to forget also the unifying social layer of Yammer. You won’t see a single bit of these products ever being deployed to your own servers, simply because the services that they deliver are not feasible for being run from the on-premises environments. They will happily integrate with the core Dynamics CRM platform deployed onto your private servers, though, but you need to accept the fact that a growing share of services that your CRM system requires will be managed by Microsoft and offered from their cloud infrastructure instead of yours.
That’s it, we’ve reached the end of the Dynamics CRM Platform Evolution article series. Thanks for reading! If you missed any of the previous parts, then check out the links below. If you have any questions or comments, don’t be afraid to drop them in the box below.