Consolidating per-offer content forms into modular HubSpot forms with hidden-field branching
Every content offer in an enterprise HCM and payroll SaaS provider's Pardot instance carried its own form, so thirty-plus downloads meant dozens of near-identical forms to update whenever routing or copy changed. We replaced that pattern with two modular HubSpot forms, each carrying a hidden field that names the offer. A workflow reads the field on submission and branches to the right thank-you page and follow-up email, so consolidating the form didn't cost a single offer its own response.
Executive Summary
Context
An enterprise HCM and payroll SaaS provider ran its content-offer downloads through Pardot, where every resource, from a product guide to a webinar recording, had its own dedicated form. Dozens of individual forms had accumulated this way, one per offer, each needing its own upkeep whenever an offer's routing or follow-up email changed.
What We Built
We rebuilt the content-offer intake as two modular HubSpot forms, each carrying a hidden field that names the specific offer, with a branching workflow that routes every submission to its own thank-you page and follow-up email.
Tech Stack
- HubSpot Forms (hidden fields)
- HubSpot Workflows (branching logic)
- HubSpot form component (dropdown-to-card field)
- Pardot (legacy per-offer forms)
Not a fit if your content library holds a handful of offers rather than dozens, where one form per offer stays easy to maintain by hand. This build answered a scale problem: 30-plus content downloads running through a one-form-per-offer pattern, where every new offer meant another form to build.
The Challenge
Every content offer, from a product guide to a webinar recording, had its own Pardot form, and marketing ops kept dozens of these near-identical forms in sync by hand. Each offer also had its own thank-you page and its own follow-up email, wired to that one form alone. So a new offer meant building another copy of the same structure instead of reusing one.
As the library grew past thirty distinct downloads, a copy change or a routing fix meant editing every affected form one at a time. And because there were so many forms, it was easy for one to get missed.
Our Approach
We considered a straight lift-and-shift from Pardot. It would have carried the one-form-per-offer pattern into HubSpot unchanged, which moves the maintenance burden instead of reducing it. We set it aside because every offer would still have needed its own dedicated form, and that was the problem that made the old system expensive.
Instead, we built roughly two modular HubSpot forms that serve any offer in the library, in place of dozens of single-purpose forms. A hidden field on each form carries the offer identifier, and it's set automatically rather than typed by hand. A HubSpot workflow reads that field on submission and matches the value against the offer it names. It then serves that offer's own thank-you page and fires its own follow-up email, so consolidating the form never meant consolidating the response.
The same project also built a form component that turns a dropdown field into clickable cards. That gives visitors a richer choice interface without adding a new property for each choice.
Impact
One form now serves every content offer, not one form per offer
A hidden field carries the offer identifier through submission, so one form definition now supports every download in the library instead of one form per offer. Adding a new offer means setting a field value, not building a new form.
Offer-specific thank-you pages and follow-up emails survived the consolidation
The workflow's branch on the hidden-field value routes each submission to the thank-you page and follow-up email built for that offer, so consolidating the form didn't flatten the response into one generic message.
Marketing ops maintains two forms instead of dozens
The branching logic, not the form count, now carries the offer-specific behavior. A copy change or a routing fix touches one of two forms rather than one built for each of thirty-plus offers, so the object count marketing ops tracks drops and fewer forms get missed.
A new form component replaced a multi-field choice pattern
The clickable-card component reads a single dropdown field and renders it as selectable cards, adding a richer choice interface without a new property for every option.
Each consolidated form carries a hidden field naming the specific content offer behind that submission, set automatically at the point the visitor reaches the form, so the workflow never depends on anyone typing it correctly.
A HubSpot workflow triggers on form submission and reads the hidden field's value as its branching key, matching it against the offer it names and routing the contact down the path built for that offer alone.
Each branch of the workflow ends at the thank-you page and follow-up email built for its offer, the same pair the old per-offer form pointed to, so consolidating the form left every offer's response untouched.
A new HubSpot form component renders an existing dropdown field as clickable cards rather than a native select list, reusing the field already on the form so the richer interface added no new property.
Visitors submit one of two consolidated HubSpot forms, which replace the per-offer forms Pardot used. Each form carries a hidden field that names the content offer. On submission, a HubSpot workflow matches that field's value and sends the contact to that offer's own thank-you page and its own follow-up email.
FAQ
A one-for-one migration would have carried Pardot's per-offer pattern straight into HubSpot, keeping the same dozens of near-identical forms. Consolidating to two modular forms with a hidden-field key removed the duplication while keeping every offer's own thank-you page and follow-up email intact.
No. The workflow branches on the hidden field's value, so each offer still routes to the thank-you page and follow-up email built for it. The form is shared; the response per offer is not.