| 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 |
EH HR Referral
Employee referrals that pay off, on the record.
Why this module
EH HR Referral
The reward fires itself
Link a referral to a recruitment applicant and the referral marks itself hired and pays out its points the instant the applicant reaches a hired stage. No second manual step, no missed bonus, and re-hitting a hired stage will not pay twice.
Workflow is data, not code
The referred to interviewing to hired progression and its allowed transitions come from the workflow definition, so an administrator adjusts the steps and the group that may run each one without a developer. Final states refuse any further move.
Every move is on the record
State changes, referrer, candidate, reward and the rest are captured to an append-only, hash-chained audit log you can verify on demand, alongside full chatter tracking on the referral itself.
Day in the life
From a name in the corridor to a paid bonus
An employee logs a referral: candidate name, email, the role, and why they are a fit. The record gets a REF number and starts in draft. They press Refer; HR picks it up, presses Create Applicant, and the candidate enters the standard recruitment pipeline already linked back to the referral. HR moves the referral to interviewing as the candidate progresses. When recruitment drags the applicant into a hired stage, the referral flips to hired on its own, the referrer's points land, and a note is posted to the chatter naming who earned what. If the candidate does not work out, a single Reject closes the referral from either referred or interviewing.
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.
Create Applicant on a referral that already has one returns the existing applicant instead of spawning a duplicate, verified by test.
Spawning the applicant adapts to how each Odoo series stores the candidate name: a required hr.candidate on 18, partner_name on 19, and the subject name on 16 and 17.
Auto-award skips any referral already in the hired state, so a candidate moved through hired stages more than once is paid exactly once.
Moving the linked applicant to an interview or any non-hired stage leaves the referral untouched and points at zero.
Audit rows are written under a transaction-scoped Postgres advisory lock, so concurrent referral edits cannot fork the hash chain.
Once a referral is hired or rejected, the workflow engine refuses any further transition, even one a misconfigured definition might declare.
Company is required and cross-company writes are refused unless an explicit, audited override is set, so referrals cannot leak between companies.
Each transition checks the user's groups: self-service staff can refer, but moving to interviewing, hiring or rejecting is reserved for HR officers.
What is inside
Built to do the job, end to end.
- One model it adds. eh.hr.referral, the referral record with referrer, candidate name and email, job position, reason, reward amount, points on hire, points awarded, and the linked applicant.
- Standard model it extends. hr.applicant gains a referrals link and a write hook that auto-awards any linked referral when the applicant reaches a hired stage.
- Workflow and sequence. A shipped workflow definition with draft, referred, interviewing, hired and rejected states plus their transitions, and a REF/year sequence that numbers every referral on create.
- Security and menu. Access rules for HR admin, manager and self-service employee, a Referrals menu under Talent for HR officers, and list plus form views with the action buttons.
- Built on the platform engines. Inherits the workflow, audited and company-aware mixins and mail.thread from eh_hr_core and eh_hr_engine_workflow. It carries no workflow or audit code of its own.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a referral tracker, not a payroll integration. The reward amount and points are recorded on the referral, they are not posted to a payslip, a journal or an employee balance automatically.
- Points are a simple integer credited to the referrer on the referral record. There is no leaderboard, redemption, tier or gamification layer.
- The reward fires only when the linked applicant reaches a stage flagged as a hired stage in standard recruitment. A referral with no linked applicant, or one hired outside that flag, is moved by HR by hand.
- Transitions are role-gated but this module wires no multi-step approval chain on its referral workflow. The platform approval engine is available but is not engaged here by default.
- Recruitment integration is one directional: the module can create or link an hr.applicant and react to its hired stage. It does not sync interview scorecards, offers or other recruitment data back onto the referral.
- The candidate is captured as free-text name and email on the referral. There is no de-duplication against existing applicants, employees or contacts before the applicant is created.
odoo employee referral, odoo hr referral module, employee referral programme odoo, referral bonus tracking odoo, referral reward on hire, odoo recruitment referral integration, candidate referral workflow, odoo 19 hr referral, odoo community referral app, referral points tracking, hr referral audit trail, multi company referral odoo, refer a friend odoo hr, applicant referral link odoo
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