Microsoft Dynamics CRM 4.0 offers powerful functionality to synchronize data between CRM and your local Outlook. Most companies have certain contacts that many users interact with and want in their Outlook but Microsoft CRM does not give you an easy way to pick the contacts you want to bring down to your Outlook. This can be especially useful to users who sync their smart phones, blackberries, etc. to Outlook or Exchange because they can now access their CRM contacts through their phones address book. Here at Altriva, one of the many “quick business facilitation configurations” we have in our toolkit extends this functionality to allow users (and multiple users per contact) to easily add and remove contacts synchronized to their Outlook. This allows multiple users to sync the same contact to Outlook effortlessly and allows users to decide which contacts they bring to their Outlook.
By Default, CRM 4.0 will sync contacts that a user owns in CRM to their Outlook. Users can modify their Local Data Groups to refine the rules that determine which contacts sync to their Outlook. However, it is not immediately clear how you could easily choose individual contacts or groups of loosely-related contacts to sync with your Outlook without creating a large number of local data rules. An easy way to do this is to use Microsoft Dynamics CRM’s ability to create custom entities and relationships to build a new entity that allow users to designate contacts or companies (all contacts at a company) to synchronize down to their outlook contacts.
The concept is simple. Use one user owned custom entity and N:1 relationships from contact and account to the customer entity. Then we modify each user’s local data groups to query contacts based on the related entity. We would also build views and workflows that make it easy for the user to select which contacts they want synchronized to Outlook. This could include automatically generating the “Sync User” entity for a contact record when a user creates the contact record so it is tagged to come down to Outlook for the user that created it. This would also include a manual workflow rule so from any list of contacts the user could easily select one or multiple contacts they want synchronized.
This solution is very handy in many business situations:
-
It does not force users to always bring down all contacts that they own in CRM.
-
It allows multiple users to easily synchronize the same contact record to their Outlook contacts.
-
It allows users to easily select the subset of contacts they want to sync to Outlook by providing a quick way for marking or unmarking a contact to be synchronized.
-
It allows other users in the organization the option to view who else is synchronizing a contact into Outlook (optional).
-
It allows an administrative assistant to set up which contacts sync to their boss’ Outlook contacts, which makes it so the higher level users just have the data they need when they need it (optional).
Another great benefit from this solution is that it requires absolutely no custom coding. The solution completely relies on the functionality of Microsoft Dynamics CRM by creating the custom entities, local data filters, relationships, automatic workflows, manual workflows and new views to manage what contacts users want in their Outlook contacts.
Below is a subset of the overall solution that outlines the steps for the basics of setting up multiple user contact synchronization at the contact level.
Solution Subset
This solution subset described below will be doing the following:
- Create a user-owned custom entity called “Sync User” with an N-1 relationship to contacts,
- Create a workflow that will run against contacts and create a Sync User instance relating the current user to the contact,
- Modify the Local Data Groups for each CRM for Outlook client to sync contacts where the related user equals the current user,
- Train users on how to run On Demand workflows to sync contacts.
This solution subset does not include the following pieces:
- Building automatic workflows to automatically set users up to synchronize contacts,
- Configuring a Sync User view to easily review and remove contacts from being synchronized,
- The ability to sync all contacts at a company, including contacts added in the future,
- System views to allow users to see which contacts are being synchronized,
- Security role setup.
Subset Step-by-Step Implementation Guide
Whenever making changes to CRM customizations, we strongly encourage you to do it in a dev or test system before deploying to production, as well as backing up all customizations and the CRM databases in each environment before beginning customization.
Step 1: Create the Sync User Entity
Open the CRM web client and navigate to the Customize Entities menu while logged in as a user with customizer permissions. Click New to create a new entity.
Make sure both tabs look like the following two images before clicking save. Important: Many of the fields on the new entity form cannot be edited after saving. For example, be sure to extend the primary attribute’s length to 160 before saving.
Click Save. Navigate to N:1 Relationships and create the following relationship to contact.
Add a mapping to this relationship to map the contacts full name to the
_contact_fullname attribute on the Sync User entity. Save and close the relationship. (This step is optional).
Navigate to attributes and rename the display name of the ownerid attribute from “Owner” to “Sync User”. Then save and close the attribute.
Navigate to Forms and Views and open the Form for the Sync User entity. Add and remove fields as appropriate until the form looks a pictured below.
Save the form, save and close the entity, and then publish all entities, or if that isn’t an option, publish the Sync User entity, the contact entity, and the system user entity.
Step 2: Create the “Set Contact to Sync to Outlook” workflow
Navigate to Workflows in the Settings section of CRM. Click the New button to create a new workflow.
Name the workflow, set the scope, and check “On Demand”. If you would like contacts to automatically sync to whomever created it, also check “Record is created”.
Click Add Step >> Create Record. Select Sync User Entity. Open the properties and configure the two tabs to appear as pictured below.
Publish the workflow.
Step 3: Modify Local Data Groups
The following needs to be done one each workstation you intend to support the Sync User entity.
Open CRM for Outlook and navigate to CRM >> Modify Local Data Groups.
Click New. Configure the Local Data Group rule to look as pictured below.
Save and close Local Data Groups.
Step 4: Training users to use Sync Users
There are two ways to specify which contacts to sync to outlook.
1. Individual Contact Selection.
a. With a contact form open, click “Run Workflow” (Note: Users need appropriate permissions for this button to show up)
b. Select “Set Contact to Sync to Outlook” and click OK. This contact will sync the next time Outlook Synchronizes with CRM.
2. Multiple Contact Selection
a. From within a view of contacts (either a saved view or an Advanced Find result set), select the contacts you want to sync. Then click “Run Workflow”
b. Select “Set Contact to Sync to Outlook” and click OK. These contacts will sync the next time Outlook Synchronizes with CRM.
Thanks for reading,
- Hoss Hostetler and Phil Edry