Product support

Visit this product's website for support.


  • Developer Tools
  • Marketing
  • Social
  • Utility

Why Magic Forms?

Almost everyday we make forms for our clients, personal projects, etc. Sometimes we need to add or remove fields, change validations, store data and at some point, this can become boring and repetitive. So, the objective was to find a way to just put HTML elements on the page, skip the repetitive task of coding and (with some kind of magic) store this data in the database or send by mail.


  • Create any type of form: contact, feedback, registration, etc
  • Write only HTML
  • Don't code forms logic
  • Laravel validation
  • Custom validation errors
  • Use multiple forms on same page
  • Store on database
  • Export data in CSV
  • Access database records from backend
  • Send mail notifications to multiple recipients
  • Auto-response email on form submit
  • reCAPTCHA validation
Component settings


In your OctoberCMS backend, go to Updates > Install plugins and search for "martin.forms" or:

Alternative #1: install from October Marketplace Alternative #2: from console, run: php artisan plugin:install Martin.Forms


  1. Drag selected component to your page.
  2. Configure parameters.
  3. Ready


Generic AJAX Form

By default renders a generic contact form to show the basic of Magic Forms. Feel free to copy the included HTML and modify to fit your needs.

Empty AJAX Form

Create a empty template for your custom form; override HTML with your fields but remember to keep form tags and flash messages container.


Form validation is independent for every component.

Just use Laravel validation rules as usual. You can use as many as you want: required|alpha or required|email.

Custom Validation Messages

Refer to Laravel documentation, Working With Error Messages.

Example: email.required or name.alpha


Because the nature of Magic Forms, every form field received is stored. This allows visitors to send extra fields. Although every received value is filtered, escaped and "secured", you may end having unsolicited stored data.

To prevent this scenario, on component configuration, there is a Security group with a property called "Allowed Fields"; put the names of your fields to process (one per line) and ignore anything not expected.

  • Found the plugin useful on 17 Jan, 2017

    I really want to use this plugin, but it's hard for me to understand due to the "generic ajax form" being all blank with no information in it. Am I missing something?

  • author

    Replied on 18 Jan, 2017

    If you are using the empty ajax form component you need to:

    1. override the component HTML, more info here

    2. paste the provided template:

      <form data-request="emptyForm::onFormSubmit">
          {{ form_token() }}
          <div id="{{ __SELF__ }}_forms_flash"></div>
          <!-- YOUR FORM FIELDS -->
          {% partial [email protected]' %}
          <!-- SUBMIT BUTTON -->
    3. Replace
      <!-- YOUR FORM FIELDS -->

      with the HTML of your form (inputs, selects, textareas) and

      <!-- SUBMIT BUTTON -->

      with a submit button

  • Found the plugin useful on 15 Jan, 2017

    Thanks for your job! Can it attach file to backend/mail?

  • author

    Replied on 15 Jan, 2017

    AJAX file upload it's "too complicated" (you can read more here.

    I think the best solution will be creating a new component who refresh the page (or redirect) to upload files.

    Definitely it's something i want to see on the plugin, but, honestly don't know when.

  • Found the plugin useful on 13 Jan, 2017

    Hi, do not work plugin. I don't understand how to setup could put the video for easy installation?

  • Found the plugin useful on 12 Jan, 2017

    Excellent plugin!!

    This is by far the best form plugin that I have used for October. Easy to use and very flexible.

    Quick question: How can we create an auto-response email to the person submitting the form?

    Thanks for this plugin!


  • author

    Replied on 12 Jan, 2017

    Thanks for the feedback!

    I will add this option to the plugin in the next version.

  • Found the plugin useful on 9 Jan, 2017

    Great job on creating this very useful plugin!!!


Override notifications and auto-response email subjects

Jan 15, 2017


Auto-response email on form submit

Jan 13, 2017


Export stored data in CSV format

Jan 12, 2017


Filter forms records

Jan 12, 2017


fix when using reCAPTCHA + allowed fields

Jan 07, 2017



Jan 06, 2017


Added CSRF protection

Jan 05, 2017


First version of Magic Forms

Dec 31, 2016