Client: Advertising Platform
Engagement: October 2023–present
Tools: HubSpot, Salesforce, Looker Data Studio, LeanData, Snowflake
Background
When we began working together in October 2023, the company had outgrown its previous agency support and was starting from close to zero on the operational side. HubSpot was messy, leads weren’t being tracked to source, campaigns had no start dates, and the HubSpot–Salesforce sync was pushing raw, unparsable values into the wrong fields.
The goal was to build the marketing technology system needed to answer where leads were coming from, how they were moving through the funnel, and what marketing was actually contributing to revenue. Getting there meant building the foundation in HubSpot before anything else could work.
The HubSpot Foundation: UTM Tracking and Engagement Type
We always start at the beginning, where a record first enters the system — if the right data isn’t captured at that point, everything downstream is affected.
UTM Tracking. A suite of workflows was built to stamp UTM data at first touch — one workflow per parameter (Campaign, Medium, Source, Content, Term) — writing to dedicated First UTM fields on both Leads and Contacts.
Engagement Type. Beyond channel, we needed to know what kind of engagement created each record. A custom Engagement Type field was built using a Global Picklist — values like Demo Request, Content Download, Newsletter, Webinar Registration, Event Attendance, PLG Sign-Up — and stamped via a First Engagement Type workflow on initial contact creation. This field became load-bearing: it separates a demo request from a content download from an event attendee, and serves as a fallback in the attribution logic when HubSpot’s Original Source returns something vague like “Other Campaigns.” It also feeds into MQL scoring and lead prioritization with the sales team.
Both the UTM workflows and Engagement Type workflows feed into a central Initial Processing workflow that controls all downstream lifecycle automation, with a New Activity workflow running in parallel to handle re-engagement.
What the Foundation Enabled
Snowflake-Backed Campaign Influence. For questions native Salesforce reporting can’t answer — joining Leads and Contacts into a unified person view, or applying time-windowed attribution across campaigns and opportunities — we built a data model in Snowflake, unifying Leads and Contacts into a single people table, joining opportunity data via Contact Roles, and applying a 60-day influence window to classify campaign impact. This feeds three Looker Data Studio dashboards covering the lead-to-opportunity funnel, campaign influence, and community influence.
Sales Handoff and Lead Routing. As the company built out a BDR function in 2025, lead routing transitioned out of HubSpot and into LeanData, with segment-based routing logic and restructured Slack-based lead alerts surfacing inbound activity to the right people without noise.
Reporting Framework. A formal reporting framework governs how data is presented to different audiences — executive reporting (WBRs, MBRs, QBRs) focused on funnel progression (MQL → SAL → Opportunity → Closed Won), and internal marketing reporting going a level deeper into channel and campaign breakdowns, with a linearity model comparing actual-to-date against a day-weighted projection of the quarterly target.
Where Things Stand
Nearly three years in, the company has a functioning marketing technology system that didn’t exist when we started: every lead is tracked to channel and engagement type at first touch, HubSpot and Salesforce share a consistent field architecture, lead source attribution is automated as the reporting standard of record, and BDR routing and sales handoff are fully systematized.