A Few Notes on Convergence 2015 Announcements

A Few Notes on Convergence 2015 Announcements

Hey, did you notice what happened in Atlanta last week? Yup, it was again that time of the year when the Dynamics CRM & ERP crowd gathers together at Microsoft Convergence. Instead of packing my bags and hopping on a plane, I once again opted to staying at the comfort of my own home and instead opened up Tweetdeck to keep an eye on all the great content being shared by Dynamics community members on the social networks.

With Satya Nadella himself opening up the event, it was clear that this year Convergence was going to be about a much broader spectrum of Microsoft solutions than just the Dynamics products. Although Satya is a former CRM blogger, he wasn’t there just to prove he still can build cool mashups with the XRM toolkit but rather to tell the higher level story of what business benefits companies can expect to gain from using the latest and greatest cloud technologies that Microsoft today offers. This is of course the fundamental reason behind why applications like Dynamics CRM are being deployed, and with the ever growing complexity of technologies intertwined together to support digital business, it’s important to increase the customers’ awareness of the types of end results they could be pursuing with the use of this technology.

CRM_system_is_just_part_of_the_picture_2

So, while technology is just the means to an end and CRM is just one (central) part of a modern business technology stack, it’s still the area in which I personally strive to deliver the biggest positive impact to our customers. That is why I’ve decided to write down a few notes about what Convergence 2015 announcements you should pay attention to if you also happen to work with Dynamics CRM.

CRM Online Spring ’15 (v7.1) Is Almost Here

Known by the codename “Carina”, the next CRM release scheduled for this spring was officially revealed at Convergence 2015. The “What’s New” page for the upcoming version is already live and so is the admin content on TechNet, as well as the developer content on MSDN. The official name for Spring ’15 appears to be “CRM Online 2015 Update 1“, which is a bit of an awkward choice since based on the aforementioned documentation Vega a.k.a. CRM 2015 was called “CRM Online 2015 Update” (without a number, so presumably “Update 0″). Oh well, we all know product marketing names at Microsoft are an eternal mystery, so it’s easier if we stick to the recently simplified version numbers instead. Vega was CRM 7.0 and this next update is CRM 7.1 (but before that we’ll still get UR1 which is 7.0.1…).

Okay, enough with the numbers. Considering that 7.1 isn’t a new Dynamics CRM major version release but merely a minor version, there sure are plenty of new features and enhancements packed into this next release. I won’t try to list them here as you’re better of reviewing the above links, but the one feature that you simply can’t miss is the new Navigation Bar. You can see it live in action in this video and let me tell you from my experience with using a Carina preview org, it’s love at first click!

CRM_Spring15_NavBar_1_small

Arguably the single biggest gripe people had with the refreshed UI introduced in CRM 2013 was the Nav Bar with its ability to only show ~7 menu items on a single screen, then requiring you to scroll right and play really close attention to not moving your mouse cursor too far or the whole menu would collapse. Microsoft has now taken the menu structure introduced in Dynamics Marketing (which has a lot of menu items in its navigation) and brought it over to the world of Dynamics CRM. We now get a “hamburger” menu button that opens the first level (Sales, Service, Marketing, etc.) and clicking on one of them shows us all the included menus aligned vertically, broken down into subgroups. While this does show many more items to the user at once, it’s still a considerably smaller cognitive burden than trying to remember where you need to click to reveal a menu item that’s not on the screen, which happens all the time with the current version.

The initial reaction to the new Nav Bar from the CRM folks over on Twitter was extremely positive. This feature in combination with the revised MRU menu (most recently used items) that supports pinning records and views into the Nav Bar is certainly going to improve the user experience of Dynamics CRM considerably. Although it’s still advisable to optimize the structure and contents of the Sitemap to remove unnecessary items and promote the most important menus, the larger menu canvas is very much needed in more complex environments with a high number of custom entities that simply need to be shown to the users somewhere.

CRM_Spring15_NavBar_3_small

The one thing that’s somewhat inconvenient about this updated navigation is that it will be initially made available only to CRM Online users. Yes, in case you have missed it, Carina / v7.1 is an Online-only release that will not be made available to on-premises customers. This was the initial plan already one year ago with the Leo release, but that then eventually turned into an Online+onprem release as Microsoft Dynamics CRM 2013 Service Pack 1 was made available for download to all CRM 2013 customers. Don’t expect to see such a change of heart this time around. The new features announced are expected to become available to on-premises customers in the next major release “Ara” (8.0) later this year. [Read more…]

Monitoring Rollup Field Values with Workflows

Monitoring Rollup Field Values with Workflows

In an earlier post I demonstrated how you could leverage the new Rollup Fields feature of Dynamics CRM 2015 to summarize the behavior of your customers and produce interesting metrics that could be used for targeting your sales activities towards the most active individuals who have reacted to your email and website content. The example included using data collected by ClickDimensions on the clicks on email marketing message links and page views on sites that contain the visitor tracking script. With the help of Rollup Fields and this marketing automation data stored directly into Dynamics CRM database under the contact records we were able to add the following custom fields onto our contact entity form:

  • Latest Email Link Click
  • Total Number of Link Clicks
  • Latest Page View
  • Total Number of Page Views

While this allowed us to create a nice, sorted view of the contacts who’ve been interacting with our online content most recently, this information is still just data sitting in the CRM system, waiting for the users to go and discover it. Wouldn’t it be great if we could actually build an automated business process around it and make sure that the owners of these contacts who are clicking the links and visiting our website would be notified about these events? Sounds like something that a CRM workflow could help us with, right?

CRM_2015_rollup_field_Clicks_5

Unfortunately there are a few limitations when it comes to the new Rollup Fields in CRM 2015, as we discovered in my previous article. For example, if we would like to trigger a workflow process instance whenever the number of Link Clicks goes above a certain threshold, this isn’t something we can do directly by tapping onto the onChange event of the Total Number of Link Clicks field, because Rollup Fields cannot be used to trigger a workflow.

Ok, what if we lower our expectations a bit and don’t even attempt to perform these actions in real-time for each event? It might be perfectly acceptable from a business perspective to have a process run once every night, inspect which contacts had clicked on the tracked links and then send out notifications to the record owners in one go. Surely that’s something Dynamics CRM can do, right? Well, let’s see if we could put together a solution like this.

Batch Processing CRM Data with Workflows

It’s quite a common requirement to perform checks or updates to CRM records based on a predetermined schedule. Although you can use workflow processes to be triggered on an event that takes place on CRM records (as long as it’s not on a special attribute like a Rollup Field), there isn’t actually any ready-made feature available in the CRM platform that would allow you to schedule the workflows to run every X hours, every night, once a week etc.

The traditional approach for meeting such requirements for scheduled updates would have been to develop a small custom service to run on the CRM server machine. If you had access to other systems with interfaces to CRM like SQL Server Integration Services (SSIS) then these could naturally be also leveraged here. In the brave new cloud era where the number of Windows servers at your disposal for running these type of applications is rapidly decreasing it’s sometimes challenging to find a place where such schedulers could be deployed to, for performing small batch jobs that your CRM business processes would require. Wouldn’t it be convenient if you could build all of this by using just CRM Online and nothing more?

Get ready for the good news: yes, you can schedule a recurring workflow to handle batch updates within Dynamics CRM, no external servers needed. The one thing you need, though, is a clever little custom workflow activity to extend the standard features of the CRM workflow engine. In this example we’ll use the Scheduling recurring Dynamics CRM workflows with FetchXML solution developed by Lucas Alexander. What this solution does is it gives us the possibility to:

  • Determine a query criteria for the bulk job
  • Schedule this job to be run hourly/daily/weekly
  • Run our own workflow process for all records returned by the query

CRM_schedule_recurring_workflows_Lucas_Alexander

The above diagram by Lucas outlines the logic behind the solution, but you really should go and read his blog post on the details of this approach, or check out the source code for the custom workflow activity on MSDN code gallery if you really want to dig deeper into the topic. For the purpose of today’s scenario, I’ll show you how I’ve used the solution in conjunction with the aforementioned Rollup Fields.

Sending Out Notification Emails Based on Rollup Field Data

In my example I’ve determined that it’s the Latest Page View datetime field on a contact that should be driving the business process. Once a week I would like to notify the owners of customer contact records if the contact has visited our website during the last 7 days. Turning this into a query criteria, it would mean that during the time of each batch processing I’d want to retrieve all contacts where the Rollup Field for Latest Page View contains a value greater than today minus 7 days.

I will need to turn that query definition into a language that Dynamics CRM understands, and that is FetchXML. Sounds a bit tricky, eh? Lucky for us, CRM comes with a nifty lil’ FetchXML generator called Advanced Find, which I’m sure you’re already familiar with. All we need to do is find Advanced Find, specify the aforementioned query criteria for the contact entity and then click the “Download Fetch XML” button in the ribbon to grab the XML text into Notepad.

CRM_AdvancedFind_FetchXML

Next we should think about what action we want to perform on the contacts who match the query criteria. In this scenario it will be the sending of an email message to the owner of the contact. It only needs to be available as an on-demand process and there isn’t even a requirement to have any query criteria enforced here, but I added the 7 day rule here as well, just in case I end up using the same process in some other scenario.

CRM_page_view_notification_workflow

The final step is to create a record for the new Scheduled Process entity, which has been added to CRM in the solution packaged developed by Lucas. On this form I’ll first give a descriptive name to the Scheduled Process and then define it to be related to the contact entity. In the Workflow lookup field I’ll pick the workflow process you see above, and for the Query field I’ll paste in the FetchXML we grabbed from our Advanced Find.

CRM_scheduled_process_page_view_small

All that’s left for us to do is setting the actual schedule for this process. The weekly option in the dropdown menu suits our purpose best in this scenario. By adjusting the Next Run Date I can configure the email notifications to go out in the morning, so that they reach the inbox at an optimal time.

CRM_notification_website_visit

Alright, that concludes our scenario for using CRM 2015 Rollup Fields together with workflow processes to deliver actionable insights to our CRM users on how customers are responding to our marketing activities. What I personally find very interesting in this example is the ability to take a piece of existing data that’s sitting inside our CRM database and first turn it into a metric that’s easily viewable in the CRM UI, then further amplify its business impact by configuring conditional processes to deliver it as a notification to the user who should become aware of it.

None of this required a huge technical development effort or investments into separate reporting systems. All we needed was to take a new feature that was added to the Dynamics CRM platform as a part of the 2015 version rollout (this being a CRM Online environment there wasn’t even an upgrade project to worry about), combine that with an excellent open source enhancement to the platform’s workflow functionality, then just design a solution that delivers new business value from existing data. If you look at your own Dynamics CRM system and the data that’s being collected into it as a part of your business processes, then I’m pretty sure you could also identify potential use cases for similar type of enhancements, built with CRM’s ever evolving process automation toolkit.

CRM Navigation Hacking with Bookmarks

CRM Navigation Hacking with Bookmarks

When you spend your days working closely with an application like Dynamics CRM, such as when customizing or developing solutions for your customers, your mind will often times be working much faster than the application. You know exactly which feature you want to access, but if you need to navigate through several levels of menu hierarchies to get there, the process may be too slow to keep up with your train of thought, making it hard to concentrate on the actual task at hand.

My personal strategy for reducing the cognitive burden involved with navigating inside Dynamics CRM has been the use of smart bookmarks. Here’s some tips on how I’ve set up my current working environment. If you have any similar CRM productivity tips of your own, please do share them in the comments section below.

Launching New Tabs from “Quick Nav”

While piling up a mountain of open browser tabs may not be great for your productivity either, the cost of moving between tabs is still lower than constant in-app navigation between menus. When working with CRM customizations, I always tend to have the end user content in one tab (views or record detail forms) and the Solutions view on the other one, so that I can quickly access the component I want to modify and validate the results with an F5 on the other tab.

Dynamics CRM 2013 and beyond unfortunately don’t support the standard convention of right-clicking on menus and opening them up in a new browser window. Nothing stops you from opening CRM in a second tab and working with the settings via it, but this means you always have to start from the first page and navigate back to where you wanted to go. To speed things up a bit, I keep a “Quick Nav” available menu in all my browsers, created as a folder in the favorites/bookmarks bar that I also keep open at all times.

CRM_QuickNav_menu

So where exactly do those bookmarks lead to? A specific menu in a certain CRM organization? Nope, those are generic bookmarks that apply to the currently open CRM organization. They work in any CRM 2013 or CRM 2015 environment, on-prem or Online. You see, they are not actual bookmarks with a static URL pointing to a resource somewhere, rather they are bookmarklets that contain a short piece of JavaScript. [Read more…]