The day I learned my last-touch attribution was actually first-touch

If you run a B2B marketing team on HubSpot and Salesforce, there is a reasonable chance your last-touch attribution is not what you think it is. I learned this the hard way, in a system I had inherited, and the cause was so small and so quiet that I want to walk you through it. Not because the fix is hard. It isn’t. But because the failure mode is the kind that hides in production for years.

Here is the setup. Most B2B teams run a two-field attribution model. One field captures the first touch, the source that first brought a contact into the database. The other field captures the last touch, the source most recently associated with the contact before they converted. We had 187 workflows in HubSpot whose only job was to stamp these fields when a contact engaged with a form, a campaign, or a piece of content. Every report we built on top of this data assumed that the last-touch field actually reflected the most recent touch.

It didn’t. And the reason was a single dropdown setting inside the HubSpot-Salesforce integration.

Every field that syncs between two systems has a sync rule that decides what happens when both systems hold a value. The options sound innocuous: prefer HubSpot, prefer Salesforce, two-way sync, or “prefer Salesforce unless blank.” Our last-touch fields were set to “prefer Salesforce unless blank.”

Read that phrase one more time and follow the logic. It means that the moment Salesforce has any value in that field, HubSpot cannot overwrite it again. HubSpot will keep trying. The 187 workflows will keep firing. The stamps will keep being written. And every single update will be silently discarded by the sync, because Salesforce already has something there.

When a contact entered our database through paid social, that value got written and locked. When they came back through a webinar, the workflow wrote “Webinar.” The sync ran. Salesforce already had a value. The update was thrown away. When they came back through a content offer, same thing. The field called “latest source” was, in practice, “the first source the contact ever had in Salesforce.” Our last-touch model had been a first-touch model since the day the integration was configured.

There are three lessons I took out of this, and they are the part worth keeping.

Sync rules are contracts, not defaults. Every synced field is a small agreement between two systems about who owns the truth. Most companies accept the default rules without examining them, because the dropdown looks harmless and nobody flags it during implementation. But the dropdown decides whether your workflows are doing real work or theater. If you have never sat with your CRM admin and walked through every synced field one at a time, asking “what should win when both systems have a value, and why,” your reports are probably measuring something different from what you think.

Silent failures are the dangerous ones. Nothing broke. No error fired. No sync log threw a warning. The integration worked exactly as configured. The configuration was wrong, and the failure mode was that the system behaved confidently while producing wrong data. This is the worst kind of bug because there is no surface for anyone to notice until someone goes looking. Build your monitoring around the assumption that the loud failures will get caught and the quiet ones won’t.

Historical attribution data, once corrupted this way, is not recoverable. Going forward, the fix is a five-minute conversation. Change the sync rule to two-way or prefer HubSpot, and the workflows already in place start working as designed. But anything written before the fix is a first-touch value with a different label on it. You draw a line on the calendar, and the only honest move is to tell stakeholders that the data before that date is structurally different from the data after it.

If you are inheriting a marketing ops system you didn’t build, the first place to look isn’t the workflows or the scoring model. It is the sync layer underneath them. The failure modes there are silent, persistent, and almost always older than anyone still at the company.

Look at your sync rules. Today, if you can.