10.1 Project management
Key Takeaways
- In the Project app, projects contain tasks, and a task's stage is changed by dragging its card between Kanban columns.
- Sub-tasks break large tasks into child tasks whose timesheets and allocated hours roll up to the parent task.
- Billable timesheets flow to a sales order line whose service product is invoiced based on timesheets, becoming delivered quantities ready to invoice.
- Milestones mark checkpoints and can trigger fixed-price invoicing, while project templates provide reusable stage and task structures for new engagements.
- Project profitability reporting compares timesheet costs and other costs against invoiced and expected revenue to show a per-project margin.
The Project app foundation
Odoo's Project app organizes work into projects, each of which contains tasks. A project represents a body of work — a client engagement, an internal initiative, a product launch — while tasks are the individual units of work that move it forward. When you create a project you give it a name, optionally assign a customer (which links the project to a company or contact and is required if you intend to bill the work), and decide whether the project is billable. Each project carries its own set of stages, its own members, and its own configuration for timesheets, billing, and sub-tasks. Understanding how these pieces connect is central to the Project questions on the exam.
Tasks, stages, and the Kanban board
The default view of a project is a Kanban board whose columns are stages — for example New, In Progress, and Done. Stages are fully customizable per project: you rename, reorder, add, or fold them. Dragging a task card from one column to the next changes its stage, and folding a stage in Kanban signals completed or closed work. A task records one or more assignees, a deadline, tags, a description, and a priority star. Odoo 19 supports sub-tasks: a task can contain child tasks that break large work into manageable pieces while rolling their timesheets and allocated hours up to the parent. Tasks also carry a status field (In Progress, Changes Requested, Approved, Done) that is distinct from the stage and is handy for approval-style workflows within a single column.
Core building blocks
- Project — a container of work, optionally linked to a customer (required to bill).
- Task — a unit of work that moves through stages on a kanban board.
- Sub-tasks — break a task into smaller assignable pieces.
- Timesheets — log time on tasks; billable time can flow to a sales order.
- Milestones — mark key deliverables and trigger billing on some invoicing policies.
- Planning / Gantt — schedule work across time and people.
- Chatter & Documents — discussion, activities, and file attachments per record.
Assigning, scheduling, and planning
Beyond a simple deadline, Odoo lets you plan work across time. The Planning integration and the Gantt view display tasks along a timeline so you can visualize start and end dates, dependencies, and workload. You can set task dependencies so one task cannot start until its predecessor finishes, and Gantt warns you when dates conflict. Scheduling assignments to specific people over a date range helps balance capacity across the team and prevents over-allocating a single member. Each user also has a personal My Tasks view that filters the board to work assigned to them, and recurring tasks can be configured so routine work regenerates automatically on a schedule rather than being created by hand each time.
Timesheets and billing
When the Timesheets feature is enabled on a project, team members log hours directly on tasks, recording the time spent and a short description. Each timesheet line references an employee, a task, and a number of hours. Timesheets feed two important outcomes. First, they measure actual effort (effective hours) against a task's allocated (planned) hours, so the task and project surface progress bars and over- or under-runs against the original estimate. Second, when a project is billable, timesheets can be invoiced to a sales order. The link works through a sales order line whose product is a service configured to be invoiced based on timesheets; logged hours then flow to that order line as delivered quantities that are ready to invoice. Odoo supports several service invoicing policies — billing at an hourly rate on delivered timesheets, or on a fixed price tied to milestones — so the same project can mix time-and-materials and fixed-fee work.
Milestones and project templates
Milestones mark significant checkpoints in a project, such as a phase completion or a key deliverable. They can be tied to billing so that reaching a milestone triggers invoicing of a fixed-price service line. Marking a milestone reached is a clear progress signal to both the team and the customer. To avoid rebuilding structure repeatedly, Odoo lets you save a project as a template: a reusable project with predefined stages, tasks, and settings that you copy for each new engagement of the same type, ensuring consistency and saving setup time.
Collaboration: chatter and documents
Every task and project has a chatter — the message and log thread — where users post messages, log internal notes, and where the system automatically records field changes and stage moves as tracked activity. Followers of a task receive notifications, and activities (scheduled to-dos with a type and due date, such as Call or Email) appear in each user's activity list. Files can be attached to tasks, and the Documents app integrates so project files are centrally stored and shareable. Odoo 19 can also share a project or task portal with the customer, letting them follow progress and comment without a full internal login, which keeps client communication inside the same record instead of scattered email.
Project profitability reporting
Because timesheets capture cost (employee time) and sales orders capture revenue, Odoo can report project profitability. The project's Overview / profitability panel compares figures such as timesheet costs, other costs, invoiced revenue, and expected revenue, producing a margin per project. This is the payoff of connecting Project, Timesheets, and Sales: managers see, per project, whether billable work is actually profitable, which under-billed projects need attention, and how real effort compares to what was originally sold. Keeping the customer, the billable service product, and the timesheet policy correctly configured is what makes this reporting trustworthy.
How are billable timesheet hours turned into customer invoices in Odoo 19?
What is the purpose of saving a project as a project template?
In a project's Kanban view, dragging a task card from one column to another changes which field on the task?