How to Manage Work Entries in Odoo 18 Payroll: Complete Guide
By Braincuber Team
Published on February 28, 2026
Last quarter, a 47-employee D2C brand we onboarded discovered their payroll had been overpaying 11 employees by a combined $3,800/month. The root cause? Overlapping work entries that nobody caught. An employee marked as "present" in Attendance while simultaneously logged as "paid time off" in the Time Off module. Two data sources, one payslip, zero validation. Odoo 18's Payroll module tracks work entries with conflict detection built in—so these $3,800 mistakes get flagged before the payslip is generated, not three months later when your accountant notices the variance. This beginner guide is the complete tutorial.
What You'll Learn:
- How work entries feed payroll calculations in Odoo 18
- Viewing and filtering conflict entries on the Gantt chart
- Regenerating work entries to resolve discrepancies
- Creating new work entries manually
- Configuring work entry sources (Working Schedule vs. Attendance)
- Processing payslips from attendance-imported work entries
Why Work Entries Break Your Payroll
Work entries are the raw data behind every payslip. They log hours worked, paid time off, sick leave, overtime—anything time-related that affects what you pay an employee. When one of these entries conflicts with another (an employee clocked in at 9am but also has an approved sick day for the same date), your payslip math goes wrong. And it compounds. Every. Single. Pay cycle.
Accurate Salary Math
Work entries are the single source of truth for hours worked, overtime, leaves, and absences. Without accurate entries, payslips are guesswork. We've seen $2,100/month discrepancies from a single missing overtime record.
HR Module Integration
Odoo 18 pulls work entry data from Attendance, Time Off, and Planning modules automatically. No double entry. But when two modules contradict each other, you get a conflict—and Odoo flags it instead of silently picking one.
Legal Compliance Trail
Labor laws in the US, UK, and UAE require traceable time records. Work entries in Odoo create a transparent audit trail of working hours, overtime, and leaves that holds up during compliance inspections.
Batch Payroll at Scale
Work entries let Odoo group employees by schedule and apply salary rules consistently. Process payroll for 47 employees in one batch without losing data—instead of the Excel nightmare of 47 individual calculations.
Detect and Resolve Work Entry Conflicts
Conflicts happen when two work entries overlap or contradict each other for the same employee on the same date. Maybe attendance says they were in the office, but a time-off request was also approved. Odoo 18 doesn't just let this slide—it flags every conflict on the Gantt chart and blocks payslip generation until you resolve it. *(Your old system probably just picked whichever entry was entered last.)*
Open the Work Entries Dashboard
Navigate to Payroll > Work Entries > Work Entries. The dashboard displays all employee work entries in a Gantt chart view. Each bar represents a work entry block—you can switch between day, week, and month views using the top-right controls. Conflicting entries are highlighted with a distinct marker.
Filter for Conflicting Entries
From the Work Entries menu, select the Conflict option to view only conflicting work entries on the Gantt chart. Alternatively, use the Filters section in the advanced search bar and apply the Conflicting filter. This isolates every entry that has an overlap or inconsistency so you can address them one by one.
Regenerate Work Entries
Click the Regenerate Work Entries button. The Work Entry Regeneration form opens. Adjust the From and To dates to cover the period with conflicts, then click Regenerate Work Entries again. Odoo recalculates all entries for that period based on the latest contract, schedule, attendance, and time-off data—resolving most conflicts automatically.
Verify the Conflicts Are Resolved
After regeneration, go back to the Conflicts dashboard. Verify that the previously flagged employees no longer appear. If any conflicts remain, review the specific entries manually—the remaining ones typically need a human decision (e.g., was the employee actually present or on leave?). Edit or delete the incorrect entry.
Don't Regenerate After Payslips Are Validated
Regenerating work entries after payslips for that period have been validated is a really bad idea. It rewrites the underlying data that the payslip was calculated against, creating a mismatch between what you paid and what the system now says you owed. Always resolve conflicts before generating payslips. *(Yes, this means checking the Conflicts dashboard should be step one of every payroll cycle.)*
Create Work Entries Manually
Sometimes the system doesn't capture everything automatically. A contractor who doesn't use the Attendance app. An employee who worked a shift that wasn't in their schedule. A retroactive adjustment for hours logged incorrectly. That's when you create work entries by hand.
Create a New Work Entry
On the Work Entries dashboard (Gantt chart view), click New. A popup form opens. Fill in the Employee Name, Work Entry Type (Attendance, Paid Time Off, Sick Time Off, etc.), Start Date, End Date, and a Description. The Duration is calculated automatically from the dates.
Save and Verify the Entry Status
Click Save & Close to save the work entry. The entry's status appears at the top of the window: Draft (not yet approved), Validated (approved by a manager), or Conflict (overlaps with an existing entry). If the status shows Conflict, you need to resolve it before payslip generation.
Draft = Entry created but not yet validated by a manager
Validated = Approved and ready for payslip calculation
Conflict = Overlaps with another entry, must be resolved
Cancelled = Entry invalidated after review or correction
Configure Work Entry Sources and Process Payslips
Odoo 18 generates work entries from two sources: Working Schedule (the employee's predefined shift pattern from their contract) or Attendance (actual clock-in/clock-out records from the Attendances app). Pick the wrong source, and your payroll runs on theoretical hours instead of actual hours—or vice versa.
Set the Work Entry Source
Go to the Employees module and open the employee's contract. Find the Work Entry Source field in the Payroll section. Choose Working Schedule to generate entries from the contract's shift pattern, or Attendance to pull data from actual clock records in the Attendances app. Save the contract.
Verify Attendance Records
If you selected Attendance as the source, open the Attendance module and confirm the employee has clock-in and clock-out records for the payroll period. Missing attendance records mean missing work entries—which means the payslip will show $0 or an incorrect amount for those days.
| Work Entry Source | Best For | Watch Out |
|---|---|---|
| Working Schedule | Salaried employees with fixed schedules, no clock-in required | Doesn't account for actual hours—overtime and early exits are invisible |
| Attendance | Hourly workers, shift employees, overtime tracking | Requires consistent clock-in/out—missed punches create gaps in payslips |
| Planning | Teams with rotating shifts or project-based assignments | Needs the Planning module configured with accurate shift data |
Generate the Payslip
Go to Payroll > Payslips > To Pay and select the employee. Click the Attendance smart button at the top to review the imported attendance records. Verify that the work entries match the attendance data. Then click Create Draft Entry to generate the payslip draft based on the work entries.
Validate and Complete Payment
Review the draft payslip to confirm all salary rules, deductions, and overtime calculations are correct. The attendance-imported work entries show up in the payslip's computation breakdown. Click Validate to finalize, then proceed with the payment process. The work entries for this period are now locked—no more accidental modifications.
BEFORE generating payslips, run through this:
1. Open Payroll > Work Entries > Conflicts
2. Resolve ALL flagged conflicts (regenerate or edit manually)
3. Verify conflict count = 0
4. Check employee contracts have correct Work Entry Source
5. For Attendance-based employees: verify clock records exist
6. Generate draft payslips
7. Review each payslip computation breakdown
8. Validate and process payment
9. Lock the period to prevent retroactive edits
Skipping steps 1-3 = payslip errors you won't catch until month-end.
Working Schedule Doesn't Track Overtime
If you use Working Schedule as the work entry source, Odoo generates entries based on the contract's shift pattern—8 hours/day, 5 days/week (or whatever you configured). But if an employee actually worked 9.5 hours on Tuesday, the system still logs 8. Switch hourly workers and overtime-eligible employees to Attendance source, or you'll underpay them by $870-$1,200/month.
Frequently Asked Questions
What are work entries in Odoo 18 Payroll?
Work entries are time records that log employee hours, leaves, overtime, and absences. They feed directly into payslip calculations and can be generated from working schedules, attendance records, or created manually.
How do I resolve work entry conflicts in Odoo 18?
Go to Payroll > Work Entries, filter for Conflicting entries, then click Regenerate Work Entries. Set the date range and regenerate. If conflicts persist, manually edit or delete the incorrect entry.
What is the difference between Working Schedule and Attendance work entry sources?
Working Schedule generates entries from the employee's contract shift pattern (fixed hours). Attendance generates entries from actual clock-in/out records. Use Working Schedule for salaried staff and Attendance for hourly workers.
Can I create work entries manually in Odoo 18?
Yes. On the Work Entries Gantt chart, click New, fill in the employee name, entry type, date range, and description. Click Save & Close. The entry status shows as Draft until validated by a manager.
Should I regenerate work entries after payslips are validated?
No. Regenerating after validation creates a mismatch between the payslip amount and the underlying data. Always resolve conflicts and regenerate entries before generating payslips, not after.
Need Help Configuring Odoo 18 Payroll?
Our team can set up your work entry sources, configure conflict resolution workflows, align attendance with payroll, and get your payslips generating accurately—so you stop overpaying or underpaying employees.
