Skip to main content

Build customized forms in your website

Project description

License: LGPL-3

Website Form Builder

This module provides websites the feature of adding custom forms in any page.


Install some other addon that provides website_form support to benefit from this one’s features. Hints:

  • website_crm
  • website_form_project
  • website_hr_recruitment
  • website_sale


To configure this module, you need to:

  1. Have Administration / Settings privileges.
  2. Go to Settings > Activate developer mode.
  3. Go to Settings > Technical > Database Structure > Models.
  4. Search for the model you want to manage website form access for.
  5. When you find it, it will have a Website Forms section where you can:
    • Allow the model to get forms, by checking Allowed to use in forms.
    • Give the model forms a better name in Label for form action.
    • Choose the field where to store custom fields data in Field for custom form data. If you leave this one empty and the model is a mail thread, a new message will be appended with that custom data.
  6. In the Fields tab, there’s a new column called Blacklisted in web forms. It’s a security feature that forbids form submitters to write to those fields. When you create a new website form, all its model fields are automatically whitelisted for the sake of improving the UX. If you want to have higher control, come back here after creating the form and blacklist any fields you want, although that will only work for custom fields.


To use this module, you need to:

  1. Go to any of your website pages.
  2. Edit it.
  3. Drag and drop the Form snippet into the page.
  4. Use the snippet overlay to add, edit and remove fields.
  5. If you want to set a hidden field, make sure you set a valid default value on it, or users may get hidden errors and they might even be unable to send the form!
Try me on Runbot

Known issues / Roadmap

  • These type of fields will not appear, they are forbidden since they make no sense in this module’s context, or a correct implementation would be adding not much value while adding lots of complexity:
    • id
    • create_uid
    • create_date
    • write_uid
    • write_date
    • __last_update
    • Any one2many fields
    • Any reference fields
    • Any serialized fields
    • Any read-only fields
  • You should include in your installation to get a better UX when a user has already sent a form and cannot resend it.
  • To edit any <label> text, you need to click twice. Review the problem once gets fixed.
  • You cannot edit base fields blacklisted status manually because Odoo forbids that for security.
  • website_form works in unexpected and undocumented ways. If you plan to add support in your addon, this is a good place to start reading.
  • If you add a custom file upload field to a form that creates records in models that have no mail.thread inheritance, your users will be unable to send the form.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smash it by providing detailed and welcomed feedback.



Do not contact contributors directly about support or help with technical issues.


Odoo Community Association

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

To contribute to this module, please visit

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for odoo10-addon-website-form-builder, version
Filename, size File type Python version Upload date Hashes
Filename, size odoo10_addon_website_form_builder- (30.2 kB) File type Wheel Python version py2 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page