Improving internal collaboration has been the driving idea behind Dynamics CRM Activity Feeds. Even though the efficient usage of stream-like notifications may not be immediately obvious to users who’ve come to think of CRM data as permanent records presented in views, they provide a great enhancement on top of the existing customer data that focuses on answering the “what’s going on right now?” question, rather than the “what/who/how much” types of queries that CRM systems typically have focused on. Joel Lindstrom wrote a great article on the Customer Effective blog about how Activity Feeds are different from RSS feeds, which I recommend everyone to read.
Originally launched in the Q4 2011 Service Update (R7), the Activity Feeds solution is about to receive some enhancements in the upcoming R8 release that will allow users to better filter the content of their wall and also click “like” on posts. (Note: contrary to some comments, the “unlike” feature will most likely be simply the undo action of “like”, rather than a real “thumbs down” reaction.) Compared to other social business applications like Yammer, there still doesn’t seem to be built-in support for features such as groups or hashtags that we’ve come accustomed to use on many platforms. I’ve already written about a DIY approach for leveraging custom groups to follow posts on specific topics. Next, I thought I’d see how we could make use of the hashtag concept in Dynamics CRM.
What’s a #hashtag & what’s it good for?
Whether you’re an active Twitter user or not, it’s likely you’ve come across a person using the # sign in his or her online writing. What started out as a user driven policy of grouping tweets has later turned into a whole movement that’s gotten both users as well as commercial entities get very interested on following, measuring and encouraging the use of #hashtags on social media channels.
Twitter allows the users to click on hashtags turned into hyperlinks, thus enabling them to view all recent posts containing the same hashtag. Although Dynamics CRM is a flexible platform for LoB application development, tweaking the default Activity Feeds solution web resources to support this kind of filter functionality wouldn’t be exactly a walk in the park. However, we can certainly explore the concept and see what else the platform might have available for us that could make the Activity Feeds more intelligent. Hmm, how about workflows?
While the post box on a wall doesn’t currently allow us to include any other “magic characters” apart from the @ symbol used for performing mentions, the pound sign does have one clear advantage: it’s rarely used for other purposes than a hashtag (you might have the occasional shouts of “we are #1!” by excited sales reps appear on the wall after they close a deal, but that’s about it). This means we can quite safely use the # symbol as an identifier for our own little magic words.
Triggering processes from wall posts
Suppose you’re browsing through your personal wall on a Windows Phone 7.5 mobile while sipping on a Venti Latte at Starbucks, utilizing the free Microsoft Dynamics CRM Mobile app. You spot an item in your feed that you want to take note for further action once you’re back at your office desk. How are you going to do that?
While an email inbox is hardly a good way to manage a list of open tasks, Activity Feeds are even worse as action items, because they’re not even meant to be persistent records with read/unread status or flags/categories. The stream flows on as other CRM users perform actions such as winning opportunities and solving support incidents, which means that the item you spotted while enjoying your coffee may well be buried into the depths of history the next time you glance at your wall. Posts are merely notifications about something, not the object itself.
Instead of resorting to disconnected manual notes, what you could do is track the regarding record of the interesting wall post as a new task on your own list of CRM activities. All we need is the creation of a very simple workflow rule to achieve this. Create a new workflow process on the Post entity and mark it to be started whenever a new Post record is created.
What the hashtag concept will be used for is evaluating the content of a Post and seeing if the workflow process should be run or not. In our example, let’s use the hashtag #task to identify a Post which we would like to trigger the creation of a new task record. You might also want to check that the Post source is Manual Post instead of Auto Post (more about that later).
In your workflow rule definition, create a new task record and insert the contents of your post in the subject line. Set the regarding field to be the RegardingObjectId of the Post, owner as the person who created the Post, and a due date of 1 Day After Created On. Save your process, activate it and you’re all set.
Just type #task and let the system take care of the rest
In our example, we’ve spotted a Post regarding a new opportunity record. (Ok, so we’re doing this from the web client and not the mobile one, since believe it or not, screen capture on WP7 requires an unlocked device!) We want to mark an action item on the record for us, so we post a new item on the record wall, using the hashtag we defined: “#task Ask Chris for customer references”. Please note that simply commenting a Post will not trigger a workflow, since the PostComment entity is not available for workflows (bummer), so make sure to type a completely new Post on the item of interest.
After the Post is submitted to CRM database, the workflow is triggered and a new task will have been created on you My Activities view in a matter of seconds. Should you ignore your CRM list once you return to the office (shame on you!), the due date reminder we set on the task will cause your Outlook (and probably also your mobile phone) to alert you about the action item you created for yourself.
Drive any process with #hashtags
As you might know, the free mobile client does not allow you to create or update any CRM records, you can only read them on your mobile phone (unless you want to open the somewhat less pretty Mobile Express client). The only exception is Activity Feed Posts, which you can type on your Windows Mobile device and get the data updated into CRM in real time. Together with the creative use of hashtags and workflow processes, we can actually trigger also some other data entry and updates while on the road, as you saw from the #task example.
While you can’t create a workflow that would update the parent object of the Post, you can create new child items for it. In the example below, we’re creating a new case by using the #case hashtag.
The steps of the workflow process configuration are as follows:
- Check if the Post contains the text #case
- Create a new case record, set the title to post text, set customer as the RegardingObjectId(Post)
- Create a queue item for the new case and move it to the Support queue for CSR’s to start working on
- Wait for the case status to change from active to something else
- Create a new post on the customer wall, containing a summary of the information recorded on the case after its creation
- To finish the process with confidence on both sides, also send a direct email to the person who initiated the case creation with his/her wall post
A final word of warning: since you probably don’t want a workflow generated Post to trigger any new workflows accidentally, it’s a good idea to always set the right Post Source value (Auto Post, Manual Post) and also filter these in your workflow conditions. As an example, if you post “#case Customer asks for refund” and then later on use it as the case title that gets inserted into a new Post, you’ll soon be stuck in a loop of each case resolution creating a new case…