Employment Hero Work Entries Sync
Pull Employment Hero work and roster data into the Odoo Work Entries app, mapped and tunable without code.
Store price is USD 206 all-in: installing this also pulls the 3 paid ERP Heritage modules it depends on.
Why this module
Employment Hero Work Entries Sync
Endpoints, mappings and jobs ship as data
The whole integration is data records you can read and edit in the user interface. Adjust a source path, add a mapping line or change a transformer to match your organisation's payload shape, with no module change and no upgrade to overwrite your edits.
Idempotent by Employment Hero id
Each record is linked through an external id cross reference with a uniqueness constraint, so a rerun updates the existing Odoo record instead of duplicating it. Unchanged payloads are skipped by a content hash, so a steady state sync does almost no writes.
One way pull into Work Entries
This module pulls work entry types and work entries from Employment Hero into Odoo. It does not push work entries back, and the shipped jobs run on the engine's pull path. The relations to employee and entry type resolve through the cross reference, so type runs before entry.
Day in the life
A scheduled pull that stays quiet until something changes
The work entry type job runs first and brings new and changed entry types into hr.work.entry.type, registering each one against its Employment Hero id. The work entry job runs next, pulls work entries page by page, and for each one resolves the employee and the entry type through the external id cross reference before writing hr.work.entry. Records seen before with an unchanged payload are skipped, changed ones are updated in place, and anything that fails is logged as its own audit line while the rest of the batch carries on. With a delta cursor configured, only records changed since the last successful run are fetched, so a routine pull touches almost nothing.
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 deduplicated by Employment Hero id through a unique external id cross reference, so rerunning a job never creates a second copy of the same work entry.
A content hash over the mapped values, fingerprinted with the mapping definition, skips records that have not changed and rewrites them after you edit the mapping.
Each record is processed in its own savepoint, so one failing work entry rolls back alone, is logged as an error line, and the run finishes in a partial state instead of aborting the whole batch.
Transient failures, timeouts and rate limit responses are retried with exponential backoff and jitter, honouring a server Retry-After header up to a safe ceiling.
The pull walks every page of the Employment Hero result set and warns loudly if a page cap is hit so truncated results are never silent.
When a job declares an updated_at path, the cursor advances only to the high water mark of successfully processed records and never past a failed one, so a failed record is refetched next run instead of being skipped forever.
Employee and work entry type are resolved through the external id cross reference, and the type job is sequenced before the entry job so the relation exists when entries are written.
Connections are scoped per company, so each company draws on its own Employment Hero credentials and cross references.
Requests are metered against a shared per group budget across workers, so a multi worker deployment stays under the API cap rather than racing into throttling.
What is inside
Built to do the job, end to end.
- Two endpoints. GET work entry types and GET work entries on the HR platform paths, configured for page style pagination and an items envelope, ready to point at your organisation id.
- Two field mappings. A work entry type mapping (name, code, external code) and a work entry mapping (name, employee, date, duration, type), both pull direction, with transformers for dates, floats and external id relations.
- Two sync jobs. Work entry types (sequence 15) and work entries (sequence 20), each declaring its endpoint, mapping, external id path and conflict policy, so the type relation resolves before entries are written.
- External id cross reference. Every synced record is linked to its Employment Hero id, giving idempotent reruns, in place updates and relation resolution for employee and entry type.
- Per record audit trail. Each run records a line per record with the operation, external id and any message, so you can see exactly what was created, updated, skipped or failed.
- Dry run preview. A job can run without writing, reporting what it would have created or updated, which is useful while tuning a mapping against real payloads.
Honest about the edges
What this does not do, so nothing surprises you.
- One way pull only. This module brings Employment Hero work entries and entry types into Odoo. It does not push Odoo work entries back to Employment Hero.
- The shipped jobs run on the pull path. This module does not ship a webhook detail endpoint, so it pulls on a schedule or on demand rather than reacting to a real time webhook event.
- Mappings ship as starter data with placeholder source paths. Adjust them to match your Employment Hero organisation's actual payload shape before relying on a production sync.
- Posting work entries in Odoo can require a running contract or employment version on the employee, which is deployment specific and not provided by this module.
- Requires the Employment Hero connection and sync engine modules it depends on, plus the Odoo Work Entries app, and valid Employment Hero API credentials.
- Targets Odoo 16 Community. Standard records are used so it stays close to core, but verify the work entry fields you map exist in your installation.
Employment Hero Odoo integration, Employment Hero work entries sync, Odoo 16 work entries import, Employment Hero roster sync, hr.work.entry import Odoo, work entry type mapping Odoo, Employment Hero HR platform Odoo, idempotent API sync Odoo, delta sync Odoo HR, Employment Hero KeyPay Odoo, configurable field mapping Odoo, external id cross reference 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.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
The New Zealand country pack for the ERP Heritage Employment Hero integration
The complete ERP Heritage Employment Hero integration in one install
Sync timesheet entries from the Employment Hero people and payroll platform into the standard Odoo Timesheets app...
Real-time MRA fiscalisation for Point of Sale receipts in Odoo 16 Community, mapping each paid POS order to the M...
Shared foundation for the ERP Heritage Employment Hero country packs
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 4109 |
| Technical Name |
eh_hero_ent_payroll |
| 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