Product support

Visit this product's website for support.


  • Developer Tools
  • Marketing
  • Social
  • Utility

Please, post your errors or questions on GitHub (not in the reviews area)

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.


Docs are available here; feel free to edit and improve (feedback is always welcome).


  • Create any type of form: contact, feedback, registration, uploads, 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
  • Support for Translate plugin
  • Inline errors with fields (read documentation for more info)
  • AJAX file uploads (BETA, available since v1.3.0)

The following themes use this plugin:

Component settings

Latest documentation available on GitHub

  • Found the plugin useful on 17 Feb, 2018

    Hi for all. Plugin is great. To work captcha you need to make site work via https, because this says on google recaptcha page faq.

  • Found the plugin useful on 9 Feb, 2018

    Martin! It's a very good plugin for me, it's quick and easy to help me when making my website forms. I just started studying the october cms system 2 weeks ago. I have one problem, I can not understand how the Recaptcha section works.

    1. I filled the site and secretkeys under the system menu item.
    2. I have enabled captcha in the recaptcha settings section.
    3. With using your pre-assembled generic form I tried to work but failed. The following error is displayed: An exception has been thrown during the rendering of a template ('recaptcha' partial is not found.)

    What did I miss? How can I make it work?

  • Found the plugin useful on 9 Feb, 2018

    Best Form plugin on the October marketplace.

  • Found the plugin useful on 3 Feb, 2018

    Magic Forms is great!

    There is only one demo for an example of its use.

    But after reading the comments and documentation it was possible to get it to work.

    All that I needed from the forms, I was able to implement with it!

    Thank you very much, Martin!

  • Found the plugin not useful on 25 Jan, 2018

    Very poor documentation, didn't understand how to use the plugin. Do you have any quick video guide?

  • Found the plugin useful on 11 Jan, 2018

    forms are not submitting on cms pages, but works on cms layouts

    I have a page registration.htm then I created the Empty AJAX Form, but it's not submitting. My other form which is contact form using Generic AJAX Form, I put it in one of my layout and it works fine.

    what should be the problem? is forms not working on cms pages?

  • Found the plugin useful on 21 Dec, 2017

    Great Plugin but the upload file button does not work. Can anyone help me please?

  • Found the plugin useful on 18 Oct, 2017

    This is a great plugin when you get it working.

    The documentation does not make the pre-requisites clear. You must ensure that the October AJAX framework is included on the page: <https://octobercms.com/docs/ajax/introduction#framework-script>;

    Additionally the component cannot be added to a partial otherwise to yet an AJAX handler not found error - it must be added to a page.

  • Found the plugin not useful on 12 Aug, 2017

    The plugin looks OK, but it's broken. I tried all three types of components: emptyForm, genericForm, uploadForm. None of them work. On sending form, the page just reloads with no errors (even in log files). I tried to change SMTP to PHP Mail in October CMS settings. It didn't help me.

    Also captcha for uploadForm didn't output anything (Google keys was set before).

  • Found the plugin useful on 11 Aug, 2017

    "The partial 'recaptcha' is not found." I am getting this problem. I tried finding the answer but none of it worked. Can you please help me?

  • Found the plugin not useful on 29 Jul, 2017

    Seems to be useful, but is poorly documented. Couldn't even put to work the default genericForm.

    Pitty :(

  • Found the plugin useful on 13 Jul, 2017

    Hello and thanks for the great plugin.

    I have a question because I get this error when I use the file uploads plugin: uploader.js:340 Uncaught TypeError: $(...).render is not a function at uploader.js:340 at uploader.js:344

    This is the syntax it's getting stuck on: $(document).render(function () { $('[data-control="fileupload"]').fileUploader() })


    I see the upload form and I can submit it but I just can't upload a file. It's not working..

    Can you help me?

  • Found the plugin useful on 11 Jul, 2017

    Hello, not sure what I'm messing I'm not receiving the emails?

    [genericForm ContactForm] group = "ContactForm" rules[name] = "required" rules[email] = "required|email" rules[subject] = "required" rules[message] = "required" rules_messages[name.required] = "name is required" rules_messages[email.required] = "email is required" rules_messages[subject.required] = "subject is required" rules_messages[message.required] = "message is required" rules_messages[email.email] = "email must be valid" messages_success = "Your message was successfully submitted" messages_errors = "There were errors with your submission" mail_enabled = 1 mail_subject = "new contact message" mail_recipients[] = "[email protected]" mail_recipients[] = "[email protected]" mail_replyto = "email" mail_resp_enabled = 1 mail_resp_field = "email" mail_resp_from = "[email protected]" mail_resp_subject = "Thank you for contacting us!" reset_form = 1 inline_errors = "display" anonymize_ip = "disabled" recaptcha_theme = "light" recaptcha_type = "image" recaptcha_size = "normal"

  • author

    Replied on 12 Jul, 2017

    Hello Asma,

    Config looks fine, are October mails working?

  • Found the plugin not useful on 31 May, 2017

    I do not understand how to install this plugins, can the documentation be clarified again and please kindly help me.

  • Found the plugin useful on 29 May, 2017

    Greate plugin! Thank you for your work very much! Can I add some js on success answer? I have 2 forms on my page and I need to add different google analytics actions.

  • Found the plugin useful on 22 May, 2017

    Hi! Excellent plugin!! but I have some error occurs, it says:

    Form session expired! Please refresh the page.

    Can you please help me solve the problem?

  • author

    Replied on 22 May, 2017

    Hello Denis, usually, this problem occurs when this line is missing on the component HTML:

    {{ form_token() }}

  • Found the plugin useful on 15 May, 2017

    Love that plugin so easy to create forms!

    What is the best way to create multiple forms?

  • Found the plugin useful on 13 Apr, 2017

    im very thanksful there's plugin that's so useful like this plugins, btw i've asking the question about my problem to outputing the value from backend to the frontend, is that must using SQL query? or it become simple like {{ form.name }} ? i've try it to outputing the value but i dont have any idea how.

    im glad if there's anyone tell me how to do that.

  • author

    Replied on 14 Apr, 2017

    Please, check the updated documentation (feedback will be welcome)

  • Found the plugin useful on 7 Apr, 2017

    Great plugin, really useful and easy to use.

    Some lack with file upload, but the support is really good and I'm sure this part will be improved over time.

  • author

    Replied on 9 Apr, 2017

    Thanks for your words.

    Yes, file upload is still beta, there is a discussion on github about the future, maybe change to another component ...

  • Found the plugin not useful on 5 Apr, 2017

    This looks like it could be a handy plugin, but the documentation terrible. Provide some screenshots, etc. so that you don't have to rely on everyone being an OctoberCMS developer to make sense of what you are doing.

  • Found the plugin useful on 23 Mar, 2017

    I like this plugin.

    One question: can you provide me with pointers on how to extend this ? say I want to save user_id (of authenticated user, a new column already added to the table thru new plugin), how to do it?


  • Found the plugin useful on 7 Mar, 2017

    recaptcha did not display, My problem is regulated in this way

    <form data-request="{{ emptyForm }}::onFormSubmit">
            {{ form_token() }}
            <div id="{{ emptyForm }}_forms_flash"></div>
            <!-- YOUR FORM FIELDS -->
            {% partial 'recaptcha' __SELF__=emptyForm %}
            <!-- SUBMIT BUTTON -->

  • Found the plugin useful on 7 Mar, 2017

    Hi, plugin is cool but i want ask. When i send form, data dont clear from fields. Its my mistake or plugin?


  • author

    Replied on 7 Mar, 2017

    Hello Petr

    There is an option to reset form, you can check here

  • Found the plugin useful on 6 Mar, 2017

    Great plugin! Easy to setup and customize!!

    Thank you very much

    Is it possible to have inline validation in the current version instead of a (possibly huge) alert-box?

  • author

    Replied on 6 Mar, 2017

    Hello Vianney:

    You can check the issue #21 and the branch inline-errors on github.

    We are testing for possible alternative to inline errors.

    Feel free to test for yourself (feedback is welcome).


  • Found the plugin useful on 4 Mar, 2017

    Like it very much so far. Used the file upload and the empty form. Both worked liked a charm so far. Thank you for all the work.

  • author

    Replied on 5 Mar, 2017

    Thanks for your words Ralf

  • Found the plugin useful on 6 Feb, 2017

    Very nice plugin, really useful, easy to use, user friendly, flexible, regularly updated... By far the best form plugin for October.

  • author

    Replied on 7 Feb, 2017

    Thanks for your comments.

    Happy to see my work helping other people.

  • 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 '@recaptcha' %}
          <!-- 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.

    This option was added on v1.3.0

  • 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.

    Edit: this option was added on v1.2.1

  • Found the plugin useful on 9 Jan, 2017

    Great job on creating this very useful plugin!!!

Changed database field from json to text to support MySQL 5.5

Nov 27, 2017


New option to skip saving forms data on database.

Nov 21, 2017

Store form data without escaping unicode [thanks to panakour]

Oct 14, 2017


Mail class code refactoring

Oct 06, 2017

Fix with notifications emails

Sep 10, 2017


Use custom partials for Success and Error messages

Sep 10, 2017


Fixes related to October Build 420

Aug 30, 2017


Escape HTML characters on the view records page [thanks to Andre]

Jul 30, 2017


New option "Reply To"

Jun 19, 2017


Added Events (please, refer to docs) [thanks to therealkevinard]

Jun 09, 2017


Use custom mail templates

May 24, 2017


Fixed handling arrays (radio inputs) in notification email

Apr 28, 2017


Displaying errors with fields (inline errors)

Apr 14, 2017


French translation

Mar 16, 2017


New option "Redirect on successful submit"

Mar 05, 2017


New "Anonymize IP" option

Feb 26, 2017


Fixed record detail page when form data contains an array

Feb 17, 2017


Fixed multiples reCAPTCHAs on same page

Feb 05, 2017


Added lang pt-br

Feb 04, 2017


AJAX file uploads

Feb 01, 2017


Added detailed reCAPTCHA help

Feb 01, 2017


New option to reset form after successfully submit

Jan 27, 2017


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