Form Builder
Build any storefront form in the Magento admin without code: drag fields onto the form, split it into steps, show fields only when other answers match and accept file uploads.
Check it fits your store
Questions about compatibility? Contact us.
Details
Magento Form Builder lets you create storefront forms in the Magento admin without writing code. Build contact forms, quote requests, product questions, feedback and rating forms, callback requests or job applications, then manage submissions and reply to customers from the admin.
Build forms with Magento Form Builder
- Drag-and-drop editing: build with a field palette, form canvas and settings panel. Reorder fields by dragging, using buttons or using the keyboard.
- 19 field types: text, text area, email, phone, number, date, time, date and time, dropdown, multiple select, radio buttons, checkboxes, single checkbox, star rating, file upload, location, hidden field, HTML/text block and heading/divider.
- Flexible layouts: choose full, half or third widths, and arrange radio buttons and checkboxes vertically or side by side.
- Multi-page forms: divide longer forms into steps with a step indicator, Next and Back buttons, and validation on each page.
- Conditional fields and pages: show content based on answers using all-or-any rules. Conditions are checked again on the server.
- Validation and prefilled values: apply format rules and length limits, prefill signed-in customers' names and email addresses, and capture hidden values such as the page URL or product SKU.
Start with templates such as Contact Us, Customer Feedback or Product Question / Quote Request. Choose Clean, Rounded or Outlined styling, set an accent color, and adjust the form's maximum width and position.
Choose where forms appear
- Standalone pages: give each form its own URL, meta title and meta description.
- CMS pages and blocks: use the Techimprovement Form widget to display a form inline or in a popup opened by a button.
- Page Builder: add forms as a Page Builder element when Magento Page Builder is available.
- Product pages: show a form as a tab or section, in the product information column below Add to Cart, or below the product information. Apply it to all products or products in selected categories.
Control availability by store view, customer group and active dates, or limit submissions to one per customer. Server-rendered forms include labels, error messages and keyboard support, work with the full page cache and submit without reloading the page.
Manage submissions and customer replies
- Filter submissions and track New, Read and Answered statuses. Open each submission to review answers and uploaded files, add internal notes and reply by email.
- Send team email notifications with recipients set per form, plus optional customer auto-replies.
- Let signed-in customers view their submissions and your replies under My Forms in their account.
- Export the submissions grid to CSV or Excel XML, or export all submissions for one form as a CSV with one column per field.
- Track views, submissions and conversion rate for each form with a 30-day chart.
Control spam and submission privacy
Use a honeypot field, per-IP submission limits and Google reCAPTCHA v2, v2 invisible or v3 through Magento's reCAPTCHA settings.
Add a consent checkbox and store its consent text with each submission. You can also disable IP address storage and automatically delete old submissions together with their uploaded files.
Use one package on Luma and Hyvä
The extension supports Luma, Luma-based themes and Hyvä Theme 1.3 or later using Hyva/default or a child theme. It requires no compatibility module or Tailwind build.
On Hyvä, forms load their own small stylesheet and scripts only on pages containing a form, follow the theme's colors and font, and support restyling with CSS custom properties. Popups, multi-page forms, conditions, uploads, reCAPTCHA, product page positions and My Forms work on both Luma and Hyvä.
Administration and integrations
Manage forms and submissions under Content > Form Builder. Separate admin permissions control viewing and managing forms, replying to, deleting and exporting submissions, and access to settings.
Configure the form page URL prefix, upload limits, emails, spam protection and privacy under Stores > Configuration. A read-only REST API provides access to forms and submissions, and a CLI command lets you delete old submissions.
Requirements
- Platform: Magento Open Source or Adobe Commerce 2.4.7–2.4.9.
- PHP: versions 8.2–8.5.
- Theme: Luma, a Luma-based theme, or Hyvä Theme 1.3 or later using Hyva/default or a child theme.
- Services: Magento email sending and Magento cron jobs for scheduled forms on cached pages and deletion of old submissions.
- Optional features: Magento Page Builder for its form element; Magento's reCAPTCHA modules and Google reCAPTCHA keys for reCAPTCHA; a Google Maps API key for the optional location-field map picker.
Editions and included download
Choose the Community, Enterprise or Magento Cloud edition. This digital product includes the Form Builder — Version 1.2.0 download; the download is not purchased separately.
Change Log
Version 1.2.0 – October 30, 2026
New
- Hyvä theme support: forms work and are styled on Hyvä themes (Hyvä Theme 1.3+, Hyva/default or a child theme) without a compatibility module and without a Tailwind build: inline and popup forms, own form pages, CMS widgets, Page Builder elements, the product page positions (tab as a product section, product info column, below the product info), multi-page forms, conditions, file uploads, ratings, view counting, the prefill of signed-in customers, "one submission per customer" and My Forms in the customer account. On Hyvä a form adds the plain stylesheet css/form-builder-hyva.css and its scripts itself, so pages without a form load nothing. Colours follow the Hyvä theme and can be changed with CSS custom properties (--ti-form-accent, --ti-form-on-accent, --ti-form-text, --ti-form-muted, --ti-form-border, --ti-form-bg, --ti-form-surface, --ti-form-error, --ti-form-field-radius, --ti-form-font).
- reCAPTCHA on Hyvä: the widget (v2 checkbox, v2 invisible, v3) is rendered and executed by js/form.js from the settings of Magento's reCAPTCHA configuration (Model\Captcha\ReCaptcha::getWidgetConfig()).
- Layout handles hyva_catalog_product_view, hyva_ti_formbuilder_account_index and hyva_ti_formbuilder_account_view; templates hyva/account/list.phtml, hyva/account/view.phtml and product/tab-title.phtml.
Improved
- The storefront scripts js/form.js, js/popup.js, js/conditions.js and js/map.js are plain JavaScript in UMD form: RequireJS modules on Luma as before, standalone scripts on Hyvä. js/form.js and js/popup.js no longer require jQuery; on Luma jQuery is still used to bind the submit handler and send the form, so Magento's reCAPTCHA and the customer data sections keep working as before.
- The settings of a form moved from data-mage-init to the data-ti-form-config attribute of the , with the messages translated on the server. tiFormSubmitted and tiFormDialogOpen are now DOM events (CustomEvent, bubbling; jQuery listeners still receive them).
Earlier versions (2)
Version 1.1.0 – October 27, 2026
New
- Option layout for radio buttons and checkbox groups (field setting option_layout): Vertical (default) or Horizontal, where the options sit side by side and wrap on narrow screens. The builder has a "Layout" setting and shows the layout on the form; all three themes support it. The Customer Feedback and Product Question templates use the horizontal layout for their short radio groups.
- Form settings Maximum Width (px) (form_width, 320–1600; empty = full width) and Position (form_position: left, center or right) in the Design section. The whole form block (title, intro, steps, form, success message) moves; this applies on the own page (the page title moves with the form), in CMS widgets, in Page Builder and in product tabs, not inside the popup. Both settings are part of the REST data.
- Extension point for templates: Api\TemplateProviderInterface, registered as providers of Model\Template\Library in di.xml. Provider templates are installed on every setup:upgrade; they cannot replace built-in templates (duplicates are logged and skipped). Template form settings may contain form_width, form_position and option_layout.
- Template picker icons magento, cloud, shopify, wordpress and expert (neutral symbols); unknown icons fall back to the generic form icon.
Improved
- Forms are no longer limited to about 860 pixels: by default they fill the page, block or tab they are shown in. To keep the previous look, set Maximum Width to 860 and Position to Left.
Fixed
- After Next and after sending, the step indicator and the thank-you message were scrolled under a sticky store header. The form and the message now keep 96 pixels of space above them (CSS custom property --ti-form-scroll-offset).
Version 1.0.0 – October 27, 2026
New
- Forms grid (Content › Form Builder › Forms) with title, code, status, store views, customer groups, submissions, views, conversion rate and last change; filters, saved views and the mass actions Enable, Disable, Duplicate and Delete.
- Drag-and-drop builder: field palette, form canvas and settings panel; reordering by drag and drop, buttons and keyboard (Alt + arrow keys); full, half and third widths; multi-page forms with page titles, page conditions and page reordering.
- 19 field types: text, text area, email, phone, number, date, time, date and time, dropdown, multiple select, radio buttons, checkboxes, single checkbox, rating, file upload, Google Map location, hidden field, HTML / text block, heading / divider; per-field label, code, help text, placeholder, default value, required, width, CSS class, length limits, validation rules (email, URL, digits, letters, letters and digits, regular expression), customer prefill and hidden value sources (fixed value, page URL, product SKU, product name, customer email).
- Conditions for fields and pages (is, is not, contains, is empty, is not empty, is greater than, is less than; all or any), evaluated in the browser and again on the server; hidden fields are not required and not stored.
- Five templates installed by a data patch: Contact Us, Customer Feedback, Product Question / Quote Request, Callback Request and Job Application.
- Three form themes (Clean, Rounded, Outlined) and an accent colour per form, based on CSS custom properties.
- Display options: own form pages under a configurable URL prefix with meta title and description, the "Techimprovement Form" CMS widget (inline or popup), the "Form" Page Builder content type and product pages (product tab, product info column or below the product info) for all products or selected categories.
- Restrictions by store view, customer group, active period and one submission per customer.
- Submissions grid with status (New, Read, Answered), filters, mass actions, CSV and Excel XML export; submission page with answers, protected file downloads, product and page details, email replies with history, status and internal notes; per-form CSV export with one column per field, read in batches of 500.
- "My Forms" in the customer account with the customer's submissions and the replies.
- Emails: new submission notification (recipients per form), auto-reply and admin replies, all with editable email templates. Auto-replies go to signed-in customers at their account email (optionally with their answers); guests get one only when Google reCAPTCHA is enabled for Form Builder forms, without their name or answers; at most 3 auto-replies per address and hour.
- Spam protection: Google reCAPTCHA through Magento's reCAPTCHA settings, honeypot field and a limit of submission attempts per IP address (default 10 in 10 minutes), counted atomically in the database.
- Privacy: consent checkbox with the stored consent text, option not to store IP addresses, retention period with a daily cron job and the command bin/magento techimprovement:forms:clean.
- Statistics per form: views, submissions, conversion rate and a 30-day chart, from a daily statistics table; views are counted in a way that works with the full page cache, once per IP address, form and day.
- Cron job ti_formbuilder_refresh_scheduled_forms (every 15 minutes) refreshes cached pages of forms whose "Active From" / "Active To" day started or ended.
- Service contracts for forms and submissions and read-only REST endpoints.
- Configuration in Stores › Configuration › Techimprovement › Form Builder.
- Dependencies are declared in composer.json and module.xml, including Magento_Theme (pager of "My Forms").
Security
- Grid exports only export the submissions listing, so the "Export Submissions" permission cannot export other grids (customers, orders).
- Admin data is escaped in confirmation dialogs (form title in the grid's delete confirmation, field labels and page titles in the builder).
- "Redirect After Submit" accepts only paths on the store and URLs on the store's own domains; backslashes, control characters and user information are refused.
- Regular expressions with nested or overlapping quantifiers are refused on save; patterns that cannot be evaluated on the server are logged and do not block customers; long values are only checked on the server.
- One submission per customer is enforced with a lock, so parallel requests cannot create two submissions.
- Database messages are logged and never shown to visitors.
- Cells of the grid CSV export and the header of the per-form CSV export are protected against formula injection.
- Saving a form refreshes only the cached pages that show it; product pages only when its product placement changes.
- Downloads of uploaded files are sent with X-Content-Type-Options: nosniff.
Reviews
Be the first to review Form Builder
Reviews are written by customers with an account. Sign in to tell others how it works on your store.

