Flectic
Odoo HR module guideOdoo

Odoo HR: the Employees module explained for SMEs

Odoo HR is a modular suite built on the Employees app — the central record for personnel files, departments, contracts, certifications, and equipment. Here is how the core module works in Odoo 19, how the surrounding apps (Time Off, Payroll, Attendance, Recruitment, Appraisals) plug in, how it maps to Dynamics 365 Human Resources, and how to scope it for an SME rollout.

8 min readUpdated Jul 30, 202622 sources cited

TL;DR — Key takeaways

  • Employees app is the HR hub: personnel files, contracts, certifications, badges, and equipment in one record.
  • Start with Employees + country Payroll localization + Contracts.
  • In Odoo, 'HR' is not one app — it is a suite of modular applications that share a common employee data model.
  • Because Odoo splits HR into separate installable apps rather than one monolithic module, it helps to see the map before you scope a rollout.
01

What 'Odoo HR' actually means

In Odoo, 'HR' is not one app — it is a suite of modular applications that share a common employee data model. The foundation is the Employees app (sometimes called the Employees / HR core module), which centralizes personnel files, employment contracts, departmental hierarchies, certifications and training, earned badges, and all assigned equipment in one system.

Properly configuring the Employees app's settings makes the dashboard show each employee's real-time attendance and work location, which in turn drives payroll accuracy, capacity planning, and compliance reporting. The Employees app is the hub that the other HR apps — Recruitment, Appraisals, Time Off, Payroll, Onboarding, Offboarding, Learning, and Equipment — plug into.

02

The Odoo 19 HR app map at a glance

Because Odoo splits HR into separate installable apps rather than one monolithic module, it helps to see the map before you scope a rollout. The official Odoo 19 HR documentation organizes the suite around eight apps — Employees, Attendances, Time Off, Payroll, Recruitment, Appraisals, plus the cross-suite Expenses and Planning apps that feed payroll — each with its own configuration and access rights, all sharing the employee record as their common data backbone.

Only the Employees app is required to 'have HR'. Everything else is layered on demand: Time Off and Attendance feed Payroll, Recruitment creates the employee record when an applicant is hired, and Appraisals reads the skills data stored on each employee. The table below summarizes what each app does, whether it is core or optional, and what it depends on.

Odoo 19 HR apps: purpose, role, and dependencies
AppWhat it doesRoleDepends on / feeds
EmployeesPersonnel files, departments, org chart, contracts, certifications, badges, equipment, onboarding/offboardingCore (required)Hub every other app reads from
AttendancesCheck in/out, kiosk mode (PIN/badge/RFID), overtime rulesets, work approvalsOptionalFeeds Payroll (Work Entry Source = Attendances)
Time OffLeave allocations, requests, accrual plans, public holidays, approval flowOptionalFeeds Payroll (leave = paid/unpaid work entries)
PayrollContracts, salary structures/rules, work entries, payslips, pay runs, country localizationsOptionalConsumes Employees, Time Off, Attendance, Planning
RecruitmentJob positions, applicant pipeline, interviews, offers, referralsOptionalCreates the employee record on hire
AppraisalsAppraisal plans, self-assessment, manager feedback, 360, goals, skills evolutionOptionalReads skills/job-position data on Employees
ExpensesExpense reports, approvals, reimbursement, reinvoicingCross-suiteLinks to Payroll and Accounting
PlanningPublished work schedules / shift planningCross-suiteFeeds Payroll (Work Entry Source = Planning)
03

Employee records and departmental hierarchy

Each Odoo employee record is the single source of truth for that person. On an employee's Work tab, the core fields are Department, Job Position, Job Title, Manager, and Company. Selecting a Department automatically populates that department's configured manager in the Manager field, and the Organization Chart illustrates where the employee sits in the reporting line.

Departments are configured separately under Employees app -> Departments. To create a new department, click New and fill in the manager, parent department, and company to build the hierarchy. Because the manager relationship is inherited from the department, you avoid maintaining reporting lines in two places.

Beyond the Work tab, enabling the Skills Management setting in Employees -> Configuration -> Settings adds a resume tab that shows the employee's work experience, skills, and certifications. Each employee record also tracks certifications and training, earned badges, and assigned equipment, so IT assets, PPE, and company property stay visible from the same profile.

  • Employees app is the HR hub: personnel files, contracts, certifications, badges, and equipment in one record.
  • Departments define the hierarchy; selecting a department auto-fills the manager on each employee.
  • Skills Management unlocks a resume tab with experience, skills, and certifications.
  • Organization Chart visualizes reporting lines out of the box.
05

Recruitment, appraisals, and the adjacent apps

Recruitment is a separate Odoo app that organizes job applicants with a preconfigured pipeline of stages (for example, schedule a phone call, conduct an interview, send a job offer). When an applicant applies, an applicant card is auto-created in the Recruitment app for that job position and moved stage-to-stage. Stages can trigger automated templated emails when a card enters them, and stages apply to all job positions unless explicitly marked job-specific. Recruitment also supports interview surveys, and SMS messaging and resume digitization (OCR) are available as in-app-purchase services that consume credits under the Recruitment Settings -> In-App Purchases section.

Appraisals is another separate app. It covers scheduling (automatic via appraisal plans and automation, or manual), conducting appraisals (employee self-assessment, manager feedback, appraisal review, final rating), appraisal templates, 360 feedback, and goals (a goals library, sub-goals, and assign/update goals). It also includes appraisal analysis and skills-evolution reporting so performance conversations connect back to the skills data on each employee record.

Attendances is the app that records who is actually at work. Employees check in and out — from the web interface or a dedicated kiosk device in kiosk mode using a PIN, badge, or RFID token — and the app tracks attendance logs, flags incomplete shifts, and applies overtime rulesets to convert approved overtime into time off or pay. Because an employee's contract can use Attendances as its Work Entry Source, the check-in records flow straight into Payroll as worked-time work entries, which is why attendance accuracy directly drives payslip accuracy.

The genuine link between Odoo CRM and Odoo HR is Recruitment. 'Odoo CRM' (the sales pipeline) and 'Odoo HR' (the Employees core) are separate apps that share Odoo's common contact model — but they connect through hiring. When a Recruitment applicant accepts an offer, you click Create Employee on the applicant record and Odoo generates an employee record, copying the applicant's details across. So the same suite that tracks a lead through the CRM pipeline can carry a candidate through the Recruitment pipeline and land them as a live employee record, without re-keying data.

Time Off and Payroll are also separate apps. To avoid duplicating their scope, this guide stays focused on the Employees core: for Time Off and leave management specifically, see our dedicated holidays guide.

  1. 01
    Enable Skills Management

    In Employees -> Configuration -> Settings, turn on Skills Management to surface the resume tab with experience, skills, and certifications on each employee record.

  2. 02
    Configure contract and work-permit notice periods

    Under the Settings -> Contract section, set the Contract Expiration Notice Period and Work Permit Expiration Notice Period so expirations surface before they create compliance gaps.

  3. 03
    Build your department hierarchy

    Go to Employees -> Departments -> New and enter the manager, parent department, and company for each department. The hierarchy feeds the Organization Chart and auto-fills managers on employee records.

  4. 04
    Create contract templates

    In Payroll, upload reusable contract templates for full-time, part-time, and seasonal roles, then set the Work Entry Source (Working Schedule, Attendances, or Planning) so worked time flows correctly to payslips.

  5. 05
    Install the country localization

    Before running payroll, install the correct country-specific localization so local taxes and regulations apply to contracts and payslips.

06

The Dynamics 365 equivalent and when each fits

The closest Microsoft equivalent is Dynamics 365 Human Resources (D365 HR). Its core personnel capabilities live under Personnel management — the Personnel management workspace tracks personnel movements, employee changes, open positions, and address changes, and is central to organizing the workforce, managing workers, and handling positions — plus an Employee self-service experience for employees to update their own information.

Adjacent D365 HR capabilities mirror Odoo's modular structure but sit inside one consolidated Human Resources module: Task management, Time and attendance, Leave and absence, Benefits and Benefits management (enhanced benefit plans, flex credit programs, eligibility rules, online enrollment via employee self-service, and qualified life-event processing), Compensation management, and Employee development (performance management, performance reviews, and skills configuration).

The structural difference matters for SMEs. Odoo modularizes HR into Employees, Recruitment, Appraisals, Time Off, and Payroll apps that you install as needed — lighter to deploy and tightly integrated with the rest of the Odoo suite. D365 HR consolidates these under one Human Resources module and is positioned for mid-to-enterprise organizations already on the Microsoft stack (Finance, Supply Chain Management, Commerce), with richer benefits and compensation plan modeling and deep Microsoft ecosystem integration.

Odoo vs Dynamics 365 HR at a glance (structural, not superiority)
CapabilityOdoo 19Dynamics 365 HR
Core recordsEmployees app (personnel files, departments, contracts)Personnel management workspace (workers, positions, movements)
Departments / orgDepartments with auto-filled manager + Organization ChartPositions and worker assignment under Personnel management
RecruitmentSeparate Recruitment app with stage pipelineAdjacent module / partner ATS integrations
AppraisalsSeparate Appraisals app (plans, 360, goals)Employee development (performance reviews, skills)
BenefitsVia Payroll localization and contractsBenefits management (flex credits, eligibility, life events)
PayrollSeparate Payroll app, country localizationsHandled via Dynamics 365 Finance / payroll partners
TargetSMEs wanting one integrated suite, fast deployMid/enterprise on the Microsoft/D365 stack
07

Scoping an Odoo HR rollout for an SME

For most SMEs, the right starting scope is the Employees app plus the country-specific Payroll localization and Contracts. Departments and the Organization Chart come essentially for free once employees are imported, and Skills Management is a low-cost toggle that immediately enriches profiles.

Recruitment and Appraisals are best added once the employee master data is clean — they depend on the employee record and on department/job-position structure being correct. Time Off is a prerequisite for accurate Payroll in most jurisdictions, so it is usually sequenced alongside Payroll rather than after it.

The temptation is to turn on every HR app at once. Resist it. The Employees app's settings — Skills Management, Contract and Work Permit notice periods, Extra Time Off Allocation — are what make the downstream apps behave correctly. Configure the core first, then layer the adjacent apps as the team is ready to use them.

  • Start with Employees + country Payroll localization + Contracts.
  • Get departments and the Organization Chart right before importing staff.
  • Enable Skills Management early — it is a toggle with outsized profile value.
  • Add Recruitment and Appraisals only after employee master data is clean.
  • Sequence Time Off alongside Payroll, since leave feeds payslip accuracy.
08

Implementing Odoo HR with Flectic

Flectic is a platform-neutral ERP and CRM implementation partner. We implement both Odoo and Microsoft Dynamics 365, so our recommendation is driven by your existing stack, your HR scope, and your growth plan — not by a preferred vendor.

For Canadian, UK, and US SMEs, a typical Odoo HR engagement covers department and job-position design, employee data migration, country-specific Payroll localization, contract templates, and the Skills Management, Time Off, and Appraisals configuration that fits your team. Our AI-accelerated delivery is designed to deliver up to 3x faster than a traditional ERP rollout, while keeping the HR core correct so downstream apps behave.

If you are weighing Odoo against Dynamics 365 Human Resources, we will map your requirements — personnel records, benefits modeling, compensation, performance — to the platform that actually fits, and tell you honestly when one is the better structural choice for your organization.

FAQ

Frequently asked questions

Is 'Odoo HR' a single app?

No. In Odoo, HR is a suite of modular apps — Employees (the core), Recruitment, Appraisals, Time Off, and Payroll — that share a common employee data model. The Employees app is the foundation; configuring it correctly is what makes the other apps work.

What is the Dynamics 365 equivalent of Odoo HR?

Microsoft Dynamics 365 Human Resources (D365 HR) is the equivalent. Its personnel capabilities live under Personnel management and Employee self-service, with adjacent areas for benefits, compensation, leave, and employee development consolidated inside one Human Resources module rather than split into separate apps.

How are departments and managers related in Odoo?

Departments are configured under Employees -> Departments with a manager, parent department, and company. When you assign a department to an employee, the manager field is auto-populated from that department's configuration, and the employee appears on the Organization Chart.

Do I need Payroll installed to use the Employees app?

No. Employees works standalone for personnel files, departments, certifications, and equipment. Payroll is a separate app that consumes the contract, working schedule, and worked-time data from the employee record to generate payslips, and it requires the correct country-specific localization.

How is this different from your human-resources guide?

This guide covers the Odoo Employees / HR core module specifically. Our human-resources guide covers broader HR strategy, and our hr-holidays guide covers the Time Off module. They are written to complement, not duplicate, each other.

How does Odoo HR relate to Odoo CRM?

They are separate apps that share Odoo's common contact model. Odoo CRM is the sales pipeline; Odoo HR is the Employees core. The two connect through Recruitment: when an applicant accepts an offer, clicking Create Employee on the applicant record generates a live employee record, so a contact can move from a CRM lead to a hired employee without re-keying data. There is no single 'CRM HR' app — the phrase usually reflects Odoo's all-in-one positioning.

Which countries does Odoo Payroll support?

Payroll is country-specific and requires installing the matching localization so local taxes and regulations apply. The Odoo 19.0 documentation lists dedicated payroll localizations for Australia, Belgium, Egypt, Hong Kong, India, Jordan, Mexico, Saudi Arabia, Türkiye, the United Arab Emirates, and the United States, plus an Employment Hero Payroll integration. The supported set evolves between releases, so confirm your country is covered before scoping a payroll rollout.

What are the Odoo contract statuses?

A contract moves through three automatic statuses as it is signed: New when it is created and sent, Partially Signed once at least one required party has signed, and Fully Signed when every required party has signed. Internal users such as HR and recruitment staff are alerted when a signature is requested of them, and all transitions happen automatically as the document is signed.

How does attendance feed payroll in Odoo?

On an employee's contract you set the Work Entry Source. If it is set to Attendances, the check-in and check-out records from the Attendances app generate the work entries that Payroll uses to build payslips. Attendance accuracy therefore drives payslip accuracy directly, and approved overtime can be converted into time off or pay through overtime rulesets.

Sources & methodology

22 cited

Every pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.

  1. 01
    Odoo Employees centralizes personnel files, employment contracts, and departmental hierarchies in one system; each employee record tracks certifications and training, earned badges, and all assigned equipment.odoo.com · verified official Odoo 19.0 docs — Employees app page (confirmed via web search, content matches)
  2. 02
    Odoo Employees is the foundation of Odoo's HR suite; properly configuring its settings makes the dashboard show each employee's real-time attendance and work location, driving payroll accuracy, capacity planning, and compliance reporting.odoo.com · verified official Odoo 19.0 docs — Employees app page
  3. 03
    The Odoo HR documentation hub spans Employees, Onboarding, Departments, Learning, Certifications, Badges, Equipment, Offboarding, retention report, Appraisals, Recruitment, Time Off, and Payroll.odoo.com · verified official Odoo 19.0 docs — HR hub page (confirmed: lists Work tab, Personal tab, Payroll tab, Departments, configuration topics)
  4. 04
    On an Odoo employee's Work tab, fields include Department, Job Position, Job Title, Manager, and Company; selecting a Department automatically populates that department's configured manager, and the Organization Chart shows the employee's place.odoo.com · verified official Odoo 19.0 docs — new employee page (Work tab + Organization chart confirmed)
  5. 05
    To create a new department in Odoo: navigate to Employees app -> Departments, click New, and fill in the manager, parent department, and company to build the departmental hierarchy.odoo.com · verified official Odoo 19.0 docs — departments page (confirmed: 'make a new department, navigate to Employees app ‣ Departments, then click New')
  6. 06
    Odoo's Skills Management setting displays a resume tab on employee profiles showing work experience, skills, and certifications.odoo.com · verified official Odoo 19.0 docs — Employees app settings
  7. 07
    Odoo Recruitment uses a preconfigured stage pipeline (phone call, interview, job offer), auto-creates applicant cards per job position, supports automated stage-transition emails, and offers interview surveys; SMS and resume digitization (OCR) are credit-based in-app purchases configured under Recruitment Settings -> In-App Purchases.odoo.com · verified official Odoo 19.0 docs — Recruitment page (IAP section confirmed: SMS text messages and digitizing resumes require credits)
  8. 08
    Odoo's IAP (In-App Purchase) Document Digitization service uses OCR and AI to digitize scanned or PDF vendor bills, expenses, and resumes.odoo.com · verified official Odoo 19.0 docs — In-App Purchases page (confirmed: Documents Digitization covers resumes via OCR + AI)
  9. 09
    Odoo Appraisals covers scheduling (plans/automation or manual), self-assessment, manager feedback, appraisal review, final rating, templates, 360 feedback, goals library with sub-goals, appraisal analysis, and skills-evolution reporting.odoo.com · verified official Odoo 19.0 docs — Appraisals page
  10. 10
    When an employee is hired in Odoo they sign a contract defining salary structure and rules, working schedule, and benefits; contracts are created from reusable templates and the correct country-specific localization is required for local taxes and regulations.odoo.com · verified official Odoo 19.0 docs — Payroll contracts page
  11. 11
    Odoo Payroll calculates worked time in conjunction with Employees, Time Off, Attendances, and Planning, then creates payslips; the contract Work Entry Source options are Working Schedule, Attendances, or Planning.odoo.com · verified official Odoo 19.0 docs — Payroll page; corroborated by work_entries.html and Australia localization page (Work Entry Source = Working Schedule / Attendances / Planning)
  12. 12
    Microsoft Dynamics 365 Human Resources provides workforce insights and documentation covering Employee self-service, Personnel management, Task management, Time and attendance, Leave and absence, Benefits, Benefits management, Compensation management, and Employee development.learn.microsoft.com · verified official Microsoft Learn — D365 HR home page (canonical URL corrected from hr-welcome to /welcome)
  13. 13
    Dynamics 365 HR's Personnel management workspace tracks personnel movements, employee changes, open positions, and address changes, and is central to organizing the workforce, managing workers, and handling positions.learn.microsoft.com · verified official Microsoft Learn — Personnel management workspace (confirmed content match)
  14. 14
    The Odoo 19 HR documentation hub organizes the suite around the Attendances, Employees, Appraisals, Frontdesk, Fleet, Payroll, Time off, and Recruitment apps, each with its own configuration and access rights.odoo.com · verified official Odoo 19.0 docs — HR hub page (confirmed: top-level app sections for Attendances, Employees, Appraisals, Frontdesk, Fleet, Payroll, Time off, Recruitment)
  15. 15
    The Odoo 19 Attendances app supports web and kiosk check in/out (kiosk mode via PIN, badge, or RFID token), attendance logs, work approvals and overtime, and overtime rulesets that convert approved overtime into time off or pay.odoo.com · verified official Odoo 19.0 docs — Attendances check in/out + management pages (confirmed: kiosk mode, overtime rulesets, work approvals and overtime dashboard)
  16. 16
    On an Odoo contract, the Work Entry Source options are Working Schedule, Attendances (requires the Attendances app), or Planning (requires the Planning app); the default Salary Structure Types are Employee or Worker.odoo.com · verified official Odoo 19.0 docs — Contracts page (confirmed verbatim: Work Entry Source radio options and 'default salary structure types are Employee or Worker')
  17. 17
    Odoo contract types are Permanent, Temporary, Seasonal, Full-Time, Intern, Student, Apprenticeship, Thesis, Statutory, and Employee; contracts are created by opening the employee's Payroll tab and clicking Load a Template.odoo.com · verified official Odoo 19.0 docs — Contracts page (confirmed: contract type drop-down options and 'Load a Template' on the Payroll tab)
  18. 18
    Odoo contract status is New by default, becomes Partially Signed once at least one party signs, and Fully Signed when all required parties have signed; all transitions happen automatically as the document is signed, and internal users are alerted when a signature is requested of them.odoo.com · verified official Odoo 19.0 docs — Contracts page, 'Contract status' section (confirmed verbatim)
  19. 19
    To send an Odoo contract you click Generate Offer, which loads an Offer for (Employee) form with a Validity Days Count field (default 30 days); Send By Email despatches a preconfigured template, and Generate Offer requires an employee signature field on the contract PDF.odoo.com · verified official Odoo 19.0 docs — Contracts page, 'Send a contract' section (confirmed: Generate Offer, Validity Days Count default 30, signature-field requirement)
  20. 20
    Odoo contract templates are created through Payroll app -> Configuration -> Templates and stored in the Documents app; accessing them requires the Salary Configurator (hr_contract_salary) module, and a template captures Contract Reference, Working Schedule, Work Entry Source, Salary Structure Type, department, job position, contract type, wage, and HR Responsible.odoo.com · verified official Odoo 19.0 docs — Contracts page, 'Contract templates' section (confirmed: location, Documents app storage, hr_contract_salary requirement, template fields)
  21. 21
    Once an Odoo Recruitment applicant has been hired, the next step is to create their employee record by clicking the Create Employee button on the applicant record.odoo.com · verified official Odoo 19.0 docs — Offer job positions page (confirmed verbatim: 'Once the applicant has been hired, the next step is to create their employee record. Click the Create Employee button')
  22. 22
    The Odoo 19.0 documentation lists dedicated Payroll localizations for Australia, Belgium, Egypt, Hong Kong, India, Jordan, Mexico, Saudi Arabia, Türkiye, the United Arab Emirates, and the United States, plus an Employment Hero Payroll integration.odoo.com · verified official Odoo 19.0 docs — HR hub page, Payroll localizations section (confirmed country list)

Scope your Odoo HR rollout

Whether you are deploying Odoo Employees for the first time or weighing it against Dynamics 365 Human Resources, Flectic designs and implements HR core — departments, contracts, and the adjacent apps — with AI-accelerated delivery designed to deliver up to 3x faster. Book an ERP Readiness Call to map the right scope for your SME.

Book an ERP Readiness Call
Response within one business day