Create your forms with our drag-and-drop form builder. Fields are laid out into rows and columns, providing plenty of freedom with form layouts.
Each form's fields are organised into pages, allowing your forms to be multiple steps, or a single one. Create complex multi-page forms, or keep it simple with a single page.
With a field for almost any occasion, Formie has you covered from simple text fields to radio, checkboxes, email, address and more.
Fields like date & time, file uploading, full address, name (short and full) — even Craft's element fields like entries, categories and Commerce products.
Even more advanced fields like Repeater for repeating content, Table for tabular data, and Group to group similar fields together.
Allow your users to provide content in a Rich Text field from the front-end.
Address Providers help lower user input mistakes, by prompting users full address details from Google, Algolia and more.
Select from a collection of preset values for hidden fields, for the current logged-in user, current date, query parameters and more.
With each field being unique, we aim to provide as many settings and configuration for fields as possible — both simple and advanced. From controlling the label, instruction text, placeholder and default value, to CSS classes, input attributes and more.
Want to make your own field for Formie? Create your own custom field type, with a full-featured API and documentation on how to get started.
Easily manage the properties of submit buttons with the form builder. Submit buttons are automatically added to pages. For multi-page forms, add a "Back" button, allowing users to navigate to previous pages.
Formie makes it easy to re-use your fields across your forms. Pick an existing field from another form, and create a copy of it in your form.
Feel like you're always creating the same field? Introducing Synced fields — a way to create your fields once, and edit them from anywhere. It's a great way to keep regularly-created fields like an Email Address around for easy re-use.
Any form solution wouldn't be complete without being able to notify someone on a users' submission. Create multiple email notifications per form as required. Creating dynamic content is also a breeze with our variable tags.
No more using Twig for email settings. Users can pick from a list of compatible form fields, global Craft settings or other useful defaults.
Set as many notifications per-form as you like. Maybe one for the admin team, another for the customer, and another for a third-party — each with their own content.
Everything you'd expect from email notifications: multiple recipients, from, reply-to, cc, bcc.
Select different email templates to use per notification. Maybe an on-brand template for customers, and a more plain template for admin staff.
Have a form where the user can upload files? Have Formie attach them to your email notifications so you don't have to login to your site's control panel to view them.
Formie will automatically generate a plain text email, based on the content you provide, so you don't have to wrangle two versions of the same content.
Create flexible and complex conditions on whether to send (or not send) email notifications, based on conditions with your form fields and submission content.
Keep track of sent email notifications with ease. You can see the exact content of the email sent, including any associated metadata.
With just the click of a button, you can re-send any notification to either the original recipient or multiple new ones.
Just in case you need to re-send a bunch of email notifications - we've got you covered!
Take the guesswork out of how your email notifications look before they're sent.
Categorise submissions using statuses. You can also set the default status submissions are assigned per-form.
Specify how you'd like forms to act, right within the form builder. Show a success message, redirect to an entry, or stay on the same page.
Choose whether to make forms submit the "traditional" way, with a page reload, or using Ajax submission for instant user feedback.
Capture payments right within your forms with Formie's payment fields and integrations. It's the perfect fit for if you want to charge users when filling out a form. You could be charging for a service, asking for a deposit — even paying for an invoice. Anything that requires a paywall.
Formie supports Stripe (one-time and subscriptions) and PayPal (one-time).
Use a single line of code to output your forms, complete with great-looking CSS styles, and JS to handle client-side validation, async form submission, multi-page and more. It's the quickest, no-nonsense way to use Formie on any site.
Make beautiful forms without lifting a finger. Our provided styles looks great, and are suited for almost any project.
Know that your forms are available to everyone, through best-practice accessibility implementations, aria support and more.
Take 100% control over your templates, styles and functionality. Formie provides total control for rendering your pages, fields, and more.
You don't need to override all templates just to make a minor change. Pick and choose which templates you want to change.
Provide templates for the front-end of fields, or even how fields are displayed in email notifications.
Fight spam with our in-built keyword blocking and submission behaviour control.
Provide your own captchas, or modify existing ones through our Integrations API.
Never miss a notification email again, with failed email notification alerts, letting you know when an email notification fails.
Making Formie feel like it fits with the rest of your site is super-important. Our theme config will help you configure every aspect of your form, from the `<form>` element, to individual fields, their inputs, submit buttons and more. All without touching the internals of Formie, or maintaining your own custom templates.
Ever needed to just modify a few things about a form, like the submit button colour? Theme config makes that a cinch. 💪
Total control over all HTML tags and attributes. Want to remove Formie's classes? Done. Want to add some of your own attributes, or not output some elements altogether? Also done.
Formie provides 45+ integrations to third-party platforms, meaning you can connect to almost anything! Add your users to your newsletters, create leads in your CRM pipelines or push form data automatically to Zapier. With a custom integration API to develop your own integrations, the possibilities are almost endless.
Create elements from submissions — so when a user fills out a form and submits it, an entry or other element can be created with the data in a submission.
Use third-party services to geocode address information, for your address fields. Take the guesswork out of figuring out correct address details!
Add form data as contacts, leads, deals and more to your favourite CRM platform like Salesforce or Zoho.
Allow your users to opt-in, or automatically sign them up to your favourite email marketing platform like Mailchimp or Campaign Monitor.
Send form data to any URL endpoint (POST forwarding), and Zapier.
Going headless? Query forms and submissions using GraphQL. Also supports creating submissions through mutations.
Set any field to use user content, when there's a currently logged in user. For instance, populate the email address and name from their user account.
You can easily populate form values from query string parameters in a given URL. Pre-populate your forms as your users land on the page!
Create "starter" forms to make creating new form a breeze. Save everything about a form, from its fields, to email notifications to settings. Just pick a stencil when creating a new form, and you'll be off to a great start.
Record your users' content for forms with submissions — don't just rely on email notifications. View them in your control panel at any time.
Migrate from Solspace Freeform or Sprout forms with our handy migration assistants. Not only will it migrate your forms, but any email notifications and submissions linked to forms.