HRMS migration
Field-level mapping, validation, and rollback between ELMO Suite and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
ELMO Suite
Source
Crelate
Destination
Compatibility
12 of 16
objects map 1:1 between ELMO Suite and Crelate.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ELMO Suite to Crelate is a scoped migration, not a full HRMS transfer. ELMO covers payroll, time-and-attendance, performance management, learning, and recruitment under one modular roof; Crelate is purpose-built as an ATS and recruiting CRM for agencies and in-house talent teams. We migrate the recruiting-relevant subset — active Candidates, Job records, Company clients, Activity history, and onboarding tasks — and flag ELMO HRMS-native records (payroll, leave balances, performance reviews, learning completions) as out-of-scope because Crelate has no native object for them. These records are exported as structured JSON snapshots and handed off for the customer's admin to store in an alternative system or as a custom object. Crelate's API uses lookup references with _Id suffixes; we resolve every parent-record lookup (Candidate to Job, Activity to Person) before insert to prevent orphaned records and API 500 errors on missing required fields. Workflows, approval chains, payroll configurations, and award structures do not migrate; we deliver a written inventory for the customer's admin to rebuild in Crelate or an adjacent tool.
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 Suite 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 Suite
Employees
Crelate
Contact (custom field extension)
lossyELMO employee records do not map to a native Crelate object because Crelate is an ATS without an HRIS schema. We extract active employee profiles (name, email, phone, department, job title, start date, employment type, manager) and import them as Crelate Contacts with a custom field elmo_employee_id__c and a tag 'ELMO Employee' to distinguish them from candidate Contacts. Historical employees who are not active applicants are exported as an inactive-Contact snapshot or held in a JSON export for HRMS storage rather than inflating the Crelate active database.
ELMO Suite
Recruitment and Applicants
Crelate
Contact
1:1ELMO candidate profiles, applications, interview scores, and offer letters map to Crelate Contact records. The ELMO application record's stage (applied, screened, interviewed, offered, hired, rejected) maps to Crelate's candidate pipeline stage, which the customer configures during scoping. Offer letter details and compensation expectations stored in ELMO custom fields migrate to Crelate custom fields on the Contact. Candidate status in ELMO (active, withdrawn, hired) becomes Crelate's Status field with a custom mapping table.
ELMO Suite
Recruitment and Applicants
Crelate
Job
1:1ELMO job postings and position records map to Crelate Job. The ELMO job title, department, location, employment type (full-time, part-time, contract), and job description map to Crelate Job Name, Description, Location, and a custom employment_type__c field. Job status (open, on hold, filled, cancelled) maps to Crelate's Job Status field. We resolve the hiring manager reference from ELMO to a Crelate User by email lookup before insert.
ELMO Suite
Recruitment and Applicants
Crelate
Opportunity
1:manyELMO placements and confirmed hires can map to Crelate Opportunity records when the recruiting workflow includes a fee-bearing placement. The Job becomes the WhatId on Opportunity, the placed Contact becomes the WhoId, and the placement fee or markup maps to Opportunity Amount. Split commission among team recruiters maps to Opportunity Partner or a custom commission__c field. Not all ELMO-to-Crelate migrations include placements; we confirm this during scoping.
ELMO Suite
Recruitment and Applicants
Crelate
Company
1:1ELMO client companies attached to a recruitment requisition or placement map to Crelate Company. The company name, website, industry, and address fields map directly. In the agency context, Crelate Company represents the hiring client; in the in-house context, it represents the employer organisation. We use the ELMO organisation name as the dedupe key during import to prevent duplicate Company records.
ELMO Suite
Onboarding Checklists
Crelate
Task
1:1ELMO onboarding tasks, document checklists, and assignee ownership map to Crelate Task records linked to the candidate Contact. Each ELMO onboarding item becomes a Task with a Body (the task description), a due date from the ELMO checklist, and an assigned User resolved by email from the ELMO assignee. Standalone document checklists that have no Crelate equivalent are exported as a structured JSON attachment on the Contact record.
ELMO Suite
Employment History
Crelate
Custom Object or structured export
1:1ELMO employment history (job title changes, department transfers, status transitions) does not map to a native Crelate object. We export the employment timeline as a structured JSON array and attach it to the Contact record as a custom field employment_history__c (long text area), or store it in a Crelate custom object if the customer has provisioned one. The original ELMO employment start date and current status also populate the Contact's hire_date__c and employment_status__c custom fields.
ELMO Suite
Compensation and Payroll Records
Crelate
Structured export
1:1ELMO pay groups, pay rates, salary history, and ANZ-specific fields (TFN declarations, superannuation fund details) have no Crelate equivalent. We export these records as a structured JSON snapshot and deliver them alongside the migration, tagged by ELMO employee ID. The customer's finance or HR admin stores the payroll export in an alternative system or maps the relevant fields (expected salary, notice period, fee expectation) to Crelate custom fields on the Contact if required for recruiting context.
ELMO Suite
Leave Balances
Crelate
Structured export
1:1ELMO leave entitlements, accrual rules, and balance snapshots are HRMS-specific data with no Crelate object. We export the leave balance as of the migration date as a structured JSON file tagged by employee ID. The HR admin stores this in an alternative HR system post-migration. Leave data does not belong in an ATS and is flagged as out-of-scope before migration begins to prevent scope inflation.
ELMO Suite
Performance Reviews
Crelate
Structured export
1:1ELMO review cycles, objectives, goals, appraisal ratings, and competency frameworks have no Crelate object. Rating scales vary significantly by organisation and the destination ATS cannot store them natively. We export review responses as structured records with the reviewer name, reviewee, rating scale value, and free-text response preserved in a JSON export. The HR admin receives the export and decides whether to store it in an alternative performance system or a document management tool.
ELMO Suite
Learning Records
Crelate
Structured export
1:1ELMO course completions, certifications, skill profiles, and completion expiry dates are learning management data with no Crelate equivalent. We export these as structured records tagged by employee ID and course name, with completion status and expiry preserved. Certifications relevant to recruiting (mandatory compliance certifications, clearance types) may optionally map to Crelate custom fields on the Contact if the customer designates them as recruiter-relevant.
ELMO Suite
Engagement Survey Results
Crelate
Structured export
1:1ELMO engagement survey responses, participation rates, and sentiment scores are HRMS analytics data. Crelate has no survey object. We export survey results as a structured JSON file tagged by employee ID and survey date. The HR admin stores this in an alternative analytics or engagement platform. Survey data is out-of-scope for the ATS migration and flagged as a separate data extraction deliverable.
ELMO Suite
Organisational Structure
Crelate
Custom Object or structured export
lossyELMO departments, cost centres, business units, and the reporting hierarchy map to a Crelate custom object (Department__c) if the customer has configured one, or are exported as a structured JSON file. Manager assignments from the ELMO org chart populate the Contact's reports_to__c custom field (a lookup to another Contact record) or the Employee custom object. We resolve manager email to a Crelate User or Contact during import.
ELMO Suite
Roster and Time Entries
Crelate
Structured export
1:1ELMO roster templates, recurring shifts, and historical time-and-attendance entries are time-and-attendance data with no Crelate equivalent. Crelate is an ATS without a time-tracking module. We export the final roster snapshot and time entries as a structured JSON file for the payroll or finance team to handle separately. Roster data is out-of-scope and explicitly excluded from the Crelate migration scope during scoping.
ELMO Suite
Expense Records
Crelate
Structured export
1:1ELMO expense claims, receipts, approval workflows, and reimbursement status are HRMS finance data. Crelate has no expense module. We export expense records as structured JSON tagged by employee ID. The finance admin stores this in the payroll or expense system. Expense data is out-of-scope for the ATS migration and handled as a separate data extraction.
ELMO Suite
Custom Fields (ELMO per-module)
Crelate
Custom Fields (Crelate per-object)
lossyELMO custom fields built within the recruitment module map to Crelate custom fields on the appropriate object (Contact for candidate fields, Job for requisition fields, Company for client fields). Crelate supports custom field types including text, number, date, picklist, checkbox, and currency per object. We export the ELMO custom field schema during discovery, define the equivalent Crelate custom fields before migration, and map values field-by-field. Field type conversion (ELMO text area to Crelate long text, ELMO multi-select to Crelate picklist) is handled during the transform phase.
| ELMO Suite | Crelate | Compatibility | |
|---|---|---|---|
| Employees | Contact (custom field extension)lossy | Fully supported | |
| Recruitment and Applicants | Contact1:1 | Mapping required | |
| Recruitment and Applicants | Job1:1 | Mapping required | |
| Recruitment and Applicants | Opportunity1:many | Mapping required | |
| Recruitment and Applicants | Company1:1 | Mapping required | |
| Onboarding Checklists | Task1:1 | Mapping required | |
| Employment History | Custom Object or structured export1:1 | Fully supported | |
| Compensation and Payroll Records | Structured export1:1 | Mapping required | |
| Leave Balances | Structured export1:1 | Mapping required | |
| Performance Reviews | Structured export1:1 | Mapping required | |
| Learning Records | Structured export1:1 | Mapping required | |
| Engagement Survey Results | Structured export1:1 | Mapping required | |
| Organisational Structure | Custom Object or structured exportlossy | Fully supported | |
| Roster and Time Entries | Structured export1:1 | Mapping required | |
| Expense Records | Structured export1:1 | Mapping required | |
| Custom Fields (ELMO per-module) | Custom Fields (Crelate per-object)lossy | 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 Suite gotchas
Per-user pricing means headcount inflation at migration adds cost
Modular licensing means scope creep during migration
Module-to-module data lag creates dirty migration snapshots
Custom performance review forms resist direct field mapping
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
Scoping and module audit
We audit the source ELMO Suite environment to identify which modules are active, what data volumes exist per module, and which records are recruiting-relevant versus HRMS-native. The scoping call covers the recruitment module (candidate volumes, active jobs, application history), the HRMS modules in use (payroll, performance, learning), and the target Crelate edition. The scoping output is a written migration scope document that explicitly includes recruiting data (Candidates, Jobs, Companies, Activities, Onboarding tasks) and excludes HRMS data (payroll, leave, performance, learning, engagement surveys) with a separate JSON export for each excluded module.
Schema design and custom field provisioning
We design the Crelate schema before migration begins. This includes creating custom fields on Contact (elmo_candidate_id__c, hire_date__c, employment_status__c, expected_salary__c), custom fields on Job (elmo_job_id__c, employment_type__c, department__c), and any custom objects required for organisational hierarchy. Crelate custom fields are provisioned under Settings | Custom Fields by object type. We use Crelate's field mapping feature to configure how custom form answers on candidate records propagate to parent Contact columns. All schema changes are validated in Crelate's sandbox or test environment before production migration begins.
Independent module snapshotting
We export data from each ELMO module independently — recruitment module snapshots, employee module snapshots, and organisational structure snapshots — rather than relying on a single cross-module export. This avoids the module-to-module data lag issue where a new hire's start date in recruitment has not yet propagated to the employee record or payroll. Each snapshot is timestamped at export time, and we run the snapshots as close together as possible within the same working day to minimise delta between module exports.
Test migration and reconciliation
We run a full test migration into a Crelate test environment using production-like data volumes. The customer's recruiting lead reviews 25-50 candidate records and 10-15 job records for accuracy: name, email, phone, stage, assigned recruiter, notes, and activity history. We check that Crelate's pipeline stages match the intended mapping from ELMO, that lookup references (candidate to job, activity to person) are resolved correctly, and that custom field values appear as expected. Any mapping corrections are documented and applied to the production migration script before cutover.
Production migration in dependency order
We run production migration in dependency order: Companies first (for deduplication), then Jobs (for candidate-to-job lookup resolution), then Contacts (Candidates with resolved Job Id), then Opportunities (placements with resolved Contact and Job Id), then Activities (tasks, calls, emails linked to Contact and Job Id via Bulk API with chunking), then Onboarding tasks (linked to Contact). HRMS-native data (payroll, leave, performance, learning, engagement surveys, expense records) is exported as structured JSON snapshots and delivered alongside the record migration. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta sync, and handoff
We freeze ELMO recruiting writes during cutover, run a final delta migration of any records modified during the migration window, then designate Crelate as the system of record for recruiting. We deliver the HRMS data exports (payroll JSON, leave JSON, performance JSON, learning JSON, engagement survey JSON) with a written index describing the schema of each export. We do not rebuild ELMO workflows, approval chains, payroll configurations, or award structures in Crelate; these require a separate engagement or the customer's HR/finance admin. We support a one-week hypercare window for reconciliation issues raised by the recruiting team.
Platform deep dives
ELMO Suite
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 Suite 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 Suite: Not publicly documented.
Data volume sensitivity
ELMO Suite 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 Suite to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your ELMO Suite 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 Suite
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.