- Home
- Apps
- SaaS Tools
- Web Timer Widget for Odoo
Illustrative previewA made-to-order Odoo widget that adds a live elapsed-time timer directly to your views,
letting teams start, pause, and log time from the same record they are working on.
ECOSIRE builds it to your exact workflow and installs it on Odoo 17, 18, or 19.
What is Web Timer Widget for Odoo?
A made-to-order Odoo widget that adds a live elapsed-time timer directly to your views, letting teams start, pause, and log time from the same record they are working on. ECOSIRE builds it to your exact workflow and installs it on Odoo 17, 18, or 19. 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
Every team that runs Odoo eventually hits the same friction with time capture: staff work inside a record — a task, a ticket, a sales order, a manufacturing order — but to log the time they spent, they have to break context, open a separate timesheet or activity, and reconstruct how long the work actually took. That guesswork erodes the accuracy of billable hours, project cost analysis, and payroll. Odoo core does ship a timer inside the Timesheets and Field Service apps, but it is bolted to account.analytic.line and the project/task model; it does not exist on arbitrary models, it cannot be dropped into an ordinary form or list view, and the moment you want a running clock on helpdesk.ticket, crm.lead, mrp.workorder, or your own custom model, native Odoo runs out of road.
The Web Timer Widget we build for you is a reusable OWL field widget plus a lightweight timing model that you can attach to any Odoo view. Technically, it is a custom @odoo/owl component registered in the field registry, backed by a small mixin model (extending models.Model) that stores timer_start, accumulated duration (a fields.Float in hours), and a @api.depends-computed running total that ticks in the browser and reconciles against server time on stop, so a lost connection or refreshed tab never loses or double-counts elapsed time. The widget renders start/pause/resume/stop controls inside the form or list via a QWeb/XML template, writes through the ORM (respecting your ir.model.access.csv grants and any record rules on the host model), and can post the result straight onto a linked account.analytic.line, a chatter log, or a field on the record itself — whichever your workflow needs. Because it is a proper field widget, it inherits Odoo's access control, multi-company rules, and audit trail rather than living in a disconnected browser tab.
We tailor the build to how your team actually works. That includes deciding which models carry a timer, whether multiple concurrent timers are allowed per user, rounding and minimum-billable rules, idle-timeout auto-pause, and how the captured duration flows downstream — into timesheets for invoicing, into manufacturing labor cost, into helpdesk SLA reporting, or into a custom QWeb report you can print or email. Where you need programmatic control — starting or stopping timers from an automated action, a scheduled job, or an external system — we expose clean methods callable over Odoo's XML-RPC/JSON-RPC API. The widget is written to work identically across Odoo Community and Enterprise; on Community it gives you timer capability that would otherwise only ship inside Enterprise Timesheets, and on Enterprise it extends that capability to models the native timer never reaches. It ships tested against Odoo 17.0, 18.0, and 19.0.
Because this is a build-to-order product, nothing is pre-listed for instant download. After you request a quotation we run a short scoping call, confirm the target models and downstream flow in writing, and give you a fixed quote and delivery date. Typical delivery is one working week from confirmed scope. We develop on a staging copy of your database, run UAT with your team, and deploy behind a tested rollback plan, then hand over the full git repository and documentation. Pricing starts from $999 (indicative, single-company base scope); the number of host models, multi-company timer isolation, downstream integrations (timesheets, MRP, helpdesk, or an external system over RPC), and custom reporting depth increase the quoted scope.
What you get
- Installable source code for your Odoo version (17.0, 18.0, or 19.0), as a self-contained addon
- Installation and configuration on your environment, including view attachment to the agreed target models
- Technical documentation: model schema, widget registration, security rules, and RPC method reference
- End-user guide plus a live training session for the team that will use the timer
- Post-go-live support window for defect fixes and configuration questions
- UAT on a staging copy of your database with a documented, tested rollback plan
- Full git repository handover with commit history and tagged release
- Signed-off scope document and version-compatibility matrix for future Odoo upgrades
Who this is for
Professional services & agencies billing by the hour
Teams whose revenue depends on accurate billable time. They need staff to capture hours from inside the task, ticket, or project record they are working on — feeding account.analytic.line and invoicing — instead of reconstructing timesheets from memory at week's end.
Support and field service managers
Helpdesk and service leads who want a running clock on helpdesk.ticket or a service order to measure real handling time against SLAs, without asking agents to leave the record or maintain a separate stopwatch.
Manufacturing and operations leads
Plant and ops managers who need real labor time on mrp.workorder or operational records to cost jobs accurately, where Odoo's native timer never reaches the models they run on.
Odoo administrators and internal IT
The people who own the Odoo instance and want timing capability added the right way — as an access-controlled, multi-company-safe field widget with a maintainable git repo and upgrade path — rather than a fragile one-off patch.
How Web Timer Widget for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Where the timer can live | Any model or view you specify — tasks, tickets, orders, custom models | Wherever you build it, if scoped correctly | Usually one or two fixed models the vendor chose | Only Timesheets/Field Service on project.task |
| Fit to your workflow | Built to your confirmed rounding, downstream flow, and rules | Fully bespoke but you own the spec and risk | Take it as shipped; limited configuration | Fixed Odoo behavior, no tailoring |
| Security & multi-company | Honors ir.model.access.csv, record rules, company_id | Depends on your team's implementation | Varies; often untested for multi-company | Fully compliant within its scope |
| Version & edition coverage | Tested on 17/18/19, Community and Enterprise | Whatever you build and maintain | Often lags new Odoo releases | Ships with the version you run |
| RPC & automation control | Documented XML-RPC/JSON-RPC methods + automated actions | Possible if you design for it | Rarely exposed cleanly | Not designed for external control |
| Ownership & maintainability | Full git repo handover + docs + compatibility matrix | You own it and all upkeep | Vendor-controlled, closed roadmap | Maintained by Odoo, but not extensible here |
| Support | Post-go-live support window + optional ongoing engagement | Your own team | Vendor support tiers, variable | Standard Odoo support/partner channels |
| Time to value | one working week from confirmed scope, fixed quote | Unpredictable; depends on internal capacity | Instant install but may not fit | Immediate but only for supported models |
Frequently Asked Questions about Web Timer Widget
Is this an existing app I can download and install right now?
No. This is a build-to-order product. ECOSIRE designs, builds, installs, and supports the widget for your specific Odoo instance and workflow. There is no instant download — after you request a quotation we scope it with you and then build it to your confirmed requirements.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The exact date is fixed in your quote after the scoping call, and depends on how many models carry a timer, the downstream flows involved, and any custom reporting or RPC integration you need.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base scope. We never quote a firm price before understanding your requirements — we hold a short scoping call, confirm the target models and downstream flow in writing, then issue a fixed quote and delivery date. The number of host models, multi-company isolation, integrations, and reporting depth drive the final number.
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. On Community it gives you timer capability that otherwise ships only inside Enterprise Timesheets; on Enterprise it extends timing to models the native timer never reaches.
What about support and future updates?
Every build includes a post-go-live support window for defect fixes and configuration questions. You also receive the full git repository, so your team or ours can maintain and extend it. We provide a version-compatibility matrix and can quote a separate engagement to port the widget forward when you upgrade Odoo.
Will it respect our access rights and multi-company setup?
Yes. Because the timer is a proper Odoo field widget backed by an ORM model, it honors your ir.model.access.csv grants, any record rules on the host model, and company_id multi-company isolation. It does not bypass Odoo security or live in a disconnected browser tab.
Can we start and stop timers automatically or from another system?
Yes. We can wire automated actions so a stage change or field update auto-starts or auto-stops a timer, and we expose clean methods callable over Odoo's XML-RPC/JSON-RPC API so external systems or scheduled jobs can control and query timers.
Related Modules

Wallee Payment Provider for Odoo
A made-to-order Odoo payment provider that connects your Wallee space to native checkout, with hosted or inline card entry, TWINT and PostFinance support, tokenization, refunds and automatic reconciliation. ECOSIRE builds, installs and supports it after a scoping call.

Website Multi-Channel Chat Widget (Viber/WeChat/LINE/Messenger)
Floating WhatsApp, Viber, WeChat, LINE, Telegram & Messenger chat buttons for your Odoo website. Built, installed & supported by ECOSIRE.

WhatsApp Business Cloud API Connector (All-in-One)
Build-to-order Odoo module putting two-way WhatsApp Cloud API into CRM, Sales, Helpdesk & Invoicing — no Enterprise needed. Built & supported by ECOSIRE.

WhatsApp Business Integration (Community)
Two-way WhatsApp messaging on any Odoo Community record via Meta Cloud API. Built, installed and supported by ECOSIRE.
Web Timer Widget
A made-to-order Odoo widget that adds a live elapsed-time timer directly to your views, letting teams start, pause, and log time from the same record they are working on. ECOSIRE builds it to your exact workflow and installs it on Odoo 17, 18, or 19.
- OWL field widget registered in the Odoo field registry, attachable to any form, list, or kanban view via XML view inheritance
- Timing mixin model extending models.Model with timer_start, accumulated duration (fields.Float, hours), and a @api.depends computed running total
- Browser-side tick that reconciles against server time on stop, so a refreshed tab or dropped connection never loses or double-counts elapsed time
- Start / pause / resume / stop controls rendered from a QWeb/OWL template inside the record, no separate app or browser tab