Skip to content
Solutions Blueprint

Multi-Touch Lead Attribution Model for a Gamified Training Platform

Hero featured image

A training-software provider's legacy CRM tracked attribution in three separate, overlapping fields: Source, Backup Source, and Vendor Marketing Source. None reconciled with the others, so once a contact converted, first-touch and last-touch history couldn't be reconstructed from what remained. We built a three-property model, Lead Source, First-Touch Lead Source, and Last-Touch Lead Source, and ten HubSpot workflows to populate it. The attribution fields are written only when they are still blank, and whenever one is written the last-touch field is updated automatically as a result.

Executive Summary

context-header-icon

Context

The client's lead-generation retainer needed attribution data the legacy CRM had never produced: which channel first reached a contact, and which channel closed the deal. The prior system split that answer across three overlapping source fields with no rule for reconciling them, so ten new workflows replaced guesswork with a governed, blank-gated write.

what-we-built-header-icon

What We Built

We replaced the legacy CRM's three overlapping source fields with a governed three-property model, Lead Source, First-Touch Lead Source, and Last-Touch Lead Source, and ten supporting workflows. The attribution fields are written only when they are still blank, and each write updates the last-touch field automatically.

tech-stack-header-icon

Tech Stack

  • HubSpot CRM
  • HubSpot workflows
  • Copper CRM (formerly ProsperWorks)
  • Typeform

Not a fit if a single touch already explains most conversions, since a first-touch and last-touch split adds workflow overhead a one-field system wouldn't need. It also assumes consistent form capture across channels, inside HubSpot and outside it; the model can only reconstruct a path traveled through tracked forms and drill-down values.

the-challenge-header-icon

The Challenge

The legacy CRM split attribution across Source, Backup Source and Vendor Marketing Source. Those three fields had no rule for which one won when they disagreed, and no concept of sequence between them.

A contact who converted through three channels left three separate values behind instead of a path. Once the overlap set in, first-touch and last-touch history couldn't be recovered, and marketing had no governed answer to which channel opened or closed a deal.

our-approach-header-icon

Our Approach

We set up ten HubSpot workflows that populate Lead Source, First-Touch Lead Source and Last-Touch Lead Source from a documented seven-value taxonomy: Website, Social Media, Paid Search, Paid Social, Sales Generated, Referrals, and Event/Tradeshow.

Each workflow triggers on a qualifying event. That's either a HubSpot or non-HubSpot form submission, including Typeform's trial-registration form, or an original-source drill-down value such as Conversations, Email Integration or Business Card Scanner.

The write carries one gate: the attribution fields are set only if they are still blank. A first-touch field set on day one stays put. When an attribution field is written, the last-touch field is updated automatically as a consequence of that write, so it stays current. The trade-off is that attribution can only reflect paths that came through a tracked form or a drill-down value.

impact-header-icon

Impact

check-icon

A recoverable attribution path where none existed

Lead Source, First-Touch Lead Source, and Last-Touch Lead Source now hold three distinct values a single field never could, so a contact's first channel and its most recent channel are both visible on the record rather than overwritten into one.

check-icon

A write rule that protects history instead of erasing it

The attribution fields are written only when they are blank, so a second touch can't overwrite the first-touch record. When a field is written, the last-touch field is updated automatically as a consequence, so a later touch isn't lost behind an earlier one. That pairing is what makes first and last mean something, instead of both settling into whatever event fired most recently.

check-icon

One governed taxonomy standing in for three ungoverned fields

A seven-value dropdown, Website, Social Media, Paid Search, Paid Social, Sales Generated, Referrals, and Event/Tradeshow, now answers a question the legacy CRM's three source fields never resolved consistently: which channel gets credit, in comparable terms across every contact.

check-icon

A model that keeps running on every new touch, not a one-time import

Because the workflows trigger on form submissions and original-source drill-down values as they occur, the property model keeps populating itself against new contacts and new touches, rather than requiring a fresh pass every time attribution needs to be reported.

Technical Blueprint
1

Three hidden contact properties replace the legacy single-field model: Lead Source for the current governed value, First-Touch Lead Source for the earliest recorded channel, Last-Touch Lead Source for the most recent. Each draws from the same seven-value taxonomy: Website, Social Media, Paid Search, Paid Social, Sales Generated, Referrals, Event/Tradeshow.

2

Ten HubSpot workflows fire on qualifying events, a HubSpot or non-HubSpot form submission such as Typeform's trial-registration form, or an original-source drill-down value such as Conversations, Email Integration, or Business Card Scanner, and write the matching property from that event's channel.

3

The attribution fields are written only when blank: a workflow checks its target property before writing and stops if the field already holds a value. When an attribution field is written, the last-touch field is updated automatically as a consequence of that write. That is what keeps a first-touch property first and a last-touch property current, rather than both landing on whatever event fired most recently.

4

The legacy CRM's Source, Backup Source, and Vendor Marketing Source carried no rule for precedence between them and no multi-touch concept at all. The new model resolves that into three properties with an explicit sequence: first touch, last touch, and a current governed source, with the attribution fields written under a blank-check gate and the last-touch field updated as a consequence of each write.

Ten HubSpot workflows write Lead Source and First-Touch only when blank, and each write updates Last-Touch automatically.

A HubSpot or non-HubSpot form submission, such as a Typeform trial registration, or an original-source drill-down value such as Conversations or Email Integration, triggers the matching one of ten workflows. Each attribution field is written only when it is blank, which keeps First-Touch Lead Source fixed after its first write. Whenever an attribution field is written, Last-Touch Lead Source is updated automatically as a consequence, and Lead Source holds the current governed value. The legacy Source, Backup Source and Vendor Marketing Source fields feed none of this.

FAQ

What stops a later touch from overwriting a contact's first-touch record?

A blank check on every workflow. The workflow that sets First-Touch Lead Source only writes when that property is empty, so once a first channel is recorded, no later qualifying event can replace it. When an attribution field is written, the last-touch field is updated automatically as a consequence of that write, so it stays current.

What counts as a qualifying event for these workflows?

A HubSpot or non-HubSpot form submission, including forms built outside HubSpot such as Typeform's trial registration, or an original-source drill-down value such as Conversations, Email Integration, or Business Card Scanner. Any of these can trigger the matching Lead Source, First-Touch, or Last-Touch workflow.

Continue reading

Hero featured image
209049082793

Luxury yacht manufacturer: CRM governance, 16.9% MQL-to-SQL

Hero featured image
209049052783

$500M+ telecom provider: one CPQ for MSP and ISP catalogs

Hero featured image
209049052785

Health insurance web broker: NPN hierarchies in HubSpot

Hero featured image
209049052787

$50M+ telehealth provider: HIPAA-compliant clinical ERP sync

Hero featured image
209049052787

$50M+ telehealth provider: attribution recovered via API fix

Hero featured image
209049052786

Environmental IoT provider: partner directory routes leads

Hero featured image
209053190299

$100M+ real estate tech firm: automated KYC gates and SSO

Hero featured image
209049052785

$1B+ financial data provider: Pardot and Eloqua into HubSpot

Hero featured image
209053177394

Global abrasives producer: 40+ sites from Kentico to HubSpot

Hero featured image
209049082792

Global abrasives producer: 13 dashboards consolidated to one

Hero featured image
209049052787

Medical device maker: five regional domains into one CMS

Hero featured image
209049052787

Medical device maker: automated clinical triage in HubSpot

Hero featured image
209049052787

Multi-site dental group: lifecycle logic rebuilt, true ROI

Hero featured image
209049052787

Multi-site dental group: assessment tool for lead quality

Hero featured image
209049082794

K-12 Catholic diocese: 80 schools on one HubDB lead system

Hero featured image
209049052787

Cell therapy biotech: HubSpot CMS migration, 92 speed score

Hero featured image
209049052787

Cell therapy biotech: 40-hour enablement and lead routing

Hero featured image
209049082794

Wellness training provider: 925k records moved to HubSpot

Hero featured image
209049052786

Cybersecurity trainer: 595 workflows audited for debt

Hero featured image
209049052785

Tier 1 auto F&I provider: 14,000% CTA lift, 21% PVR lift

Hero featured image
209049052785

Mexican retail bank: Infobip to Intercom via Apache NiFi

Hero featured image
209049052786

Global streaming platform: ETL middleware feeds Customer.io

Hero featured image
209049052786

Global streaming platform: usage milestones trigger upsell

Hero featured image
209049052786

Cloud and edge provider: Intercom to Salesforce via MuleSoft

Hero featured image
209049052785

$50M+ FinTech SaaS provider: advisor onboarding 30% faster

Hero featured image
209049082792

Mining autonomy provider: global consent and data governance

Hero featured image
209053177394

Industrial IoT division: compliant list purge, leads 3 to 62

Hero featured image
209053177394

Industrial IoT division: 25,000 records merged, one portal

Hero featured image
209049052786

Logistics SaaS portfolio: Salesforce sync rebuilt on Tray.io

Hero featured image
209049052786

Logistics SaaS portfolio: brands consolidated into HubSpot

footerCTA footerCTA-mobile
Spice up your inbox
Sign up for our newsletter
Don't worry - we only average, like, two emojis per subject line.