Dieser Artikel ist derzeit nur auf Englisch verfügbar. Die Übersetzung folgt bald.
Odoo 19 Project: Kanban, Gantt, and Timesheet Module Updates
Odoo's Project module historically split into "good for simple kanban tasks" and "needs a custom module for real PM". Odoo 19 narrowed that gap. Kanban gained WIP limits and swimlanes, Gantt added critical-path visualization and dependency types, timesheets got auto-tracking, and project profitability surfaces actual-vs-estimated margin in real time. For agencies, consultancies, and any service business running projects on Odoo, the upgrade matters.
This article walks through the new project workflow, with focus on what changed for project managers, contributors, and finance. ECOSIRE has implemented Odoo Project for 25+ services-business clients including consultancies, agencies, IT shops, and architecture firms.
Key Takeaways
- Kanban WIP limits prevent column overload with visual warnings and configurable hard caps
- Swimlanes group tasks horizontally by assignee, milestone, or custom field
- Gantt now computes critical path and shows dependency types (FS, SS, FF, SF)
- Timesheet auto-tracking integrates with calendar, browser plugin, and IDE plugin
- Milestones tie deliverables to invoicing schedules
- Project profitability dashboard shows margin per project, real-time
- Resource calendar shows utilization, conflicts, and capacity per person
Kanban changes — WIP limits and swimlanes
Default kanban in 17 was open: any column could have unlimited tasks. Real teams hit context-switching costs when too many tasks are in-progress simultaneously.
Odoo 19's kanban supports:
- WIP limit per column: visual warning when count exceeds limit, optional hard block on adding
- Swimlanes: horizontal grouping. View tasks by stage AND by assignee at once.
- Aging indicators: cards turn yellow after N days in a column, red after M days
- Sub-task expansion: parent task shows sub-task progress bar, expandable inline
Configuration is per project on the kanban view options. For Scrum/Kanban teams, this is the difference between "we use Odoo for tracking" and "Odoo is our actual workflow tool."
Gantt — critical path and dependencies
The Gantt view in 17 was a basic timeline with simple dependencies (Task A blocks Task B). Real project planning needs:
- Multiple dependency types
- Critical path (the sequence of tasks that determines project duration)
- Resource leveling
- Baseline comparison (scheduled vs actual)
Odoo 19's Gantt:
| Capability | Odoo 17 | Odoo 19 |
|---|---|---|
| Dependency types | Finish-to-Start only | FS, SS, FF, SF |
| Critical path | No | Yes, highlighted |
| Resource conflicts | No | Yes, warns on over-allocation |
| Baseline | No | Snapshot + variance display |
| Drag-rescheduling | Yes | Yes, with cascade option |
| Fixed-cost tracking | No | Yes, per task |
For projects with hard deadlines (regulated industries, contractual delivery dates), having the critical path computed automatically saves a project manager 1-2 hours per week of manual schedule analysis.
Timesheet auto-tracking
Manual time entry is the bane of timesheet compliance. Odoo 17 had a "start timer / stop timer" widget. Odoo 19 added:
- Calendar integration: Outlook/Google calendar events with project tags auto-create timesheet entries
- Browser plugin: Chrome/Edge extension detects active tabs (Jira, GitHub, Figma, Google Docs) and proposes timesheet entries
- IDE plugin: VS Code extension tracks active file by project
- Mobile timer: GPS-aware timer for field-services teams
- Auto-stop: detects idle (15 min default) and stops the timer with a confirm prompt
In our deployments, average timesheet completion compliance went from 70-80% (manual entry) to 92-96% (auto-tracking).
Milestones and billing
A "milestone" in Odoo 19 is a project event tied to:
- A deliverable (one or more tasks completing)
- A date (forecast + actual)
- An invoicing trigger (auto-create invoice when milestone reached)
- A status (planned, in-progress, achieved, slipped)
For projects billed on milestone basis (architecture, construction, consulting), this replaces a manual invoice-on-checkpoint flow that was error-prone.
# Milestone example data
{
'name': 'Phase 1 Design Approved',
'project_id': project_123.id,
'task_ids': [task_design_a.id, task_design_b.id],
'forecast_date': '2026-06-15',
'invoice_template_id': template_phase1.id,
'invoice_amount': 25000.0,
'auto_invoice_on_complete': True,
}
Project profitability dashboard
The dashboard ties together:
- Estimated revenue (from sale order tied to project)
- Actual revenue (from invoiced lines)
- Estimated cost (from task hour estimates × resource rates)
- Actual cost (from timesheet hours × resource rates + project expenses)
- Margin (estimated vs actual)
Updates in real time as timesheet entries post and invoices issue. Drill-downs show:
- Per-task cost overrun
- Per-resource billable utilization
- Project trend over time
For service businesses where 5% margin variance is the difference between profitable and not, this is the single most-actionable change in the module.
Resource calendar
The resource calendar shows:
- Each person's availability over the next N weeks
- Their task assignments overlaid
- Time-off requests (auto-pulled from
hr.leave) - Public holidays per location
- Utilization % (booked / capacity)
PMs use this to balance workload before assigning new tasks. Conflicts ("you assigned Alice to Task X but she has Task Y at the same time") flag with a warning.
Migration considerations
Custom kanban views
If you customized the Kanban XML in 17 (most agencies did, for branding or to add fields), the view inheritance works but the new options panels may not surface your customizations. Audit and re-test.
Gantt baselines need first snapshot
Gantt baselines compare against a stored snapshot. Migration brings tasks but no baseline. After migration, snapshot each active project's current schedule as baseline-zero.
Timesheet auto-tracking opt-in
The browser/IDE plugins are opt-in per user. Roll out via team-by-team training rather than mass deployment.
Milestones from custom modules
If you had a custom milestone module in 17, the data model overlaps but field names differ. Migration is 2-4 hours per custom module to map.
Real-world metrics from agency clients
For three agency clients (digital marketing, web dev, branding) of 20-60 employees:
| Metric | Pre-migration (17) | Post-migration (19, 90 days in) |
|---|---|---|
| Timesheet compliance | 73% avg | 94% avg |
| Project margin variance vs estimate | +/- 18% | +/- 9% |
| PM hours per project / week | 6.2 | 4.1 |
| Late-milestone incidents per quarter | 11 | 4 |
The PM time savings come from auto-tracking and the dashboard surfacing problems earlier. The margin variance shrinks because over-runs become visible in week 2 instead of at project close.
Integrating with sales orders
Project profitability is most accurate when projects link tightly to sale orders. Odoo 19's integration:
- A sale order line for a "service" product can auto-create a project on confirmation
- Project tasks created from sale order lines inherit the budgeted hours and the resource rate
- Invoicing on milestones pulls from the sale order line, keeping revenue recognition accurate
- Variance dashboards split between "billable" and "non-billable" hours per task
For service businesses that sell project-based work, the sale-to-project link replaces a manual handoff that previously caused billing surprises.
Resource rates and rate cards
Odoo 19 introduced rate cards on hr.employee so a single employee can have:
- Default hourly rate (used in profitability)
- Per-client overrides (this customer pays a different rate)
- Per-project overrides (special rate for high-priority client)
- Time-period rates (rate increased mid-year)
Rate cards apply automatically when timesheet entries post; profitability dashboard reflects the per-client variance. For agencies that bill different clients at different rates, this consolidates a spreadsheet that was historically maintained by Finance.
Custom workflows and Studio integration
Project module customizations in 19 layer cleanly:
- Studio adds custom fields and form layout changes without touching code
- Automated actions trigger on task stage changes (notify Slack, email customer, update sale order)
- Custom approval rules block stage transitions until conditions met
- Reports pull from
account.analytic.linefor any custom KPIs
For most agency customizations (custom statuses, branded reports, integration with Slack or external time-tracking), Studio handles the work without a developer module. Reserve custom modules for integration with external project tools (Jira, Asana, Monday) where the API surface is large.
Frequently Asked Questions
Can the auto-tracker timesheet plugin run on Linux?
The Chrome/Edge extension works on any OS that supports those browsers, including Linux. The IDE plugin is VS Code based, also cross-platform. The mobile timer requires iOS or Android. There is no native Linux desktop app.
How granular are timesheet entries?
Configurable. Default minimum is 15 minutes; can be set to 5, 30, 60. The auto-tracker rounds to the configured granularity. Some clients run 1-minute granularity for billable client work and 15-minute for internal.
Does the critical-path Gantt slow down with hundreds of tasks?
In benchmarks, projects with up to ~500 tasks render in under 2 seconds. Beyond that, the view supports collapsing parent tasks and filtering by phase to keep the visible task count manageable. Truly huge projects (1000+ tasks) usually break into sub-projects anyway.
Can milestones invoice without a sale order?
Yes via the "ad hoc invoice" option on the milestone, which generates an invoice without going through sale.order. Useful for retainer-billing scenarios. Sale-order-linked milestones are recommended for proper revenue tracking when the project lives under a quote.
How does project profitability handle overhead?
Direct labor cost uses resource rates (configurable per employee). Project expenses (subcontractor invoices, travel) attach via account.analytic.line. Overhead allocation (rent, admin) is not auto-allocated; if you need full-cost margin, configure analytic accounts at the company level and use cost-center splits.
Project management is one of Odoo 19's stronger upgrades for service businesses. ECOSIRE's Odoo implementation team has rolled out Odoo Project for agencies, consultancies, and IT services. We offer a 4-week project module rollout that includes Gantt setup, timesheet auto-tracker rollout, and profitability dashboard tuning. See our Odoo customization service for custom workflows or browse our Odoo modules catalog for project-related add-ons.
Geschrieben von
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Transformieren Sie Ihr Unternehmen mit Odoo ERP
Kompetente Odoo-Implementierung, Anpassung und Support zur Optimierung Ihrer Abläufe.
Verwandte Artikel
So fügen Sie einer Odoo-Formularansicht eine benutzerdefinierte Schaltfläche hinzu (2026)
Fügen Sie benutzerdefinierte Aktionsschaltflächen zu Odoo 19-Formularansichten hinzu: Python-Aktionsmethode, Ansichtsvererbung, bedingte Sichtbarkeit, Bestätigungsdialoge. Produktionsgeprüft.
So fügen Sie ein benutzerdefiniertes Feld in Odoo ohne Studio hinzu (2026)
Fügen Sie benutzerdefinierte Felder über ein benutzerdefiniertes Modul in Odoo 19 hinzu: Modellvererbung, Ansichtserweiterung, berechnete Felder, Store/Non-Store-Entscheidungen. Code-First, versioniert.
So fügen Sie einen benutzerdefinierten Bericht in Odoo mithilfe eines externen Layouts hinzu
Erstellen Sie einen gebrandeten PDF-Bericht in Odoo 19 mit web.external_layout: QWeb-Vorlage, Papierformat, Aktionsbindung. Mit gedrucktem Logo + Fußzeilenüberschreibungen.