CRM 2013; Outlook Synchronization by Choice, Not by Ownership

Earlier this year, my colleague and Microsoft CRM MVP, Joel Lindstrom, blogged about A Better Way to Control User Synchronization Settings In Microsoft Dynamics CRM.  In his blog, he discussed how the use of the (free and fully supported) XrmToolBox for CRM can be used to help enhance the Outlook synchronization capabilities within CRM.  I’d like to build upon his blog with some experience I had with a recent project.

Several months ago, I was wrapping up a CRM 2013 project with a large private insurance company.  The project was focused on Sales and I was working closely with the Sales Director and Team Leaders.  One of the Team Leaders and a Senior Sales Rep. had worked there for a pretty long time.  Since part of this project included a pretty massive data migration, having their perspective and experience dating back to the last time they migrated from an old (non-Microsoft) CRM system to MS CRM 3.0 proved to be useful.  This time, they were moving to (the more enterprise-worthy and dramatically enhanced) Microsoft Dynamics CRM 2013.

During the requirements gathering stage, it was noted they needed to have MS Outlook integration with CRM, which is pretty standard practice with many of our clients.  They liked the ability to access CRM directly from their email window without navigating and toggling between a second window.  They also liked the ability to sync up their contacts between CRM and Outlook.  They were aware of the record ownership functionality and understood that it was a key driver for the default filtering/synchronization between the two systems.

Fast-forward to the week of go-live, we completed our training and testing periods and the Sales folks were eager to get started with the new system.  I continued to work closely with the Sales Director and Team Leader during this integral week.  We worked through the normal go-live issues and I made sure I visited each of the sales reps to answer any questions and provide some guidance, as needed.

As the Team Leader was feeling more comfortable in the new system, he decided to run the Outlook Synchronization to update his list of (Outlook) contacts.  The problem was, he didn’t realize that tens of thousands of contacts were being added to his Outlook contact list.  This not only took some time to do the initial sync, but it was also not desired.  What was not apparent to him was that during his tenure with the company, the vast majority of the Contacts in CRM were owned by him for various reasons.  In reality, he was only looking to sync a small subset of those contacts.  He was primarily looking for some of the important and larger accounts.  After discussing in more detail, it was very difficult to (programmatically) choose which contacts he’d like to sync up versus which ones he needed to keep ownership of.  We had a conflict of record 'ownership' versus what was needed for synchronization purposes.  Record ownership, at least, by itself, was not the answer for driving Outlook Synchronization.

As luck would have it, as he and I were discussing the issue, another sales rep performed the same sync.  Although the volume of contacts was not nearly as high as the Team Leader’s, it was still not desired to have thousands of contacts created in Outlook.  We immediately turned off the Outlook Synchronization and deactivated their Outlook Personal Filters (In Outlook 2010 - File | CRM | Synchronize |Filters) to suppress the issue while we figured out a new approach.

image

Then it was time for a permanent fix.

CRM 2013 added a (Social Media-esque) method of ‘following’ records.  For example, a CRM user could ‘Follow’ an Account or Contact.  This would give them a news feed of events/activities that occurred on their record (such as new Sales Opportunities, new CRM Cases, and even ‘Posts’ that another CRM user entered for that record).  Since the act of following a record was captured in the CRM database (the ‘Follows’ entity, see below), we could use that to drive an Outlook Synchronization Filter!  That would give the user the flexibility to pick and choose who he wants to follow, but we could use the resulting data in a programmatic method for Outlook Contacts while not bothering with changing record ownership.

image

There are two primary steps in completing this process.  1) Create a System View and 2) Turn the filter into a Sync Filter.

1) The first thing you’ll need to do is set up a system view on the Contacts Entity in CRM.  For my client, we ended up using two different views, one for ‘Contacts I Follow’, which is pretty straightforward (as seen below), and ‘Contacts I Follow thru Parent Account’.  This means if I follow an account, I want to sync up all the contacts that are associated to that account.  We found this useful and more efficient than trying to choose several contacts from the same client.  See the 2nd filter screenshot below, as reference.  Once you’ve saved those two as system views, you’ve off to a great start.

image image

2) This is where references back to Joel’s blog (A Better Way to Control User Synchronization Settings In Microsoft Dynamics CRM) come into play.  The XrmToolBox for CRM can be used to help out the process of building the Outlook Synchronization filters.  After you’ve installed the free software, you’ll need to Connect to the desired CRM environment.  As a general rule, test out any modifications in a non-production environment prior to deploying in the live/production environment.  It’s also worth noting that the XrmToolBox for CRM can be used for CRM 2011 and 2013, as well as with CRM Online and CRM On Premise.

You’ll use the XrmToolBox for CRM to turn the system views into System Synchronization Filters.  From within the ToolBox, navigate to the Sync Filter Manager, then to the System Views tab.

imageimage

  • Once there, click the button to ‘Load System Views’.  This will pull in all the system views through the CRM system.
  • Locate the new system view you created (organized alphabetically, by entity) and click/highlight it (if multiple, use CTRL or SHIFT key to select more than one).
  • Once highlighted, click the UPDATE button and choose the option of SYSTEM SYNCHRONIZATION FILTER FROM SELECTED VIEW.  This will turn the view into a sync filter.
  • Navigate to the System Synchronization Filter tab
  • Click the LOAD SYSTEM SYNCHRONIZATION FILTERS button
  • At this point, the configuration is complete.
  • To confirm, from Outlook (In Outlook 2010 - File | CRM | Synchronize |Filters), go to the System Filters tab
  • If the new filter is displayed, run the Synchronize with CRM process for the initial sync to occur.

image

Additional Questions:

Is there a limit on the number of Contacts I can follow?

CRM limits users (by default) to 1000 records followed.  This value can be changed by the CRM Admin to (up to) 5000 records (MSDN Source).  To mitigate hitting the limit, consider following the account instead of following multiple contacts from the same [account].

What if I’m already ‘Tracking’ Contacts?  When I track a person in Outlook, it will create a Contact in CRM.

In this case, you maw want to consider creating a Workflow to insert a record into the Follows entity when a new contact is created.  Otherwise, you would need to manually follow the contact from CRM.

How do I clean up my Contacts (that I didn’t want in Outlook) after I performed a sync?

You may be reading this information well after someone has run the synchronization and you are looking to clean-up all other unwanted contact records in Outlook.  Luckily, in my case, all of them were created within minutes of the initial sync occurring.  So we were easily able to (from within Outlook), view the Contact list, add the Created Date field (from the list of ‘All Contact Fields’) and sort it by date.  Then remove (en masse) all the new contacts.  Unfortunately, I don’t have a great method to perform this same action for someone who has done the sync process in the past and many (manual) creates and updates to Outlook Contacts were performed in between.  Look for an identifying field (such as Account or Customer ID) that may be used to filter out a CRM contact vs. a personal (non-CRM) contact.

image

 

By Customer Effective

 

Show Buttons
Hide Buttons