Related sites:

Newsletter: Perspectives on Power Platform

Company: Niiranen Advisory Oy

Activity Feeds are here, so “What’s New” in CRM then?

Microsoft Dynamics CRM Q4 2011 Service UpdateIt’s been nine months since Microsoft Dynamics CRM 2011 was released. Given the large number of new features and functionality included in the new version, I’m sure many organizations have been able to keep themselves busy with thinking about how to leverage all of them. Anyway, the time is now upon us when we see the first true deliverable from the new agile development path that the Dynamics CRM product development team has adopted. The “Q4 2011 Service Update”, “November Service Update” or “CRM Online R7”, however you like to call it, gives a taste of things to come, as new features and improvements are now introduced bi-annually instead of a big bang release every 2-3 years.

There’s lots of neat things included in the update, such as multi-category charts, user access auditing, lookup and date fields for dialogs, ignoring null values and inactive records in duplicate detection rules etc. Have no doubt, though, this release will be remembered from the Activity Feeds, so let’s proceed straight to them.

More than just an accelerator for CRM

Microsoft has split the delivery method of the Activity Feeds functionality into two tiers. The platform level changes are delivered with Update Rollup 4, which brings us a selection of new default entities, such as the feed Post. These will provide the building blocks not only for the visible Activity Feeds released now but also web services API enhancements, which are covered in the 5.0.7 update of the SDK.

The Update Rollups can nowadays be considered pretty much as “business as usual” hotfixes like the ones released for other Microsoft products, both on server and client side, as they are delivered through the common Microsoft Update mechanism. Testing and planning for the Rollups is of course very much recommended still, as significant changes can be included in them, and yes, they do occasionally break compatibility between versions. Furthermore, the Update Rollup 5 required for Activity Feeds to function cannot be uninstalled if things go wrong.

Anyway, unlike the hotfixes that can be expected to be installed on almost all CRM environments, the Activity Feeds user interface components will probably remain missing from many instances. Why? Because there is no automatic delivery method for them, unless you are using a CRM Online environment that has been provisioned after the R7 release became available. You see, Activity Feeds still are kind of like an accelerator package, as the solution file will need to be downloaded from the Dynamics Marketplace and installed by the system administrator.

Download the Activity Feeds solution for Microsoft Dynamics CRM 2011 from the Dynamics Marketplace

Not even installing the solution file and publishing the customizations is enough – you still need to configure them. The menu item for “What’s New” will appear in the UI after the solution installation, but none of the entities in your CRM have yet been enabled for Activity Feed posts. To do this, you’ll need to navigate to Settings and go to Activity Feeds Configuration menu. Create a new Post Configuration record for each entity that you wish to relate posts to. The configuration UI of the solution is not too nice, as you’ll actually need to use the logical name of the entity rather than the display name. So, to enable the new functionality for the user entity (which is the very first thing you must do!) is enter the value “systemuser” and click save. Make sure you check the box for “enable walls for this type of record form” and don’t forget to publish the entity’s customizations after clicking on save.

Activity Feed Post Configuration

What’s a “wall”? If you’re on Facebook (and who isn’t), you’ll know this refers to the place where the posts related to a user will be displayed in a descending chronological order. Now, in CRM it’s not only users that can have walls, but any entity for which you have created a Post Configuration entry for. Even your custom entities, like “project” or “event” can be set to have their own Wall. However, bare in mind that not all the system entities are supported for the Activity Feeds functionality, so you can’t have a discussion related to, say, competitor or product records (which kind of sucks, as those are some very common topics for employee discussion around the water cooler, but guess you’ll still need to get away from your desk every now & then). For a complete list of supported system entities, see this page on the SDK.

Account record wall

As you can see from the image above, the wall is actually a web part that is presented on a new tab, that is located before the first default tab (general). The tab will be collapsed by default and the form actually scrolls to the general tab right after the form script is loaded, so a user may not notice anything new on the form. However, if you click on the anchor on the left side navigation, the Record Wall will be revealed in all its glory. Here the user will have the option of adding the record into his list of followed CRM records, see who else is following it, and of course post an update on the wall. (By the way: if you have multiple forms per entity, you’ll need to add the Record Wall web parts manually, by following these instructions.)

There’s also a Personal Wall that shows the user all the content from followed records, and that’s the first entry visible on the updated sitemap for Workplace. What’s really nice is that you have a link right after the “What’s New” header, which will allow you to pop up the wall in a new window. This way you can have the feed view quickly available for you at any time, no matter with which CRM entities you are currently working on in the main application window.

Activity Feeds personal wall

Furthermore, every user has a User Record Wall, which would be identical to the concept of a Facebook profile page. Sorry, no timeline design available here yet!

Not just for mindless chatter: business logic for Auto Posts

If all that Activity Feeds provided was the ability to chat with your colleagues or manually post updates related to records, then it would have a tough time competing with established enterprise microblogging apps like Yammer. Luckily the Dynamics CRM platform can offer much more than that. By allowing certain events related to CRM records to generate content for the Activity Feeds the system can actually serve as a tool that removes the need for you to email information about business events or type updates into a microblogging app. A traditional way to demonstrate the CRM workflows has been to create email alerts on closed opportunities, but now you can reduce the clutter in your inbox by moving these into the right context (opportunity form) with the ability for users to comment and see others’ comments.

Activity Feeds Auto Post

The way to configure what gets posted on the walls is through the Activity Feeds Rules menu in the settings area. It’s here where you can enable or disable rules that have been tied to certain events, such as qualification of a new lead, case routed to a queue, appointment closed for an opportunity and so on. If you follow the record that these events have been associated to, you’ll see a pre-formated Auto Post on your personal wall after the event takes place.

Activity Feeds Post Configuration Rules

Great, so how do I create new Post Rule Configuration records? Well, unfortunately, you don’t. You see, all the entries visible in the list have been created as the result of enabling Activity Feeds for an entity. There is no UI available for creating new rules, nor modifying existing rules – all you can do is change the status. If you want to have different events triggering Auto Posts, you’ll need to either use a workflow rule or plug-ins. Here’s a quick example of a workflow that executes every time a new contact is created, checks whether the parent account relationship type is “customer” and then proceeds with creating a Post record with the contact details inserted as dynamic text. Note that the RegardingObjectId is set to the account and not the contact record. This is very important, since a new contact will not have any users following it at the time the record is created into the database, so the Auto Post would only show on the Record Wall but not the users’ Personal Walls.

As we see from this example, it makes all the difference what kind of a following strategy the CRM users adopt. How to get the right amount of posts in the feed, without missing out on any important pieces of information? Also, how to handle the process of unfollowing? There’s a limit to 5000 records a user is allowed to follow, and managing a list as long as that will require some planning.

Activity Feeds Workflow

I also tried this the other way around, with a workflow rule that would be triggered based on User Posts creation, which would email the post text to a user, but apparently that particular field is not  compatible to be inserted into workflow generated records (even though the workflow editor allows you to select it). Also, it’s worth noting that even with plug-ins you can only create Auto Posts with text content, not the rich XML content that the out-of-the-box Activity Feeds Rules utilize to present their information with customized images and other tricks. Furthermore, while the default Auto Posts will be presented in the user’s language, this is not available for custom Auto Posts yet.

So, is this now Social CRM?

No, not quite yet. The first release of the Activity Feeds solution for Dynamics CRM is squarely focused on introducing the data model and user interface components needed for sharing information in a more modern, social way inside the corporate firewalls. The customer (the first letter in the CRM acronym) has not yet been invited to be a contributing member in this internal community, as all the data in the Activity Feeds will be from either employees or  internal business rules configured in CRM. To really step outside of the traditional silo of CRM and adapt it to the world we now live in, where the customers are A) social and B) in charge, a lot more will be needed. To get an idea of Microsoft’s roadmap for developing their Dynamics CRM platform to become a business hub that supports input from external communities, be sure to check out this presentation on Slideshare, especially the “Beyond Wave 1” part.

Building your Business Hub: Microsoft Dynamics CRM and Social Technologies

However, as there is an API available already today, expect to see new 3rd party ISV solutions that tap into the CRM feeds and push content from external networks right into your lead or contact walls when they post content on Twitter. Technically it’s not difficult at all to achieve, but a more important aspect to consider is how you will make that customer contributed data add value to the CRM users and enable them to gain new insights based on it. It’s a fire hose of data out there in the social networks and online communities, so simply linking up your CRM system to that data pipe may not be a smart choice.

Even for the internal communities use case, it’s very important to remember that just because you built it, doesn’t mean they’ll come. In this case “they” means the CRM users, who shouldn’t just be expected to automatically adopt the new social features of Dynamics CRM, even though they have been installed into their system. Not only will the new ways of working require support from top management, a plan on how & why these new information management capabilities will be leveraged, but also a conscious effort from Dynamics CRM system customizers and administrators on making these new features approachable, usable and relevant for the everyday tasks that the CRM users need to perform.

Thanks to the Activity Feeds in Dynamics CRM, we now have a lot more toys to play with and certainly a lot to learn about them. So, what are you waiting for? Let’s get to it!

13 Comments

  1. Its not immediately clear that Activity Feeds are supported for custom entities. Any thoughts or insights?

    • Yes, the activity feed posts and record wall can be enabled for custom entities. You’ll need to go through the same process as with default entities: create a new Post Configuration record, enter the schema name of the entity (such as new_project), check the box for enabling the wall, then publish the entity customizations. The form will be appended with the wall tab, users can start to follow custom entity records and use all the basic functionality. To show them in the Windows Phone mobile client, you’ll need to enable the entities for Mobile Express usage. Of course the Post Rule Configurations for the custom entity will not exist, so any automatic feed posts will need to be generated by workflows or plugins.

    • Thanks Mani, an interesting post in your blog as well. The whole concept of following records will require CRM users to rethink how they wish to consume the information available in the database. Walls and views are two very different methods of presenting the data, but I bet many users will wish to see a hybrid of the two, such as “show me all the latest updates related to opportunities from region X”. Right now this doesn’t seem to be possible, as the regarding object of the Post record is not available as a relationship in Advanced Find, so you can’t utilize views for showing the Post data with specific query criteria. It’s a shame, because the Post concept itself would be the logical place for recording these latest events.

      Instead of just seeing what’s new regarding all the records or all the users I follow, it would be great to be able to filter this data even further. I’m pretty sure we’ll eventually see a search functionality or even hashtags added into the Activity Feeds feature set. What we have in the Q4 2011 is a great start, so let’s hope the Microsoft Dynamics CRM team keeps investing in the development of this new method of surfacing relevant information to the CRM users.

  2. How can i enable Record wall to competitor Entity. If it is possible please provide the sample links.

    • Unfortunately the default entity Competitor is an organization owned entity, which means Activity Feeds cannot be enabled for it. The list of supported default entities is available at: http://msdn.microsoft.com/en-us/library/hh547386.aspx. If you create a custom entity for Competitor, you gain the ability to use Activity Feeds but lose some functionality like tracking lost opportunities to specific competitors in the opportunity close dialog. Of course with custom dialogs & reports the features could probably be replicated for your own entity.

  3. How can i Mask/Hide the Case Title depending on the value of the customized field?
    I have a customized field called “IsSensitive”. If this field value is “Yes”, i do not want to show the Case Title. How can i achieve this?

    Thanks so much in advance.

    • Alice, what you should determine first is whether it’s enough to hide the field on an entity form or also prevent it from showing up in views, Excel exports, reports etc. The first option could be satisfied with a form script or even a Business Rule if using the CRM 2013 version. The latter option would fall into the territory of Field Level Security, where you could determine the visibility of specific fields to only specific security roles.

      Unfortunately in your scenario neither one of these would be as straightforward to implement as they might be in some other situation. The case title is the primary field of the case entity. This means it will show up in many other locations than just the form: in the form header and in lookup fields for child entities (like activities). Hiding it would therefore require potentially unsupported customizations. Also, Field Level Security can’t be applied to system fields, only custom fields. Furthermore, FLS can’t be controlled via a record attribute but is instead managed via user roles that apply to all records.

      So, instead of hiding the case title you might want to explore an option where the field contents is copied to a custom field on the case entity and the actual value overwritten with “(Sensitive)”. You’ll have a better chance of staying within supported customizations in this manner rather than trying to hide the primary field. You’ll still probably need to develop a custom plug-in to filter the view contents if hiding the field on the form is not enough, though.

Leave a Reply

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