Skip to main content
Web Timer Widget for Odoo — A made-to-order Odoo widget that adds a live elapsed-time timer directly to your views, letting t — 1/1Illustrative preview

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.

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

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
Attachable to standard models (project.task, helpdesk.ticket, crm.lead, mrp.workorder, sale.order) and to your own custom models
Configurable write-through: post captured time to account.analytic.line, a chatter message, or a field on the host record
Access-controlled via ir.model.access.csv and honoring any record rules on the host model — no bypass of Odoo security
Multi-company aware: timer records respect company_id isolation and multi-company record rules
Optional per-user concurrent-timer policy (single active timer vs. multiple parallel timers) enforced in the ORM
Rounding, minimum-billable increments, and idle-timeout auto-pause rules configurable to your billing policy
XML-RPC/JSON-RPC-callable methods to start, stop, or query timers from automated actions, scheduled jobs, or external systems
Optional QWeb report summarizing tracked time per user, record, or period, printable or email-attachable
Automated-action hooks so a stage change or field update can auto-start or auto-stop a timer
Clean __manifest__.py with pinned dependencies, tested against Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise

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

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

CriterionECOSIRECustom BuildCompetitorOdoo Native
Where the timer can liveAny model or view you specify — tasks, tickets, orders, custom modelsWherever you build it, if scoped correctlyUsually one or two fixed models the vendor choseOnly Timesheets/Field Service on project.task
Fit to your workflowBuilt to your confirmed rounding, downstream flow, and rulesFully bespoke but you own the spec and riskTake it as shipped; limited configurationFixed Odoo behavior, no tailoring
Security & multi-companyHonors ir.model.access.csv, record rules, company_idDepends on your team's implementationVaries; often untested for multi-companyFully compliant within its scope
Version & edition coverageTested on 17/18/19, Community and EnterpriseWhatever you build and maintainOften lags new Odoo releasesShips with the version you run
RPC & automation controlDocumented XML-RPC/JSON-RPC methods + automated actionsPossible if you design for itRarely exposed cleanlyNot designed for external control
Ownership & maintainabilityFull git repo handover + docs + compatibility matrixYou own it and all upkeepVendor-controlled, closed roadmapMaintained by Odoo, but not extensible here
SupportPost-go-live support window + optional ongoing engagementYour own teamVendor support tiers, variableStandard Odoo support/partner channels
Time to valueone working week from confirmed scope, fixed quoteUnpredictable; depends on internal capacityInstant install but may not fitImmediate 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.

Request a quote

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

Request a Quotation

Tell us about your Web Timer Widget 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.