Sunday, July 21, 2013

Capturing Multiple Contact Roles In CRM

A design challenge I often come up against in CRM implementations is the need to capture a Contact against multiple Accounts. For example, a doctor may work at multiple hospitals.

Out of the box, Dynamics CRM (and most CRM systems for that matter) assume a Contact works for only one Account, which is often the case, but they do not make it easy to relax that assumption. Here are three ways, I have used in the past, to get around the problem.


The simplest way to handle the problem is with Connections. Connections allow you to associate practically any record in CRM to any other record.


The advantages of this approach are:

  • Easy to maintain
  • Easy to set up

However, there are significant disadvantages:

  • While you can add an email field to the form, the entity cannot be made into an emailable entity, limiting what you can do with it
  • You cannot add Connections to Marketing Lists, forcing you to use the one Contact record and its primary email address
  • You cannot associate Activities to the Connection, meaning they sit with the Contact
  • There is no rollup of Activities through Connections to the associated Account
  • The Connections do not sync to Outlook, only the Contact record

A Contact Role Entity

Another option is to create our own custom version of the Connection calling it, say, Contact Role. This will be a child entity to both the Contact and Account. The advantage here is we can make it an emailable entity and associate Activities to it.


The advantages of this approach are:

  • Still quite simple to manage
  • We can email with this entity and use templates
  • We can associate Activities to the Contact Role

Disadvantages are:

  • We still cannot add Contact Roles to a Marketing List
  • Activities do not roll up from the Contact Role to either the Contact or Account records
  • The roles do not sync to Outlook, like the first option

A Person Entity

Finally, we can create a parent entity to the Contact which represents the person, with the Contact now representing a job that Person does at an Account.

This approach makes me nervous because it fundamentally changes the meaning of the Contact record and, therefore, any functionality Microsoft has built in around Contacts may be compromised.


However, it does solve a number of problems for us.

Advantages of this approach are:

  • The Contacts can be added to a Marketing List (although the Person record cannot)
  • We can email using the Contact records as we normally do
  • We can add Activities to the Contact record, as usual
  • Contact Activities roll up to the Account, as usual
  • The Contacts do sync to Outlook

Disadvantages are:

  • It is quite complex and takes a bit of training and use to become comfortable with it
  • Some automation is required e.g. a workflow that automatically creates the Person record when a new Contact is created
  • Allows for duplicate Contacts for the same Person so Duplicate Definitions need to be managed with care
  • Information which ideally belongs on the Person record e.g. Gender, Birthday and Salutation sits on the Contact record and must be dealt with in some manner
  • Activities and Connections do not roll up to the Person record (although code can get around this)


For CRM systems used for stakeholder management, there is often the requirement to associate a Contact to multiple Accounts. CRM struggles to handle this out of the box, but there are ways we can extend CRM to get close to meeting the requirement. While none of these possible solutions are ideal, depending on the specific requirements of the client, one model will likely win out over the others and deliver a system which meets their needs.

***Post Script*** Thanks to Jerry Weinstock, fellow CRM MVP, for reminding me about the issues with Outlook sync in the approaches


Unknown said...

I have committed to Dynamics CRM; I'm also knowledgeable about database design as well as being a B2B sales professional. The idea that a lot of fundamental realities of sales cannot be handled without programming is a big fail. I'm close to giving up. I like the Exchange synchronization and a lot of the interface. But I can't easily "tell a story" or have a contact that has multiple roles. We haven't moved much beyond ACT!

Robert said...

I just verified by testing that you can add Connection Role members to a marketing list in CRM 2015. I needed this functionality for a client where a contact can be the primary contact for multiple accounts and have additional roles.

Leon Tribe said...

Hi Robert,

Yes you can add a Contact who is linked to an Account via Connections but you will be using the one Contact record and their one email address.

There is no way to associate the Contact's specific Connection to the Account to a Marketing List. As long as the Contact record stays generic and is not defined in terms of one specific Account role, your approach should work fine.


Robert said...

Hi Leon,

Thank you for the clarification, fortunately, that will need my customers requirements.


Dave P said...

I am exploring option 3 - Person entity - as my contacts may be working for multiple accounts each with their own set of email/address/phone/contact options.
Can anyone point me in the direction of custom code to roll the activities of the contacts up to my new "person" entity?