AI & Automation Services
Automate workflows, integrate systems, and unlock AI-driven efficiency.




Odoo ERP implementation 19's HR module covers employee records, leave management, recruitment, expenses, appraisals and time tracking in one system, starting from £9.10 per user per month on the Enterprise licence. For UK businesses, the key configuration requirements are: adding UK statutory bank holidays to the leave calendar, setting annual leave entitlements to 28 days (including 8 bank holidays as required by the Working Time Regulations), and integrating with a UK HMRC RTI-compliant payroll provider such as BrightPay, Sage Payroll or Xero Payroll - as Odoo's built-in payroll module is not configured for UK PAYE and National Insurance out of the box. With correct setup, UK businesses typically spend 60-70% less time on HR administration within 90 days of go-live.
Last updated: 18 May 2026
Published 18 May 2026Odoo 19's HR module is a fully integrated suite that replaces spreadsheets, standalone HR tools and disconnected payroll systems with a single database covering the entire employee lifecycle. From the moment a candidate applies for a role through to their final payslip and offboarding, Odoo holds the record. For UK businesses, the module covers the areas that generate the most administrative overhead: employee records and contracts, recruitment and applicant tracking, leave and absence management, timesheets and attendance, expenses with VAT coding, performance appraisals and reporting dashboards.
The key distinction from generic HR software is that Odoo HR sits inside the same database as your accounting, inventory and CRM. When an employee submits an expense claim, the accounting entry is created automatically. When a project manager assigns hours to a client project, those timesheets flow directly to invoicing. When payroll is processed, the journal entries post to your nominal ledger without manual data entry. That integration is what makes Odoo genuinely compelling for UK businesses that have outgrown separate HR and accounting tools.
Here is a complete breakdown of what Odoo 19 HR covers and what UK-specific configuration each area requires:
| HR Area | Odoo 19 Includes | UK-Specific Configuration Needed | Enterprise or Community |
|---|---|---|---|
| Employee records | Personal details, emergency contacts, employment contract, job position, department hierarchy, work schedule, skills | Right to work check date fields, NI number field, UK tax code field, payroll reference linking | Both (Community has basic records) |
| Recruitment / ATS | Job postings, applicant tracking (Kanban), interview scheduling, offer letters, email templates, Indeed/LinkedIn job board posting | UK-compliant offer letter templates, GDPR candidate data retention settings (6-month default), equal opportunities monitoring fields | Enterprise (full ATS); Community (basic only) |
| Leave management | Leave types, allocation rules, approval workflows, team calendar, accrual plans, carry-over rules | UK bank holiday calendar (England/Wales/Scotland variants), 28-day statutory minimum, UK leave types (maternity, paternity, shared parental, SSP sick leave) | Both |
| Time and attendance | Employee check-in/check-out, timesheets per project/task, overtime tracking, integration with manufacturing work orders | Working Time Regulations 48-hour weekly limit monitoring, rest break tracking for shift workers | Enterprise (full attendance); Community (timesheets only) |
| Expenses | Mobile receipt capture, OCR extraction (AI), manager approval workflow, automatic accounting entry, mileage claims, product/category expense coding | HMRC mileage rate configuration (45p/mile up to 10,000 miles, 25p thereafter), VAT receipt coding for business expenses, P11D/P9D benefit flagging | Both |
| Appraisals | Performance review workflows, 360-degree feedback, goal setting, activity scheduling, survey integration | No specific UK legal configuration required; documentation supports employment tribunal defence | Enterprise |
| Payroll | Salary structures, payslip generation, payroll journal entries; Enterprise UK localisation available but limited RTI functionality | Full UK PAYE/NI/RTI compliance requires integration with BrightPay, Sage Payroll, Xero Payroll or Moorepay - Odoo payroll is not RTI-compliant in standard Community edition | Enterprise (with integration); Community (not recommended for UK payroll) |
| Reporting and dashboards | Headcount reports, leave analysis, time tracking summaries, expense reports, recruitment funnel, turnover rate | Gender pay gap reporting data extraction (25+ employee obligation); UK headcount definitions for statutory reporting | Both (Enterprise has more built-in reports) |
The Community edition is free and open-source but lacks several key HR features including the full applicant tracking system, attendance management and appraisals. For most UK businesses with 15 or more employees, we recommend the Enterprise edition at £9.10 per user per month (billed annually) to access the complete HR feature set. We also configure the HR module to sit alongside Odoo Accounting, so all HR-driven financial events - payroll journals, expense postings, contractor invoice matching - happen automatically without double-entry.
UK leave law is more specific than Odoo's default configuration assumes. The Working Time Regulations 1998 require a minimum of 5.6 weeks of paid annual leave per year, which equates to 28 days for a full-time employee working five days a week. That 28-day entitlement must include the 8 UK bank holidays - they do not sit on top of the 28 days unless the employment contract explicitly grants additional leave. Configuring Odoo to reflect this correctly, and to handle the different bank holiday calendars for England, Scotland and Wales, is one of the first tasks we complete on every UK implementation.
The leave configuration in Odoo 19 works through three interlocking settings: leave types, allocation rules and the bank holiday calendar. Leave types define the category (annual leave, sick leave, maternity and so on). Allocation rules determine how many days each employee receives and whether those days accrue over time or are granted as a lump sum at the start of the leave year. The bank holiday calendar identifies the specific dates that are automatically blocked in the leave planner without counting against an employee's annual leave allocation.
Odoo 19 ships with a Public Holiday calendar for the United Kingdom, but it uses England and Wales dates by default and does not automatically distinguish Scottish bank holidays (which differ on New Year and include an extra day). For businesses with employees in Scotland, we create a separate 'Scotland Bank Holidays' calendar and assign it to those employees via their work location. The 8 standard England and Wales bank holidays that must be loaded for the 2026/27 leave year are: New Year's Day (1 January), Good Friday, Easter Monday, Early May Bank Holiday, Spring Bank Holiday, Summer Bank Holiday (last Monday of August), Christmas Day (25 December) and Boxing Day (26 December). Scotland replaces Easter Monday with 2 January.
Here is the complete set of leave types we configure for a standard UK business, along with the statutory entitlement and Odoo-specific settings for each:
| UK Leave Type | Statutory Entitlement | Odoo Configuration Notes |
|---|---|---|
| Annual leave | 28 days minimum (including bank holidays) for 5-day week; pro-rated for part-time | Accrual plan: 2.33 days per month or lump sum 28 days from 1 April. Carry-over: up to 8 days to next year (statutory minimum); excess forfeited. Leave year: typically 1 April to 31 March or 1 January to 31 December. |
| Sick leave | No statutory minimum paid sick leave; SSP starts after 3 qualifying days at £116.75/week (2026/27 rate) for up to 28 weeks | Create 'Sick Leave' type with no allocation limit. Configure SSP threshold notification at day 4 (first qualifying day). Feed sick day count to payroll integration for SSP calculation. |
| Maternity | Up to 52 weeks; SMP for 39 weeks at 90% of average weekly earnings for 6 weeks, then £184.03/week (2026/27) | Create 'Maternity Leave' type with manager approval required. Duration field up to 52 weeks. Flag for payroll: SMP period, SMP rate change at week 7. |
| Paternity | 1 or 2 weeks; SPP at £184.03/week (2026/27); must be taken within 52 weeks of birth/adoption | Create 'Paternity Leave' type; max 2 weeks; must fall within 56-week window from birth. Flag for payroll integration. |
| Shared Parental Leave | Up to 50 weeks (shared from maternity); ShPP at £184.03/week for up to 37 weeks | Create 'Shared Parental Leave' type with custom approval flow (HR must validate remaining maternity weeks before approving). Complex: we build a custom approval checklist field. |
| Compassionate leave | No statutory right; typically 3-5 days by employer policy | Create 'Compassionate Leave' type; set allocation per request (manager discretion); no auto-allocation. Add approval note field for relationship to deceased. |
| Study / training leave | Right to reasonable time off for study (under-18s and apprentices); adults: employer discretion | Create 'Study Leave' type if used; manager approval required; record qualification/course name in notes field. |
| Bank holidays | 8 statutory bank holidays per year (England and Wales); must be included in the 28-day minimum or added on top if contract provides additional leave | Load bank holiday calendar in Odoo; set as public holidays so they do not deduct from annual leave allocation. Review contract wording annually: 'plus 8 bank holidays' means 36 days total. |
We configure a two-stage approval workflow for most UK businesses: line manager first approval, then HR manager second approval for leave requests exceeding 5 consecutive days or for any statutory family leave. This creates an audit trail that supports the business in any employment tribunal proceedings. Odoo records the approval timestamp, approver name and any notes at each stage. The team calendar view gives managers a real-time view of approved leave across their department so they can flag resourcing conflicts before approving new requests.
One frequently missed configuration point: Odoo's default leave calendar does not account for part-time employees correctly unless work schedules are set up for each employee. A 3-day-per-week employee should have a leave entitlement of 16.8 days (3/5 x 28), and their daily leave deduction should be based on their contracted hours. We configure custom work schedules for every part-time variant in the business so the leave calculator applies the correct pro-ration automatically.
Payroll integration is the most technically significant decision in any UK Odoo HR implementation. Odoo does include a payroll module, and the Enterprise edition has a UK localisation, but the standard Community edition is not HMRC Real Time Information (RTI) compliant. RTI requires that every payroll run is reported to HMRC electronically before or on the payment date via a Full Payment Submission (FPS). Odoo Community cannot generate an FPS file in the correct HMRC schema. Even with the Enterprise UK localisation, most UK businesses we work with prefer to run payroll in a dedicated, HMRC-recognised payroll bureau or software package and use Odoo to hold the HR record and generate the data that feeds the payroll system.
The integration architecture we recommend is straightforward: Odoo HR holds the authoritative employee record including salary, job title, department, contract start date and leave entitlements. The payroll system holds the tax code, NI number, payroll history and produces the RTI submissions. Each month, payroll-relevant data - approved hours, approved overtime, any salary changes, new starters, leavers - is exported from Odoo and imported to the payroll software. The accounting journals from the payroll run are then posted back to Odoo Accounting automatically, completing the loop without double-entry.
| Payroll Software | Integration Method | Data Transferred | Automation Level | Setup Complexity |
|---|---|---|---|---|
| BrightPay | CSV export from Odoo timesheets and leave module; manual import to BrightPay Connect | Employee hours, approved leave days, new starters, leavers, salary changes | Semi-automated; payroll manager runs import each pay period | Low - standard export format; 1 day to configure |
| Sage Payroll (cloud) | API-based connection via Make (formerly Integromat) or n8n; Sage has a documented REST API | Employee master data sync, monthly hours and deductions, new starters/leavers automated | Fully automated; triggers on Odoo employee record change | Medium - requires Make scenario build; 3-5 days to configure and test |
| Xero Payroll | Direct via Odoo's native Xero accounting connector; payroll journals post automatically to Xero | Payroll journal entries, employee leave accruals, expense reimbursements | High - accounting sync is native; payroll employee data still requires monthly CSV for leave data | Low to medium - Xero connector is standard; payroll-specific mapping takes 2-3 days |
| Moorepay | SFTP file transfer; Moorepay accepts CSV payroll input files on a defined schedule | Full payroll input file: hours, rates, additions, deductions, new starters, leavers | Automated via scheduled Odoo export and SFTP push (we build this as a custom scheduled action) | Medium to high - SFTP credentials required; file format mapping; 5-7 days |
| QuickBooks Payroll (UK) | Manual CSV export from Odoo; import to QuickBooks; no direct API integration currently available | Hours, leave, salary changes | Manual - payroll manager imports each month | Low - but ongoing manual effort per pay period |
The monthly payroll data package we extract from Odoo covers: contracted salary (from the employment contract record), approved overtime hours (from timesheets), approved leave taken in the period (from the leave module), any new starters who joined since the last pay run, any leavers including their final day of service for pro-rata calculation, and any salary changes approved during the period. For businesses with variable pay elements - sales commission, project-based bonuses, shift premiums - we add custom salary fields to the Odoo employee record and include those in the export.
We also handle the reverse flow: once payroll is run in BrightPay or Sage, the payroll journals (salary expense, employer NI, employer pension, PAYE liability) are posted back to Odoo Accounting. This means the management accounts in Odoo reflect the true payroll cost without a payroll manager having to manually enter journal entries. For businesses using Odoo's project module, we go further and allocate salary costs to specific projects based on timesheet hours, giving project managers accurate profit and loss data at project level.
UK businesses are legally required to auto-enrol eligible workers into a workplace pension scheme. Odoo can record pension scheme membership and contribution rates on the employee record, but the actual pension contribution calculation and submission to the pension provider (NEST, Peoples Pension, NOW:Pensions and so on) is handled by the payroll software. We configure Odoo to flag employees who become eligible for auto-enrolment (based on age turning 22 and earnings reaching the threshold of £10,000 per year) so HR can initiate the enrolment process before the payroll deadline.
Odoo 19's expenses module is one of the strongest ROI areas of the HR implementation for UK businesses. The typical pre-Odoo expense process involves employees emailing photographs of receipts to an accounts inbox, an accounts administrator manually keying the data into a spreadsheet, the spreadsheet being sent to a manager for approval and then the approved amounts being entered into the accounting system and paid via a manual bank transfer. That process takes three to four weeks end-to-end and generates regular errors and disputes. Odoo replaces the entire chain with a mobile-first, AI-assisted workflow that completes in four days on average.
An employee opens the Odoo mobile app, photographs a receipt and submits the expense. Odoo 19's AI-powered OCR extracts the vendor name, date, total amount and VAT amount from the receipt image automatically. The employee reviews the extracted data, selects the expense category (mileage, travel, meals, hotel, client entertainment and so on), adds any project or client code, and submits. The expense appears in the line manager's approval queue immediately. The manager reviews the receipt image, approves or queries with a note, and the approved expense moves to the accounts team for payment processing. The accounting entry - debit expense nominal, credit employee creditor - is created automatically when the expense is approved. When payment is made, the creditor account clears.
HMRC's Approved Mileage Allowance Payments (AMAP) rates are a common source of confusion in Odoo expense configuration. The current rates for the 2026/27 tax year are 45p per mile for the first 10,000 business miles in a personal car, and 25p per mile thereafter. Motorcycle rate is 24p per mile. Bicycle rate is 20p per mile. In Odoo, we configure these as expense products with a quantity-based pricing rule that automatically switches from 45p to 25p when an employee's approved mileage claims reach the 10,000-mile threshold in the tax year. This means employees never need to calculate their own rate - they log the miles, Odoo applies the correct rate and calculates the reimbursement amount.
For VAT purposes, mileage reimbursements at AMAP rates are not subject to VAT. However, fuel-only claims where the business owns the vehicle are subject to HMRC's Advisory Fuel Rates (AFR), which vary quarterly by engine size and fuel type. We configure these as separate expense product lines and update the rates each quarter when HMRC publishes revisions.
Odoo's timesheet module records hours at project and task level. For businesses that bill clients by the hour, timesheet entries flow directly to invoicing - the project manager validates timesheets, Odoo generates a draft invoice from the approved hours, and the client receives an invoice with a timesheet breakdown. For businesses with hourly or variable-hour employees, approved timesheets feed into the monthly payroll data export so the payroll software calculates pay based on actual hours rather than contracted hours alone.
The attendance module adds a physical check-in/check-out layer on top of timesheets. Employees can check in via the Odoo Kiosk app on a tablet at a reception desk, via the mobile app using GPS location, or via a PIN entry screen. The system records actual start and end times including late arrivals and early departures. For businesses covered by the Working Time Regulations 1998, the attendance records provide evidence that the business is monitoring working hours and ensuring no employee consistently exceeds the 48-hour average weekly limit without a valid opt-out agreement.
A real example from our client work: a 25-person professional services firm we work with runs all expense claims through Odoo's mobile app. Receipts are photographed on mobile, OCR extracts vendor name, amount and VAT, the line manager approves in a single click and the accounting entry is created automatically. Their average expense cycle reduced from three weeks to four days after going live with Odoo. In the first month, they also identified three instances of duplicate expense submissions that the previous spreadsheet process had passed undetected - a saving of £840 in incorrect reimbursements.
Employee data is personal data under UK GDPR, and HR systems by their nature hold some of the most sensitive personal data a business processes. The Odoo HR module will hold names, addresses, dates of birth, National Insurance numbers, bank details, salary information, performance appraisal records, disciplinary notes and - critically - health information such as sick leave records and disability accommodations. Health and trade union membership are classified as special category data under UK GDPR Article 9, requiring explicit legal basis and heightened protection. Getting the GDPR configuration right in Odoo HR is not optional; the ICO can issue fines of up to £17.5 million or 4% of global annual turnover for serious breaches, and employment tribunals routinely consider data handling failures as evidence of broader HR management failures.
Most HR data processing relies on one of three legal bases: the employment contract (processing is necessary to perform the contract), legal obligation (HMRC reporting, right to work checks, pension auto-enrolment) or legitimate interests (performance management, workforce planning). Special category health data in the context of sick leave processing is typically covered by the explicit exception in Article 9(2)(b) - processing necessary for employment law obligations - but this must be documented in the organisation's Record of Processing Activities (ROPA).
When an employee leaves, their Odoo record should not be deleted immediately. HMRC requires payroll records to be kept for at least three years from the end of the tax year to which they relate. The Employment Rights Act and Equality Act limitation periods mean that employment claims can be brought up to three months after dismissal (Employment Tribunal) or up to six years for contractual claims in the civil courts. We recommend a six-year retention period for ex-employee records as a standard, with payroll-specific records archived for the HMRC-required period. In Odoo, we configure ex-employees with an 'archived' status rather than deletion so records remain accessible to HR and accounting but are excluded from day-to-day views.
Odoo's role-based access control is granular enough to configure correct data access for HR. The standard configuration we implement is: HR administrators have full read and write access to all employee records; line managers have read access to their direct reports' records and write access to appraisal and absence fields only; employees have read access to their own record and write access to their own expense and leave submissions. Salary and payroll data is restricted to HR administrators and the finance team via a separate 'Payroll Manager' access group. We remove the default 'read own' access to salary fields for line managers, as it is common for Odoo's default configuration to show team salary totals to department heads unintentionally.
Softomate configures all of the above as standard in every UK Odoo HR implementation. We provide template documentation for the privacy notice and ROPA entry, configure access groups and retention rules in Odoo, and test the SAR export process before go-live. UK GDPR compliance is not an afterthought we add at the end - it is built into the implementation from the first day of configuration.
Odoo HR is suitable from around 10 employees. Below 10, the licence cost (minimum 3 users at £9.10 per user per month for Enterprise) and setup investment of £3,000-£5,000 are only justified if the business is growing rapidly. Smaller businesses often use a dedicated HR tool such as BambooHR or HiBob and integrate it with Odoo accounting rather than using Odoo HR itself. The exception is businesses that already use Odoo for accounting or CRM - in that case, adding the HR module costs very little incrementally and the integration benefits justify it even at 5-8 employees.
Odoo HR does not automate UK right to work verification, which requires seeing original documents in person or using a government-approved online checking service such as Ucheck or Trunarrative. However, Odoo can log the right to work check date, document type, document expiry date and verification method on the employee record. For businesses with high hiring volumes, we build a right to work check workflow using Make that notifies HR when a time-limited right to work document (such as a visa or biometric residence permit) is approaching expiry, giving the business time to re-verify before the document lapses.
Yes - Odoo includes an employee self-service portal where staff can view their current leave balance, submit leave requests and track approval status. The portal is accessible via any web browser or the Odoo mobile app on iOS and Android. When a leave request is submitted, the line manager receives an email notification and can approve or decline from the email or from within Odoo. The team calendar view shows all approved and pending leave across the department, so managers can see resourcing gaps before approving new requests. Leave balances update in real time as requests are approved, so employees always see their accurate remaining entitlement.
Odoo can track sick leave days and trigger notifications at configurable thresholds. However, Statutory Sick Pay (SSP) calculation - which starts after 3 qualifying waiting days at a rate of £116.75 per week for the 2026/27 tax year for up to 28 weeks - and the RTI reporting obligation (the employer does not report SSP to HMRC separately; it is reported via the FPS) are handled by the payroll software rather than by Odoo. Softomate configures sick leave in Odoo to flag automatically when an employee reaches the end of the waiting period (day 4 of sickness) and passes a notification to the payroll integration so the payroll operator knows to apply SSP from that date. For long-term sickness, Odoo also flags when the 28-week SSP period is approaching expiry so HR can consider occupational sick pay or medical retirement processes.
Odoo HR implementation starts from £3,000 as a standalone module for businesses already using Odoo. That covers: employee record setup and data migration from spreadsheets or your existing HR system, UK leave types configuration, bank holiday calendar for England/Wales or Scotland, manager approval workflow setup, payroll integration with your chosen payroll provider, GDPR compliance documentation (privacy notice template, ROPA entry, access group configuration) and one day of post-go-live support. For businesses implementing Odoo from scratch - accounting, CRM and HR together - we include the HR module in our full implementation from £8,000 and typically complete the project in six to ten weeks depending on complexity and data volume.
Odoo 19's HR module gives UK businesses a unified system for employee records, leave management, expenses and time tracking from £9.10 per user per month. The critical UK-specific setup requirements are the bank holiday calendar, statutory leave entitlements under the Working Time Regulations 1998, and a payroll integration with a HMRC RTI-compliant system such as BrightPay or Sage. UK GDPR compliance - privacy notices, access controls, data retention rules and DPIA assessment - must be configured from day one rather than treated as an afterthought. With these in place, UK businesses typically reduce HR administration time by 60-70% within 90 days and achieve full compliance on employee data without additional software investment beyond the Odoo licence.
Ready to implement Odoo HR for your UK business? See our Odoo implementation cost guide or book a free consultation with Softomate for a scope and quote.
Written by the Softomate Solutions AI Development Team, Barking, East London. We implement Odoo 19 HR, accounting, inventory and CRM modules for UK businesses. We specialise in UK-specific configuration including MTD compliance, UK leave law and payroll integrations.Odoo implementation for a UK SME typically takes 4-6 weeks for accounting only, 8-14 weeks for CRM and inventory, and 16-24 weeks for full ERP including manufacturing. The timeline depends on data migration complexity and internal team availability. UK-specific requirements (MTD VAT, payroll RTI) add 1-2 weeks to any implementation scope.
Yes. Odoo Enterprise includes full Making Tax Digital (MTD) for VAT compliance - the software connects directly to HMRC's API for VAT return submission. This has been available since Odoo 12 and was updated for UK-only MTD rules post-Brexit. MTD for Income Tax Self Assessment (ITSA) support is included in Odoo 17 for businesses above the £50,000 income threshold from April 2026.
Let us help
Talk to our London-based team about how we can build the AI software, automation, or bespoke development tailored to your needs.
Deen Dayal Yadav
Online