Salesforce Chatter Topics / Hashtags - Best Practices
With the advent of Salesforce.com Chatter, social media and more collaborative means of communicating are beginning to emerge within organizations of all sizes. Say goodbye to searching multiple internal repositories of information; Chatter enables the savvy organization to centralize all forms of communication and related files around a central topic.

So what's the most efficient and effective way to leverage Chatter? How does one go about best using topics (aka hashtags) within their Chatter deployment?
Well, a good place to start thinking about Chatter's best practices is with something that is perhaps very familiar to you: Twitter. When comparing Twitter and Chatter, you can draw many parallels between the two, but the one commonality that we'll focus on here is the hashtag.

Hashtagging has existed as Twitter functionality since the advent of Twitter itself. In Chatter, it appeared as a feature in the second iteration of the application and was dubbed "topics." So, how to best leverage topics in your Chatter deployment? Can you use Chatter topics in much the same way that you employ Twitter hashtags? Sure, a good starting point is to do exactly that. But you may find that there are some key differences that exist between Chatter and Twitter that make the generic use of topics in Chatter sub-optimal process at best.
For one, inherent to Chatter is the capability to have a "news feed" for each record in each type of object in Salesforce.com. This differs from Twitter in that with Twitter, you only have one news feed that displays all tweets from the folks that you follow. "So what?" you may ask. Well, in your Salesforce.com deployment, some of these objects or records may be locked down so that only a subset of users have access to the feeds of those records. What if you'd like to direct your Chatter posts to only users that are members of a certain group (or series of groups)? You'd have to click through to each group record and post directly to each group feed. This becomes more burdensome if there are multiple groups against which you'd like to post. Even worse, what if, in addition to the groups, you'd like to post to a few accounts and opportunities as well? By now, you can probably see where I'm going with this one. Because of all of the clicks necessary to accomplish this, it's an inefficient and exhaustive way to share content via Chatter.

Wouldn't it be nice to be able to simply post from your home page in Salesforce.com, hashtag your post and have that post automatically copy to a related group or account or opportunity? You'd never have to browse and click about when seeking the records that you need to post against. This becomes even more convenient when posting from the Chatter Desktop Client. You only have to post from the home screen. That's it. No clicking around. It's a huge time saver.
Unfortunately, out of the box, this is not how Chatter topics work, but there is a way to accomplish this - there's always a way. Salesforce.com provides us with the ability to write triggers - APEX code that is fired after a certain action - against most object types. By building a trigger against the User object, and a series of APEX classes to parse and handle the posts and hashtags, we can attain the desired functionality.
Whenever a user creates a hastagged post against his or her home page, the trigger fires, calling the related methods of the APEX classes. These APEX classes serve as the parsers and handlers, stripping out the hashtag and copying the post to a related record that is determined by a matching algorithm. If a match between hashtag and record name (or other field content) is found, the post is copied to the related record. Again, this happens all from the poster's home page; there is no need to click into records and post directly to their feeds. On the recipient's end, things operate as normal. If I am the recipient and I subscribe to a group that was posted against via the APEX triggers and classes, then that post appears in my home feed, as it would had the poster browsed directly to the related record to enter his post.
The benefits are clear: it's a huge time saver and it greatly simplifies the use of Chatter- especially for those that are slow to learn new technologies, but may already "get" Twitter. In essence, we're extending the use of consumer-grade Twitter hastags to the enterprise level. We're making hashtags work for us.
Salesforce.com Chatter, like any application or new technology, is a great tool but could stand to be improved in many ways. It will get there eventually, but until then we early adopters must either live with its shortcomings or do something about it. We chose to do something about it. And now there is peace in the world.
To learn more about how the functionality that we've discussed in this blog post can be accomplished via APEX, please click the button below.