How to map campaign lead sources to contact properties in HubSpot?

Hi all,

I am trying to replicate a common marketing attribution model that I have used in Salesforce, which uses the Campaign object to push attribution fields to associated Contacts (i.e. Campaign Members). The Campaign will have a designated Lead Source (e.g. Event) and update Lead Source values for Contacts when associated, which will eventually be tagged onto the Deal. Is there a simple way to do this first part in Hubspot?

Hi @JMillard4 :waving_hand: Welcome to our community. Thanks for the great question. Let’s invite some of our community experts to the conversation — hey @Jigar_Thakker @CarolinaDeMares do you have any feedback for @JMillard4?

Thank you very much for taking a look! — Jaycee

Hi @JMillard4! @Jaycee_Lewis thanks for tagging me :slightly_smiling_face:
Short answer is: yes, you can replicate this in HubSpot, but the “Campaign” object works differently than Salesforce, so the setup relies on workflows and lists rather than Campaign Members.

Here’s how I would do it:

1. Add a Lead Source property to the Campaign object
This lets you tag each campaign with the correct lead source (Event, Webinar, etc.).

2. Identify which contacts belong to each campaign
Use one of these:

  • A list of form submissions tied to the campaign
  • A list from an import (event attendees, etc.)
  • A list of interactions if you’re using Marketing Enterprise

3. Workflow: Push Campaign Lead Source to Contact Lead Source
Create a contact-based workflow that enrolls contacts from the list and sets the Contact Lead Source equal to the Campaign Lead Source.

4. Workflow: Push Contact Lead Source to Deal Lead Source
Use a deal-based workflow that copies the Contact’s Lead Source into the Deal when it’s created.

If you need support on this please feel free to schedule a free consultantion here: https://meetings-eu1.hubspot.com/carolina10

Carolina De Mares

CarolinaDeMares_1-1769100842581.gif

ZUID.
Goirkekanaaldijk 12
5046 AT Tilburg
Nederland

Thanks!

Hi @CarolinaDeMares , I have been trying to set this up and wondering if there should be a workflow that connected the property from the Campaign object to the Contact object and how that should be built. Let me know if I’m understanding that correctly.

Hi @JMillard4 and thanks so much for following up with us!

If I’m understanding correctly, you’d like to map campaign lead sources to contact properties, please let me know if that’s not the case.

Let’s check in with our Top Experts: Hi @danmoyle, @Josh and @Phil_Vallender do you have any insights or best practices to share with @JMillard4, please?

Have a fantastic day and thanks so much!
Bérangère

That’s the correct understanding! Thanks!

Hi @JMillard4 and thanks for getting back to us!
Here are some suggestions to help you. You could:
- Create a custom contact property for Lead Source.
- Capture lead source data via form fields/integrations.
- Use workflows to automate copying/mapping of this data to your custom property.
- Report and analyze

If you’re looking to track campaign attribution on contacts, you might want to explore the Events API with the hs_touchpoint_source property for attribution.
You might also want to have a look at the following resources:
- Build and activate datasets in Data Studio
- Create and use smart properties
- Sync data from third-party applications in Data Studio
I hope this helps!
Have a lovely day!
Bérangère

+1 for your answer here @BérangèreL - I’ve been delayed so I’m glad you answered it with this.
@JMillard4 Some clarification from my years using HubSpot. Their workflows support copying properties only between CRM objects like contacts, companies, deals, tickets and custom objects, not from the Marketing Campaign object. That’s why the solution uses lists or enrollment criteria that represent “members of Campaign X,” then sets a Contact property to a fixed value rather than literally copying from the Campaign. So yes, you can map a Campaign “Lead Source” to a Contact property, but it has to be indirect because workflows cannot copy values from the Campaign object itself; instead, the workflow uses how contacts are associated to that campaign (lists, forms, imports) and then stamps the right Lead Source value on the Contact and Deal. Hopefully that helps a bit!