Odoo 20 Payroll: The Dashboard That Replaced Work Entries

Every payroll system has a layer nobody loves — the intermediate step between “the employee worked” and “the payslip is correct” that somebody has to generate, review, and fix before a single number can be computed. In Odoo, that layer was work entries: the per-employee, per-day records of regular work, overtime, and leave that fed every payslip, and the source of a long-running ritual of conflict resolution before each pay run. Odoo 20 removes them. Work entries are gone from the payroll flow, the Planning–Payroll integration that generated entries from shifts is gone with them, and in their place sits a revamped Payroll dashboard built around warnings and day-to-day control of pay.

This article explains what work entries did, what their removal changes for payroll teams, how the new dashboard and the enhanced pay run workflow fit together, and what else in Odoo 20 Payroll — working schedules, salary rules, simulations, indexation — changes how a pay run is prepared.

What work entries were, and why they frustrated people

In earlier versions, Odoo calculated when employees worked based on work entries generated from their contracts, drawing on the Attendances, Planning, and Timesheets apps. Before payslips could be processed, any errors or conflicts in those entries had to be resolved — overlapping entries, entries colliding with time off, entries outside a contract's dates. Payroll staff will recognise the pattern: the pay run itself took minutes, but the work-entry cleanup in front of it could take hours, and it had to be repeated every period, for every employee, whether anything was actually wrong or not.

The Odoo 20 release notes close that chapter in one line: “Work entries and the Planning-Payroll integration have been removed. Work entry types and time off types have been merged.” Each part of that sentence matters:

  • Work entries removed. The intermediate record layer — and its conflict queue — is no longer something payroll generates, reviews, and repairs as a separate step in the flow.
  • The Planning–Payroll integration removed. Shifts in Planning no longer feed payroll through work entries. Teams that built their process around shift-generated entries need to re-plan that handoff (Planning itself gained heavily in Odoo 20, including the absorbed Field Service features — but its output no longer lands in payroll the old way).
  • Work entry types and time off types merged. The separate taxonomy of entry types collapses into time off types, simplifying configuration: one list of absence/work categories to maintain instead of two parallel ones that had to be kept in sync.

The new dashboard: warnings first

The replacement for the old workflow's front door is the dashboard. Per the release notes, “the Payroll dashboard has been revamped to focus on warnings for setup and day-to-day control of pay.” The emphasis is deliberate. The old flow surfaced problems late — at work-entry validation, mid-run. A warnings-focused dashboard inverts that: setup problems (a contract missing a structure, configuration incomplete) and day-to-day control issues are what the payroll officer sees on arrival, before a pay run is even started.

That is the real design trade Odoo 20 makes. Instead of a mechanical intermediate step that had to be cleared every period regardless of need, attention is directed by exception: the dashboard tells you what is wrong or risky, and the routine cases flow through. For payroll teams, the skill shifts from clearing queues to responding to warnings — fewer clicks, but the clicks that remain carry more judgement.

Pay runs: a clearer, more conversational workflow

The pay run itself is reworked around the dashboard. The release notes describe an enhanced “Pay Runs” workflow providing “a clear, step-by-step process for creating and validating pay runs.” Three supporting changes make the run easier to manage as a team process rather than a solo one:

  • Chatter on pay runs. The chatter is now enabled on pay runs, so questions, approvals, and explanations live on the run itself instead of in side-channel email — an audit trail of why this period's numbers are what they are.
  • Test print in one click. A pay run can be tested with printed payslips in one click, making the pre-flight check — print a test batch, eyeball the results, then commit — a built-in step rather than a workaround.
  • Payslip sending options. You can now choose when payslips are sent to employees: on confirmation, on payment, or manually. Organisations that pay a few days after confirming can stop payslips racing ahead of the money.

On the payslip itself, the “Salary Computation” tab has been improved to show only relevant information — less noise when you are checking why one employee's net differs from expectations.

Guardrails: contract dates and working schedules

Two quieter changes tighten the inputs payroll depends on.

Contract dates are now protected. It is no longer possible to modify an employee's contract dates if doing so impacts existing payslips; instead, those payslips must be reverted first. Anyone who has traced a payroll discrepancy back to a quietly edited contract start date will appreciate the intent: history that money was paid on cannot be rewritten underneath the payslips that relied on it.

Working schedules are simpler to define. The updated working schedules let you define a time per day without specifying start and end times. For salaried staff whose contract is “7.6 hours a day” rather than “9:00 to 17:00,” the schedule can now say exactly that — one less false precision for payroll to maintain, in a world where the schedule's hours-per-day figure is what the calculation actually consumes.

Rules, structures, and simulations got more flexible

Beyond the headline removal, Odoo 20 loosens several long-standing payroll constraints:

  • Salary rules in multiple categories and structures. Salary rules can now belong to multiple categories and be used in multiple structures. A rule that applies to both office and field staff no longer needs duplicating across structures — define it once, reuse it, and fix it in one place when rates change.
  • Salary indexation. An employee's salary can be increased by a percentage and/or a fixed amount — the annual indexation round becomes a defined operation instead of a spreadsheet-and-edit marathon across contracts.
  • Net-to-gross simulation. You can perform a salary simulation based on a net amount — start from the take-home figure an employee (or a negotiation) has in mind and work backwards to the gross the contract needs.
  • Employee type per company or branch. An employee type can be restricted to a specific company or branch, keeping multi-entity databases tidy.
  • Standardised time entry exports. All time entry exports now follow a standard format — a small mercy for anyone reconciling payroll data in external tools.
  • Payroll–Fleet sync. When a car is selected or changed for an employee in Payroll, the vehicle's assigned driver is updated automatically in the Fleet app — company-car administration stops drifting between the two apps.

Preparing for your first Odoo 20 pay run

  1. Map your old work-entry dependencies. Anything — reports, exports, habits — that read work entries needs a new source. The removal is the one payroll change in Odoo 20 that reaches outside the Payroll app.
  2. Retire the Planning handoff. If shifts fed payroll through the Planning–Payroll integration, agree on the replacement process before the first live run, not during it.
  3. Consolidate your types. With work entry types merged into time off types, review the merged list for duplicates and naming collisions while the change is fresh.
  4. Consolidate salary rules. Rules duplicated across structures can now be unified; do it deliberately, structure by structure, and re-test a payslip after each merge.
  5. Start from the dashboard. Make the warnings view the first screen of every pay run, use the one-click test print before validating, and set the payslip sending option — confirmation, payment, or manual — to match how your organisation actually pays.

Odoo 20's payroll story is subtraction plus direction: the work-entry machinery that consumed the hours is removed, and what replaces it is a dashboard that points at problems and a pay run workflow that proceeds step by step. Payroll teams get less queue to clear — and clearer signals about the exceptions that genuinely need them.

Further reading

Leave a Comment