| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Website (website) |
| Lines of code | 1268 |
| Technical Name |
roadmap_portal |
| License | OPL-1 |
Roadmap Portal
Public roadmap, changelog, and feature-request portal —
built into your Odoo Website.
A self-hosted feedback-portal alternative for companies
already on Odoo.
Stop paying $300+/month for a feedback portal
You already publish a website. This module adds the roadmap on top of it.
Standalone feedback / roadmap SaaS — Canny, Productboard,
Featurebase, Aha! Ideas — charge $20 to $1,500+/month with
no Odoo connector. Roadmap Portal lives at /roadmap
on your existing Odoo Website domain. One-time purchase.
Your customers vote, comment, and subscribe to changelog notifications. Your team manages the kanban board from the Odoo backend. Items shipped get auto-mailed to confirmed subscribers with one-click unsubscribe.
Public roadmap at /roadmap
Kanban-style columns by status, votes, comments, subscribe form.
Vote and discuss on every post
Logged-in portal users vote with a one-click toggle and join the discussion
Auto-published changelog at /changelog
Ship a post → it lands on the changelog → confirmed subscribers get notified
Features
Status workflow with allowed-transition guards
Posts flow through under_review → planned → in_progress → shipped, with explicit re-open paths (shipped → in_progress; declined → under_review). Every transition stamps a timestamp. shipped_at is preserved across re-opens so changelog ordering stays stable.
One-vote-per-user with toggle
Logged-in portal users can vote on posts. SQL unique constraint enforces one vote per (post, user); re-clicking the vote button toggles by deleting the row. No anonymous voting (defers to a future Pro tier with captcha + rate-limit hardening).
Public discussion threads
Logged-in users can comment on posts. Server-side wraps user
input in <p> and the Html field's
sanitize=True scrubs anything HTML-shaped the
user pasted. action_forget wipes a comment body
while preserving thread position for GDPR right-to-erasure.
Auto-published changelog
Posts transitioning to shipped automatically appear at
/changelog in reverse-chronological order.
Confirmed subscribers receive a notification mail with the
full body and a per-mail single-use unsubscribe link.
Email subscribers with double opt-in
Visitors subscribe via the form on /roadmap.
Verification mail with a hashed token is sent before any
notifications go out. No anonymous mailing-list growth.
Per-IP rate limit + per-email cooldown
Defends against script-driven volume (per-IP) and
mail-bombing of known confirmed subscribers (per-email
cooldown via last_submit_at).
Multi-company isolation
Per-company ir.rule records on every model
— portal, posts, votes, comments, subscribers. Tested
for cross-tenant isolation.
Decline reason required
Posts entering the declined state must have a
declined_reason set. Surfaced on the public
detail page so submitters know why their request didn't make
the cut.
Manage from the Odoo backend
Why teams pick this over a separate SaaS
- Lives on your domain. The roadmap renders at
/roadmapon your existing Odoo Website — no separate subdomain, no DNS, no SSL setup. - One-time purchase. Pay once on the Odoo App Store. No recurring fees.
- Works with your existing portal logins. Voting and commenting use the standard Odoo Portal authentication.
- State-machine guarded. Forbidden transitions raise UserError; declined posts must carry a reason.
- Subscriber consent done right. Double-opt-in by hashed token. Per-mail single-use unsubscribe link.
- Multi-company from day one. Run a separate roadmap per Odoo company in a multi-tenant install — rules enforced server-side.
- GDPR-ready. Forget action wipes subscriber PII (and comment bodies) while preserving audit rows.
- Compatible with Odoo 18 Community and Enterprise. No Enterprise-only modules required.
Requirements
Odoo 18 (Community or Enterprise) with the website,
portal, and mail modules installed.
No external API keys, no third-party services, no recurring fees beyond the one-time App Store purchase.
Support
Bug reports and configuration questions are handled by the author within 14 days. Use the “Contact Author” button at the top of this page or reach out via email.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module