Contacts to Multiple Accounts

Excellent feature! 

Documentation

https://help.salesforce.com/apex/HTViewHelpDoc?id=shared_contacts_overview.htm&language=en_US

Fields

Video

Developer Documentation

Beware

Setup

  • Enable it - Customise > Accounts > Account Settings
  • Add Related Contacts to the Accounts Page Layouts
  • Remove Contacts from the Accounts Page Layouts
  • Add Related Accounts to the Contacts Page Layouts. 
  • Modify the Roles
  • Add Additional Fields
  • Check Activity Settings - I would uncheck Rollup. 

Fields shown

Interestingly not all the fields were shown when I activated it. 

The missing fields were

  • Start Date
  • End Date
  • Active

But they are there in Field Level Security. They are just not added to the standard Layout - bizarre! 

So edit the Standard Page Layout.

Decide if you want to add Active, Start Date and End Date to the Related Lists also. I would add Active. 

Default Settings

I'm not 100% sure about this - I think you should be able to delete the Account - that is standard behavour before turning this on. So yes, I am going to allow them to delete - otherwise we will get silly naming going on on the Account (eg they will change the Account Name to "ABC Widgets (DELETE)"). 

Roles

  • Look, if your company uses standard roles like Technical Influencer and Buyer, then you are rare. Go ahead and delete all those Roles. 
  • Don't try to make Roles the same as Job Titles - they are different. 
  • It's up to you if you want to update Roles on direct relationships. 
  • You can have multiple roles per relationship

Suggested Roles

  • Director (or C-Level)
  • Manager
  • Staff Member
  • Primary Contact
  • Former Staff Member
  • (depending on your company's needs). 
    • Accounting Contact
    • Admin Contact
    • Billing Contact
    • Invoicing Contact 

Eg, if you are dealing with professional services firms, you may want their generic role - such as Accountant, Lawyer, Banker or in education you might want Principal, Teacher etc. And then leave their job title to be what is on their business card - eg Chief Disruption Officer or Cheif Happiness Engineer (when they really are Support role). 

Additional Fields

You may want to add additional fields to the relationship, but beware, they are not likely to get filled in. 

Lightning

This is what Lightning Looks like. (I don't know what Main is - it's not listed in the documentation). 

Report Types

This is SOOOO Annoying - you have to create custom report types. 

You can create a report type that looks like this

But I would stick with simple and go two levels deep.

Move the relationship fields into a separate section on the Report Layout. 

Also add the Account Name field to the Relationships Section

Issues

  • You can't VIEW the relationship, you can only edit it. 
  • You can't bring the role details onto the Contact in a formula - eg even the Direct relationship. 
  • You can't report on these with standard report types. 
  • Think about your security "When you have access to a particular contact, all related accounts appear in the Related Accounts related list"
  • Think about syncing - only the primary Account is synced - that makes sense. 
  • It's hard to tell in some of the setup screens which are the Relationship fields and which are the Contact fields. It looks like the whole of Contacts is copied over to this new Object, but the developer docs don't reflect that. 

Questions

  • What does it look like on the API - I was using a PE Org
  • Can you do Workflows on it. 
  • More best practices. 

Hacks

 

  • I haven't tried this yet, but what I want is that if an Account is in Account Hierarchies then add all Contacts to the top most Account in the Hierarchy. Theoretically it could be done with Process Builder, but it would be a bit of a nightmare to set up and maintain, especially as another Account is added to the Hierarchy and you have to change all the Contact Relationships. 
  • Add a WF or PB to set the Start Date and End Date Automatically. (eg IF(isActive = False && ISCHANGED(isActive)) then set the End Date). Or uncheck Active if End Date is <= today()
  • Use DLRS to Roll Up the Active setting on the direct relationship to the Contact, so you can report on defunct contacts easily. 

 

Usage

  • If a Contact Leaves that Company, set the Role on the direct relationship to Former Staff Member
    • Set the End Date to be the date you know they are leaving, and set Active to false. 
    • Update the Feed on the Contact to say details about how you know they have left and where they said they are going - this is your corporate knowledge. 
    • Delete any relevant information such as their company email address, any any info specific to that person in that company (unless you need to keep in there for their replacement). 
    • Be sure to ask that person who their replacement is and try to get their details.
    • When you find that that person has gone to their competitor, don't create them as a new contact - just update their Account Name to the new Company. 
      • The Direct Relationship will change to the new Account
      • The Previous company will still be there - with the role or Former Staff Member
      • So you have a full history of where they have been.