この記事は現在英語版のみです。翻訳は近日公開予定です。
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: QWeb テンプレート、paperformat、アクション バインディングを使用して、Odoo 19 でブランド化された PDF レポートを構築します。印刷ロゴ + フッターのオーバーライド付き。
Performance & Scalabilityのその他の記事
Odoo 19 パフォーマンス ベンチマーク: PostgreSQL 17 のチューニング数値
実際の Odoo 19 パフォーマンス ベンチマーク: Web クライアント速度、ORM スループット、PG17 チューニング設定、接続プーリング、ワーカー数、スケーリングしきい値。
OpenClaw のコスト最適化と大規模なトークン効率
OpenClaw トークン コストの最適化: プロンプト キャッシュ、モデル ルーティング、応答キャッシュ、バッチ API、実稼働エージェントのテナントごとのコスト ガードレール。
1,000 万行を超えるテーブルの Power BI 増分更新
1,000 万行以上のテーブル用の 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 統合パターン。