Long before a company has any CRM system in place they will already have a bunch of customer facing activities like emails and appointments in the personal mailboxes and calendars of their employees. Once a CRM system is implemented, these activities will not magically disappear but rather they will continue to be a key element in how the customer relationships is managed on a practical, day-to-day level. Typically companies would like to have these communications stored in the CRM database to accumulate a better understanding of both which customers are being contacted by which representatives of the company as well as the detailed information of what’s been said and agreed with the customer in these acts of communication.
Maintaining two separate systems for entering the same information is never an attractive option for information workers who just wish to stay on top of their daily agenda and commitments, without having to worry about keeping multiple calendars in sync manually. Rather than entering an appointment in your own calendar first, then entering the same data into your CRM system for activity tracking purposes, every single user would rather have the ability to promote their selected calendar entries related to customers into their CRM system for meeting the activity reporting requirements expected by their managers. Similarly, instead of copy-pasting information from their inbox onto forms in a CRM system, anyone presented with the option to click one button in their inbox and get the full message tracked into CRM would surely prefer to take this route.
This has been one of the founding principles behind the design of Microsoft’s CRM system since day one. With the market dominance of Microsoft’s activity management related software both on the client (Outlook) and server side (Exchange), making the flow of this data across different systems as seamless as possible can be seen as a low hanging fruit to grab when entering the CRM market with the Dynamics product. Looking back, offering users the possibility of remaining within their familiar and personal Outlook inbox and tracking information into the organization-wide CRM database has been a very compelling user experience at best. Yes, regardless of the countless hours I’ve had to spend solving Outlook related issues during my professional career in CRM, I’m still perfectly willing to admit that this type of UX is definitely worthy of pursuing in a CRM product, because it’s simply how it should work.
How Dynamics CRM actually tracks your data
What most organizations planning to deploy Dynamics CRM often find surprising is that up until CRM 2013 there hasn’t been much functionality on the server side related to managing the flow of activities between different systems. Even though Microsoft owns both Outlook and Exchange, they have decided to build deep hooks only onto the client side of Outlook and not the server side of Exchange. The positive side of this is that you don’t necessarily need an Exchange server for leveraging most of the activity management features of Dynamics CRM. The downside has been that you very much need the CRM Outlook client in place for things to work as you’d expect.
When it comes to sending and receiving email, the CRM Outlook client can act as the component that takes care of all the inbound and outbound emails for CRM. However, for any organization that needs to have emails flowing directly into CRM (such as a customer support email address that feeds items into a CRM support queue) or relies on workflow based email notifications to go out even when the Outlook client of an individual user is not connected to a network, the deployment of the Dynamics CRM Email Router has been in practice a compulsory step to take. Again, this component is independent of Exchange server and can be used also with other email systems via SMTP or POP3 connections. The Email Router can replace some of the email management features of the CRM Outlook client (but not all, we’ll get to that later) and basically “email enable” your Dynamics CRM server, so that it can independently communicate with the outside world via email.
One thing to note is that even customers who’ve chosen CRM Online as their deployment model instead of deploying an on-premises Dynamics CRM server have needed to separately deploy the CRM Email Router if they wish to send/receive email from/to CRM Online without routing all of the messages via the individual Outlook clients of their CRM users. Microsoft doesn’t offer an “Email Router in the cloud”, so you’ll either need to have a local machine available for deploying the router (doesn’t even need to be a Windows Server, also client OS like Vista or Windows 7 are supported) or get a virtual machine from some hosting service, such as Windows Azure. You can leverage the Exchange Online service in your Office 365 subscription for the actual email delivery, but the CRM Email Router cannot be purchased as a service directly from Office 365.
With the latest CRM 2013 release Microsoft has started to address these challenges of dependency on either client machine components (Outlook client) or on-premises servers (Email Router) by introducing a feature called Server-Side Synchronization. This allows the Dynamics CRM server to communicate directly with the Exchange server, effectively replacing the email sending and delivery features of the CRM Email Router. In addition to that, server-side sync can also handle other Exchange items like appointments, tasks and contacts, which can also now flow between the CRM database and the users’ calendars and address books on various devices without any central dependency on a client-side component like the CRM Outlook client.
Great! CRM 2013 server-side sync solves all our problems! End of blog post! Well, not quite. We’re actually just getting to the reason why I’m writing this post, which is the surprising complexity behind understanding the detailed feature sets of the various components that aim to deliver the seamless one-click UX that I was talking about earlier on. Based on what we’ve discussed so far, here’s how the big picture of synchronization methods for CRM 2013 looks like:
As is often the case, the devil is in the details, so let’s proceed with pointing out the “gotchas” that you need to be aware when planning on managing activities in a Dynamics CRM environment.
The first thing you should pay attention to if you’re either using or planning on deploying a Dynamics CRM 2013 based solution for your organization is that the server-side sync feature introduced in the CRM 2013 release actually only works between on-premises servers. While originally planned for a wider set of deployment options, the RTM version of CRM 2013 can only be set up for server-to-server synchronization if you have both CRM and Exchange either locally on your own servers or via a hosting partner that can provide you with the required configuration tools and access rights. (Btw, see this excellent tutorial by Nuno Costa for the steps needed in configuring server-side sync for CRM 2013.)
This is naturally an area where Microsoft is working hard to match the features offered in their own cloud services with those that a customer can deploy on their traditional servers. With the upcoming Leo release scheduled for Q2 2014 (the Dynamics CRM “Spring Wave” 2014) many people are expecting the support for server-side synchronization between CRM Online and Exchange Online to be introduced, although nothing has yet been officially published by MS regarding this capability. However, support for scenarios where either the Exchange server or the CRM server is running on-premises and the other service is in Microsoft’s cloud is a whole different subject. If these type of hybrid scenarios or “mixed mode” deployments would be relevant for you or your customers, be sure to express this by logging on to MS Connect and voting on this suggestion. (If you have problems logging on to Connect and get an error message, read this helpful article by Guido Preite.)
The cloud vs. on-prem is not the only part where you need to pay attention to the supported technologies. While the CRM Outlook client does provide a wealth of activity management features that can often satisfy the needs of an individual user who’s interested in getting his or her own records sync’d with CRM, what may not be so obvious is that this client is not available for all devices that can run Outlook. For example, if you’ve got a Microsoft Surface tablet based on the ARM chip and not an Intel CPU (meaning it runs the Windows RT variant of Microsoft’s OS) and you’ve got MS Office with Outlook on it (introduced in the Windows 8.1 update), this doesn’t mean you could install the Dynamics CRM Outlook client on the device. You can get the Windows 8 mobile client app for WinRT of course, but that doesn’t offer any activity related capabilities that wouldn’t already be available via the basic browser client of CRM 2013.
Surface may not yet be a mainstream device for business users (although I’m quite fond of my Surface 2, having replaced my iPad 2 with it some months ago), quite a number of mobile workers are opting for the sleek MacBooks if their employer is willing to pay the premium for the Apple hardware and support non-Windows software. While you can get Microsoft Office for a Mac (version 2011, so not quite the latest 2013 goodies as you get on a PC), there’s no Dynamics CRM Outlook client available for OSX. Since there’s no COM Add-in support built in to Outlook for Mac, developing a plugin to bring comparable Dynamics CRM features to OSX Outlook users is something I don’t expect Microsoft to invest in, at least in the foreseeable future.
Why Synchronization Does Not Cover Tracking
It’s easy to jump into a conclusion that all the functionality needed for effective activity management with CRM and related systems would fall under the “synchronization” term, but that’s not exactly true. Deploying a solution like the CRM 2013 the server-side synchronization will take care of moving items like calendar appointments and contacts back and forth between the end-user client device and the central CRM database, but it only applies to items that already exist in the realm of CRM. What I mean by this is that the item was either originally created directly in the CRM application or it was received via a monitored location like an email queue. Quite often this is not the case. Let’s consider the following scenarios:
- Sales person receives an email from a potential customer directly to his own inbox. He wants to store this message information in CRM and possibly convert it into a new opportunity to track follow-up actions.
- Account manager schedules an appointment with an existing customer, either by sending a meeting request from Outlook or just booking the time slot from his own calendar. He wants to record this appointment into CRM as an activity and link it to the meeting participants.
- Project manager is on-site with a customer and identifies a new work item that requires actions from him in the future. He enters it as a new task via his Windows Phone calendar and sets a reminder date. He wants to link it to the corresponding custom entity “project” in CRM, so that he can see an overview of all tasks regarding the delivery.
- Sales director meets a former colleague of his and wants his team to pursue partnership negotiations with this person. He already has the contact details in his own Outlook address book and wants to share this with the team by creating a CRM contact record out of it.
All of these scenarios are very simple when using a Windows PC running the CRM Outlook client, as it only takes 1-2 clicks to get the information into CRM. Simply click the “Track in CRM” button, then “Set Regarding” to associate the item with the correct CRM record (account, opportunity etc.) or use the “Convert To” button to pop open a new lead, opportunity or case record that already has the activity tracked into its history.
Without the CRM Outlook client you can’t get the information into CRM without copy-pasting it from one window to another in the aforementioned scenarios. No synchronization technology will help you here, since CRM is unaware of the item until it has been brought into its world. The “Track” button is a client-side feature that you can’t utilize with any server-side solution, which means there’s no way for a user to select an email, appointment, task or contact from the Exchange server that he or she would like to promote into a record in CRM. Since the the record wasn’t “born in CRM”, it just can’t find its way there.
Once the item is in CRM, server-side sync can take care of tracking the subsequent updates to it. A re-scheduled tracked appointment will get updated with the new date, regardless of whether you change the date via CRM or your mobile phone calendar that’s linked to Exchange. An email thread with a tracked message and a tracking token ID injected into the email subject line will have the next replies automatically synchronized into CRM. Updating the mobile number of a tracked contact will be reflected in all the places, no matter if you change the field value via the contact app in your mobile, the address book in your Outlook or the contact record form in CRM. But somewhere, somehow you need to get that tracking enabled first. If the item was originally created in CRM, that’s not a problem. If it came from somewhere else, then basically you need to use the CRM Outlook client on a Windows PC.
Back when most of the information worker tasks were carried out on Windows laptops and people “lived inside Outlook”, it was surely a logical choice to leverage it as the integration point for tracking and synchronizing items to and from CRM. We’ve come a long way since then and so has the product offering by Microsoft, too. The latest Dynamics CRM version is available as a touch-optimized tablet app for Windows 8 and iPads (with Android to follow), as well as a small-screen optimized smartphone lite client for Windows Phone, iPhone and Android. Also the productivity tools offered in Office 365 can these days deliver a surprisingly advanced feature set via 100% browser based apps, like Word and Outlook Web App (OWA). Despite of these advancements, the legacy of Outlook is still present in CRM in the form of activity tracking features that are only available via the PC application as of today. Since a sync-only scenario without a granular level of control for the user to select which data should be tracked in CRM would rarely meet the day-to-day needs of activity management, let’s hope Microsoft will soon introduce alternative CRM client apps that provide the tracking feature across more devices.
The Support Matrix for CRM Activity Management
As we can see, there’s a wealth of variables that you need to be aware of when planning how to utilize Dynamics CRM email, appointment, task and contact tracking/synchronization features in an environment that isn’t built 100% on PC’s and Microsoft servers. Recently when analyzing the options for a scenario that involved both Mac users as well as Gmail accounts, I found myself at times lost in the maze of what’s supported and what’s not with all the different combinations. In order to dig myself out of this hole, I created the following Excel pivot based matrix that allowed me to group and filter the various features supported by different server & client combos:
If you want to study the data in the pivot table, then feel free to open the file via OneDrive and view the data in Excel Online with this link (yes, no Excel client needed!). Also, if you notice any mistakes I did while compiling the source data for the table, then be sure to leave a comment on this blog post and I’ll fix it accordingly.
One way to address limitations found in the out-of-the-box Dynamics CRM activity management support is of course to have a look at the ISV product offering available. There are companies like LinkPoint that develop their own client plugins for connecting a number of different email systems to different CRM systems, including Dynamics CRM. Others have developed server side technologies for providing the item tracking control via a folder based system, such as Riva. At the end of the day, in a world with a growing number of platforms and device types being used by the customers, relying on a single technology provider may no longer yield as great results as offering the required API’s for custom app development and fostering a partner ecosystem to fill the gaps in supported technologies and scenarios.
Edit 2014-03-21: For anyone interested in exploring options for tracking emails to CRM from any device, be sure to check out this article by Chief CRM Tipster Joel Lindstrom: Track emails using Forward Mailbox.