Why Original Traffic Source drifts after deal creation?

Hi all,
We’re building deal source attribution in HubSpot (Marketing / Sales / BDR / Partner), using each deal’s associated contact’s Original Traffic Source as the source of truth.
Problem: on some deals, that value changes after the fact that a source gets set correctly, then later marketing activity on the contact overwrites it, so most deals end up looking marketing sourced even when they aren’t.
By design, Original Source is supposed to be locked after first touch, so this shouldn’t happen. Before I go workflow-by-workflow has anyone hit this, or built something similar for deal-level source? Specifically curious whether you’ve seen a workflow action unintentionally touch this field, or whether contact merges were the culprit for you.

Thanks!

Hi @COHagan8,

The field on the deal is defined like this:

Original Traffic Source: the original traffic source of the associated contact with the earliest activity for the deal. If there’s no associated contact record, the associated company’s data will be used instead. Learn more about contact Original Traffic Source values.

This means a few things:

  • The value will change if contacts are later associated the deal which are “older” than previously associated contacts.
  • If HubSpot can later identify an even earlier touchpoint of a contact, it will update the source accordingly. This is expected behavior and, I would argue, correct.

Take this example:

  • A contact converts on their mobile phone through a paid ad and submits a form - and is labeled as paid social.
  • They have, months ago, interacted with a social post on their desktop - and now, after converting on the ad, use their desktop to download a whitepaper.
  • The cookie from months ago “remembers” that the first touchpoint was social - so the source updates accordingly.

Personally, I wouldn’t try to fix this behavior. I would look at it as HubSpot correcting incorrect values with new, better knowledge.

If you want to fix it still, use a workflow that copies the value from the deal field into a custom single line text field, no re-enrollment, to “freeze” it in a separate field.

Best regards

Hi @COHagan8, Deal level Original Traffic Source isn’t actually locked , it’s pulled dynamically from whichever associated contact has the earliest activity for that deal. Add a second contact to the deal later, and if their history predates the original one, the deal’s value shifts even though no workflow touched it.

Contact-level Original Source can also self-update: if HubSpot later matches the contact to earlier anonymous cookie activity, it corrects the value to that earlier touch not fully locked at first touch like it seems.

Check the deal’s associated contacts before chasing workflows that’s the usual cause of this.

Hi @COHagan8

If Original Traffic Source is changing after it was initially set, I’d first try to determine what actually modified the property before reviewing every workflow.

A few questions that may help narrow it down:

  • Have you checked the property history on one of the affected contacts to see what updated the Original Traffic Source and when?
  • Does the change occur only after contact merges, or have you also seen it happen on contacts that have never been merged?
  • Are you using any data sync integrations or custom APIs that could be updating contact properties?

Since Original Traffic Source is generally expected to represent the first recorded source, the property history should help identify whether the change came from a workflow, a merge, an integration, or another process.

It would be interesting to know what the property history shows on one of the affected records.

Hi @Emmytech ,

actually my focus is on the contact itself. So what were using to pin point what the deal source is, is the first associated contact and its original traffic source, as this gets handed over to the deal as soon as its created.

But what I am seeing and like I mentioned, the contacts original traffic source changed (see screenshot). The contact was not merged and were not using any sync integrations.

The deal itself only shows one original traffic source, but before it was ever created for the contact, it changed.