Troubleshooting - Campaign Influence
Our Campaign Influence Accelerator comes with a Troubleshooting dashboard, designed to help you quickly identify where the missing gaps may be in your data.
This dashboard specifically looks at helping you with the 3 Account Engagement Models, which require:
- Campaigns
- CampaignMember
- Contacts
- OpportunityContactRoles
- Opportunities
If any of the 5 above are missing, CampaignInfluence can't connect all the dots and is unable to use it when calculating Influence.
Troubleshooting CampaignMember
The first section of the dashboard focuses in on the CampaignMember part of the equation.
In our example below, we can see that nearly half of the Campaigns have some sort of issue.

- Campaigns with Members - A count of your Campaigns that have Contacts as Campaign Members. Contacts are key, as CampaignInfluence can't work with Leads or Accounts.
- Cs with Influence - A count of your Campaigns that has some CampaignInfluence associated to it. For the most part having this number match the total Campaign count would be great! Spotty association (such as a test CampaignMember record or two).
- Cs without Influence - A count of your Campaigns that doesn't have any Campaign Influence associated. The Contacts on these Campaigns aren't finding their way to Opportunities. It could be an OpportunityContactRole issue, or these Campaigns may not be attracting the right people.
- Campaigns without Members - You'll need to have Contacts added to these Campaigns.
Getting CampaignMember records created at the right time can be tricky. Account Engagement has a few different features that can help with filling a good majority of the gap, if you remain disciplined when building out your assets and Campaigns.
For extra help, we've linked to a couple of tools that can go the extra mile and ensure that all the right Campaigns get their attribution.
- Every time a visitor hits your site with UTM parameters, this should be captured as a Touchpoint and eventually become a CampaignMember. Cyfuno Labs has an app that can make this a super simple effort for you.
- If you have other related data in Salesforce that you think can make the connection between Contact and Campaign, there's a great tool by Lightblaze (Campaign Audience Builder) that can automatically create the missing links for you.
If you have a Marketing Ops person/team, they definitely will have ideas on how to improve data collection here.
Troubleshooting OpportunityContactRole
The next section of the dashboard focuses in on the OpportunityContactRole part of the equation.
In our example below, we can see there is a serious gap with the vast majority of Opportunities not having Contact Roles.

- Opps with Contact Roles - A count of your Opportunities have have Contacts associated to them. Again, Contacts are key, as they link your Opportunities to Campaigns.
- Opps w Influence - A count of your Opportunities that have CampaignInfluence being calculated. The closer you can get this number to the total number of Opportunities, the better!
- Opps w/o Influence - These Opportunities do have ContactRoles, but those Contacts likely don't have any Campaigns associated to them. While not necessarily a bad thing, bad data like duplicates (especially between personal & business Contacts) can bite you here.
- Opps without Contact Roles - These Opportunities have no Contact Roles associated at all. Quite common for teams just getting started with CampaignInfluence!
Getting OpportunityContactRoles can be challenging. We've linked you to a few resources that we hope can help!
- Enforce Opportunity Contact Roles with a Validation Rule. This helps to ensure that you have at least one Contact on each Opportunity.
- Automatically add the Account's Contacts to the Opportunity with Flow. This option works great when your Accounts have very few Contacts AND it's safe to assume they were all involved. This could be evolved to adjust your Contact query to look for the most recently active to narrow it down a bit.
- Select Contacts based on their Activities. This option (also using Flow) works great when you are logging Sales Activities to the Opportunity. It can be one of the most accurate sources when using an automated solution.
- Auto-associate Contacts to Opportunities using its Tasks, Events, and Campaigns. This option works great if you have larger number of Contacts on an Account, or if the complexities of your criteria are too much for Flows.
If you have a Sales Ops person/team, they may have additional ideas on how this can be addressed with as little operational pain as possible.
Troubleshooting Campaign Hierarchies
Having Contacts in both Parent & Child Campaigns can cause rollups to double count the Contact, and from an Influence perspective it causes the influence to be spread across both Parent and child.
Unfortunately, we haven't been able to figure out a way to build this intelligence into a Salesforce Report.
The best we've been able to come up with is a SOQL query that can run for 1 Campaign at a time. With enough demand, we could build this into a Lightning Component that can be added to the Campaign Record page and flag which Contacts are an issue. If this would be of value to you, reach out to us!
As for now, here's a sample of the SOQL statement that you can run. Be sure to update both CampaignIds with the Parent Campaign that you might be working with.
SELECT Id, Name, Email, Account.Name FROM Contact WHERE Id IN ( SELECT ContactId FROM CampaignMember WHERE Campaign.ParentId = '701bn000019STUfAAO' ) AND Id IN ( SELECT ContactId FROM CampaignMember WHERE CampaignId = '701bn000019STUfAAO' )