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

    Case Study

    Capturing Campaign Information in ActiveCampaign

    For Lionheart Coaching Academy, I connected campaign tracking across Squarespace forms and ActiveCampaign so registration records could retain their source information. I also prepared instructions for reusing the setup.

    Valentina, founder of Rellatech

    Valentina Akpan: Founder of Rellatech, providing administrative and operations support to executives, founders, business owners and teams. Her background combines technical support, customer success, administration and operations.

    ·

    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. The 90 days is the persistence period I configured. It applies to the browser the visitor arrived in, so someone who switches devices starts without the values.

    Two. The Receiving End

    I created five custom contact fields in ActiveCampaign for the standard UTM parameters (source, medium, campaign, content, term). On the forms, those fields are hidden inputs, so a registrant or quiz taker does not see them, and the values still save to the contact record.

    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 where the values are saved to 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. For contacts who come through the tested forms, the Academy can see which tagged link the registration came from.

    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 checklist covers adding the hidden fields and the header script to a new lead magnet or webinar page.

    4

    Funnels mapped

    5

    Custom contact fields

    90 days

    Browser persistence period

    3 to 5 hrs

    Total engagement

    The Takeaway

    On this project the tools were each working on their own. The gap was in the handoff between them, and the fix was a script, five contact fields and a rebuilt form, tested end to end.

    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

    Need help with similar work?

    Tell me which responsibilities or processes need attention, who is involved and any upcoming deadlines. I provide administrative and operations support, including the connected technical work within our agreed scope.

    Book a free call

    Share This Article

    Comments

    Join the conversation.

    Loading comments…

    Leave a comment