I need to find a way to see what source a contact came from when filling out a form. I know this seems simple because you can get this from the form metrics, but we’re trying to track our Qualified leads vs just total form submissions, and there doesn’t seem to be a good way to do that. We actively use the Lead Source and Lifecycle Stage properties to track Marketing Qualified and Customer leads, and there’s no good source property to connect them to in an active list or report.
Original Source is nice, but it only works if the contact record originally came in on that form, not if they were already in the database through another form, a list import, or other sources.
Latest Source is nice also, but if you have a contact that loves to fill out forms every day (it does happen), their latest source will not necessarily reflect the form you’re trying to report on.
Would a report be a better option? What data point do I target to build it? Or is there another list filter that I’m not thinking of?
You’re correct, this information is not accessible in a default report. If you want to see this for specific forms, it requires a bit of additional configuration and will unfortunately only populate the information going forward.
(Unless you’re interested in this information for individual contacts. In that case you can simply look up the date of their form submission and then the value they had in the latest source fields at that time by checking the property history.)
To have this information available in bulk, we need to create a custom property and a workflow. The custom property is a clone of the latest source propertie(s), e.g.
Source at the time of [form name] submission
Source at the time of [form name] submission drill-down 1
Source at the time of [form name] submission drill-down 2
You would then set up a workflow which enrolls contact then they submit the form and then copies the values as shown below:
Latest source > Source at the time of [form name] submission
Latest source drill-down 1 > Source at the time of [form name] submission drill-down 1
Latest source drill-down 2 > Source at the time of [form name] submission drill-down 2
You can then report on your three new properties to access the source information for a specific form. I know, it would be better if we had access to this information out of the box for all forms but unfortunately we don’t.
(If you want this information historically, it’s probably more than a few minutes you’ll spend on this – unless you’re an Excel legend. You would have to export the property history of the latest source propertie(s) and the form submission dates of the forms you’re interested in, dynamically look up in Excel which latest source a contact had at the time of their individual submission and then re-import the correct value in to the cloned property described above.)
This is very helpful. I’m a bit new to HubSpot but wondering how I might modify this to do at scale. I’d like to capture the source data for ANY form on my website. How could I do that with the workflow? I’d also like to capture the date when the form was submitted, unless that is a default property.
Took a bit to plan out and set up, but we’ve been able to run the reports we need since then. But if you apply this to the workflows you build for your forms, it will work for any of them.
Why did you take the recent conversion and not First conversion and first conversion date? Would this not record when a contact actually became a known contact/lead in the system?
Did you set up the workflow so that it was only the first form submission that filled this. Ie. if someone filled out a form days later the values would not change?
I am looking to implement this solution. My question is, for reporting I want this now to be my source of truth for source reporting. However, we have enquiry that comes into the CRM in a number of different ways other than just forms. And so if I was to look at a report based on these new fields, a decent portion of contacts would be missing.
I basically want to create a workflow that records the date and source at the point we get contact details, whether it is a form, manual input or integration. How would I best trigger that to happen?
Hello, so what happens if they go to fill out another form once they go through the new workflow? Will it just keep updating to the last form a contact filled out?
You’re hitting an interesting challenge with HubSpot’s native attribution fields. It seems like they’re either too sticky (Original Source) or too fluid (Latest Source) for tracking specific form conversion events.
For tracking qualified leads from specific forms, I’d suggest looking at form-specific attribution solutions. The issue with HubSpot’s built-in source tracking is that it’s designed more for overall contact attribution rather than conversion-specific attribution.
One approach is to capture additional attribution data with each form submission using hidden fields. Tools like Attributer.io can help with this. They capture the marketing source (Organic Search, Paid Search, Paid Social, etc) and write it into hidden fields on your forms at the moment of submission. This gives you form-specific attribution data that flows into custom properties in HubSpot, separate from the native Original/Latest Source fields.
With form-specific attribution data in custom properties, you could then build active lists and reports based on “contacts who submitted Form X AND have attribution data showing they came from Paid Search” (or whatever source you’re tracking). This lets you segment your qualified leads by their actual marketing source for that specific conversion, regardless of their contact history.
You could also build reports using form submissions as your primary data source, then layer on the attribution data from those custom properties to see qualified lead performance by channel (I.e. 50 people completed this form and 20 of them were from Paid Search, 10 from X campaign, etc).
The key is getting that attribution data captured at the form level rather than relying on the contact-level source fields that HubSpot provides natively.
Quick note: I used AI to help structure this response because I’m not the best writer, but I’ve reviewed and refined it based on my experience before posting.