Resource · Buyer's guide

Which form provider should you use for your demo page?

Twelve B2B form providers ranked by CRM fit, embed model, JavaScript submit events, and native Conversions API support for Meta, Google, LinkedIn, and TikTok.

15 min read
Updated May 2026

Picking a form provider for a B2B demo page in 2026 should be a one-hour decision and usually isn't. The market has fragmented across CRM-native forms, site-builder forms, modern conversion-focused builders, paid-media landing-page tools, and chat-as-form.

Most comparison guides skip the questions that actually matter after CRM fit: how customizable is the form's UI and UX without engineering help, does it fire a clean JavaScript submit event, does it push to dataLayer, and does it ship server-side Conversions API integrations to Google Ads, Meta, LinkedIn, and TikTok. This guide covers all four. Every factual claim below is sourced to vendor documentation, user community threads, or verified public reviews.

Pick by your CRM. That's eighty percent of the decision.

Form builders native to your CRM remove an entire class of bugs: sync lag, field-name drift, duplicate contacts, broken ownership rules. Forms bolted on through Zapier work for years and then break silently for two weeks, costing pipeline. Pick on CRM fit first.

Your CRM Default recommendation Why
HubSpot HubSpot Forms Free with any Marketing Hub tier. Writes to Contacts directly. The form's onFormSubmitted event is the cleanest hook in this guide.
Salesforce, no MAP Gravity Forms on WordPress, or Feathery Both have native Salesforce connectors. Salesforce's own Web-to-Lead works but its UI is dated enough that most teams replace it within a quarter.
Salesforce + Pardot Pardot Form Handler with custom HTML The customer-built HTML form posts server-side to Pardot's handler endpoint, sidestepping the iframe form's redirect issue. No official Gravity Forms Pardot add-on exists (third-party add-ons from Obtain Code and CRMperks are available, but support is by the plugin author, not Gravity Forms).
Salesforce + Marketo Marketo Forms 2.0 MktoForms2.onSuccess with return false blocks the post-submit redirect, the cleanest event hook in the Marketo world.
Zoho Gravity Forms or Paperform Both have native Zoho CRM connectors. Most other modern builders are Zapier-only for Zoho.
No CRM yet HubSpot Forms (free) + HubSpot CRM The free tier is functional. Migration paths exist when the team outgrows it.
your crm
Default recommendation
Why
HubSpot
HubSpot Forms
Free with any Marketing Hub tier. Writes to Contacts directly. The form's onFormSubmitted event is the cleanest hook in this guide.
Salesforce, no MAP
Gravity Forms on WordPress, or Feathery
Both have native Salesforce connectors. Salesforce's own Web-to-Lead works but its UI is dated enough that most teams replace it within a quarter.
Salesforce + Pardot
Pardot Form Handler with custom HTML
The customer-built HTML form posts server-side to Pardot's handler endpoint, sidestepping the iframe form's redirect issue. No official Gravity Forms Pardot add-on exists (third-party add-ons from Obtain Code and CRMperks are available, but support is by the plugin author, not Gravity Forms).
Salesforce + Marketo
Marketo Forms 2.0
MktoForms2.onSuccess with return false blocks the post-submit redirect, the cleanest event hook in the Marketo world.
Zoho
Gravity Forms or Paperform
Both have native Zoho CRM connectors. Most other modern builders are Zapier-only for Zoho.
No CRM yet
HubSpot Forms (free) + HubSpot CRM
The free tier is functional. Migration paths exist when the team outgrows it.


That's eighty percent of the answer. The remaining twenty percent comes from where you host the site and what your marketing-ops team needs the form to do after a lead lands.

Where you host the site.

After CRM fit, the next constraint is the platform under your demo page. Each CMS handles form submission differently, and that difference is what makes downstream tools (analytics, schedulers, ad pixels) either work cleanly or break silently.

WordPress
Webflow
Use Gravity Forms. Launched in 2008 (17+ years in production), with official add-ons for Salesforce, HubSpot, Mailchimp, Stripe, PayPal, Slack, Zapier, and Help Scout. Pardot integration is third-party only. Skip Elementor Forms unless the site is already on Elementor Pro: form IDs aren't stable enough for reliable scripting. The submission hook to know about is the jQuery gform_confirmation_loaded event, which fires reliably on AJAX-enabled forms. That's what schedulers, analytics, and ad pixels listen for, and Gravity Forms exposes it cleanly out of the box.
The dominant B2B pattern is hosting the demo page on Webflow and embedding a HubSpot form inside it. Roughly seventeen of every twenty-two Webflow customers we onboard run this exact pattern. The native Webflow form has no documented success event, confirmed on the forum by Webflow co-founder Vlad Magdalin: "we don't generate any events on success/fail when the form AJAX request completes."
Framer
Squarespace
Use the native Framer form. Form fields are first-class canvas elements, fully styled in the Designer alongside any other component. UTMs and GCLID are auto-captured into submissions on Launch, Scale, and Enterprise plans when Campaign Tracking is enabled. The submission hook to know about is framer:formsubmit, a custom DOM event that fires after successful submission. It's the cleanest native form event of any CMS in this guide, which is what makes overlay tools attach without extra plumbing.
The native Form Block has no webhook and no documented submit event. The fix is to embed a HubSpot form (or Salesforce Web-to-Lead) inside a Code Block on the Business or Core plan. The Personal plan blocks custom code entirely.
Custom React or Next.js
Build your own HTML form and post to the CRM via API, or use Feathery's React SDK. Both keep the form in the parent DOM and fire a real submit event, which is the cleanest pattern for any tool overlay.
WordPress
Use Gravity Forms. Launched in 2008 (17+ years in production), with official add-ons for Salesforce, HubSpot, Mailchimp, Stripe, PayPal, Slack, Zapier, and Help Scout. Pardot integration is third-party only. Skip Elementor Forms unless the site is already on Elementor Pro: form IDs aren't stable enough for reliable scripting. The submission hook to know about is the jQuery gform_confirmation_loaded event, which fires reliably on AJAX-enabled forms. That's what schedulers, analytics, and ad pixels listen for, and Gravity Forms exposes it cleanly out of the box.
Webflow
The dominant B2B pattern is hosting the demo page on Webflow and embedding a HubSpot form inside it. Roughly seventeen of every twenty-two Webflow customers we onboard run this exact pattern. The native Webflow form has no documented success event, confirmed on the forum by Webflow co-founder Vlad Magdalin: "we don't generate any events on success/fail when the form AJAX request completes."
Framer
Use the native Framer form. Form fields are first-class canvas elements, fully styled in the Designer alongside any other component. UTMs and GCLID are auto-captured into submissions on Launch, Scale, and Enterprise plans when Campaign Tracking is enabled. The submission hook to know about is framer:formsubmit, a custom DOM event that fires after successful submission. It's the cleanest native form event of any CMS in this guide, which is what makes overlay tools attach without extra plumbing.
Squarespace
The native Form Block has no webhook and no documented submit event. The fix is to embed a HubSpot form (or Salesforce Web-to-Lead) inside a Code Block on the Business or Core plan. The Personal plan blocks custom code entirely.
Custom React or Next.js
Build your own HTML form and post to the CRM via API, or use Feathery's React SDK. Both keep the form in the parent DOM and fire a real submit event, which is the cleanest pattern for any tool overlay.

When the CRM-native form isn't enough.

Sometimes the CRM-native form falls short. Designer rejection, multi-step qualification with branching logic, or partial-lead capture on paid-traffic funnels. Three modern form builders worth evaluating.

Feathery

Founded 2021 · SOC 2 Type I (announced 2022)

Developer-grade form builder used in insurance and fintech for forms that need real logic. Native HubSpot, native Salesforce. Drag-and-drop builder compared by users to Webflow's editor. SOC 2 Type II is not publicly announced as of May 2026; verify directly with Feathery if procurement requires Type II. The submission hooks to know about are the React and JavaScript SDK callbacks (onSubmit, onLoad, onChange, onFormComplete) with full step context. They give engineering teams exactly what they need to attach a custom pre-fill or routing layer.

Heyflow

SOC 2 Type II (audited May–Aug 2025) · ISO 27001 since Nov 2022

Built for performance marketers running multi-step funnels. Web-component embed (Heyflow retired iframe embeds entirely by end of 2024), native HubSpot, native Salesforce. Pardot is Zapier-only, not native. Heyflow is the only modern form builder on this list with native server-side Meta CAPI, TikTok Events API, and Google Ads Enhanced Conversions, all configured from the integration UI with hashed PII field mapping. The marketing-ops section below covers why that matters.

Paperform

Bootstrapped · SOC 2 Type II

Document-style editor with strong visual flexibility. Forms read like a designed page rather than a vendor template. Native HubSpot integration. Salesforce primarily via Zapier (no equivalent native depth to HubSpot in public docs). Native GA4 fires SubmittedForm and StartedSubmission events on submit. Not HIPAA-compliant. Best fit when design control matters. The submission hooks to know about are a native dataLayer push of paperformSubmissionEvent and paperformStepChange, plus a PaperformSubmission custom DOM event on the embed div. Both make GTM and overlay-tool wiring straightforward.

For teams whose demo pipeline is paid-traffic-led, a landing-page builder with native A/B testing and ads-platform tracking earns its line item.

Unbounce

Founded 2009

The most established paid-media landing-page builder, with Smart Traffic AI routing, native UTM and dynamic text replacement, and native HubSpot, Salesforce, and Marketo connectors. A native GA4 integration auto-fires generate_lead on submit. Everything beyond GA4 (Meta CAPI, LinkedIn CAPI, TikTok Events) is custom snippet work through Script Manager. One detail to know: Smart Builder, Unbounce's AI-assisted builder, was closed to new signups in April 2024. New accounts use the Classic Builder, which is the only builder that supports page-level custom JavaScript. Classic Builder is the right choice for B2B teams running per-page tracking pixels and scheduling overlays. The submission hook to know about is window.ub.hooks.afterFormSubmit, a documented API that overlay tools can attach to without racing the page transition.

A note on Instapage

Instapage's current 2026 tiers are Create, Optimize, and Convert (enterprise). Custom HTML/CSS/JavaScript is available across all tiers, including Create. The real B2B caveats are a 30 active-page cap on the Create plan, A/B testing gated to Optimize and above, and mobile editing that reviewers consistently flag as fragile. For most B2B paid-media teams, Unbounce's Classic Builder remains the simpler choice.

How customizable is the form?

Customizability decides whether your marketing team can ship a form alone or needs a frontend engineer to make it look right. Six dimensions matter:

  1. Visual styling. Branded colors, fonts, spacing, and per-element states without writing CSS by hand.
  2. Layout flexibility. Single-page, multi-step, conversational, or document-style.
  3. Conditional logic. Show/hide rules, page jumps, dependent fields, calculations.
  4. Field type breadth. Standard inputs plus signature, payment, file upload, calculation, lookup.
  5. Accessibility. WCAG conformance, keyboard navigation, screen-reader support, ARIA labels.
  6. Localization. Multi-language forms, RTL handling, per-locale variants.

Each provider sits somewhere on the line between "the marketer ships this alone" and "this needs a frontend engineer." Here's where each one lands.

HubSpot Forms

Medium-High customizability

Visual style editor on every tier (Free included). Multi-step forms, field-level conditional logic, and step routing on Marketing Hub Pro and above. Dependent fields, smart/progressive profiling. File upload (100MB), payment fields when the Payments tool is enabled, CAPTCHA. No native signature field. The documented workaround is custom HTML or a scanned-file upload. No calculation field. Form-level translations via "Create translation", one form per language. HubSpot does not publish a formal WCAG conformance statement; agency posts note that full WCAG AA usually requires custom dev. "Powered by HubSpot" badge is removable on Starter and above.

Marketo Forms 2.0

Medium customizability

Seven built-in themes plus a per-form custom CSS panel. Visibility Rules with one condition per rule; multi-condition logic requires hidden concatenated fields plus JavaScript. Two-column layouts supported. No native multi-step, no native file upload (Uploadcare or SendSafely are common third-party widgets), no signature, no payment, no calculation field. Adobe publishes an Accessibility Conformance Report for Marketo Engage. Developers describe the markup as div-heavy and the styling work as requiring aggressive !important overrides.

Pardot Form Handler / Account Engagement Forms

Low-Medium customizability

Open CSS surface via Layout Templates (HTML/CSS/JS) and per-form Look & Feel. Dependent-field rules and native progressive profiling on Pardot Forms (not on Form Handlers). No native multi-step. No native file upload, signature, payment, or calculation. Default iframe 500px height clip is a common mobile pitfall. Variable-height iframe code is the standard fix. No native multilingual mode; one form per language. Salesforce publishes a corporate WCAG 2.2 AA commitment, but Account Engagement's specific conformance documentation is older.

Salesforce Web-to-Lead

Very Low customizability

Bare HTML plumbing for the Lead object. No styling, no validation, no conditional logic, no multi-step, no file upload. Whatever Lead fields you map. Accessibility, mobile behavior, and localization are entirely the customer's responsibility. Salesforce gives you a form skeleton, not a product. The 500-leads-per-day cap is still enforced in 2026 (verified in Salesforce Help article 000382807). Use Web-to-Lead as a POC, not a primary demo form.

Gravity Forms

High customizability

Lives inside WordPress, so the full theme and CSS ecosystem applies. The Orbital theme framework (since 2.7, expanded in 2.9) exposes CSS variables and block-editor style panels. Visual conditional logic builder for fields, sections, pages, and Next-button visibility. Multi-page forms via Page Break. File upload, Signature add-on, payment (Stripe, PayPal, Square), calculation, Repeater (beta with documented limits: no file upload, signature, or calc inside a repeater yet). WCAG 2.1 AA compliant from version 2.5 onward. Multilingual via WPML's Gravity Forms add-on. G2 reviewers consistently flag styling as the friction point: "not being able to style the form easily is really annoying" is a recurring complaint.

Formstack

Medium customizability

Theme Editor with pre-built themes, Advanced Styles, Advanced Code Editor for custom CSS, color tokens. Native multi-page forms with section breaks. Field-level and section-level conditional logic. Routing logic is eligible only on Dropdown, Event, Checkbox, Number, and Radio fields, a documented limit. Signature (typed or drawn), 20-file upload, credit card field, payment formulas, calculations via Short Answer or Number fields. WCAG 2.1 AA audited and Section 508 compliant. 36-language localization for standard labels; custom field content must be translated manually. Reviewers describe the theme editor as clunky and brand-matching as harder than peer tools.

Webflow Forms (native)

Best visual control · Lowest feature set

Best-in-class visual styling because Webflow's full Designer style panel applies to the form's native elements. No iframe, full CSS, responsive breakpoints. The catch: the native Form Block has no multi-step, no conditional logic, no signature, no payment, no calculation, no documented success event. File upload requires Business hosting and above. For anything beyond contact-form simplicity, B2B teams use plugins (Inputflow, Formly, Webflow Logic in beta) or embed a HubSpot form on the Webflow page. Webflow publishes a WCAG 2.1 AA accessibility checklist. Webflow Localization auto-applies RTL for Arabic, Persian, Hebrew, Urdu, and Yiddish.

Framer Forms (native)

Best branding · Lowest feature set

Best-in-class branding for a no-code platform: form fields are native Framer components styled with the same canvas tools as any other element, with breakpoints per device. Native HubSpot form component for embedding HubSpot forms inline. The catch: single-page only by default, no conditional logic, no signature, no payment, basic field set. Multi-step and conditional logic come from paid marketplace plugins (FramerForms, Framer Form Kit, MultiStep Form Pro). Framer Localization supports RTL via the "Reverse layout" stack setting. Framer does not publish form-specific WCAG documentation.

Feathery

High customizability (developer-friendly)

Drag-and-drop builder compared by reviewers to Webflow's editor. Theme Builder with global and element-level styles. Visual Rule Builder for conditional logic with calculations, branching, and per-step actions. 16+ field types including signature, file upload, payment, SSN, address. White-label support including a custom dashboard domain. Mobile viewport selector for device-specific styles. Translation file upload for partial localization. Accessibility is not publicly documented. Community sentiment on visual design is mixed: one user on Feathery's own community forum compared the design tools to "trying to paint the Mona Lisa with a wet noodle," and the company actively brings in designers to support new customers.

Heyflow

Highest customizability in this guide

Simple and Expert design modes. Expert exposes 2,000+ style variables, per-corner radius, hover and focus states, and fully independent per-device (mobile and desktop) styling. 40+ drag-and-drop blocks (multi-choice, picture choice, signature, calculator, Stripe Checkout). Visual decision tree for conditional logic. Calculator block with Excel-style math (lead scoring, ROI). File upload up to 2GB. No first-party WCAG conformance statement (a third-party accessibility widget exists). Limited native localization. Weglot integration is the common path for multi-language flows. G2 reviewers say "the incredible depth is a double-edged sword". Powerful but with a learning curve.

Paperform

Medium-High customizability

Document-style editor produces forms that read like a designed page rather than a form template. Theme & Appearance editor, Google Fonts native, custom CSS on selected plans. Conditional logic with show/hide rules and Excel-style calculations. 26+ field types: signature, file upload, payment via Stripe/Square/PayPal native, product and discount fields. Single-language per form (workaround: duplicate per language) with RTL support. No public WCAG conformance statement. Capterra reviewers describe template customization as "finicky" for exact brand matching but praise support responsiveness.

Unbounce

High (Classic Builder) · Low (Smart Builder)

Classic Builder gives pixel-level drag-and-drop with custom CSS/JS at the page level and the documented window.ub.hooks API. Smart Builder (closed to new signups since April 2024) is template-constrained with grid snapping, and all custom scripts route through domain-level Script Manager. Native multi-step forms in both builders. No native file upload, signature, or payment field in either; these require third-party form embeds. No native multilingual page management (a third-party translation widget is the standard path). Accessibility: Unbounce states Classic Builder supports many WCAG 2.1 AA features but is not yet fully compliant; conformance responsibility is on the customer. Mobile editing is a documented weak spot in reviews.

Tracking and access to data

Pick a form for the marketer and the form will convert. Pick a form for the marketing-ops engineer and the form's data will actually show up in ad platforms, dashboards, and attribution models.

The stakes shifted in 2026. iOS 14.5 broke browser-based Meta Pixel tracking. Third-party cookies are gone in Safari and Firefox and on the way out in Chrome. Apple's Intelligent Tracking Prevention intercepts client-side conversion pixels. Every ad platform has shipped a server-side Conversions API in response: Meta CAPI in 2020, Google Ads Enhanced Conversions for Leads in 2022, LinkedIn Conversions API in 2023, TikTok Events API. These APIs accept hashed first-party data (email, phone, name) directly from a server, deduplicated against the client-side pixel via a shared event_id, with significantly higher match rates than browser pixels alone.

Three factors determine how easily a form integrates with this stack:

  1. The form-submit JavaScript event. A named event that fires on successful submission, carries the field data, and binds cleanly in GTM. Some forms expose this. Some require a MutationObserver and a forum thread.
  2. Native dataLayer push. A form that auto-pushes a submit event to window.dataLayer is one less custom GTM tag to maintain. Heyflow, Feathery, and Paperform do it; most others don't.
  3. Native server-side Conversions API integrations. Whether the form provider hashes email and phone client-side and ships a server-side event to Meta CAPI, LinkedIn CAPI, Google Enhanced Conversions, and TikTok Events API. Two providers on this list ship this end-to-end: HubSpot Forms (native Pixel + CAPI for Meta, native LinkedIn CAPI, native TikTok, native Google Enhanced Conversions for Leads on Starter and above) and Heyflow (native Meta CAPI and TikTok Events API with shared event_id deduplication, native Google Ads server-side with Enhanced Conversions and Consent Mode v2, LinkedIn via Insight Tag only). Everyone else routes through a third-party bridge (Stape server-side GTM, Conversion Bridge for Gravity Forms, LeadsBridge) or asks the ops team to build it.

The Ops factor

All twelve providers, the JavaScript hook each one exposes, and which ad-platform integrations are native versus require a third-party bridge. Scroll horizontally on smaller screens.

Provider Submit JS event dataLayer Meta CAPI LinkedIn CAPI Google Enhanced Conv. TikTok Events Verdict
HubSpot Forms hsFormCallback postMessage Custom JS Native (Pixel + CAPI) Native Native (Starter+) Native Best in class
Heyflow heyflow-submit on window Native (4 events) Native + dedup Insight Tag only Native + Consent Mode v2 Native + dedup Best in class
Marketo Forms MktoForms2.onSuccess Custom JS LeadsBridge LeadsBridge Not native Not native Clean client-side
Pardot Form Handler Community postMessage Custom JS LeadsBridge LeadsBridge Not native Not native Low fidelity
Salesforce Web-to-Lead None Custom JS Not native Not native Via Google Ads Data Manager Not native Lowest in guide
Gravity Forms gform_confirmation_loaded Add-On or GTM Conversion Bridge Conversion Bridge GTM Enhanced Conv. Conversion Bridge Clean hooks + 3P CAPI
Formstack FF_OnAfterSave() Custom JS Not native Not native Not native Not native Low–medium
Webflow Forms None documented Custom JS PixelFlow app Not native Not native Not native Low fidelity
Framer Forms framer:formsubmit Custom JS Pixelary plugin Not native Not native Pixelary plugin Medium
Feathery onSubmit SDK callback Native (2 events) Not native Not native Not native Not native Analytics-strong
Paperform PaperformSubmission event Native (2 events) Not native Not native Not native Not native Client-side only
Unbounce ub.hooks.afterFormSubmit Custom JS Stape template Not native Auto generate_lead (GA4) Not native Clean hook, no CAPI


Two takeaways. HubSpot Forms is the only CRM-native form with native server-side Conversions APIs to every major ad platform, with SHA-256 hashing of email, phone, name, and address handled by HubSpot before transmission. If the CRM is HubSpot and ad attribution matters, the form decision is closed. Heyflow is the only modern form builder that ships the same on the ads side, with one gap: LinkedIn is Insight Tag only, no Conversions API documented. Every other form on this list either has clean client-side hooks but no server-side CAPI (Marketo, Gravity Forms, Unbounce), or makes marketing ops build the server-side pipeline through Stape, LeadsBridge, or Conversion Bridge.

For Salesforce Web-to-Lead specifically: the legacy Salesforce-to-Google-Ads conversion connector was retired May 31, 2025. Customers who relied on it must migrate to Google Ads Data Manager, which supports both GCLID-based offline conversions and Enhanced Conversions for Leads with hashed PII.

The short version.

HubSpot CRM
Use HubSpot Forms.
Salesforce + WordPress
Use Gravity Forms Elite.
Salesforce + Webflow
Use Webflow with an embedded HubSpot form.
Marketo
Use Marketo Forms 2.0 and disable the follow-up page redirect.
Pardot
Use the Pardot Form Handler with custom HTML.
Designer pushback on the default
Evaluate Feathery, Heyflow, or Paperform.
Paid media with marketing-ops CAPI needs
HubSpot Forms or Heyflow.
Pure paid media without HubSpot
Unbounce, with server-side GTM for the ad-platform CAPIs.
HIPAA or regulated industry
Formstack.