Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Employment Hero
  3. Employment Hero Sync Engine v 17.0
  4. Sales Conditions FAQ

Employment Hero Sync Engine

by ERP Heritage https://www.erpheritage.com.au/
Odoo

$ 98.08

v 17.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Community Apps Dependencies Show
Employment Hero Connector
Lines of code 3544
Technical Name eh_hero_sync
LicenseOPL-1
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
  • License
ERP Heritage · Employment Hero Suite
Employment Hero integration suite

Employment Hero Sync Engine

The data driven sync core that keeps Odoo and the Employment Hero people platform in step, idempotently and safely.

USD 98 all-in · OPL-1Odoo 17 CommunityPull, push and both way jobsv17.0.1.0.0

Store price is USD 98 all-in: installing this also pulls the 1 paid ERP Heritage module it depends on.

External id cross reference
Configurable field mapping
Idempotent upsert
Conflict and push policies
Delta runs

Why this module

Employment Hero Sync Engine

Idempotent

Re run without fear

Each record is keyed by its Employment Hero id through a cross reference that stores a payload hash and source timestamp. Re running never duplicates, and an unchanged record is skipped instead of rewritten.

Configurable

Mapping is data, not code

Dotted source paths map to Odoo fields through a registry of reviewed transformers. No arbitrary code is stored or evaluated, and mappings can vary by company and country.

Robust

One bad record cannot stop a run

A savepoint per record isolates failures so the rest of the batch still commits. The run ends partial, the failed record is logged on its own line, and the delta cursor holds so it is re fetched next time.

Day in the life

A scheduled employee sync, the morning after a mapping change

Overnight the scheduled cron runs every job marked for it. The employee job pulls in delta mode, asking Employment Hero only for records changed since the last run. Yesterday a mapping line was edited, so the mapping fingerprint folded into each payload hash has changed and existing employees are rewritten with the new field rather than wrongly skipped as unchanged. One record carries a value the value map does not cover, so its line raises, that single record is isolated and marked failed, and the run ends partial. The delta cursor advances only to the latest success strictly before that failure, so the failed record is re fetched next run instead of being lost. You open the run, read the per record lines, fix the mapping default, and re run. This time it is clean and done.

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.

Replay

A repeated delivery for the same record is a no op: the cross reference already holds the matching payload hash, so the engine skips it rather than writing again.

Out of order

A targeted, webhook driven sync is forced to newest wins. A delivery older than the record already in Odoo is skipped, and one with no usable source timestamp is not allowed to overwrite.

Partial batch

A failing record is wrapped in its own savepoint, so an integrity error rolls back just that record and the rest of the batch still commits. The run ends partial.

Delta safety

The delta cursor advances only to the highest success strictly before the earliest failure, and holds entirely when a failure has no timestamp, so a failed or concurrently changed record is always re fetched.

Dedupe on push

Each push write carries a stable idempotency key, constant per record for a create and keyed by payload hash for an update, so a retried write is deduplicated rather than duplicated upstream.

Unchanged skip

A push whose outbound payload is byte for byte identical to the last successful push is skipped, so a both way job does not re send every record every run.

Upstream delete

A delete signal archives the linked record when the model supports archiving, otherwise unlinks it, isolating a delete blocked by a foreign key so the record is kept and reported rather than failing forever.

Masked PII

A display mask such as an asterisked tax number, or a key unavailable placeholder, is never pushed back out, so a local display value cannot overwrite the real identifier upstream.

Multi connection

Relation lookups by external id are scoped to the current connection, so two connections holding the same external id never cross bind to each other's record.

Stale link

If a cross reference points at an Odoo record that was deleted, the stale link is cleared and the record is recreated cleanly on the next pull.

What is inside

Built to do the job, end to end.

  • External id cross reference. A dedicated model stores, per connection, the Employment Hero id, source last modified timestamp, inbound payload hash and outbound push hash for every synced record. Uniqueness on both the external id and the Odoo record makes lookups deterministic in both directions.
  • Sync jobs. A job binds an endpoint, a mapping and a target model with the policy knobs: direction, full or delta mode, batch size, external id and timestamp paths, push domain and endpoints, conflict policy and push policy. Jobs run manually, on schedule or from a targeted single record trigger.
  • Field mapping and transformers. Mappings and their lines map dotted source paths to Odoo fields through a registry of safe transformers: trim, number, boolean, date, datetime, value map, country and currency codes, relation by field, relation by external id and nested sub lines. Lines can be pull only, push only or both, with required, default and skip if empty controls.
  • The orchestrator. One engine drives fetch, map, resolve, apply policy, create or update, record a line and advance the cursor. It handles paginated pulls, targeted single record pulls, reverse mapped pushes and upstream deletes, with per record savepoints throughout.
  • Audited runs and lines. Every run records its trigger, timing and counts of fetched, created, updated, skipped, deleted and failed records, plus a per record line history with the operation and any message, so you can see exactly what each sync did without spamming record chatter.
  • Scheduled sync cron. A daily scheduled cron runs every job flagged for it, honouring a master enable switch in configuration, and logs job level failures without aborting the other jobs in the batch.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is the shared sync engine. It does not ship ready made jobs or mappings for any specific resource on its own; the Employment Hero domain modules in the suite supply those and configure the engine.
  • Authentication, request retry, exponential backoff, rate limiting and pagination are provided by the connector module this depends on, not implemented here.
  • The HTTP webhook receiver, signature verification and replay protection are not part of this module. The engine provides the targeted single record execution path that a webhook delivery routes into, but receiving and validating the webhook is handled elsewhere in the suite.
  • There is no in database job queue or dead letter store in this module; jobs run synchronously when triggered manually, from the scheduled cron or from a targeted call.
  • Conflict resolution is policy based by timestamp and payload hash, not a field level three way merge. The chosen side wins for the whole record.
  • The number transformer deliberately refuses ambiguous grouped numbers rather than guess a decimal separator, so a payload using grouped formats must be normalised at the source or handled with a custom transformer.
  • Transformers are a reviewed registry. Adding a new one is a small Python change, by design, since no arbitrary code is stored or evaluated.
  • Built and tested on Odoo 17 Community.
Search

Employment Hero Odoo sync, Odoo 17 integration engine, idempotent synchronisation Odoo, external id cross reference, configurable field mapping Odoo, delta sync Odoo, conflict resolution sync, push to API Odoo, two way sync framework, HR data integration Odoo, audited sync runs, KeyPay payroll sync Odoo

Work with ERP Heritage

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.

Build and tailor
Odoo Implementation, Customization and Development, scoped to your workflow.
Connect and move
Odoo Integration and Migration across systems and Odoo versions.
Run and support
Odoo Support and Training so your team stays productive after go live.
Plan and advise
Odoo Consultation and ERP Consulting, from discovery to roadmap.

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.

العربية简体中文繁體中文NederlandsFrançaisDeutschहिन्दीBahasa IndonesiaItaliano日本語한국어PolskiPortuguês (Brasil)РусскийEspañolSvenskaไทยTürkçeTiếng Việt
More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 49
Employment Hero Work Entries

Sync Employment Hero work and roster data into Odoo work entries

USD 15
Employment Hero Queue

A dependency free asynchronous job queue that runs long running and fan out work out of band of the request that...

USD 99
Ireland - Payroll ROS

Real-time PAYE Modernisation for Irish payroll

USD 199
Project Gantt Pro

PMO grade upgrade for the Project Gantt planner

USD 9
Employment Hero Australia

The Australia country pack for the ERP Heritage Employment Hero integration

USD 19
Employment Hero Documents

Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...

ERP Heritage

v17.0.1.0.0 · OPL-1 · Odoo 17 Community

Developed by ERP Heritage - Top Odoo Partner • LinkedIn

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Community Apps Dependencies Show
Employment Hero Connector
Lines of code 3544
Technical Name eh_hero_sync
LicenseOPL-1
Websitehttps://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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with