| 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 themselves out when the hire lands.
Why this module
EH HR Referral
The reward fires itself
When the linked applicant lands on a stage flagged as hired in standard recruitment, the referral is marked hired and the configured points are awarded in the same write. No HR officer has to remember to close the loop, and an applicant moved to a non-hired stage awards nothing.
The pipeline is data, not Python
Draft to referred to interviewing to hired or rejected is defined in the workflow engine as states and transitions. An administrator can reorder or rename steps without a developer, and the form statusbar redraws from the definition.
Every transition is on the record
Referral changes are written to an append-only, sha256 hash-chained audit log you can verify on demand, alongside the chatter trail that logs who hired whom and how many points were awarded.
Day in the life
From a name in the corridor to a paid referral
An employee logs a candidate they want to refer: name, email, the job, and why they are a good fit. They hit Refer and the record moves to referred. HR creates a recruitment applicant straight from the referral in one click, which drops the candidate into the standard hiring pipeline. As the applicant progresses, HR moves the referral to interviewing, then hires or rejects it. When the applicant reaches a hired stage in recruitment, the referral flips to hired on its own and the points are credited to the referrer, with a chatter note naming the candidate and the amount. Reject from either referred or interviewing closes it cleanly, and a final state cannot be reopened.
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 the applicant or moving it between hired stages never double-credits the referrer.
Create Applicant reuses the existing linked applicant if one is already attached, so a second click opens the same record instead of spawning a duplicate.
Moving the applicant to an ongoing, non-hired stage leaves the referral untouched and the points at zero; only a stage flagged hired triggers the payout.
Hired and rejected are terminal. The workflow mixin refuses any further transition out of a final state, even one a misconfigured definition might declare.
The audit log takes a transaction-scoped Postgres advisory lock before each append, so concurrent writers serialise onto one chain and verify_chain catches any after-the-fact edit.
Each referral is owned by a company and cross-company writes are refused, even under sudo, unless an explicit override context is set and audited.
Creating the applicant adapts to how each Odoo series stores the candidate name, using the hr.candidate record on Odoo 18 rather than assuming one schema.
What is inside
Built to do the job, end to end.
- Models this module adds. eh.hr.referral, the referral record carrying referrer, candidate, job, reward amount, points-on-hire, awarded points, and the recruitment applicant link.
- Standard models it extends. hr.applicant gains a referrals link and a stage-change hook that auto-awards the matching referral when the applicant reaches a hired stage.
- Workflow and audit. Inherits the platform workflow mixin (data-defined states and transitions, group-gated), the audited mixin (hash-chained log), and the strict company-aware mixin. Owns no workflow or audit code of its own.
- Data and security. A year-prefixed REF sequence, the referral workflow definition, and access rules giving self-service employees create and refer rights while HR officers control interview, hire and reject.
Honest about the edges
What this does not do, so nothing surprises you.
- The reward is recorded as points and a reward amount on the referral; this module tracks and awards them but does not push a payment into payroll or accounting.
- Auto-award depends on standard recruitment stages being flagged as hired; without a hired-flagged stage the referral must be moved to hired by hand.
- The workflow steps are draft, referred, interviewing, hired and rejected; richer multi-step approval ladders are available from the platform but are not wired into this referral flow.
- Depends on the EH HR Platform engines (eh_hr_core, eh_hr_compat, eh_hr_engine_workflow) plus standard hr and hr_recruitment, which install automatically.
- Targets Odoo 18 Community.
employee referral software odoo, odoo 18 hr referral, referral bonus tracking, recruitment referral pipeline, candidate referral management, referral reward points odoo, hr referral workflow, employee referral programme, audited hr odoo community, self-hosted 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