Skip to main content
Forms • Website Snippet Builder — A made-to-order Odoo module that lets your team drag, drop, and configure custom forms on a — 1/1Illustrative preview

A made-to-order Odoo module that lets your team drag,

drop, and configure custom forms on any website or portal page, with each submission mapped straight into the Odoo records you choose. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 database.

What is Forms • Website Snippet Builder?

A made-to-order Odoo module that lets your team drag, drop, and configure custom forms on any website or portal page, with each submission mapped straight into the Odoo records you choose. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Drag-and-drop website building-block registered with the Odoo website editor via a snippet `ir.ui.view`, usable on any page without touching code
Per-form configuration model (`models.Model`) storing target model, field mapping, validation, success behavior, and notification recipients
Server-side submission controller (`http.Controller`, `website=True`) that validates every payload, enforces CSRF tokens, and never trusts client input
Public (`auth='public'`) and portal-gated (`auth='user'`) form routes, so the same builder serves anonymous marketing pages and authenticated `/my` portal forms
Direct mapping of fields to any target model — CRM lead, helpdesk ticket, res.partner, or a custom object — with create or update semantics
Field types for text, number, selection, date/datetime, many2one relational lookups, checkbox, and multi-file upload stored as `ir.attachment` on the created record
Conditional show/hide and required logic where a field's visibility is driven by another answer, evaluated both client-side and re-checked server-side
Access control wired through `ir.model.access.csv` plus record rules so public submissions can only create the records you intend and portal users see only their own
Post-submission automation: trigger an `base.automation` automated action, post to the record chatter (`message_post`), and assign an owner or team by routing rules
Templated acknowledgement email via `mail.template` on success, with configurable recipients and reply-to per form
Anti-spam layer — honeypot field, per-IP rate limiting, and optional captcha — configurable per form during scoping
Thank-you / redirect / inline-message success behavior configurable per form, with i18n-ready labels through Odoo translations
Submissions accessible over the XML-RPC / JSON-RPC API for feeding forms from an external site or automation
Built and tested against Odoo 17.0, 18.0, and 19.0, with edition-aware handling of Community vs Enterprise website and portal differences

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Most teams hit the same wall on their Odoo website: the standard form building-block captures a name, an email, and a message into a lead or an outbound email, and that is roughly where the road ends. The moment you need a form that writes to a custom model, enforces conditional fields, attaches uploads to the right record, routes submissions to different owners, or renders inside the authenticated /my portal for logged-in customers, you are looking at custom controllers, hand-written QWeb templates, and a fair amount of ORM plumbing. Marketing wants to launch new forms without waiting on a developer; developers do not want a fresh inheritance layer for every campaign. Native Odoo was simply not built to let non-technical users compose data-bound forms visually.

This is a build-to-order module that ECOSIRE designs and builds for your database. At its core is a website building-block — an ir.ui.view snippet registered with the website editor — that your team drags onto any page, paired with a configuration model (models.Model) holding the target model, per-field mapping, validation rules, success behavior, and notification recipients. Each published form is served by a website controller (http.Controller with a website=True route, auth='public' for anonymous pages or auth='user' for portal pages) that validates the payload server-side, honors the CSRF token, runs your @api.constrains and compute logic, and creates or updates the record you nominated — a CRM lead, a helpdesk ticket, a partner, or a custom object. Field types cover text, number, selection, date, many2one lookups, file upload (stored as ir.attachment), and conditional show/hide logic driven by other answers. Submissions can trigger an automated action, post to the record's chatter, and fire a templated acknowledgement email.

Because every business models its data differently, the build is driven by your target models and workflow rather than a fixed template. We scope which models each form writes to, the exact field mapping and validation, whether a form is public or portal-gated by record rules, the anti-spam approach (honeypot, rate limit, optional captcha), and the routing/notification logic. Security is wired through ir.model.access.csv and record rules so that public submissions can only create the records you intend, and portal users only ever see and edit their own. The submission handler is also reachable over the XML-RPC/JSON-RPC API when you need to feed forms from an external site or automation.

Delivery is build-to-order: after a short scoping call we confirm the form catalog, field mappings, and target models, then build against a copy of your database, validate on staging with your real data, and install into production behind a rollback plan. Typical delivery is one working week from confirmed scope, and the module targets Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise (portal features and some website snippet niceties differ between the two, and we confirm the fit for your edition during scoping). Pricing starts from $999 (indicative, single-company base scope); additional target models, complex conditional logic, multi-company record-rule isolation, external API integrations, and localization depth increase the quoted scope.

What you get

  • Installable module source code for your Odoo version (17.0, 18.0, or 19.0), with a clean `__manifest__.py` and dependency declaration
  • Installation and configuration on your staging and production environments, including snippet registration and access-rule setup
  • Technical documentation covering the data model, controllers, field mapping, security rules, and extension points
  • End-user guide plus a live training session for the team who will build and manage forms
  • UAT on a staging copy of your database with your real data, plus a documented rollback plan before production go-live
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and tagged release
  • Configured example forms (public and portal) seeded to match your first real use cases

Who this is for

Marketing / Website Manager

Runs the Odoo website and needs to launch campaign and lead-capture forms on their own, without a developer for every new field or landing page. Wants submissions to land in the right CRM stage with the right owner.

Odoo Administrator / Internal IT

Owns the Odoo database and wants a maintainable, permissioned way to let business users build forms that write to custom models — with security rules, an audit trail in chatter, and no ad-hoc controllers piling up.

Customer Experience / Portal Owner

Needs authenticated forms inside the `/my` portal so logged-in customers can submit requests, updates, or documents against their own records only, enforced by record rules rather than trust.

Operations / Service Lead

Wants inbound submissions to auto-create helpdesk tickets or service requests, route by team, notify owners, and acknowledge the submitter — all from a form business users can adjust as processes change.

How Forms • Website Snippet Builder Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Drag-and-drop form building for non-developersWebsite snippet plus config model, built around your modelsPossible but re-implemented from scratch each timeGeneric builder, limited to its own field/model assumptionsBasic snippet only; fixed to lead/email capture
Writing submissions to custom modelsMapped to any target model you nominateFully custom but you own all the plumbingOften restricted to models the vendor anticipatedNot supported for arbitrary custom models
Portal (`/my`) forms with record-rule isolationBuilt in, gated by record rules per your workflowBespoke controllers and rules to write and testRarely covers authenticated portal useNot a standard website form capability
Conditional field logicConfigured per form, checked client and server sideHand-coded and maintained by youVaries; often client-side onlyNone
Security and access rules`ir.model.access.csv` + record rules scoped to your caseYou design and audit it yourselfVendor defaults, not tailored to your modelsGeneric public-form behavior only
Fit to your Odoo version and editionBuilt and tested for 17/18/19, Community or EnterpriseDepends on your team's version coverageWhatever versions the listing happens to supportShips with core; no tailoring
Support and ownershipSupport window plus full Git repo handoverIn-house only; no external backstopGeneric vendor support, shared codebaseCommunity/enterprise support, no custom logic
Delivery modelBuild-to-order, one working week, UAT + rollback planOpen-ended internal project timelineInstant install but generic behaviorAlready present, minimal capability

Frequently Asked Questions about Forms • Website Snippet Builder

Is this an existing app I can download and install today?

No. This is a build-to-order module. ECOSIRE scopes, builds, installs, and supports it for your specific Odoo database — there is no instant download. After a scoping call to confirm your forms, target models, and field mappings, we build against a copy of your database and deliver installable source for your version.

How long does delivery take?

Typical delivery is one working week from confirmed scope. Simple single-model form sets land toward the shorter end; multiple target models, heavy conditional logic, portal record-rule isolation, or external integrations extend the timeline. We give you a firm schedule with the fixed quote after the scoping call.

How does pricing and scoping work?

Pricing starts from $999 (indicative, single-company base scope). The final number depends on how many target models the forms write to, conditional-logic complexity, multi-company isolation, external API integrations, and localization depth. We hold a short scoping call, confirm the exact requirements, and then give you a fixed written quote — no firm price is committed before scoping.

Which Odoo versions and editions do you support?

We build and test against Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Some website-snippet and portal capabilities differ between Community and Enterprise, so we confirm the exact fit for your edition during scoping and build accordingly.

What about support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and configuration questions. Beyond that we offer ongoing support and version-upgrade work (for example migrating the module to a newer Odoo release) as a separate arrangement. You receive the full Git repository so your own team can maintain it too.

Can forms write to our own custom models, not just leads?

Yes. The builder maps fields to whichever target model you nominate — a CRM lead, helpdesk ticket, res.partner, or a fully custom `models.Model`. We configure the field mapping, validation, and `ir.model.access.csv` / record rules during the build so submissions create or update exactly the records you intend.

How do you keep public forms from being abused or leaking data?

Submissions are validated server-side in the controller with CSRF enforced, and public routes can only create the records defined by their access rules — never arbitrary writes. We add a honeypot field, per-IP rate limiting, and optional captcha, and portal forms are gated by record rules so users only ever see and edit their own records.

Request a quote

Forms • Website Snippet Builder

A made-to-order Odoo module that lets your team drag, drop, and configure custom forms on any website or portal page, with each submission mapped straight into the Odoo records you choose. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 database.

  • Drag-and-drop website building-block registered with the Odoo website editor via a snippet `ir.ui.view`, usable on any page without touching code
  • Per-form configuration model (`models.Model`) storing target model, field mapping, validation, success behavior, and notification recipients
  • Server-side submission controller (`http.Controller`, `website=True`) that validates every payload, enforces CSRF tokens, and never trusts client input
  • Public (`auth='public'`) and portal-gated (`auth='user'`) form routes, so the same builder serves anonymous marketing pages and authenticated `/my` portal forms

Request a Quotation

Tell us about your Forms • Website Snippet Builder requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.