Product support

Visit this product's website for support.


Form Builder plugin

Demo URL: https://october-demo.renatio.com/backend/backend/auth/signin

Login: formbuilder

Password: formbuilder

Plugin allows you to build custom front-end forms with ease. Without any technical knowledge create functional forms for all your needs.

OctoberCMS Form Builder


  • Build and manage your forms in OctoberCMS backend
  • Use custom HTML markup for fields
  • Create custom fields
  • Reorder fields
  • Example form with all default form controls
  • Simple contact form included
  • Native ajax files upload
  • Basic responsive mail templates
  • Google reCaptcha support
  • RainLab Translate Plugin support with Multisite
  • RainLab Location Plugin support
  • RainLab Pages Plugin support to use form as snippet
  • Duplicate form and field types
  • Reply to functionality and autoresponder with custom mail template
  • Form logs with export functionality
  • Event for extending default functionality
  • Custom Form Template
  • Spam Protection Plugin support

Why is this a paid plugin?

Something that is free has little or no perceived value. Users do not commit to free products and only use them until something else looks nice and is free comes along. When I invest my time in the development of a new plugin I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup.

Did you know that 30% of your purchase or donation goes to help fund the October Project?

My plugins take many hours to develop (40-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time, and the time I am spending on free plugins and less successful paid plugins. This means that it will take even a successful plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.

Like this plugin?

If you like this plugin, give this plugin a Like or Make donation with PayPal.

My other plugins

Please check my other plugins.


Please use GitHub Issues Page to report any issues with plugin.

Reviews should not be used for getting support, if you need support please use the Plugin support link.

Icon made by Darius Dan from www.flaticon.com.



After installation plugin will register backend Form Builder menu position. From there you will be able to manage your forms.

There will be three sub-menus, Forms, Field types and Form logs.

Forms list all created forms.

Field types list all available field types.

Form logs list all forms submissions.

There will two examples forms included after installation. Simple contact form and default form, that will demonstrate all available fields.

Plugin will register renderForm component to use it on CMS page. After adding component to CMS page, you must inspect it (by clicking on it) and choose the form.

Plugin uses Ajax Framework to process form. Remember to add following code in layout:

{% framework extras %}
{% scripts %}

Please check if you have a following code in your layout <head> section.

{% styles %}

Example of placing form component on CMS page


url = "/contact"
layout = "default"

[renderForm contactForm]
formCode = "contact-form"
{% component 'contactForm' %}

Example of placing form component on CMS partial


url = "/contact"
layout = "default"

[renderForm contactForm]
formCode = "contact-form"
{% ajaxPartial "contact" %}


{% component 'contactForm' %}

Important note: For form handler to work you must use {% ajaxPartial %} instead of normal partial tag {% partial %}.


Spam Protection

If you need Spam protection for your forms I recommend to install following plugin: Spam Protection Plugin

After you install this plugin it will automatically protect all your forms. It will work out of the box.

Custom template

By default, plugin will auto generate template when Custom Template field is empty. When you need to replace default markup generated by plugin than you can write it here. You have access to special form_field() function that takes one parameter, the name of the field.

Example that will display two fields in one row:

<div class="row">
    <div class="col-6">{{ form_field('first_name') }}</div>
    <div class="col-6">{{ form_field('last_name') }}</div>

Floating labels

Simple form labels that float over your input fields. This requires to use Bootstrap 5.


Custom HTML markup for fields

You can change HTML markup for each field by going to Form Builder -> Field types and updating the field type. Recommended approach is to duplicate field type and then modify it as you wish.

Custom field types

You can create custom field types by going to Form Builder -> Field types and clicking New field type button.

For example if you want to create Email field type just duplicate the markup from Text field type and change the type of the input from text to email.

Now after saving this field it will be possible to use it in your form.

In markup section you can use Twig and following variables:

Property Type Description
label String Label for the field.
label_class String Label CSS classes.
name String HTML name attribute. Also used in mail template.
default String Default value for the field.
comment String Help block for the field.
class String HTML class.
wrapper_class String HTML wrapper class.
placeholder String Placeholder for the field.
options Array Options for dropdown, radio list, checkbox list.
custom_attributes String Custom HTML attributes. For example id="my-field".

Available field types


Renders a single line text box.


Renders e-mail address field.

Phone number

Renders phone number field.


Renders URL field.


Renders numeric field.


Renders datetime field.


Renders date field.


Renders time field.

Color Picker

Renders a color picker.


Renders a multiline text box.


Renders a dropdown with specified options.


Renders a single checkbox.

Checkbox List

Renders a list of checkboxes.

Radio List

Renders a list of radio options, where only one item can be selected at a time.


Renders google reCaptcha box for SPAM protection.

Please visit reCaptcha site to obtain credentials.

Next go to Settings -> Form Builder -> Google reCaptcha and fill your site key and secret.

Important note: This field must have g-recaptcha-response as field name and required|recaptcha in validation section to work properly.

Files upload

Renders a file input.

Filter fields selected by a user

To filter allowed file extensions or file types you can add custom attribute.

For example to only allow selecting files with extension .pdf or .doc.


For example to only allow selecting images:


To make file input required just add required in validation section.

To restrict max file size to 512 kb just add max:512 in validation section.

To restrict file mime type to pdfs just add mimes:pdf in validation section.

To restrict file to images just add image in validation section.

For more available validation rules see October documentation.

Multiple files

By default file upload field only allow to upload a single file. To enable multiple file uploads in Upload options tab check Allow multiple files checkbox.

When validating multiple files to work correctly you must check Nested array based form input checkbox in validation section. This will apply validation for each uploaded file. Do not check this checkbox when using required rule.

Send uploaded files as mail attachments

By default uploaded files are sent with mail as attachments. You can disable this behaviour by unchecking this checkbox.

Display mode

Display mode is just to inform backend area how to display uploaded files in form log entry. If you only allow to upload images then select image mode.

Country select

Renders a dropdown with country options.

Important note: You must install Location Plugin to use this field.

State select

Renders a dropdown with state options. This field depends on country select.

Important note: You must install Location Plugin to use this field.


Renders a section heading and subheading. Useful for grouping fields.


Renders form submit button.

Form Logs

Form Builder plugin have built in simple logging information about sent form. Form log record will contain filled form data by user and corresponding file attachments.


Plugin will fire formBuilder.overrideForm event which allow to change form properties before rendering the form markup.

Event::listen('formBuilder.overrideForm', function ($form) {
    // example code
    $form->css_class = 'form-horizontal';

Plugin will fire formBuilder.overrideField event which allow to change field properties before rendering the form markup.

Event::listen('formBuilder.overrideField', function ($field, $form) {
    // example code
    if ($field->name === 'currency') {
        $field->default = 'USD';

Plugin will fire formBuilder.extendFormData event which allow to change submitted form data.

Event::listen('formBuilder.extendFormData', function ($data) {
    // example code
    $data['foo'] = 'bar';

    return $data; // this line is required

Plugin will fire formBuilder.beforeSendMessage event before sending email. You can use this to extend Form Builder default functionality.

In your extension plugin boot method listen for this event:

Event::listen('formBuilder.beforeSendMessage', function ($form, $data) {
    // example code
    $form->from_email = 'john.doe@exampl.com';
    $form->from_name = 'John Doe';

You will have access to form object and array with posted data.

If you return false from this event then this will stop default behavior of sending email message.

  • Found the plugin useful on 17 Apr, 2024

    great plugin and support. recommend

  • Found the plugin useful on 18 May, 2022

    I tested the contact form and clicked submit, I can see the form submitted in Form Logs with all fields filled but unable to receive the contact form via email. Is there a guide for newbie like me to properly setup the contact form configuration?

  • Found the plugin useful on 28 Apr, 2022

    Hi, How can override Raw markup Code From latest plugin. In plugin updates said,

    You can override the partial by creating a file in our theme called partials/renderform/fields.htm. and pasting below markup.

    How can update for each form contact-form, subscribe-form, like that

  • Found the plugin useful on 27 Nov, 2021

    Thanks for the update to support OctoberCMS V2! I have one more problem with the error below. Can you help with this?

    Uncaught ReferenceError: resetForm is not defined

  • author

    Replied on 27 Nov, 2021

    Dear customer,

    please check following issue report:



  • Found the plugin useful on 31 Mar, 2021

    So far had no problem.

  • Found the plugin not useful on 28 Jan, 2021

    Support for this plugin is non-existent. They never reply to the forum - I've had simple, open tickets for months. Don't waste your money. For the "#1" paid plugin of all time, this is a complete joke.

  • author

    Replied on 21 Nov, 2021

    Dear customer,

    I released new version of Form Builder plugin for October 2.x.

    I will be very happy If you want to give it another try.


  • Found the plugin useful on 13 Jan, 2021

    Just starting my first project with this plugin but I like it so far

  • Found the plugin useful on 12 Jan, 2021

    Great plugin! Thank you for your help. Is any chance to add option for duplicate created already form??


  • Found the plugin not useful on 14 Sep, 2020

    There is an error when installing.

  • author

    Replied on 16 Sep, 2020

    Dear customer,

    please use Support feature to report any issues with plugin. I will be happy to assist you with any problems.

    Reviews should not be used for getting support.

    There was an issue with latest October version, that triggered the error on plugin installation. It should be fixed in version 1.5.0.

  • Found the plugin not useful on 11 Aug, 2020

    Absolutely not Working, the Error while installing can only be fixed with a plugin:refresh. This Might work for out development environnement, but how would you ever get this to work in Production? Absolutely ridiculous.

  • author

    Replied on 16 Sep, 2020

    Dear customer,

    please use Support feature to report any issues with plugin. I will be happy to assist you with any problems.

    Reviews should not be used for getting support.

    There was an issue with latest October version, that triggered the error on plugin installation. It should be fixed in version 1.5.0.

  • Found the plugin useful on 15 May, 2020

    No updates for 2 years? Why? We need to add 3 and more recipients in forms. Maybe you can add repeater field in recipients?

  • Found the plugin not useful on 21 Jun, 2019

    Custom support is non-existent, very disappointed.

  • Found the plugin useful on 23 May, 2019

    За 5 баксов плагин норм

  • Found the plugin useful on 30 Mar, 2019

    Great plugin and easy to use. I'm missing a simple way to store form data in a database though. It can be done width events but requires coding.

  • Found the plugin not useful on 13 Dec, 2018

    This pluging resets the page every time the persons hits SUBMIT. I do not recommend it

  • author

    Replied on 14 Dec, 2018

    Dear customer,

    please use Support feature to report any issues with plugin. I will be happy to assist you with any problems.

    Reviews should not be used for getting support.

    If the form is successfully sent, than it is perfectly normal to redirect with success message. This is how most of the forms in the web works.

  • Found the plugin useful on 1 Sep, 2018

    Brilliant and impressive plugin!

    Intuitive to setup and easy to customise (once you discover the html code in Field Types).

    One question - would it be possible to make calculating fields as a field type?

  • Found the plugin not useful on 22 Apr, 2018

    after installation I have this error

    No hint path defined for [martin.forms]. C:\laragon\www\btp\vendor\laravel\framework\src\Illuminate\View\FileViewFinder.php line 112

    What is the problem ?

  • author

    Replied on 24 Apr, 2018

    In the future please use support forum to report any problems with the plugin.

  • Found the plugin useful on 13 Mar, 2018

    Great work question? can you do model binding to a form

  • Found the plugin useful on 5 Feb, 2018

    This is a great plug-in, works out of the box. I had some issues with bilingual forms (which originated from the Translate plug-in), which were fixed. Come to think of it, Renatio added a fix although the issue wasn't on this plug-in !

    Another great surprise was a snippet which enables you (your clients) to insert any form created with this plug in into a Static Page with ease.

    • Lacking feature: Duplicate form.

    All in all - great work ! Well worth it ! Thanks a lot Renatio !

  • Found the plugin useful on 14 Jan, 2018

    Can i add flags to country select?

  • Found the plugin useful on 11 Aug, 2017

    Everything is fine but you can not add country and state. If you could provide any documentation for the same will be best.

  • Found the plugin not useful on 29 Jul, 2017

    please, update formbuilder it's have some problem

  • author

    Replied on 30 Jul, 2017

    Thank you for the very USEFUL review!

    I will just read your mind what the problem is, ok?

    In the future please use support forum to report any problems with the plugin.


  • Found the plugin useful on 1 Jul, 2017

    I lost a full day trying to build a form with the Ajax framework that validates and accepts file uploads.

    Then I found this plugin, copied the default form and the task was complete in 15 minutes.

    Excellent extension!

  • Found the plugin useful on 9 Jun, 2017

    Dearest Author of the plugin

    thank you for your work for all of us. Im searching a not to difficult possibility (Im on a low programmer level) to create a form that saves data into a corresponfing table, were row can be edited. 0) Where is the support area to ask you in the correct way? 1) Is that possible? 2) Would you create a plugin with the form builder and then connect the form with the table somehow? But how? I do not see a field for the action of the form itself.

    Thanx a lot


  • Found the plugin useful on 8 Jan, 2017

    Useful plugin but I have some issues:

    1. Plugin needs css bootstrap to display "actions" but doesn't mention this in doc's.
    2. Captcha does not display label so I had to inject a ::before css
    3. Need more info in the doc's about mail templates and mail services etc?! Would be nice if there was a video demo of the plugin.

    Useful plugin will buy again, but please update your doc's info a bit more...

  • Found the plugin not useful on 3 Jan, 2017

    For basic use, FormBuilder works great. It's a very powerful plugin, but it lacks in overall stability. Too frequently it throws errors if you have Rainlab.Translate installed which is were this plugin should excel.

    We'd give it 3/5 but still a not useful as we are disappointed every time we try to use it in combination with Translate.

  • author

    Replied on 19 Mar, 2017


    I admit that there were some issues when using plugin with RainLab.Translate plugin.

    Those issues were caused by RainLab.Translate plugin and are reported on gitHub. They are still not fixed by plugin authors and community.

    In version 1.2.9 I suppressed those errors until RainLab.Translate plugin issues will be fixed.

    I apologize it took me some time to handle this. I thought they will be fixed quicker in RainLab.Translate plugin source code.

  • Found the plugin useful on 20 Sep, 2016

    Great Plugin and great support! Thank you!

  • Found the plugin useful on 9 Sep, 2016

    Great Plugin and really easy to use!!! Thanks to the developer, this plugin makes Forms much easier!

  • Found the plugin useful on 8 Sep, 2016

    Very good product. Great features.

  • Found the plugin useful on 26 Aug, 2016

    Perfect Plugin to handle most complex forms. It covers almost every aspect which is required to build a complex forms. Great work Renato.

  • Found the plugin useful on 6 Aug, 2016

    Very nice plugin!

  • Found the plugin useful on 6 Jul, 2016

    Great plugin with a lot of flexibility for custom projects. Also, the support is timely and very helpful. I definitely recommend this plugin for OctoberCMS forms.

  • Found the plugin useful on 23 Jun, 2016

    Great plugin! Works as expected. Would recommend allowing users to style labels directly though!

  • Found the plugin useful on 14 Jun, 2016

    Awesome plugin! Very well made. Simple to use and highly costumizable.

    Would recommend it to anyone. Well worth the money!

  • Found the plugin useful on 7 Jun, 2016

    This is an incredibly useful and very well done plugin. I recommend it to everyone that need to build forms that are easy to build and easy to maintain.

  • Found the plugin useful on 17 May, 2016

    Very good plugin! Thanks.

  • Found the plugin useful on 22 Feb, 2016

    Great plugin, very easy to use and integrate :)

  • Found the plugin useful on 3 Feb, 2016

    There is awesome plugin and the best support I've ever seen. Thank you very much for your job.

  • Found the plugin useful on 21 Jan, 2016

    Very good plugin. Powerful and easy to use.

  • Found the plugin useful on 17 Jan, 2016

    This is a professionally written plugin that is really useful if you need lots of forms.

  • Found the plugin useful on 16 Dec, 2015

    Excellent plugin, and excellent support from Renatio. I would ALL of Renatio's plugins are a must for any serious OctoberCMS developer.

  • Found the plugin useful on 7 Oct, 2015

    Simply a SUPERB plugin! The ability to customise each form, right down to the styles, layouts, and classes is just fantastic. The one support question I had was answered remarkably quickly. I've got multiple contact forms assigned to individual partials that the client is able to drop into their pages using the "Snippets" section of the Rain.Lab Pages plugin. Developer and client very happy. Highly recommended!

  • Found the plugin not useful on 14 Sep, 2015

    lake of stuff like date, time...input and setting the column..make wizard form!

  • author

    Replied on 15 Sep, 2015

    Dear customer,

    please use Support feature to report any issues with plugin. I will be happy to assist you with any problems.

    Please read documentation with understanding. There is a full list of available fields and no mention about date, time inputs. You should just create new Support topic corrensponding to your issue. I probably would respond just like this:

    Datetime input is basically normal text input with added validation and plugin support it. You can add any laravel validation rules. See laravel documentation. If you would like to add javascript datepicker you just install datepicker library and attach it to your project. You must have some basic HTML/JS skills to do this, but if you are using OctoberCMS you should have it.

    I do not know what you mean by "setting the column" just create new Support topic and describe what you mean.

    Also comment "make wizard form!" - great but what do you mean by that? I encouraged you to create another Support topic for this one :)

    Do everyone a favor and use full sentences in your comments.

    Anyway, thanks for review and support :)


Allow to completely override form in plugin events. Thanks @m49n

May 11, 2024


Add hidden field type. Add events to override form and fields before rendering form markup.

Mar 05, 2024


Allow to select forms and field types for export.

Feb 22, 2024


Fix scroll after form submission.

Nov 11, 2023


Add setting to turn off sending uploaded files as mail attachment.

Oct 08, 2023


Minor fix.

Sep 21, 2023


Remove responsiv/uploader-plugin support with native October ajax file upload.

Sep 21, 2023


Add support for October snippets.

Sep 07, 2023


Allow to disable form logs.

Jun 01, 2023


Fix permissions.

Nov 23, 2022


Major rework of the plugin. See upgrade guide for list of changes.

Nov 23, 2022


Require October CMS 3.0.

Nov 23, 2022


Rewrite querying mail templates.

May 17, 2022


Fix for October 3.x.

Apr 24, 2022


Fix raw fields markup for PHP < 7.4.

Dec 02, 2021


Minor fix.

Nov 28, 2021


Minor fix.

Nov 28, 2021


Raw fields markup.

Nov 27, 2021


Improve reset field type to default.

Nov 25, 2021


Minor fixes.

Nov 25, 2021


Add patch 2.0 console command for easy upgrade process.

Nov 20, 2021


Add support for October v2.0. Drop support for October v1.0.

Nov 20, 2021


Elevate plugin permissions.

Sep 16, 2020


Fix issue with field options.

Jul 23, 2018


Fix issue with ReCaptchaServiceProvider class.

Jul 21, 2018


Fix multilingual fields.

Jul 18, 2018


Generate form code automatically.

Jul 18, 2018


Use October Default Mail Layout for example Templates.

Jul 18, 2018


Improve RainLab.Location plugin integration.

Jul 18, 2018


Dynamic form reply to fields.

Jul 13, 2018


Fix fields and sections translation.

Jan 31, 2018


Set default reCaptcha keys for testing.

Jan 31, 2018


!!! Nicer form field validation.

Oct 18, 2017


Fix example forms seeding.

Apr 22, 2017


Allow to use CMS filters and functions in field templates.

Apr 22, 2017


Fix RainLab.Translate compatibility issues.

Mar 19, 2017


Fix sending email with file attachment for October build 401+

Mar 12, 2017


Improve seeding mail templates. Add Contact Form and Default Form. Update Mail Layout.

Mar 12, 2017


Export form logs to CSV file.

Feb 08, 2017


Allow to duplicate a form.

Sep 19, 2016


Minor changes.

May 14, 2016


German translation.

Feb 10, 2016


Allow to manually specify url for redirect.

Feb 03, 2016


Allow for custom validation messages.

Feb 01, 2016


Dutch translation.

Jan 29, 2016


Add comment to fields.

Jan 22, 2016


Add HTML preview in logs.

Jan 08, 2016


Add sections feature.

Jan 08, 2016


Add reply to and autoresponse functionality.

Dec 08, 2015


Add Event to extend default functionality.

Nov 09, 2015


RainLab Location Plugin support.

Nov 09, 2015


Minor changes.

Oct 19, 2015


Allow for multiple forms on the same cms page. Fix required validation rule for fileuploader field type.

Oct 19, 2015


Use Twig::parse() facade. Only update for October build 300 and above.

Oct 05, 2015


!!! Important update

Oct 05, 2015


Add simple logs.

Sep 14, 2015


Add file attachment field type.

Sep 14, 2015


Reference __SELF__ in component partial.

Sep 06, 2015


First version of Form Builder plugin.

Aug 24, 2015

Upgrade guide

Upgrading To 1.1.0

From version 1.1.0 plugin requires October build 300 and above.

Upgrading To 1.1.4

Added wrapper_class to field properties. Update fields type manually if you want to use this.

Upgrading To 1.2.7

Plugin will register Contact Form Template and Default Form Template. If you would like to use new mail layout you need to create it manually from the source /plugins/renatio/formbuilder/updates/mail/layouts/formbuilder/. Layout code should be specified as form_builder. Assign newly created layout to the templates by updating them manually.

Upgrading To 2.0.1

Plugin requires OctoberCMS version 2.x with Laravel 6.x and PHP >=7.3.

Drop support for OctoberCMS version 1.x.

If you upgrade from version 1.5.0, then you should reinstall plugin or apply patch with following command:

php artisan formbuilder:patch 2.0

Upgrading To 3.0.0

Plugin requires October CMS version 3.0 or higher, Laravel 9.0 or higher and PHP >=8.0.

Drop support for October CMS version 2.x.

Upgrading To 3.1.0

Major refactor of the code to use PHP 8, Laravel 9 and October CMS 3.1 features.

Please review documentation for more information about new features.

List of changes:

  • Default support for Bootstrap 5
  • Rewrite of field types to use Bootstrap 5
  • Floating labels (only available when using Bootstrap 5)
  • Custom template for the form
  • Full support for RainLab Translate 2.0 and Multisite
  • Rework form validation to use AjaxFramework extra features
  • Multiple forms on the same page
  • Improve error handling
  • Improve form logs
  • Granular permissions (please review them after upgrade)
  • Import/Export forms
  • Import/Export field types
  • Export form logs
  • New field types: email, phone, url, numeric, datetime, date, time, color picker
  • Restore all field types to default markup
  • New event formBuilder.extendFormData to allow change of submitted form data
  • Spam Protection plugin support

Upgrading From 3.1.3 To 4.0.0

Before making the update please check if you are currently on 3.1.3 version of the plugin. If no, then make previous upgrades first.

Also before upgrading and running migrations please make the database backup.

This version removes responsiv/uploader-plugin support with native October ajax file upload.

The migration will add new upload field type and remove old ones. The new field type will be assigned to all old upload fields.

Please check your forms after upgrading.

For more details about new upload field type please read documentation.