- Home
- Apps
- Multichannel & PIM Tools
- Forms • Website Snippet Builder
Illustrative previewA 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
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 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
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Drag-and-drop form building for non-developers | Website snippet plus config model, built around your models | Possible but re-implemented from scratch each time | Generic builder, limited to its own field/model assumptions | Basic snippet only; fixed to lead/email capture |
| Writing submissions to custom models | Mapped to any target model you nominate | Fully custom but you own all the plumbing | Often restricted to models the vendor anticipated | Not supported for arbitrary custom models |
| Portal (`/my`) forms with record-rule isolation | Built in, gated by record rules per your workflow | Bespoke controllers and rules to write and test | Rarely covers authenticated portal use | Not a standard website form capability |
| Conditional field logic | Configured per form, checked client and server side | Hand-coded and maintained by you | Varies; often client-side only | None |
| Security and access rules | `ir.model.access.csv` + record rules scoped to your case | You design and audit it yourself | Vendor defaults, not tailored to your models | Generic public-form behavior only |
| Fit to your Odoo version and edition | Built and tested for 17/18/19, Community or Enterprise | Depends on your team's version coverage | Whatever versions the listing happens to support | Ships with core; no tailoring |
| Support and ownership | Support window plus full Git repo handover | In-house only; no external backstop | Generic vendor support, shared codebase | Community/enterprise support, no custom logic |
| Delivery model | Build-to-order, one working week, UAT + rollback plan | Open-ended internal project timeline | Instant install but generic behavior | Already 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.
Related Modules

Fetchr / Address-by-GPS Last-Mile Connector for Odoo
A build-to-order Odoo connector that books last-mile shipments from your sales orders using GPS/phone-pin addressing instead of street data — with AWB label sync, live tracking, and COD reconciliation for MENA deliveries.

Forms • Contacts
A build-to-order Odoo integration that maps submissions from an external drag-and-drop form builder directly onto your Odoo contact and partner records — deduplicated, validated, and audit-logged. ECOSIRE scopes, builds, installs, and supports it; it is not an instant download.

Freight Forwarding Management for Odoo
End-to-end air/ocean/land freight forwarding in Odoo — shipments, containers, customs and multi-party billing. Built to order by ECOSIRE.

GLS Shipping Connector for Odoo
Build-to-order GLS parcel integration for Odoo: labels, live rates, tracking sync, returns and multi-parcel — built and installed by ECOSIRE.
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