本文目前仅提供英文版本。翻译即将推出。
属于我们的Performance & Scalability系列
阅读完整指南Odoo 19 HR: Skills Matrix, Career Plans, and Performance Cycles
Odoo's HR suite was historically the weakest set of modules in the platform — usable for basic employee records, time-off, and payroll, but thin on talent management. Odoo 19 closed that gap. Skills are now first-class data with proficiency levels and certifications, career plans link skill gaps to development goals, performance cycles support 360-feedback, and the 9-box succession grid is built in.
For mid-market companies running Workday or BambooHR alongside Odoo for HRIS, Odoo 19 makes the case for consolidation. ECOSIRE has implemented Odoo HR for 15+ companies in the 50-500 employee range; the patterns below come from those deployments.
Key Takeaways
- Skills become typed data with proficiency levels (1-5) and certification expiry tracking
- Career plans visualize skill gap → development goal → completion → role progression
- Performance reviews support self, manager, peer (360°), and skip-level reviewers
- 9-box succession grid auto-populates from performance + potential ratings
- HR analytics dashboard surfaces tenure, attrition risk, skill coverage by team
- Onboarding workflow templates reduce new-hire week from 5 days of HR time to 1
- Time-off + payroll + skills tie together for compliance reporting
Skills matrix — the foundation
Odoo 17 had a basic skills field on hr.employee — a many-to-many to hr.skill. Useful for recording, useless for analysis ("how many engineers know Kubernetes at proficiency 4+?").
Odoo 19's skills model:
hr.skill— the skill itself, organized inhr.skill.typecategorieshr.skill.level— proficiency 1-5 (configurable)hr.employee.skill— the employee-skill link with proficiency, since-date, certified flaghr.skill.certification— certification record with expiry, training provider, attachment
# Example: query engineers with Python proficiency 4+
qualified = self.env['hr.employee'].search([
('department_id.name', '=', 'Engineering'),
('skill_ids.skill_id.name', '=', 'Python'),
('skill_ids.level_id.value', '>=', 4),
])
The skills matrix view shows employees as rows, skills as columns, proficiency as cell color intensity. Filterable by team, department, location.
Career plans
A career plan in Odoo 19 is a structured progression for an individual employee:
- Current role with required skill bundle
- Target role (current role + 1 step) with required skill bundle
- Skill gap (auto-computed from comparison)
- Development goals linked to specific skills, with target dates
- Training assignments — courses, on-job projects, mentor pairings
- Completion check — re-assess after target date
The plan visualizes as a path graph: current role → development arc → next role. Managers and employees both see it; updates trigger reminders.
For HR teams trying to retain employees in tight talent markets (engineering, sales), having career plans actually documented and tracked reduces voluntary turnover. We measured a 4-7 percentage-point drop in 12-month attrition at three clients post-deployment.
Performance review cycles
Odoo 17's appraisal module supported one-to-one annual reviews, awkwardly. Odoo 19 supports:
| Review type | When to use |
|---|---|
| Self-review | Annual cycle, employee self-assessment |
| Manager review | Annual or quarterly, downward |
| Peer (360°) | Senior roles, project-based |
| Skip-level | Exec validation of mid-management |
| Continuous (1:1) | Weekly/bi-weekly check-ins |
| Project-based | After major project milestones |
A "review cycle" combines multiple types into a sequence (e.g., "Q4 cycle = self → peer → manager → calibration meeting → final"). Templates ship for common patterns.
The review form supports:
- Skill rating (auto-pulled from skill matrix, can be re-rated)
- Goal review (against goals from prior cycle)
- Free-text strengths/areas-for-development
- Numeric overall rating
- Compensation recommendation (visible to managers and HR only)
9-box succession grid
The 9-box grid plots performance (X-axis) against potential (Y-axis) into a 3×3 grid. Top-right = high performers with high potential = succession pool. Bottom-left = low performers with low potential = potential exits.
Odoo 19 auto-populates the grid from performance review data:
- Performance: average of last 2 review cycles' overall ratings
- Potential: configurable (manager assessment, calibrated rating, or composite)
The grid is visible to HR and exec leadership only. Each cell has standard recommendations (rotate, develop, retain, exit-manage) that managers can override per individual.
For companies doing real talent reviews, this replaces a spreadsheet that gets emailed quarterly. For companies not doing talent reviews, it makes the practice low-friction enough to start.
HR analytics dashboard
The dashboard surfaces:
- Headcount by department, location, role with trend
- Tenure distribution (new hires < 1 year, 1-3, 3-5, 5+)
- Attrition risk model: combines tenure, last review rating, last salary increase delta, recent role change, peer turnover signal
- Skill coverage: % of team with each critical skill at proficiency 3+
- Open roles vs hiring pace: weeks-to-fill, days-since-posted
For HR leaders, this consolidates 4-6 separate spreadsheets that previously had to be manually maintained.
Onboarding workflow templates
Odoo 17's onboarding was a "checklist" on the new-hire form. Odoo 19 ships templates:
- First-day: welcome packet, IT account setup, badge issued, manager intro, lunch buddy assignment
- First-week: training module assignments, key system access, team intros
- First-month: 30-day check-in, role-clarification meeting, skills baseline assessment
- First-quarter: 90-day formal review, role expansion, mentor relationship review
Each template has tasks assigned to roles (manager, IT, HR, buddy) with due dates relative to start date. New-hire creation triggers the workflow; tasks auto-assign and email the responsible person.
In our deployments, this reduced HR coordinator time per new hire from 4-5 days down to ~1 day, with better consistency.
HRIS integration
Odoo 19 can be the system of record (SoR) for HR or sync with an external HRIS (Workday, BambooHR, ADP):
- Bi-directional sync for employee records, time-off, and basic payroll data
- Conflict resolution rules (last-write-wins, source-of-truth-per-field, etc.)
- Sync log with retry queue for failed syncs
The connectors are available for the major platforms; custom HRIS endpoints integrate via REST or SFTP file drops.
Migration path from Odoo 17 HR
- Skills migration: existing
hr.skillrecords carry over but proficiency is unset. Plan a calibration sprint: each manager rates direct reports' top 5 skills. - Performance history: 17 appraisal records migrate to 19 review records with type='manager' and self-review null. Backfill is optional.
- Career plans: new in 19; nothing to migrate. Roll out top-down (start with engineering or sales) rather than across all teams at once.
- 9-box: needs at least one full review cycle of data before the auto-populate is meaningful. Defer for 3-6 months post-migration.
- Onboarding templates: replace any custom onboarding checklists with template-based.
Compliance considerations
For SOX, ISO 27001, GDPR, and equivalent regulatory frameworks:
- Performance review records are immutable once submitted (audit trail enforced)
- Skills certifications track expiry — useful for forklift, HVAC, finance certifications
- Compensation history is access-controlled
- Right-to-be-forgotten flow anonymizes terminated employees after retention window
Frequently Asked Questions
Can Odoo 19 HR replace Workday or BambooHR for a 200-person company?
Yes for the core HRIS use case (records, time-off, performance, skills, basic payroll). Edge cases where dedicated HRIS still wins: complex multi-jurisdiction payroll (50-state US payroll, multi-currency global payroll), benefits administration with carrier-direct integrations, applicant tracking at high volumes (500+ open roles). For most 50-500 employee companies, Odoo's depth is sufficient.
How does the attrition-risk model work?
It combines signals: tenure, recency of last salary increase, recency of last role change, last performance rating, recent peer turnover in the same team, and self-reported engagement (if survey data available). The model surfaces high-risk employees but does not act autonomously — it's a tool for HR to focus retention conversations.
Are career plans visible to the employee?
Yes, employees see their own plan in the portal. Managers see their direct reports' plans. HR sees all plans. Skip-levels (manager's manager) see plans for their org. Compensation discussions stay manager-and-HR-only.
How long does it take to roll out skills matrix in a 100-person company?
Plan 6-8 weeks: 2 weeks to define skill taxonomy (which skills matter, how granular), 2 weeks for managers to rate direct reports, 2 weeks for employees to self-rate, 1 week for calibration discussion to align, 1 week for go-live + adjustments. Done well, this becomes a permanent reference; done poorly, it stays at 30% completion forever.
Does the 9-box require manager training?
Yes. The auto-populated grid is a starting point, not a final placement. Managers need calibration training to apply consistent definitions of "performance" and "potential". Without calibration, the grid produces unreliable results. ECOSIRE includes a calibration workshop in our HR rollout package.
Odoo 19's HR module is now strong enough to be the primary HRIS for mid-market companies, especially those already running Odoo for ERP. ECOSIRE's Odoo implementation team has rolled out HR-as-SoR for 15+ companies in the 50-500 employee range, including skills, performance cycles, and 9-box. We offer a fixed-fee 6-week HR module rollout. See our Odoo customization service if you need integration with an existing HRIS or payroll provider.
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
如何将自定义按钮添加到 Odoo 表单视图 (2026)
将自定义操作按钮添加到 Odoo 19 表单视图:Python 操作方法、视图继承、条件可见性、确认对话框。经过生产测试。
如何在没有 Studio 的情况下在 Odoo 中添加自定义字段 (2026)
通过 Odoo 19 中的自定义模块添加自定义字段:模型继承、视图扩展、计算字段、存储/非存储决策。代码优先,版本控制。
如何使用外部布局在 Odoo 中添加自定义报告
使用 web.external_layout 在 Odoo 19 中构建品牌 PDF 报告:QWeb 模板、paperformat、操作绑定。带有印刷徽标+页脚覆盖。
更多来自Performance & Scalability
Odoo 19 性能基准:PostgreSQL 17 调整数字
真实的 Odoo 19 性能基准:Web 客户端速度、ORM 吞吐量、PG17 调整设置、连接池、工作线程数、扩展阈值。
OpenClaw 大规模成本优化和代币效率
OpenClaw 令牌成本优化:提示缓存、模型路由、响应缓存、批处理 API 和生产代理的每租户成本护栏。
Power BI 增量刷新超过 1000 万行的表
适用于 10M 以上行表的 Power BI 增量刷新手册:分区设计、RangeStart/RangeEnd、刷新策略、查询折叠和 DirectQuery 混合。
Webhook 调试和监控:完整的故障排除指南
通过这份涵盖故障模式、调试工具、重试策略、监控仪表板和安全最佳实践的完整指南掌握 Webhook 调试。
k6 负载测试:在发布之前对您的 API 进行压力测试
掌握 Node.js API 的 k6 负载测试。涵盖虚拟用户启动、阈值、场景、HTTP/2、WebSocket 测试、Grafana 仪表板和 CI 集成模式。
Nginx 生产配置:SSL、缓存和安全性
Nginx 生产配置指南:SSL 终止、HTTP/2、缓存标头、安全标头、速率限制、反向代理设置和 Cloudflare 集成模式。