How to correctly capture and report on lead source using HubSpot
Knowing the origin of the contacts in your CRM isn’t about satisfying your curiosity.
Accurate attribution is how you figure out which channels are working, which aren’t, and where best to invest your time and marketing spend.
That doesn’t just mean identifying what’s pulling in the biggest number of contacts either. If you set up your CRM to give a bird’s eye view across your entire customer lifecycle, you can track the source for Leads & MQLs just entering the funnel all the way through the buying journey and beyond. Then you can see exactly where the revenue in your pipeline comes from, and whether any sources in particular results in better conversions.
So, how do you get started?
1. Set a high level “Lead Source” custom property
First you want to sit down with your team and brainstorm all your current sales and marketing activities that result in target audience contacts being added to your CRM. You can also include future planned activities.
Then create a custom Lead Source property on the contact object that is a high-level summary of these sources. It is important when brainstorming this list of sources that you keep in mind what kind of reporting you would like to see in the future. For example, would you want to see a high level view of how paid inbound leads are performing vs organic inbound? Would you like to see how the sales team’s own research / prospected leads performs vs client referrals?
Note: You don’t want to be too granular with this property. Don’t worry, you will still be able to get more granular reporting when needed (more on that later). This property will need to be updated for every target audience contact that enters your CRM and so you don’t want a long list with dozens of options. It should be relatively easy to quickly and accurately update this custom lead source property. An example looks like:
- Inbound Organic
- Inbound Paid
- Sales team own research
- External event
- Company event
- Referral - Client
- Word of Mouth
- Other (tbc)
2. Add an Attribution Section to the Contact View
Now edit your Contact View (look for the Record Customisation section in property settings) and add a new section called Source & Attribution (or similar)
You can add the following properties:
- Lead Source (e.g the new high level custom property created above)
- Original Source (*see below for more detail)
- Original Source Drill-Down 1
- Original Source Drill-Down 2
- Plus any other properties you think could be useful here. E.g. Lead Score if that is set up, or Recent Conversion etc. if you want a view of the most recent touchpoint etc.
Setting it up looks like this:
And when in place then on the individual contact view you would start to see information like this:
3. Automate the updating of Lead Source where possible
Of course with Lead Source being a custom property it means that this needs to be updated for every single target audience contact if you want to have good quality reporting. However, as mentioned above, Hubspot also collects Original Source data by default and so it makes sense to use this to automatically update the Lead Source property where possible. You can’t use Original Source to update all target audience contacts, but you can do a fair bit.
For example, you can build a workflow that enrols contacts where Lead Source is unknown but where Original Source is any of: Paid social, Paid search, Direct traffic, Organic search, Organic social. Now you can update the lead source to Inbound Paid or Inbound Organic using if/then branches. It would look as follows:
Note: the above is a very simple example but often you can automate a number of other sources. For example if you use a prospecting tool like ZoomInfo - you should be able to identify these reliably using HubSpot’s Original Source & Drill-down properties. Here is an example of a contact view in a client account: We have a workflow in place that updates any contacts that the sales team imports using ZoomInfo to have a lead source of “Prospecting”
4. Use State of CRM reporting to find when ICP contacts don’t have Lead Source applied
Using workflows as detailed in step 3 above means a lot of the lead source data can be automatically updated - but not all. For example manual imports won’t have this data captured unless you include a Lead Source column in all your imports (which you absolutely should!).. Also contacts manually added by the sales team or via the email extension will all have a rather vague Original Source of “Offline sources”.
So these are the ones you want to isolate and ensure that the team is updating with the more useful and relevant Lead Source option.
Thankfully this is very easy to do! I’ve written extensively about State of CRM data reporting and one of the key reports here would be used to identify any ICP (Target Audience) contacts where lead source is unknown.
The benefit of this method is that all contact owners are responsible for updating the lead source of their contacts. In addition, you can limit the report to only include contacts where the contact is identified as an “ICP contact”. (see “Not all lead sources are relevant section below)
5. Pull it all together in useful reporting
Armed with your new “Lead Source” property there are literally hundreds of reports you can refine to tell your attribution story.
A question I sometimes get: “If HubSpot collects Original Source by default, why bother with a custom lead source property?” The reason is to gain sight of what really counts.
To illustrate this - here is a report from a live client account using HubSpot’s default Original Source where “Became Marketing Qualified Lead” is known. I’ve not limited this report by ICP - it is just a general view of contacts that have become MQLs and their original source.
What is this really telling you?
As you can see in this particular client example above most of their MQLs come from “Offline Sources ' (which in their case is mostly events and prospected data that is imported into the CRM or added by the sales team).. From this report Paid Social also seems to be performing fairly well as does Referrals (links from other websites)
Now contrast this to a report using the same underlying data but this time we are going to add filters to limit it to only show ICP contacts and where lead source = inbound paid, vs inbound organic, vs sales team own research and vs. client referrals. And also - only include those that have entered the sales funnel (e.g. SQL and above)
This tells a VERY different story, one that is not concerned with what are potentially vanity metrics (e.g. total number of contacts/MQLs) - but rather what lead source ends up actually entering the sales funnel and becoming a customer? This shows that the top source of business is client referrals followed by sales team own research. And in this example (which is for a B2B business with large average deal amounts) Inbound organic is by far superior to inbound paid when it comes to generating actual customers.
Footnote: you only need to know the lead source of contacts that are relevant
One thing to bear in mind: you don’t always need to know the source of every contact. Rather you need to know the accurate source of the contacts that matter - e.g. the ones that fit your ideal customer profiles (ICPs), and are therefore companies you can sell to.
Defining the ICPs that collectively constitute your target audience is a vital prerequisite for this process. Not everyone who downloads your lead magnet will be a potential customer. They might just be an interested student, or even a competitor checking out your content.
If a contact works for a company that doesn’t fit your target audience ICPs then you won’t be able to sell to them, and they won’t be a real lead no matter how many pieces of content they download. You want to be able to exclude the contacts who will never become customers from your reporting so that you don’t taint your reports.
I hope you found this blog useful - please feel free to leave me a comment below if you have any questions or suggestions.