A SaaS(sy) B2B attribution guide on Hubspot!
I’ve been asked to make this step-by-step guide and I felt that it would be more helpful if shared here in the community.
If you are wondering out how to get started with HubSpot Custom Attribution, this post’s for you. I’ve covered the steps to get the bases of a custom attribution structure and you can define how deep you want to go on those 3 levels:
-
Level 03 • Set your flexible Hubspot structure - WIP
L01 • How to customise the original source data
Step 1: Understand how source properties work.
Source properties tell you where your contacts come from (channels). Hubspot has 2 main properties with two different proposes: the Original Source tells you the first conversion of that specific contact and the Latest Source shows the most recent one (in case of a singular conversion those 2 properties will have the same data).
For each one of those source properties there are 2 drill-down properties that give you additional information about the source through which a contact interacted with your business.
Example:
Original source: Paid social
Original drill-down 1: Facebook
Original drill-down 2: the name of the Facebook ad campaign.
In this first level we’ll only focus on the Original Source. If you want to know more about it, take a look at this Hubspot article.
Step 2: Define the channels you want to focus on
If you’re reading this article it’s because you’re not happy about the standard data that Hubspot provides you, so take a look at this example and select the channels that make sense for your operation.
Note: It’s important to understand that we’re not defining the criteria for our workflow in this step. We’re only listing all the channels we want to track
Example:
Step 3: Select columns and export all contacts
3.1) Just go to your contacts > Table actions > Edit Columns > Clean everything > Select Original Source + Drill-down 1 + Drill-down 2 properties
3.2) On the same view > Table actions > Export view > File format: XLSX > Properties included in export: Only properties in the view
Step 4: Clean your spreadsheet and define criteria
Now that you have all your contacts exported just open your spreadsheet (use excel, google spreadsheet usually gets slow with that much data).
Be sure you just have what you need and delete all extra data such as Contact ID, email and so on, then select all 3 columns (Original Source, Drill-down 1, Drill-down 2) and remove duplicates.
Now that you have your data in order, create a new column with your custom property name (i.e: Lead Acquisition Channel) and let’s start to define the criterias. A smart move should be to filter everything, go one Original Source at the time and start with the ones from Inbound, since they have less options it’s easier to get used to this process.
Your spreadsheet would look like this:
Few tips about defining source properties:
1) If a channel you want don’t match with any data provided it could be because no one converted through that source or because it’s not an automatically populated source and you are not setting your UTMs correctly
1.1) Automatically populated properties:
Organic Search:
- Hubspot defines automatically each search engine on the Original Source Drill-down 2
Paid Search:
- When you don’t have nothing on drill-down 1 it’s search ads, when you have an ID on drill-down 2 it’s display ads
Organic Social + Paid Social:
- Hubspot defines automatically each search engine on the Original Source Drill-down 1
Email Marketing:
- It could be an acquisition source if someone forwards your marketing campaign to someone else or if someone sends an email marketing campaign redirecting to one of your conversion points.
Direct Traffic:
- This one could be tricky so be aware when you have a big volume of leads coming from direct traffic.
Case 01: Since some widgets are not able to communicate with Hubspot it would read as Direct Traffic but it has other sources. Example: someone that got to your page by organic search but converts on a pop-up on the page (if it’s a weird widget) it will show as Direct Traffic instead of Organic Search
Case 02: When one of your teams sends a link for their meetings calendar it will show as Direct Traffic but you probably want to track that as a custom channel as (Field Sales or Outbound Operations)
Referrals:
- As you should expect here things get pretty messy because you’ll have tons of options. So it’s really important to set ONLY criteria on Referrals Source if they have data on one of the drill-down options by that you’ll be able to always track new referrals and understand who/what is referring to your pages
Different type of options that could appear in here:
- Referrals from your product/mobile app
- Online Press (Organic or Paid)
- Search Engines
- Co-marketing partnerships
- Marketplaces
- Pages of events you’ll be
1.2) Non-automatically populated properties:
Other Campaigns:
- This option will be set by your own parameters on UTMs so it always depend on what you’re doing, if you’re in doubt which channel you should set on a specific criteria remember that you can set it as “Other Referrals” (if you use the list of channels I showed on the example)
Offline Sources:
- A source that is populated only by human action (someone from your team sending an email and logging the contact by hubspot email extension, creating a new contact on the platform, importing a list of contacts, launching an email sequence for a specific contact, or even reading a business card on Hubspot Mobile App). So you really need to understand how your operation works to set criteria on this.
Example: probably the only use for business-card-scanner will be on events so if it’s the case of your team you can select that as a criteria for a Lead Acquisition Channel.
Now save your spreadsheet with love, you’ll need it in a few steps!
Step 5: Have a break and create both properties
Go to settings > properties > create property:
Do the same for the property Lead Acquisition Channel
Step 06: Flow the workflow, let’s launch this!
You’re now able to build your new best friend! Go to workflow > Create workflow > Contact-based > Blank workflow > Give a name that your team understands that they don’t should touch, something as STRUCTURE - Lead Acquisition Channels Definition.
Things you need to be aware before doing this workflow:
- Since it’s focused only on acquisition (first conversion) it shouldn’t have a re-enrolment trigger
- Time to time Hubspot take few more seconds to have all data sorted out so it’s safer to have a 1 minute delay right after the trigger
- This workflow needs to be updated through time so you should build it on an organised and easier structure
- Trigger: Original Source is Known
- Delay for a set amount of time: 1 minute
- If/then branch: 1 branch per original source
So it would be easier to navigate through the workflow
- Go to each individual branch and split it (with If/then branch) by the criteria you’ve defined
Friendly Tip: If you’ve a lot of criterias for the same channel on your spreadsheet, create a new column > use this formula [=THECELLYOUWANT&”;”] set it in all your options > copy the data from that column > and Hubspot will divide in each option (examples below)
- Now that you have all sub-branches defined click on the (+) sign > Set property value > Select your Lead Acquisition Channel property and choose the channel that makes sense, then make the same for the property Lead Acquisition Property.
Friendly Tip: Make this step on the first option then go to Actions > Clone > This action and all after it. It will be easier but you need to be sure you always change the channel and the ownership if needed.
Your sub-branch should look something like this:
- Launch your workflow and be sure you enrol existing contacts who meet the trigger
Step 07: Build an error view
Go to contacts > Table Actions > Clean the columns > Add all source properties + Lead Acquisition Channel > Then go to More filters > Set Original Source: Known + Lead Acquisition Channel: Unknown > Apply Filters > Save View
With this view you’re able to check on your routines if something goes wrong with the definition of your custom channels and make decisions about it. If something appears a lot it could make sense to build a specific channel just for it, if not set as it makes sense.
It’s time to check what you’ve done, feel free to build reports around it. Just some ideas:
- Understand if your operation achieved or not the monthly goal and see the ownership of each Group Channel (for any stage of your customer journey)
- Try to understand the behave of each channel on specific industries or markets
- Check the quality of the contacts acquired in each channel
- (…) Be creative
Soon I’ll share how to build a structure with two attribution factors (Level 02) and how to have a totally flexible structure to choose the attribution model as you want (Level 03) - Follow me to keep updated ![]()
For the new Hubspoters please share feedback if you got lost in any step I want to improve this article! For the more experienced ones feel free to share more ideas on how to develop a custom attribution framework. Keep being awesome ![]()








