HRMS migration
Field-level mapping, validation, and rollback between ELMO Software and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
ELMO Software
Source
Crelate
Destination
Compatibility
11 of 12
objects map 1:1 between ELMO Software and Crelate.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Migrating from ELMO Software to Crelate is a platform-type transition: ELMO is a full HCM suite covering HR Core, Payroll, Recruitment, Onboarding, Performance and Learning across Australia, New Zealand and Singapore; Crelate is a specialist ATS built for recruiting agencies and in-house talent acquisition teams. The ATS-recruitment module subset migrates cleanly to Crelate's candidate and job-order data model. Payroll, performance reviews, learning courses, leave entitlement accrual rules, and employment contract documents do not have direct Crelate equivalents and require a parallel HRIS decision post-migration. We scope each ELMO module independently because ELMO's per-user-per-module pricing means customers commonly have HR Core and Recruitment active without Payroll or Performance, and data may be incomplete for modules not purchased. We request API credentials through the customer's Account Manager during discovery since ELMO API access is not self-service.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a ELMO Software object lands in Crelate, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
ELMO Software
Employee
Crelate
Candidate
1:1ELMO employee records from HR Core map to Crelate Candidate profiles. We extract name, contact details, employment status, start date, position title, department, and location from ELMO's GET /users endpoint. Employee email becomes the primary dedupe key in Crelate. Custom configurable fields on the employee record migrate to Crelate's custom candidate fields, which we define during schema design. Active employees who are also hiring targets may carry a separate candidate record for internal mobility roles.
ELMO Software
Position
Crelate
Job Order (title and description)
1:1ELMO positions from GET /positions define job title, reporting line, and organisational hierarchy. These map to Crelate Job Orders where position title becomes the job title, and the position description migrates to the job description field. Seniority level, job family, and employment type (full-time/part-time/casual) from the ELMO position record migrate to corresponding Crelate job order fields. Multiple ELMO positions with identical titles are deduplicated into a single Crelate Job Order with a note in the migration log.
ELMO Software
Department
Crelate
Hiring Team or Department Tag
1:1ELMO department records from GET /departments preserve the full organisational tree. We import the department hierarchy as Crelate department tags or hiring team assignments depending on whether the customer uses Crelate's team-based access model. Child departments are created as sub-tags under parent department names. The department-to-recruiter assignment migrates as a Crelate team membership record.
ELMO Software
Location
Crelate
Office
1:1ELMO location records from GET /locations include physical address, city, state, and timezone. These migrate to Crelate office records, which are attached to job orders to indicate work location for distributed roles. ELMO's multi-location setup (AU/NZ/SG) is preserved so that Crelate job orders carry the correct regional office reference. Remote or hybrid designations from ELMO's location type field migrate as a Crelate work-style attribute on the job order.
ELMO Software
Legal Entity
Crelate
Company (client or employer)
1:1ELMO legal entity records from GET /legal-entities define ABN/ACN-level employer entities for AU/NZ payroll compliance. These migrate to Crelate as company records that represent the employing entity for contractor and permanent placement roles. Legal entity codes and registration numbers migrate to custom fields on the Crelate company record. If the customer is a staffing firm using Crelate to track placements at client companies, legal entities from ELMO map to Crelate client records.
ELMO Software
Employment Details
Crelate
Candidate employment history (custom fields)
1:1ELMO employment details from GET /employment-details cover start date, employment type, pay frequency, and superannuation details. These migrate as custom fields on the Crelate Candidate record rather than as a native object. Employment type (full-time/part-time/casual) maps to a Crelate candidate custom field; start date maps to the candidate start date field if Crelate supports it or a custom date field otherwise. Superannuation fund and contribution details from ELMO are preserved in custom fields but flagged as HRIS-domain data requiring a separate payroll platform.
ELMO Software
Groups
Crelate
Team or Access Group
1:1ELMO groups from GET /groups define organisational units for access control and reporting. These migrate to Crelate team records or access groups depending on the customer's Crelate tier and team configuration. Group membership for each employee maps to Crelate team membership assignments. Groups used purely for HR reporting (not recruiting) are flagged for the customer as out-of-scope for Crelate and noted as requiring the parallel HRIS destination.
ELMO Software
Custom Configurable Fields
Crelate
Custom Candidate Fields
lossyELMO organisations commonly add custom configurable fields to employee records for industry-specific data. We export the full custom field schema from GET /configurable-fields-meta, then create matching custom fields in Crelate during schema design before any candidate records load. Field types are mapped: ELMO text becomes Crelate text, ELMO date becomes Crelate date, ELMO dropdown becomes Crelate picklist. Custom fields with no Crelate equivalent are added as Crelate custom fields with the original ELMO field label preserved in the field description.
ELMO Software
Leave Requests (BETA endpoint)
Crelate
Not migrated to Crelate ATS
1:1ELMO leave requests from the BETA GET /leave-requests endpoint and leave balances are not relevant to Crelate's ATS data model. Leave management is an HR Core function that requires a dedicated HRIS on the destination side. We extract a snapshot of current leave balances from ELMO's UI export (required because the API endpoint is BETA) and deliver it as a structured CSV to the customer for import into the parallel HRIS. The migration log notes this as out-of-scope with the recommended HRIS destination noted.
ELMO Software
Payroll Calendar
Crelate
Not migrated to Crelate ATS
1:1ELMO payroll calendar definitions (pay periods, pay run dates, STP reporting cycles) are organisation-level payroll configurations. Crelate is an ATS and does not manage payroll. These records are flagged as out-of-scope during scoping, and the customer is advised to configure payroll in their chosen parallel HRIS (Xero, MYOB, QuickBooks, or similar). The migration log documents the ELMO payroll calendar configuration for the customer's HRIS implementation team.
ELMO Software
Learning / Course Completion
Crelate
Not migrated to Crelate ATS
1:1ELMO Learning module records (courses, completion status, quiz scores, custom courses) are not supported in Crelate. If the customer used ELMO's recruitment module for hiring training candidates, we extract candidate skill tags and completion records as CSV for the customer to import manually into Crelate's skills matrix or a dedicated LMS. This is documented in the migration handoff with the recommendation to evaluate Crelate's skill tagging feature for this data.
ELMO Software
Recruitment / Job Posting
Crelate
Job Order
1:1ELMO Recruitment module job postings map to Crelate Job Orders. We extract job title, description, requirements, location, department assignment, employment type, and posting status. Active postings in ELMO are set to Active in Crelate; closed postings become Archived in Crelate with a close date preserved. Candidate pipeline stages from ELMO's recruitment module map to Crelate pipeline stages, which we configure during schema design before any records load.
| ELMO Software | Crelate | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Position | Job Order (title and description)1:1 | Fully supported | |
| Department | Hiring Team or Department Tag1:1 | Fully supported | |
| Location | Office1:1 | Fully supported | |
| Legal Entity | Company (client or employer)1:1 | Fully supported | |
| Employment Details | Candidate employment history (custom fields)1:1 | Mapping required | |
| Groups | Team or Access Group1:1 | Mapping required | |
| Custom Configurable Fields | Custom Candidate Fieldslossy | Mapping required | |
| Leave Requests (BETA endpoint) | Not migrated to Crelate ATS1:1 | Fully supported | |
| Payroll Calendar | Not migrated to Crelate ATS1:1 | Mapping required | |
| Learning / Course Completion | Not migrated to Crelate ATS1:1 | Fully supported | |
| Recruitment / Job Posting | Job Order1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
ELMO Software gotchas
API access requires Account Manager sign-off
Leave request endpoint is marked BETA
Module subscriptions must be mapped individually
Legacy Elmo32 import limitations are documented
Rate limits are not publicly documented
Crelate gotchas
120 req/min API rate limit throttles bulk migrations
20 custom field per-entity cap forces data model decisions
15,000-record export ceiling on single operations
Sequences and automation workflows do not migrate
API key is a querystring parameter, not a header
Pair-specific challenges
Migration approach
Discovery and module mapping
We audit the customer's ELMO subscription to identify which modules are active (HR Core, Recruitment, Payroll, Performance, Learning, Onboarding) and which are not. We scope each active module separately and confirm which ELMO API endpoints and export paths are available given the Account Manager API entitlement. We extract a sample of employee records, positions, departments, locations, and any recruitment data to validate field coverage before committing to a full export plan. This step produces a module coverage report that flags any module-gated gaps and confirms the parallel HRIS requirement.
Parallel HRIS decision and scope confirmation
We confirm the customer's chosen destination HRIS for payroll, leave management, and employee records that fall outside Crelate's ATS scope. If the customer has not selected a parallel HRIS, we deliver a written recommendation based on headcount, AU/NZ compliance requirements (STP, Payday Filing, KiwiSaver), and budget. The Crelate migration scope is confirmed as covering recruitment, hiring, candidate management, and talent CRM data only. Both scopes proceed in parallel, with Crelate as the recruiting system of record and the chosen HRIS as the employee system of record.
Crelate schema design
We design the destination schema in Crelate before any data loads. This includes creating custom candidate fields to match ELMO custom configurable fields, configuring Crelate job pipeline stages to match the ELMO recruitment module stages, setting up Crelate offices and hiring teams from ELMO location and department records, and configuring department tags and team assignments. Crelate schema is designed in a sandbox or staging environment first for the customer's review. Any fields with no Crelate equivalent are added as custom fields with a flag noting the source ELMO field name.
Export and delta reconciliation
We request a full data export from ELMO across all active modules. If API access is granted, we use the ELMO User API v1 (GET /users, GET /positions, GET /departments, GET /locations, GET /groups) with throttling. If API access is not available, we use ELMO's UI bulk export with manual data extraction support. We run a delta reconciliation comparing export counts to expected record counts from the discovery sample. Leave balances are exported from the ELMO UI (BETA API bypass) as a structured CSV. We flag any records with missing required fields and request clarification from the customer's ELMO admin before proceeding.
Crelate production migration in dependency order
We load Crelate in record-dependency order: offices and locations first (referenced by job orders and candidates), departments and teams next, job orders next (referenced by candidates), then candidate records with position and department references resolved. Custom configurable fields from ELMO load last after the base Crelate schema is confirmed. Each phase emits a row-count reconciliation report. Any candidate records with unresolvable references (e.g., a department that did not export from ELMO) are held in a queue for manual resolution. We use Crelate's bulk import API with batch chunking and exponential backoff on rate limit responses.
Parallel HRIS migration and cutover handoff
We coordinate the Crelate cutover with the parallel HRIS migration. Candidates who are hired during or after migration are created first in the HRIS and then linked to Crelate as placed candidates or contractor records. We deliver a written handoff document to the HRIS implementation team covering ELMO employment details, leave balance snapshots, legal entity configurations, and any employee records that were flagged as module-gated gaps. We support a one-week hypercare window for Crelate reconciliation issues. We do not rebuild ELMO workflows, automations, or payroll configurations as part of the Crelate migration scope; these are documented for the customer's HRIS and ATS admin teams to rebuild.
Platform deep dives
ELMO Software
Source
Strengths
Weaknesses
Crelate
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ELMO Software and Crelate.
Object compatibility
1 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
ELMO Software: Not publicly documented — differs between sandbox and production environments.
Data volume sensitivity
ELMO Software doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during ELMO Software to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your ELMO Software to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave ELMO Software
Other ways to arrive at Crelate
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.