Introduction To Salesforce Opportunity Contact Roles
Contact roles define the level of influence that a contact has within an opportunity account, case, or contract. Opportunity contact roles provide a direct link between contacts and opportunities that doesn’t exist in the Salesforce data model.
Contact roles on opportunities are visible in the “Contact Roles” component, which can be placed anywhere on the page (the examples in this guide show it on the right-hand sidebar). Opportunity roles include “Decision Maker”, “Evaluator”, and many others that come with Salesforce, out-of-the-box.
Some of us love to hate contact roles – but they are a necessary object that Salesforce Admins and marketers would be lost without, especially when it comes to Campaign Influence reporting and Pardot/Account Engagement segmentation.
This guide focuses on opportunity contact roles – why they’re crucial for marketing teams, and how to start enforcing them being added.
How Do Opportunity Contact Roles Work?
Opportunity contact roles define the level of influence that a contact has within an opportunity. In Salesforce, contact records do not have a direct relationship with opportunities.
Opportunities have a relationship with an Account record, and the Account has a relationship with Contacts – yet, the relationship between opportunities and contacts in Salesforce is not direct.
As any marketer will know, working at the Lead/Contact level enables you to build a personalized marketing experience per individual. Especially when using Pardot/Account Engagement, prospects are closely connected with their associated Lead/Contact record.
However, if we’re marketing to individuals, how can we associate their engagement with the revenue outcomes, stored at the opportunity level?
To bridge the gap, Salesforce developed an object called ‘Contact Roles’.
Opportunity Contact Roles Re-explained: The Bird’s Nest
To explain this in an alternative way, I’ll introduce the “Account Tree” and “Bird’s Nest”.
Much of the Salesforce data model revolves around the account object. Like a tree trunk, Accounts can have multiple related records, Contacts, Opportunities, Cases, Assets,
like branches coming off it.
However, you see the branches are not connected. There needs to be a link if you want to relate two branches together. The bird has made a nest, the “Opportunity Contact Role”, which brings the two branches together:
This is the golden bridge which will enable you to enhance your reporting, and more.
Opportunity Contact Role Fields
Each Contact Role record comes with four fields, out-of-the-box. These can be changed, or removed – and you can add your own custom fields:
- The Contact’s Name
- Job Title
- Their role within the opportunity. Default roles include Decision Maker, Evaluator, etc., with the ability to add values to this picklist.
- Primary: a checkbox field to single out one particular contact above the rest.
Opportunity Contact Role Reporting
We mentioned Campaign Influence reports earlier, which rely on opportunity contact role records in order to be accurate.
You can also report on opportunity contact roles. This is useful to assess the extent of your opportunity contact role gaps. You can find out which opportunities have Contact Roles by pulling a report:
Conversely, use cross-filters to weed out opportunities without contact roles (if you have Salesforce Enterprise edition, or above).
5 Ways to Enforce Opportunity Contact Roles
When admins and marketers go to report on contacts and opportunities (namely Campaign Influence) they find little data pulling through on reports – or worse, wildly inaccurate information. Enforcing opportunity contact roles is important to fuel these reports, but it’s easier said than done.
To enforce Contact Roles going forward, there are a few options – some more desirable than others.
1. Lots of Training
“In a perfect world, sales would take the time to add Contact Roles to all of their opportunities. They’re the ones that know the contacts at their accounts the best, and they’re in the strongest position to get this data entered accurately in the system.
You can try to reinforce this with training, help text, and coaching in Sales Path. You can send out automated reports looking for Opportunities with no Contact Roles. You can get sales leadership to help beat this drum for you.
I’ve gone down this road, and let me tell you – it’s exhausting. Most admins who try this option first find themselves looking for a Plan B really quickly.”
2. Use a Validation Rule to Require a Contact
- Create a lookup field to the Contact for the Opportunity.
- Create a validation rule that enforces that a Contact be picked at the appropriate time. Users won’t be able to create/save the opportunity if the opportunity-to-contact lookup field is blank.
3. Create Opportunities from Leads and Contacts
To create an opportunity and contact role simultaneously, the opportunity can only be created from Lead or Contact – not from Account records, and not from the easy “New” button on the opportunities tab. That way, Salesforce knows which Contact should be linked.
“I’ve seen some organizations take the approach of hiding the ‘New Opportunity’ button from the Account page layout and list views to enforce this behavior.
A key benefit of this is that you’ll almost always get one Contact Role populated. But in B2B sales, there are usually multiple parties involved in a deal – so this is far from complete information.”
4. Use Apex
You will require a developer to implement this, plus there’s testing and monitoring required to spot and resolve bugs. Enforce contact roles using Apex and a validation rule, thanks to Ebsta.
5. Automatically Create Opportunity Contact Role Records
Faced with the challenge to enforce opportunity contact roles, and with no winning solution available, Sercante Labs developed the Automated Opportunity Contact Roles app.
The app lets you define the business logic for how many Contact Roles you want added, what criteria it should use to pick them, and what role picklist value should be assigned.
You can also set the logic for WHEN this takes place – upon hitting a certain stage, on record create/update, or for certain record types, for example.
Then once your criteria is set, the app auto-magically creates the Opportunity Contact Role records for all Opportunities across your Salesforce org. Every time. With no sales involvement.
Why Should Marketers Care?
Now we’re up to speed with Contact Roles on opportunities, you may be tempted to ignore them when they’re tricky to work with. There are two reasons why marketers should pay close attention:
Reason 1: Campaign Influence Reporting
Campaign Influence is how Salesforce Opportunities are associated with the Campaigns that helped generate them. It’s all about joining the dots between sales revenue (stored in opportunities) and marketing data (stored in campaigns) – and therefore, is the fundamental connection in measuring Marketing ROI (return on investment).
Campaign Influence works by linking Contacts to Campaigns (via Campaign Member records) and Contacts to Opportunities (via Contact Roles).
Fail to add contact roles to opportunities, and you’re missing a huge chunk of marketing influence, and skewing the relative influence of other campaigns that have been related.
Reason 2: Pardot (Account Engagement) Segmentation
If you have run an Automation Rule or segmentation in Pardot (Account Engagement) based on Salesforce Opportunities, you will have used the criteria:
Prospect Opportunity | Related with properties
An Opportunity will only sync with Pardot if it has at least 1 Contact Role, which must be a Contact record syncing with a Prospect record.
Again, fail to add contact roles to opportunities, and you’re missing a huge chunk of relevant prospects from the segmentation.
Contact roles define the level of influence that a contact has within an opportunity, providing a direct link between contacts and opportunities that doesn’t exist in the Salesforce data model – just like the bird’s nest connecting the tree’s branches.
There are two reasons why marketers should pay close attention to opportunity contact roles – Campaign Influence reporting to demonstrate marketing influence on the pipeline, and Pardot (Account Engagement) segmentation based on opportunities.
Your next action is this: investigate how opportunity Contact Roles are being used within your Salesforce org, assess the extent of data gaps using Salesforce reports and cross-filters, and consider the options outlined to avoid data inconsistencies.
Ben – would be interested to know if you have ever tackled the Account Contact Relationship object and how marketers can leverage that object and more specifically the Role(s) that a Contact would have with one or many Accounts.
Hi Carrie, the Account Contact Relationship replaced account teams, which are useful in terms of segmentation and other reporting – BUT specifically for revenue related reporting (Campaign Influence reporting) and segmenting using opportunities in Pardot – you must be using Opportunity Contact Roles. Hope that helps, Lucy
“Option 1: Encourage sales users to create new Opportunities via the Contact object. That contact will be added to the opportunity as the Primary Contact.”
Is this native functionality? I’m not seeing this.
Yes, that’s native functionality. Are you using the standard ‘New Opportunity’ action on the contact level (not account?)
The Option 1 does not work me either. I am using a standard Opportunity in a SFDC sandbox (classic). Am I missing anything (setting etc?)
Are there definitions for each of the OOB contact roles
OOB roles? What are those, I haven’t heard of them before! 🙂
Could it be Out Of-The Box (OOB)? Which I would interpret as the standard salesforce opportunity contact role values.
Hi Tim – ah yes! Thanks, you are hot on your acronyms!
So opportunity contact roles are what is being discussed in this article. Salesforce used to have Account Contact Roles, which were retired when Lightning was launched. Not so long ago, Account Contact Relationships were launched (that replace Account Contact Roles, but in a smarter way – I am writing a post on this as we speak).
Hope that helps clears things up!
Was there an update here – if I convert from a Lead – and create an Account, Contact, Opportunity – the Contact Role is populated automatically on the Opportunity (Lightning)
We work with larger B2B businesses so just because a contact is related to an account with a closed won opp doesn’t mean they themselves are customers and in fact could be prime targets for cross-selling.
I’m suggesting that the team uses Contact Roles to show which Contacts at Accounts are the existing customers. This seems logical to me but would mean people adding new contacts and contact roles to already Closed Won Opps.
Would this be an appropriate use of Contact Roles to mark which Contacts at an Account are Customers?
I can see the value of Contact Roles on Cases and Opportunities and the setup is pretty straightforward. Where I am lost with this Many to Many object is how we see from the individual contact record what other records (both Cases and Opportunities) they are involved in.
I’m interested if anyone has needed to pull the ‘Primary’ Contact Role into Pardot dynamic lists. If so, what was your approach?
Hi Angelica! Good question – this article might help, it’s not about opportunity contact roles, but about what are essentially the equivalent on accounts. The part about custom object integration could work? https://www.salesforceben.com/the-drip/salesforce-account-contact-relationship-fields-relate-a-contact-to-multiple-accounts/
Is the contact role marked as primary on an opportunity separate from the contact marked as primary on an account/ contact record.
OCRs drive me crazy. They are essential for Pardot to see contacts related to opportunities, yet Pardot cannot see the details of the OCR record like the role field, making it impossible to create dynamic lists by OCR role.
Ohh yes… Pardot custom object?
I am researching Opportunity Contact Role and would like to understand its structure better.
In SF setup, you can find Opportunity Contact Role in the Object manager as an object, but also if you type in Opportunity Contact Role into Quick search, then it comes up as a “Contact Roles on Opportunities” – there it is described as “master list of picklist values for the Opportunity Contact Role field” – but what is it actually? Is it a separate object? Is it a Global Value Set? Standard Value Set?
I can’t find any information about this “master list of picklist values for the Opportunity Contact Role field” in SF documentation, could you please advise?