Tip #951: Internal company contacts

You have people in your company who are not Dynamics users, will never use the system, and have no need to own records. However, you want to track those relationships and include them as activity parties or have them synchronize to your Exchange/Outlook contacts. What are the options?

  • Disabled users: Add a Dynamics 365 license to the user in Office 365, assign a security role to the user that includes activity permissions, then remove the license from the user in Office 365. The user will be a disabled user in Dynamics 365, and can be added as an activity party, but users will not synchronize to Exchange/Outlook contacts.
  • Create contacts for them: Create a company record for your company and add contact records for internal contacts. This will make non-users available to be added as activity parties, but then you will be faced with a conundrum: if you have workflows or other processes that send notifications to internal people, you will want the process to apply to both users and non-users, and you will probably want all internal contacts to sync to Outlook. So you will want to add all internal people, including active users, as contacts.

Challenges of maintaining user and contact records for the same people

Most implementations faced with this requirement will elect to create internal contacts, and that can be a workable solution.

In the “old days” (sometime early 2011), having a contact record and a user record that had the same email address caused big problems–Dynamics would resolve the email address of meeting attendees to the first match, which meant that if you had the same email address on a contact and a user, sometimes it would track and resolve against the contact rather than the user, so the meeting would disappear from users’ calendars, causing people to miss meetings.

Now this is no longer an issue–if a meeting is tracked in Outlook with the email address of a user that matches multiple additional records, the meeting attendee is now matched to all records that match. If you pull up a tracked appointment in CRM and see the same name repeated multiple times, this is what is happening. While this may appear unsightly from within the CRM web interface, it does not appear that way to external attendees or inside of Outlook.

So the main technical reason to not have users and contacts with the same email address is no longer an issue; however, you may still find some minor inconveniences from maintaining internal contacts for active users.

  • Creating activities from within the Dynamics web client, if you type a name that matches both a user and a contact, the user creating the record in CRM may inadvertently select the contact when they should select the user. If you are an executive assistant following tip 905to create appointments for your boss, if you type in “George Doubinski” and select the contact George rather than the user George, the appointment will not synchronize to George’s Exchange/Outlook calendar.
  • If your company religiously updates AD information to reflect email, address, and phone number changes, you may find the contact record for the user is outdated. Given that the contact record is what synchronizes to Outlook, not user records, people who use their Outlook contacts on their phone as the company directory may find themselves calling old phone numbers. This happened to me one time when Scott Sewell changed his phone number. The new owner of his old number was quite unhappy when I kept calling him.

A possible solution for this is to tie the internal contacts for active users to their user record. Add a custom lookup to the user record on the contact, and add a lookup for contact to the user that connects to the user’s contact record. when the user record is updated, update the contact record to reflect the updated information. This approach can also automate initial creation of user contacts–on create of a user record, if the contact lookup is blank, create a new contact, populate the user lookup on the contact with a link to the user, and update the contact lookup field on the user with the newly created contact record.

How do you solve the user/contact challenge for people at your company? Let us know in the comments.

5 thoughts on “Tip #951: Internal company contacts

  1. Laura says:

    I am very interested in this. We want to use ClickDimensions for Internal Communications and need to load all employees as contact records. I would like an automated way to keep the contact records in sync with the AD. Not all employees at our company will be CRM users, but perhaps we could use your first steps to create them in CRM and then immediately disable the records. This was a very timely post!

  2. Sara says:

    We have same email address for Contact and User in CRM . Whenever an email hits CRM , we have a workflow to check whether the sender is a contact in CRM . If the contact is also an User in CRM then the workflow condition is failing eventhough the email is from Contact (when we click on “From” , its taking us to Contact record only).
    How to resolve this?

    • Hi Sara,
      it depends on multiple factors: how do you search for a contact (workflow does not have any built-in constructs for that so you must be using some custom activity or action), what condition you have, when the workflow is triggered, etc. Get as much information as possible and reach out to the community on forums or facebook Dynamics 365 page.

  3. Jason Kelton says:

    Yup we see the same issue. Like you, we don’t care if we have both users and contacts, but that’s fine as we’re 10 staff. At scale this would be prone to issues and not be palatable to larger orgs where you’re associating to the wrong record for any regarding type. One of our other clients has the issue where they need to track two interactions internally as two sep. activities. THis has the added bonus (NOT) of linking emails to both their user (private) activities feed and contact (public) activities feed. Not good for CXO people in CRM who for that customer, simply cannot use email sync until we figure out a better way of filtering for them.

Leave a Reply

Your email address will not be published. Required fields are marked *