Employment Hero Documents
Bring Employment Hero certifications and employee document records into Odoo, on a sync engine you tune without code.
Store price is USD 117 all-in: installing this also pulls the 2 paid ERP Heritage modules it depends on.
Why this module
Employment Hero Documents
Community has no certification or document home
Odoo Community ships no HR certification model and nowhere to register employee documents. This module adds both as proper tracked records, populated and kept current from Employment Hero rather than rekeyed by hand.
Re runnable sync that never duplicates
Every record is keyed by its Employment Hero id through the external id cross reference, so re running a job updates in place and an unchanged payload is a no op. One bad record is isolated and logged; the rest of the batch still lands.
Mappings you tune from the screen
Endpoints, field mappings and jobs ship as editable data with noupdate set, so you adjust source paths and required fields to your own organisation payload from the user interface, and an upgrade will not overwrite your changes.
Day in the life
From an expiring first aid card to a current Odoo record
The certification job runs and pages through your organisation certifications. Each one resolves to its Odoo employee through the external id cross reference, then lands in eh.hr.certification with the certificate number, issue date, expiry date and status, all tracked in the chatter. Records that have not changed since the last run are skipped on their payload hash, so a re run is cheap. When you enable and scope the push leg, a certification edited in Odoo is sent back through the organisation certification endpoint, while one edited in Employment Hero is pulled, with the newest change winning. The document job brings each employee document title, type, upload date and source link into eh.hr.document so staff can see what is on file and click through to the original in Employment Hero.
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.
Records are keyed by external id, so re running a certification or document job updates in place and never creates a duplicate. An unchanged payload is detected by hash and recorded as a skip.
Each record is processed inside its own savepoint. A record that fails to map or write is rolled back and logged as an error line; the rest of the batch still commits and the run ends in a partial state.
The transport retries 5xx, timeouts and 429 with exponential backoff and jitter, honouring a server Retry After header and clamping it so a bad header cannot park a worker for hours.
Calls draw from a cluster wide rate bucket per rate group, so parallel workers share one budget instead of multiplying it into the very 429 storm rate limiting is meant to avoid.
Push create and update carry a stable Idempotency Key, so a retried create is deduplicated by Employment Hero into the first result rather than producing a second record.
The push leg hashes the outbound payload and skips any record whose payload is byte for byte the same as the last successful push, so a two way job does not re send unchanged certifications every run.
The list pull pages through results until a short or empty page, and warns loudly if a page cap is hit so truncated results are never mistaken for a complete sync.
A certification or document whose employee has no external id link is reported as an error rather than guessed onto the wrong person; sync the employee first and re run.
Both records carry a company and a global record rule limits visibility to the user allowed companies, with company free records visible to all.
When run in delta mode the cursor only advances to the high water mark of records that processed cleanly and never past a failed record, so a failure is re fetched next run instead of being skipped forever.
What is inside
Built to do the job, end to end.
- Certification record. eh.hr.certification holds the certification or qualification name, certificate or licence number, issue date, expiry date and reported status, linked to the Odoo employee. Tracked through the chatter with list, form and search views, and grouping by employee and status.
- Document record. eh.hr.document holds the document title, type, upload date and a source link back to Employment Hero. It stores metadata and the URL only; it does not download the binary file in this version. Tracked, with list, form and search views and grouping by employee and type.
- Shipped endpoints and mappings. The module ships the employee document and certification detail endpoints plus the create and update endpoints for the two way leg, and starter field mappings for both records, all as editable data you can tune to your organisation payload.
- Sync jobs. A two way certification job and a document pull job ship ready to run, wired to their endpoints, mappings and the external id path. The document job is an employee sub resource, so a deployment drives it per employee.
- Built on the shared engine. Sits on the suite connector and sync engine, so it inherits idempotent upsert, per record isolation, delta sync, audited runs and lines, retry, backoff and rate limiting without shipping any of that itself.
- Security and access. Read access for the integration user group and full access for the manager group, plus per company record rules on both models for clean multi company isolation.
Honest about the edges
What this does not do, so nothing surprises you.
- Document records store metadata and a source URL only. The binary file is not downloaded into Odoo in this version; the link points back to Employment Hero for the content.
- The certification job is two way, but the document job is pull only into Odoo. Documents are not pushed back to Employment Hero.
- The certification push leg ships disabled in effect: the push domain defaults to everything, so you must scope and enable it before any record is written back.
- Real time webhook delivery is not included in this module. The jobs run on demand or on a schedule you set up; the engine supports webhook driven single record pulls only if you add the separate webhook module.
- The document list endpoint is an employee sub resource, so an organisation wide document pull is driven per employee rather than as a single org wide call out of the box.
- Starter field mappings assume a typical payload shape. A deployment whose Employment Hero organisation returns different field names must adjust the mapping source paths before the data lands correctly.
- This is a connector for the Employment Hero people platform. It does not replace Employment Hero and requires valid API credentials configured on a connection in the suite connector.
Employment Hero Odoo integration, Employment Hero certifications Odoo, employee documents Odoo 17, HR certification tracking Odoo, qualification expiry Odoo, Employment Hero connector, Odoo 17 HR integration, certificate number tracking, employee document register, two way certification sync, external id cross reference, configurable field mapping Odoo, idempotent sync engine, Odoo Community HR, multi company HR records
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.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Inbound webhook receiver for the Employment Hero people and payroll platform on Odoo 17 Community
Real-time fiscalisation of customer invoices and credit notes with the Mauritius Revenue Authority e-Invoicing (E...
The Canada country pack for the ERP Heritage Employment Hero integration
A dependency free asynchronous job queue that runs long running and fan out work out of band of the request that...
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3935 |
| Technical Name |
eh_hero_documents |
| License | OPL-1 |
| Website | https://www.erpheritage.com.au/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module