Author note 8/16/2010—when this post was written, there was a potential conflict with having contacts and users with the same email address—this conflict has been resolved in update rollup 12.
On Friday I posted an approach to managing contact information for employees in Microsoft Dynamics CRM. This approach was to use the user record for both users and non-user employees, and expose read access to this entity to all users. This approach works well for users who work in front of a computer; however, there is another scenario to consider.
One of the reasons that many companies use Microsoft CRM is the synchronization with Microsoft Outlook for contact information. This is especially valuable for users who are mobile and need to have business contacts in their Outlook contacts on their smartphones. When I’m on the road and one of my clients calls me, it’s great to be able to see their name and company name pop up on my smart phone, or be able to look someone up by name when I need to call someone.
This is also valuable for internal contacts. Sure, you can access the global address book from a Blackberry, Windows Phone, Iphone, etc; however, since the global address book is frequently not updated or only contains partial information, many people maintain internal contacts in the Outlook Contacts, and this leads to problems, such as bad or outdated information, and missing contacts, especially from new hires.
CRM is a great solution for this. As discussed on Friday, it is more accessible than the global address book, someone other than the Exchange admin can update it, and it can also synchronize Contact information with Outlook; however, it does not synchronize User record data to Outlook Contacts. If synchronization of User data to Outlook contacts is required, you will want to use the Contact entity in CRM for User contact information. The User Contacts can be easily separated from the external contacts by making use of the relationship type picklist. I recommend adding a value for “Internal contact” and then setting up views to segment internal and external contacts.
Before you do this, there are some considerations
User Contact Record Considerations
Before setting up contact records for users, consider how the CRM synchronization for emails and appointments works. When an email is tracked, CRM matches the email using the email addresses of the sender and recipients to resolve it to CRM account, contact, user, or lead records. For this tracking to work effectively, an email address can only exist on one of these records. If there are multiple records that have the same email address, it can cause issues. In some cases this can cause CRM to not know which record to track the email or appointment against, and in other cases, it can cause the activity to track against a different record than the one that the user intended.
The most extreme side effect we see from time to time where the same email address exists on both a user and a contact record is sometimes it will make appointments that the user tracks resolve to the user’s contact record, removing the appointment from his calendar.
So keep in mind that it’s not a problem to have a contact record and a user record for an employee, but it is a problem to have the same email address on a user and a contact record.
Also, any users who send tracked emails in CRM need to have an email address on their user record.
With that in mind, I recommend using the following approach to have user contact record play nicely with user records:
- Set up a company record for your company and have that company parent all of the employee contact records.
- Monitor Contact and User records to insure that duplicate email addresses don’t exist. You can’t create CRM duplicate detection rules between the contact and user records; however, you can find duplicate email addresses with a SQL query.
- Set up secondary email aliases for the user contact records. In Exchange, a user can have multiple email address aliases—such as joel.lindstrom and jlindstrom. By setting up alternate email aliases for your user contact records, you avoid the confilct mentioned above, and your user records and contact records will play nicely with each other. If an email is sent to either email address, it will all arrive in the users inbox, and since all activities created by the user will be under their primary email address, you won’t have the disappearing appointment phenomenon.
- Automate the process—consider using a workflow or plug-in to automate the creation of user contact records when a user is added to CRM, mapping the name and phone information to the contact. This will simplify the new hire setup process.
Following this process you will now have users available in CRM contacts, and can set your contact synchronization rules to include internal contacts.
We are moving from ACT! to CRM and one of the issues we are having is that private emails showed up publically in ACT in users' records. What are the best practices to keep that from happening in CRM?
Posted by: Darla Lord | July 14, 2010 at 09:13 AM
Darla,
Thanks for reading the blog, and great question.
I would want to know more about the specifics of the private e-mails. Do all users have private emails tracked, or is it just certain roles? The average user typically only tracks business-relevant emails, not personal emails, so for the most part, read permission is open. For certain roles, such as legal, HR, etc, there is often a desire to have them track emails, but since their topics may be sensitive, you want to limit who can see their emails. Business units can be an effective approach to controlling this--put the general users in a low-level business unit and give them business unit read permission to emails. Put sensitive departments in a high-level business unit, and give them parent/child read permission for emails--this way they will see their department communication and the rest of the company.
If all users have private emails tracked, there are a couple of other ways that you could approach this. My first question would be why are all users tracking private/personal emails in a CRM system? One of the benefits of Microsoft CRM is visibility for business relevant communications associated with my companies, contacts, etc. What is the value of having general private emails stored in CRM if one person can only access that email. I've also found that if you give users the ability to mark a record private, frequently they will make that their default behavior (fear of "big brother"), and as a result, you will dilute the effectiveness of CRM, because emails that could be benefitial for others to know won't be visible. I would consider not just how you are going to import the existing records from ACT, but also what is going to be your best practice going forward.
One option is to add a "private" checkbox on a record, such as an email. You could then control access to the record using a plug-in, or you could give everyone just user level read access to emails in general and then have a workflow share the email with other users if private = "no." There is a good workflow assembly available from codeplex.com that allows you to programatically share records via workflow with users or teams of users.
One thing that should be noted is that if you use CRM for Outlook, you don't see any custom fields on the outlook email form--that means that a private checkbox wouldn't show up when someone tracks an email from outlook.
One thing I've done before in a similar situation was to bring the private emails in as a different type of record (legacy private emails, for example), and set permissions accordingly on that entity.
Call Customer Effective at (877) 252-2171 if we can be of any assistance in your migration.
Posted by: Joel Lindstrom | July 14, 2010 at 10:44 AM
Hi Joel,
your solution seemed really excellent to me and I used it but then I found one problem. I set default e-mail address on my contact record and alias e-mail address on my user record. It worked perfectly but then I found out that tracking of incoming e-mails didn’t work. When I changed my user e-mail address to default e-mail and my contact e-mail to alias e-mail, it started to work again but of course when I sent an e-mail to my colleagues it was not tracked in CRM since my user e-mail address is different to my contact address :(. Do you have any idea how to solve it?
Posted by: Martin Matýska | October 26, 2010 at 09:50 AM
Martin,
In the solution described above, the default email address should be on the user record. The idea being you still want emails sent from the user record, not the contact record.
regarding tracking emails sent to colleagues, there are some other setting that come to play here. one is the setting to create activities for emails between users (in crm system settings). When this is set to yes, you will sometimes have double activities created; however, if this is set to no, sometimes no activities will be tracked. I recommend setting the setting to "yes." It is better to get more activity records than not get activity records that you
Also, it depends on your tracking options. Even if you have a contact and user for the same person, you still have to hit the track button for conversations that you wish to track. Then the question of if the conversation gets linked to the recipient user record or contact record--that is where the email address of the recipient will matter.
Keep in mind that this behavior has been changed in Update rollup 12. With this update, we have tested and have not seen issues with the contact and user having the same email address.
Posted by: Joel Lindstrom | October 28, 2010 at 05:16 PM