A campaign in Salesforce describes the activity: what the lead did, but it doesn’t tell us where the lead came from.

When we do our influence reporting we want to know how well each activity is doing (e.g., "How well did webinars perform?" or "How well did webinar XYZ perform?").

But more often than not we drive leads to each activity through many channels: email, AdWords, Facebook, organic search.

So we also need to be able to ask, "How well did AdWords perform last month?"

From my research, one way to solve for this is to make sub-campaigns for each lead source. For example:

  • Whitepapers (top-level campaign)
    • Ransomware Whitepaper (parent campaign)
      • Ransomware Whitepaper – Google AdWords
      • Ransomware Whitepaper – Facebook Ads
      • Ransomware Whitepaper – Organic Search

But this detailed hierarchy is super tedious to maintain, and you have to jump through hoops during lead capture to properly assign each person to the right sub-campaign based on source.

The other way I've seen this problem solved is to keep Campaigns activity-oriented and use Lead Source to identify the mixture of channels.

The drawback with this approach, however, is that Lead Source is going to paint a first-touch only picture. If a lead was first acquired via AdWords and then 6 months later came back via Facebook and downloaded a whitepaper, it's going to look like AdWords was the channel involved in that conversion.

The third approach would be to do channel reporting outside of Salesforce.

What is the recommended way to solve this multi-touch, multi-channel campaign problem?

1 Answer 1


A few ideas... If you want to track the Lead Source over time, you might consider creating a custom object related to Leads that can store the source each time the lead generated (or "re"-generated) by one of the campaigns. That object could have a Lead Source Type field to classify each (like a Whitepaper). If you want to track it all the way through to the Opportunity, you could potentially use the process builder or a trigger to also replicate these records at the Opportunity level or just use the most recent one rolling up to the Lead to come over to the Opportunity when the Lead is converted.

A simpler approach (if you have a finite number of potential Lead Sources) is to create a field for each potential source on the Lead and populate it if the Lead is driven to your system by that Lead source. (Obviously, this is a terrible choice if you will have many of these over time.)

You could also add a picklist to the Campaign object for "Campaign Type" or something like that if that would be easier than a hierarchy.

Happy to chat more if you want to try to brainstorm through this because this would likely come in handy for a lot of people (including some of my clients!).

  • Interesting ideas. Thanks Lisa. The "Type" field on the Campaign object is supposed to be used to indicate channel, but you can only pick one. We rarely have one channel. I'll let you know if I come across a good solution. I might end up just using Lead Source and dealing with the fact that it'll always indicate first touch channel for that lead, not necessarily the channel involved with the campaign I'm analyzing.
    – Rob Sobers
    Commented Oct 20, 2017 at 18:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .