utm-attribution-framework-lionheart-coaching-academy-case-study-rellatech
    Back to Case Studies

    Case Study

    Building a Reusable UTM Attribution Framework for Lionheart Coaching Academy

    How a small script, five hidden fields, and a clean handoff sequence closed the gap between Bitly clicks and ActiveCampaign contacts.

    Valentina Akpan, founder of Rellatech

    Valentina Akpan: Founder, Rellatech. Admin and technical virtual assistant for established businesses.

    Lionheart Coaching Academy came to me with a frustrating problem. Marketing campaigns were being launched, leads were coming in, and contacts were landing in ActiveCampaign. But once those contacts arrived, there was no way to tell which campaign, channel, or asset had brought them in.

    The attribution data was getting dropped somewhere between the Bitly link a visitor clicked and the moment they hit submit on a registration form.

    The Brief

    The marketing stack was solid on paper: Bitly for link shortening with UTM parameters, Squarespace as the website, ActiveCampaign as the CRM, and Notion as the internal contact view. Each tool was working as intended in isolation. The gap was in the handoff.

    Every page click on Squarespace stripped the UTMs from the URL, so by the time someone reached a form, the campaign data was already gone. What the Academy needed was not a new tool. It was a way to make the existing ones talk to each other.

    The Approach

    I started by mapping the full visitor journey across the four active funnels: a webinar registration page, a main registration page, a lead magnet, and a quiz funnel. I traced where UTMs were entering the journey (the Bitly click) and where they were being lost (the first internal page click on Squarespace).

    The fix had four parts.

    One. Persistence

    I wrote a JavaScript snippet for the Squarespace header that captures UTM parameters the moment a visitor lands, stores them in the browser for 90 days, and re-attaches them on every internal click and outbound link. This was the foundation. Without it, nothing downstream would work.

    Two. The Receiving End

    I created five custom contact fields in ActiveCampaign for the standard UTM parameters (source, medium, campaign, content, term), all configured as Hidden Field type so they would never be visible to a quiz taker or registrant but would still record the attribution data.

    Three. The Connection

    I rebuilt the embedded registration form on the webinar page so the five hidden UTM fields would auto-populate from the URL on page load and submit alongside the contact's name and email. This is the moment the attribution data becomes permanent on the contact record.

    Four. Validation

    I configured a Google Analytics 4 data stream (one didn't exist on the property) and set referral exclusions for the third-party domains in the funnel path, so attribution from paid and organic campaigns would no longer be overwritten as referral traffic.

    The Result

    End-to-end testing confirmed the framework works. A tagged Bitly link now flows cleanly through Squarespace, into the registration form, and onto the ActiveCampaign contact record with all five UTM fields populated. The Academy can now see, for the first time, which campaigns and channels are actually driving registrations.

    Beyond the immediate fix, the engagement produced a reusable framework. I documented the setup as a written SOP with a step-by-step checklist for adding new lead magnets and webinars without rework. The next funnel the Academy launches will inherit attribution by default, not as an afterthought.

    4

    Funnels mapped

    5

    Hidden UTM fields

    90 days

    Attribution window

    3 to 5 hrs

    Total engagement

    The Takeaway

    Marketing attribution problems are almost never about the tools. The tools are usually fine. The work is in the connective tissue between them.

    A small script, a few hidden fields, and a clear handoff sequence is often the difference between a marketing team that knows where its leads come from and one that's flying blind.

    Project Snapshot

    Scope

    3 to 5 hour engagement

    Stack

    Squarespace, ActiveCampaign, Bitly, Google Analytics 4

    Deliverables

    Custom header script, five custom contact fields, rebuilt registration form, GA4 configuration, written SOP with reusable checklist

    Have a Marketing Stack That Won't Talk to Itself?

    If your campaigns are running but the attribution is missing, this is exactly the kind of project I take on. Quiet, technical, and genuinely useful.

    Book a Consultation

    Share This Article

    Comments

    Join the conversation.

    Your email stays private.

    No comments yet. Be the first.

    Leave a comment