Contact Roles

Opportunity Contact Roles:

Use the contact roles related list on the opportunity to specify the contacts involved in a deal.  Contacts do not necessarily have to be related to the same account as the opportunity.  Contact roles can also impact campaign influence (see Campaign Influence).

12-22-2012 12-27-02 PM

Account Contact Roles:

Adding the contact roles related list to the account will allow users to establish relationships between a single contact and multiple accounts.

For instance, contact “Lauren Boyle” is a member of the “United Oil & Gas Corp.” account, but also has a role on the “Farmers Coop. of Florida” account:

12-22-2012 11-40-28 AM

Limitations of Contact Roles:

1. You cannot add new fields to contact roles, nor can you customize the related lists.  You can add and change the roles (e.g. change “Influencer” to “Stakeholder”).

2. You cannot display the account roles related list on the contact.  For instance, when I view the contact “Lauren Boyle”, no record of the relationship to the account “Farmers Coop. of Florida” is displayed:

12-22-2012 11-57-07 AM

If this is important to your organization, consider one of the following workarounds:

  • Build a custom object instead of using contact roles.
  • Add a custom button/link to a report to display contact roles (pass the contact id to the report through the button/link URL — see Buttons & Links for details).

24 Responses to “Contact Roles”

  1. nk005347 October 13, 2016 at 8:40 am #

    I could add Related Account list on Contact. Not sure if this is new feature.
    Also I think related Contacts list on account should provide ability to search on existing accounts when hit on New but it directly allows me to add a new contact. We New and Add button on Related Contacts list isn’t going to be too intuitive for end users.

    • JohnCoppedge October 17, 2016 at 2:51 pm #

      There’s a new feature in the lightning UI for multiple account/contact relationships in the winter 16 release – that may be what you’re seeing?

  2. Chuck Fernald June 27, 2016 at 9:26 pm #

    Looks like SF may have brought some out-of-the-box relief on this requirement with the release of Contacts on Multiple Accounts. See:

    • mbeaty August 1, 2016 at 3:12 am #

      I was going to mention that while Contact Roles is still present, it’s my understanding that Related Contacts essentially replaces this while adding more functionality?

      • JohnCoppedge August 18, 2016 at 3:08 pm #

        Yep that appears to be the case. Looks like a complete replacement. Will be doing some material updates 🙂

  3. johns. September 1, 2015 at 12:04 pm #

    Hello everybody,

    Does anyone know some other Trick to get the Opportunity Roles outside from the Opportunities.

    best regards

    john s.

    • JohnCoppedge September 1, 2015 at 9:58 pm #

      I don’t think there is an easy way to do this – almost certainly could be done with Visualforce. Might also try lightning components or an embedded report component in the page layout, not sure if either would work though.

  4. Megha Sapra March 25, 2015 at 5:55 pm #

    Thanks John.

  5. Megha Sapra March 24, 2015 at 8:17 pm #

    What is the difference between Opportunity team and Opportunity contact roles? and Account teams and Account contact roles? I am really confused.

    • JohnCoppedge March 24, 2015 at 9:26 pm #

      Opportunity teams are who is working on the opportunity internally (e.g. employees). Contact roles are what role external contacts have in relation to that opportunity (e.g. customers/prospects). Same parallel applies for accounts.

  6. Patty Macdonald December 24, 2014 at 2:06 am #

    A Contacts Relationship Related List can be created on the Contact Object to display all of the Accounts where there is an associated Contact Role for a specific Contact.

  7. Jose Figuereo September 2, 2014 at 9:05 pm #


    I created an Accounts report to list active accounts but would also like to be able to identify the accounts where a specific Contact Role is missing.

    For example, we have a Role for contacts called “Executive Sponsor” and would like to identify the accounts that do not have contacts with the Role.

    I tried a cross-filter Accounts without Contact Roles (with a sub) Role equals “Executive Sponsor” I was hoping that this would yield to accounts “without” an Executive Sponsor contact role but it did not as it rendered accounts that do have an Executive Sponsor.

    Is it possible to identify accounts where specific missing contact roles are identified? Could this perhaps require a different type of reporting or a custom Role object?

    I would appreciate any help on the subject.


    • JohnCoppedge September 5, 2014 at 12:28 am #

      That’s a great question – I think your approach is right. There may be a limitation with the contact role object in a reporting context if cross filters are not available. I would also recommend trying to create a custom report type, and search the Salesforce support site to see if anyone else has run into this issue.

  8. Alexander Salazar August 22, 2014 at 6:13 pm #

    Wow, I realize what I posted makes no sense since I confused some objects. Let me rephrase…

    I added a few contact lookup fields on the Cases object to be able to list within a Case certain key people that are points of contacts on the Account. I needed to do this so that an e-mail template for an e-mail that gets sent from the case auto-populates with these key people’s names. I set the filtering on the contact lookup field so that only contacts from the Account that the case belongs to can be added..

    Is is possible to set up the lookup filter to also be able to look up contacts that are added to the Contact Roles (not Contacts) section of the account? We’d like to be able to add people from other companies that we list under Contact Roles. Thanks.

    • JohnCoppedge August 24, 2014 at 11:28 pm #

      Well, you can’t create a lookup directly to the contact role object. Therefore you would need to use VisualForce page to accomplish this – as you aren’t filtering on a field (e.g. the contact’s account field), you are filtering on a set records related to an contact (contact roles).

      The first can be done with a lookup field; the second needs custom logic.

  9. Alexander Salazar August 22, 2014 at 5:30 pm #

    I added on lookup field to the Cases object to be able to list within an opportunity certain key people (needed to do this so that an e-mail template for an e-mail that gets sent from the case auto-populates with these key people’s names). I set the filtering on the lookup field so that only contacts from the Account that the case belongs to can be added as a key people.

    Is is possible to set up the lookup filter to also be able to look up contacts that are added to the Contact Roles of the account?


  10. Sai Srinivasan August 13, 2014 at 10:51 pm #

    The last line in this page. Should we pass the Account Id or the Contact Id?

    //pass the contact id to the report through the button/link URL — see Buttons & Links for details).//

    • JohnCoppedge August 19, 2014 at 3:42 pm #

      It depends on what type of report you are running and what the filter criteria within the report is- pass whichever id is needed.

  11. Cathy Johnson December 13, 2013 at 11:29 pm #

    Another possible workaround for the limitation where you cannot display the related list of accounts on the Contact record — could you use the new feature (winter ’14) where you can insert a report into a page layout?

    • JohnCoppedge December 18, 2013 at 3:59 pm #

      That’s a great idea Cathy.

    • Melanie Moede May 22, 2014 at 6:59 pm #

      You can only add charts to a page not a table so the data would not be displayed properly.

    • Richard Turner July 2, 2014 at 1:17 pm #

      I did experiment with adding a chart to the contact page view, but the result was extremely clunky.
      Also I wanted to use this functionality against a custom object (FAS) as well the standard ones, so I created a custom object to get the same effect & the result is much better.
      I get a related list on my Account Page & FAS Record of all the associated Contacts,
      On the contacts page I can see everything (Accounts/FAS) they’re involved with.
      It has also helped me remove a lot of duplication of contacts, & finally I’ve got a multi-select pick list so I can associate a number of reasons for a contacts appearance against a particular Account/FAS
      In short, the built in functionality is good, but limited, and you may very quickly decide you need to re-create it.

      • jrbarretoi December 8, 2015 at 10:04 pm #

        Hi Richard, anyone, what does FAS stand for? Thank you

        • pjoyce May 30, 2016 at 8:06 pm #

          A custom object – see above

Leave a Reply