| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Recruitment (hr_recruitment) • Discuss (mail) • Calendar (calendar) |
| Community Apps Dependencies | Show |
| Lines of code | 1421 |
| Technical Name |
eh_hr_referral |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Versions | 16.0 17.0 18.0 19.0 |
Employee Referral Tracking
Staff refer candidates, HR advances them stage by stage, and points settle automatically the moment recruitment marks them hired.
Why this module
Employee Referral Tracking
Points settle on hire, not on a memo
The reward never depends on someone remembering to close the loop. When the linked applicant reaches any stage flagged as hired in recruitment, the referral flips to hired and the configured points post to the referrer in the same transaction.
Referral and applicant stay linked
Create Applicant spawns an hr.applicant from the referral and binds them both ways. Re-running it never creates a duplicate, so the referral and the recruitment record stay in lockstep through the whole pipeline.
Every transition is on the audit chain
State changes, referrer, candidate, email, job and reward are captured to an append-only, sha256 hash-chained audit log. Any tampering that does not recompute the whole downstream chain is detectable by the platform verify routine.
Day in the life
From break-room recommendation to paid reward
An employee opens a referral, names the candidate and the role, and clicks Refer. HR reviews it, clicks Create Applicant, and the candidate drops into the recruitment pipeline already linked back to the referral. The applicant is interviewed and, when the recruiter drags the card to a hired stage, the referral marks itself hired and credits the referrer with its points automatically. The HR officer never touches the referral again, and the full sequence sits on the audit chain if anyone later asks who referred whom and what was paid.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Auto-award skips any referral already in the hired state, so re-saving an applicant on a hired stage cannot double-credit the referrer or re-post points.
Create Applicant returns the existing applicant when one is already linked instead of spawning a second recruitment record for the same candidate.
Hired and rejected are terminal. The engine refuses any further transition out of a final state even if a misconfigured definition declares one.
Audit appends take a transaction-scoped Postgres advisory lock, so two simultaneous transitions cannot fork the hash chain; the lock releases on commit or rollback.
Referrals are company-required on create, and cross-company writes are refused unless an explicit, separately audited override context is set.
Moving the applicant to an interview or any non-hired stage leaves the referral untouched and its awarded points at zero.
Employees can fire the initial Refer step; advancing to interviewing, hire and reject is restricted to the HR officer group by the workflow transition definitions.
What is inside
Built to do the job, end to end.
- Configurable referral workflow. States (draft, referred, interviewing, hired, rejected) and the transitions between them are defined as platform workflow data with per-transition group rules, so the path and who may walk it can change without touching Python.
- Recruitment integration. A button spawns and links an hr.applicant, and a write hook on hr.applicant watches for a hired stage to trigger the reward. Candidate-name handling adapts across the Odoo 16, 17, 18 and 19 recruitment data models.
- Reward and points fields. reward_amount records the informational bonus on the referral, while points_on_hire sets what is credited and the read-only points field captures what was actually awarded when the candidate was hired.
- Hash-chained audit trail. Referral changes flow into the shared eh.hr.audit.log, an append-only sha256 chain with a forward verify routine, inherited from the platform core rather than reimplemented here.
- Yearly reference numbering. Each referral gets a company-shared sequence reference in the form REF/year/ with five-digit padding, generated automatically on create and never recomputed on copy.
- Chatter and tracking. Key fields are tracked and an auto-posted message records the candidate, the points awarded and the referrer when a hire settles, giving a readable history alongside the formal audit log.
Honest about the edges
What this does not do, so nothing surprises you.
- The reward is tracked as referral points and an informational bonus amount on the record. The module does not post a payslip line, create a vendor bill, or move any money; payout remains a downstream manual or payroll step.
- Auto-reward fires only when the linked applicant moves into a stage flagged as a hired stage in Odoo recruitment. A referral with no linked applicant must be advanced to hired by hand.
- No candidate-facing email or portal is included. candidate_email is stored for contact only; the module sends nothing to the referred person.
- Workflow, audit and multi-company guarantees come from the EH HR Platform engine modules this depends on; install eh_hr_core, eh_hr_compat and eh_hr_engine_workflow alongside it.
- There is no leaderboard, gamification dashboard, or aggregate referral reporting beyond the standard list and form views.
- Approval gating exists in the engine but is not configured on the referral transitions out of the box; advancing stages is governed by group rules, not an approval chain.
odoo employee referral, odoo 17 hr referral, employee referral software odoo, referral reward tracking, referral bonus odoo, odoo recruitment referral, hr referral workflow, candidate referral pipeline, referral points odoo, hr audit trail odoo, multi company hr odoo, odoo community hr referral
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Please log in to comment on this module