Skip to main content

Formidable for ExpressionEngine

Forms that respect your markup.

Build a form in the control panel and render it with one tag. Then take over as much of the markup as you like, one layer at a time. Validation, spam protection, storage and workflows keep working underneath.

ExpressionEngine 7.5+PHP 8.2+Version 1.1

Sold and downloaded through the ExpressionEngine add-on store.

contact.group/index.html
{exp:formidable:form
form_handle="contact"
return="contact/thanks"
}

Your markup, your way

Take over one layer at a time.

Every step keeps everything from the step before it that you didn't replace. Stop wherever the theme stops suiting you.

  1. 01

    One tag

    The whole form, from your theme: fields, pages, errors, success, buttons.

    template
    {exp:formidable:form form_handle="contact"}
  2. 02

    Your form element

    Write the <form> and its layout. Formidable fills in the fields.

    template
    <form {form_attributes}>
    {form_meta}
    {fields}{field_template}{/fields}
    </form>
  3. 03

    Your field markup

    Every label, input and error by hand. Values, ids and ARIA are still handled.

    template
    {fields}
    <label for="{field_handle}">{field_name}</label>
    <input {field_attributes}>
    {/fields}
  4. 04

    Your whole form

    Already wrote it? Capture it. Your markup stays exactly as it is.

    template
    {exp:formidable:capture form_handle="contact"}
    <form method="post">…</form>
    {/exp:formidable:capture}

See every layer in the docs →

After the submit

Workflows that tell you what happened.

Send email, call a signed webhook or push to your CRM, each with its own conditions. Every run is logged with what it sent and what came back, and one click runs it again.

  • Mailchimp
  • HubSpot
  • Salesforce
  • Campaign Monitor
  • Constant Contact
  • Dotdigital
  • Mailjet
  • Webhooks

For developers

Headless when you need it. Extensible always.

A JSON API with the same validation as a posted form, eighteen extension hooks, your own fieldtypes and providers, and every command runnable from cron or the control panel.

Your first form is five minutes away.

Get Formidable from the ExpressionEngine add-on store, build a contact form, and put it on a page with one tag.