Odoo Project Management: Tasks, Timesheets, and Billing

Master Odoo 19 Project Management: configure projects, tasks, milestones, timesheets, and client billing for professional services and internal teams.

E
ECOSIRE Research and Development Team
|March 19, 202612 min read2.6k Words|

Odoo Project Management: Tasks, Timesheets, and Billing

Project management tools are everywhere. What's rare is a project management system that connects directly to your financials — where every hour logged automatically flows to your invoicing system, where project costs are visible against budget in real time, and where profitability can be calculated at the project level without end-of-month spreadsheet gymnastics. Odoo 19 Enterprise Project does exactly this: it's a fully functional project management platform that's natively integrated with timesheets, invoicing, and payroll.

This guide covers the complete Odoo Project module: project configuration, task management, milestone tracking, team collaboration, timesheet integration, and project-based billing. Whether you're a professional services firm managing client engagements or an internal IT team tracking development sprints, this guide gives you the configuration blueprint for project management that actually connects to your business outcomes.

Key Takeaways

  • Configure projects with stages, visibility settings, and customer associations for client work
  • Create task hierarchies with subtasks, dependencies, and milestone markers
  • Track time spent on tasks via integrated timesheets with manager approval workflows
  • Bill clients automatically based on timesheets, milestones, or fixed-fee schedules
  • Use the Gantt chart for timeline planning and critical path visualization
  • Monitor project profitability with real-time cost vs. revenue reporting
  • Enable customer portal access for client-side project visibility and approval
  • Integrate with Helpdesk, CRM, and Invoicing for end-to-end service delivery management

Project Configuration and Architecture

The right project architecture is essential before you start creating tasks. Decisions about project types, stages, and visibility affect how your team works and how data flows to invoicing.

Creating projects: Navigate to Project > Projects > New to create a project. Key configuration fields include:

  • Customer: Link to a customer record for client-facing projects. This links the project to invoicing.
  • Billing method: Fixed Price (one invoice per project), Milestones (invoice per milestone completion), or Timesheets (bill by hours logged)
  • Project Manager: The user responsible for this project. They receive automatic notifications for overdue tasks.
  • Planned dates: Start and end dates for the project, used in Gantt view and resource planning
  • Tags: Use tags to classify projects by type (Implementation, Support, Internal, R&D)

Private vs. public projects: Configure project visibility under the project settings. "Private" projects are visible only to invited members. "Internal" projects are visible to all company employees. "Public" projects are visible on the customer portal. Most client projects should be "Private" (shared with specific team members) with customer portal access enabled selectively.

Project stages: Project-level stages represent the overall status of the project: Discovery, In Progress, On Hold, Delivered, Closed. These are different from task stages (the stages within each project). Navigate to Project > Configuration > Stages to configure project-level stages visible in the project Kanban overview.

Task stages: Each project has its own configurable task pipeline. Default stages: Backlog, In Progress, Review, Done. Customize these to match your project methodology. A software development project might use: Backlog, Sprint Ready, In Development, In Review, QA, Done. A consulting project might use: To Do, In Progress, Client Review, Approved, Billed.


Task Management and Work Breakdown Structure

Tasks are the atomic unit of work in Odoo Project. Good task design is the difference between a project you can manage and one that manages you.

Task creation: Create tasks from the Kanban board, List view, or Gantt chart. Each task has: title, description, assigned user, deadline, priority (normal or urgent), tags, estimated hours, and stage. Use the task description field for rich-text scope documentation, including acceptance criteria, relevant links, and specifications.

Subtasks: Break complex tasks into subtasks using the Odoo parent-child task relationship. A "Develop payment integration" task might have subtasks: "Write API wrapper," "Implement error handling," "Write unit tests," "Integration testing," and "Deployment." Subtasks appear indented under their parent in list view, and the parent task completion percentage rolls up automatically from subtask completion.

Task dependencies: Enable task dependencies in Project > Configuration > Settings. When enabled, set predecessor tasks on each task — Odoo prevents a task from being started before its predecessors are complete. The Gantt view visualizes dependencies as arrows between tasks, making the critical path immediately visible.

Milestones: Define project milestones that mark significant deliverables or client approval gates. Navigate to Project > Configuration > Milestones to create reusable milestones, or create project-specific milestones from within a project. Tasks can be linked to milestones — when all tasks linked to a milestone are complete, the milestone is ready for completion, triggering any associated billing or notification.

Recurring tasks: For repeating work (weekly status reports, monthly maintenance tasks, quarterly reviews), configure recurring tasks. Set the recurrence pattern (daily, weekly, monthly, custom) and the start date. Odoo creates new task instances automatically on schedule, ensuring recurring work is never missed.


Kanban, Gantt, and List Views

Different situations call for different views of your project data. Odoo Project provides four views, each optimized for a different use case.

Kanban view: The default task view shows tasks as cards in columns representing stages. Kanban is ideal for daily task management — drag tasks between stages as they progress, quickly scan the team's workload, and identify bottlenecks (stages with too many cards). Filter by assignee to see any team member's personal queue.

Gantt view: The Gantt chart visualizes tasks on a timeline, showing planned start and end dates, task duration, and dependencies. It's essential for project planning, deadline management, and communicating timelines to clients. Odoo's Gantt view is interactive — drag task bars to change dates, resize them to adjust duration, and draw dependency arrows directly on the chart.

List view: List view shows all tasks in a spreadsheet-like layout, useful for bulk operations. Select multiple tasks and change their stage, assignee, or deadline simultaneously. Group by Milestone to see tasks organized by deliverable, or group by Assignee to see each person's workload.

Activity view: Shows tasks organized by next scheduled activity — useful for managers to see which tasks have overdue follow-ups, upcoming deadlines, or no activities scheduled (potentially neglected tasks).


Timesheets and Time Tracking

Timesheets are where project management meets financial reality. Every hour logged in a project timesheet is a data point about project cost, team utilization, and — for billable projects — revenue.

Enabling timesheets: Go to Project > Configuration > Settings and enable Timesheets. This adds a "Timesheets" tab to every task where team members can log time.

Logging time from tasks: Team members log time directly on tasks: click the "Timesheets" tab, add a line with date, description, and hours. This is the most accurate time tracking method because the context (which task) is already established. The timesheet line is immediately visible to the project manager on the project's timesheet report.

Timer-based logging: Odoo includes a running timer on the task form. Click "Start" when work begins and "Stop" when done — Odoo automatically creates a timesheet entry with the elapsed duration. This is particularly useful for eliminating end-of-day time reconstruction, which is notoriously inaccurate.

Mobile timesheet: The Odoo mobile app supports timesheet entry on the go. Field consultants, remote workers, and employees on client sites can log time from their phone, with the same project and task structure as the desktop interface.

Manager approval: For billable projects, enable timesheet approval. Team members submit timesheets weekly; project managers review and approve before hours become billable. This validation step catches data entry errors and ensures billing accuracy before invoices are generated.

Timesheet analysis: Navigate to Timesheets > Reporting > Timesheet Analysis. Filter by project, employee, or time period to analyze where time is being spent. Compare billable vs. non-billable hours, identify team members who are over or under-utilized, and track whether time allocation matches the project plan.


Project Billing and Revenue Recognition

For professional services businesses, Odoo's project billing integration is transformative. It eliminates the end-of-month scramble to extract timesheet data for billing and calculates project profitability automatically.

Fixed-price billing: For fixed-fee projects, create the contract sale order with the agreed project fee. Connect the sale order to the project. When the project is complete, invoice the sale order directly. Fixed-price projects can include milestone billing — invoice 30% at kickoff, 40% at mid-project approval, and 30% on delivery.

Time-and-materials billing: For T&M projects, set the project's billing method to "Timesheets." As time is logged and approved, it accumulates in the project's billing queue. At billing time (weekly, monthly, or on demand), navigate to Project > Invoicing > Invoice Timesheets. Odoo presents all approved, unbilled hours for review. Confirm and generate the invoice — line items match the timesheet breakdown, giving clients full transparency.

Hourly rate configuration: Set billing rates at multiple levels: the project rate (applies to all team members), individual employee rates (different people bill at different rates), or task-specific rates (different types of work bill at different rates). Odoo applies the most specific matching rate to each timesheet entry automatically.

Project profitability: Navigate to Project > Reporting > Profitability. This report shows, for each project: total revenue invoiced, total cost (employee hours at internal cost rate), gross margin, and margin percentage. Projects in the red are immediately visible — enabling management intervention before losses compound further.

Budget management: Set a budget on each project specifying the maximum hours and cost. As timesheets accumulate, Odoo shows budget consumed vs. remaining. When a project approaches its budget ceiling, Odoo generates an alert — preventing scope creep from going unnoticed until the project is over-budget.


Customer Portal and Client Collaboration

Clients increasingly want visibility into project progress without requiring constant status meeting overhead. Odoo's customer portal provides that transparency.

Enabling portal access: Grant portal access to client contacts through the customer record (invite them as a portal user). Once invited, clients receive an email with login credentials for the yourcompany.com/web/portal URL.

What clients see: Clients see their projects (filtered to their company), project tasks (in a simplified view without internal notes), milestone status, approved timesheets (for T&M projects where transparency is required), and invoices. Internal notes and private discussions remain hidden from portal users.

Client task approval: For workflows requiring client sign-off on deliverables, enable the "Customer Rating" feature. When a task reaches the "Client Review" stage, Odoo emails the client asking them to review and approve. The client can approve from the email or the portal, advancing the task automatically. This creates a documented approval trail for every deliverable.

Client messaging: Clients can message the project team from the portal, creating chatter messages on the relevant task or project. These messages notify the project manager and are integrated into the project's communication history — no email threading outside the system.


Resource Planning and Team Utilization

Individual project management is straightforward; managing team allocation across multiple concurrent projects is where Odoo's planning capabilities become critical.

Resource planning: Navigate to Project > Reporting > Resource Analysis. This report shows the planned vs. actual hours for each team member across all projects. Identify who is over-committed (planned hours exceed capacity) and who has availability for additional work. Use this data to make informed staffing decisions before deadlines slip.

Workload rebalancing: From the Gantt view, filter by assignee to see one person's full workload across all projects. Tasks with conflicting deadlines are immediately visible. Reassign tasks or adjust timelines to resolve conflicts before they become problems.

Project portfolio: Project managers overseeing multiple projects use the Project > Projects Kanban as their portfolio dashboard. Each project card shows overall completion percentage, upcoming milestone dates, and team. Filter by project status or client to focus on what needs attention.


Frequently Asked Questions

Can Odoo Project support agile/scrum methodologies with sprints?

Yes. Configure sprints as time-boxed project stages or as separate recurring project instances. Use the Kanban board for sprint visualization. Odoo doesn't have a built-in sprint planning ceremony structure, but the stage system, backlog management, and task dependencies provide the core workflow. Some teams use Odoo's Kanban combined with the Timesheets module to implement a lightweight scrum-like process effectively.

How does Odoo handle project templates for repeating project types?

Create a template project with predefined task structure, stages, and timeline. When starting a new project of the same type, duplicate the template project. All tasks, subtasks, and relative timelines are copied to the new project, which you then adjust for the specific client dates. This eliminates the overhead of rebuilding the same project structure repeatedly and ensures consistency across similar projects.

Can different team members see different levels of project detail?

Yes. Odoo's project access controls allow configuration of visibility at the project level. Individual tasks can have internal notes visible only to team members (not portal users). You can have public tasks (client-visible), private tasks (internal only), and mixed projects. The project manager controls visibility for each task or can set project-level defaults.

How does Odoo Project integrate with Odoo Helpdesk for client service management?

Helpdesk tickets can be converted to project tasks for complex issues requiring coordinated work. The task retains the link to the original ticket. When the task is complete, the ticket can be automatically resolved. This integration is particularly useful for managed service providers who handle both reactive support (helpdesk) and proactive project work for the same clients.

Can we track project expenses (not just time) in Odoo Project?

Yes. Enable the Expenses module and configure it to connect to Project. Team members can submit project-related expenses (travel, equipment, third-party services) and link them to the relevant project. Approved project expenses appear in the project profitability report, giving a complete view of project cost including both labor and expenses. For T&M projects, expenses can be billed to clients along with timesheet hours.

How does Odoo handle multi-company projects where team members are in different entities?

Odoo's multi-company setup allows users from different companies to be assigned to tasks in a shared project. Timesheet entries are recorded under the employee's home company for payroll purposes, but the project cost analysis aggregates costs across companies. For inter-company billing, configure inter-company rules so that time logged by Company B's employees on Company A's project generates an inter-company charge automatically.

What's the best way to manage project risk and issue tracking in Odoo?

Use project tags to classify tasks as "Risk" or "Issue." Create a dedicated "Issues" stage in your project for tracking known problems. The task priority field (normal vs. urgent) provides a basic risk indicator. For more sophisticated risk management, custom fields can be added to tasks for probability, impact, and mitigation status. The project chatter provides an audit trail of decisions and discussions about each risk or issue.


Next Steps

Odoo Project Management bridges the gap between project execution and business outcomes — connecting every hour worked to invoicing, every task to a deliverable, and every project to profitability. When properly implemented, professional services firms report 20-30% improvements in billing accuracy and significant reduction in project management administrative overhead.

ECOSIRE implements Odoo Project for consulting firms, IT service providers, construction companies, and internal IT teams. Our implementation includes project methodology workshops, billing configuration, integration with your existing invoicing and accounting setup, and team training.

Visit our Odoo services page to learn about project management implementation, or browse our marketplace modules for project extensions including advanced resource planning, project forecasting dashboards, and client portal enhancements for Odoo 19 Enterprise.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp