One page per builder. Each is tested against a copy of the builder's form markup (app/api/capture/__tests__/fixtures/builders/).
| Builder | Method |
|---|---|
| Gravity Forms | form capture, selector .gform_wrapper form |
| Elementor Pro forms | form capture, selector form.elementor-form |
| Webflow forms | form capture, selector .w-form form |
| Ninja Forms | orc.trackConversion snippet |
| Contact Form 7 | form capture, selector form.wpcf7-form |
| WPForms | form capture, selector form.wpforms-form |
| Instapage | form capture, selector form.email-form |
| Unbounce | orc.trackConversion snippet (Unbounce submits by script: no submit event) |
| GoHighLevel forms | iframe vendor switch |
| Wix Forms | form capture, selector form[data-hook="form"] |
| HubSpot Forms | form capture form.hs-form, or the iframe vendor switch |
| Typeform | iframe vendor switch |
| Jotform | iframe vendor switch |
| Calendly | iframe vendor switch |
For any other builder: if the form is in your page and the browser fires a submit event (a real submit button), a form selector works. If the builder submits by script (form.submit(), a button of type button plus XHR), no submit event fires and a selector sends nothing: call orc.trackConversion from the builder's own success callback. If it is in an iframe, redirect to a thank-you page and add a thank-you page rule. If neither, call orc.trackConversion from the builder's own success callback.