Growth-stageData & Developer Infrastructure

Rebuilding lifecycle and attribution under a high-volume self-serve funnel

~800k contacts re-lifecycled

HubSpotSnowflakeVasco
Play leadKyleeGTM Architect · LeanScale

The problem

Hundreds of thousands of self-serve product signups poured into a HubSpot instance with no MQL or PQL definitions, no lead routing, and lifecycle stages that fit neither a self-serve nor a sales-led motion, let alone both. UTMs were not passing on form submissions, so attribution was broken at the source.

The play

  1. 1
    Lifecycle re-architecture across both motionsHubSpot

    Migrated the entire contact base onto a new nine-stage lifecycle spanning self-serve and sales-led (Self-Service → Lead → Engaged → MQL → SAL → SQL → Opportunity → Customer → Churned), deprecated the legacy HubSpot lead object, and consolidated roughly 12,000 lead records into a contact-only model.

  2. 2
    Pipeline cleanup before reporting

    Backed up every deal (500+ deals across 446 columns) and closed out roughly 350 stale deals from a retired product line as Closed Lost, so conversion and velocity reporting reflected the business as it actually runs.

  3. 3
    Attribution truth engineSnowflake

    Rebuilt UTM and channel classification into 14 channels and 45 sub-channels, stood up a Snowflake-based attribution reconciliation engine with first-touch, last-touch and MQL-touch stamping, and built custom campaign-attribution reporting after the CRM's native campaigns object could not ingest the custom fields.

  4. 4
    Renewal, churn and retention reporting

    Automated renewal-opportunity creation from closed-won deals, built renewal and expansion pipelines with 90/60/30-day alerts and churn logic, and mapped the funnel into a GTM data platform with an executive daily digest.

  5. 5
    Self-serve tooling for the marketing team

    Delivered supporting internal tools including a campaign UTM builder and a unified webinar-registration workflow that embeds tracking in the form itself, so the team stopped depending on manual link hygiene.

What it moved

~800k contacts re-lifecycled

The entire contact base was migrated onto the new nine-stage lifecycle with zero contacts left on any of the 13 legacy stages.

~160k contacts attribution-backfilled. The attribution engine backfilled lead-source detail fields, up from fewer than 200 populated records, and reconciled native against warehouse attribution, parity-tested at zero mismatches across a 200-contact sample.

From a LeanScale case studyRead the full case study →

More from Kylee