HRMS migration
Field-level mapping, validation, and rollback between HR-ON and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
HR-ON
Source
Crelate
Destination
Compatibility
8 of 12
objects map 1:1 between HR-ON and Crelate.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from HR-ON to Crelate is a cross-domain migration from an HR administration platform to an ATS-recruiting CRM. HR-ON structures data around employees, document templates, and systemFields embedded on employee records; Crelate structures data around candidates, jobs, submissions, and client relationships. The central migration challenge is that HR-ON stores no dedicated candidate pipeline objects—any candidate data in HR-ON is embedded in employee records. We extract active employee profiles as candidate seed records in Crelate, preserve dateOfBirth and employment history as candidate custom fields, carry Danish (da_DK) and English (en_US) language preferences into Crelate's candidate record, and flag every HR-ON workflow, document routing rule, and onboarding template that has no Crelate equivalent so the customer's admin can rebuild them post-migration. HR-ON's lack of a bulk export endpoint means we retrieve records individually via JWT-authenticated calls to the HR-ON REST API v1, which extends migration timelines proportionally with employee base size.
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 HR-ON 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.
HR-ON
Employee
Crelate
Candidate
1:1HR-ON Employee records map to Crelate Candidate records. We extract firstName, lastName, dateOfBirth, and contact fields directly. HR-ON systemFields that contain organizational metadata (department, manager, location) map to Candidate custom fields because Crelate stores candidate-specific organizational preferences in custom fields rather than in a separate org chart. Language preference (da_DK or en_US) from HR-ON carries into Crelate's candidate language field. We flag any Employee with a startDate in the future as a recruiting-stage candidate rather than an active hire to preserve the pipeline distinction.
HR-ON
systemFields (Organizational Metadata)
Crelate
Candidate Custom Fields
lossyHR-ON embeds org metadata (department, reporting manager, cost center, employment type) inside systemFields on Employee records rather than as separate objects. We parse these key-value pairs during extraction, create matching custom fields on the Crelate Candidate object, and populate them during import. The customer reviews the custom field schema before deployment to ensure naming aligns with their Crelate data governance standards.
HR-ON
Document Template
Crelate
Candidate Attachment (with template reference)
1:1HR-ON Document Templates (with fields name, description, documentType, dateFormat, and language) map to Crelate as candidate attachments with a custom field storing the source HR-ON template reference. Crelate does not have a native document template library for employee documents, so we preserve the template metadata in a custom text field on the attachment so the customer's admin can relink or recreate templates post-migration. Language variants from HR-ON (da_DK, en_US) attach as metadata on each document.
HR-ON
Document (generated from template)
Crelate
Candidate Attachment
1:1HR-ON generates documents from templates and stores them with dateFormat and language metadata. We export these as binary blobs or PDF links and associate them with the relevant Candidate record in Crelate via the CandidateAttachments endpoint. We preserve the original document name, creation date, and language variant. Documents without a corresponding Candidate (orphaned records where the employee was deleted in HR-ON) are archived separately and flagged for manual review.
HR-ON
Custom Fields (on Employee)
Crelate
Custom Fields (on Candidate)
lossyHR-ON custom properties on Employees map to Crelate Candidate custom fields. We extract all non-systemField properties during scoping, validate each against Crelate's supported field types (text, number, date, picklist, checkbox, multi-select), and flag any with incompatible types—for example, HR-ON multi-select checkboxes that have no direct Crelate equivalent require either a custom text field or a delimited picklist. We pre-create the destination schema in a Crelate sandbox before migration begins.
HR-ON
User
Crelate
User
1:1HR-ON user accounts map to Crelate Users. We match by email address and map HR-ON roles to Crelate's permission structure. HR-ON-specific permissions that have no Crelate equivalent (such as Danish payroll configuration access) are flagged as a manual configuration item for the customer's admin. Inactive HR-ON users map to inactive Crelate users pending admin reactivation decisions.
HR-ON
Date Metadata (flexible formats)
Crelate
Date Fields (ISO 8601)
lossyHR-ON stores dates in four distinct formats: DD-MM-YYYY, DD/MM/YYYY, YYYY-MM-DD, and written form (July 20, 2021). We normalize all date values to ISO 8601 during extraction and validate each normalized date against Crelate's date field requirements before loading. Birth dates, start dates, and document creation dates are processed separately to ensure each date type maps to the correct Crelate field. Any unparseable dates are logged and set to a null value pending manual correction.
HR-ON
Language Preference
Crelate
Candidate Language Field
1:1HR-ON stores language at da_DK (Danish) and en_US (English) per template and employee. We carry this through to Crelate's candidate language field, preserving the locale value so that any downstream communication templates render in the correct language. If the customer plans to use Crelate's email sequencing, the language preference informs which email template variant is sent.
HR-ON
Employment Type Metadata
Crelate
Candidate Custom Field or Placement Type
1:1HR-ON stores employment type (full-time, part-time, contractor, intern) in systemFields on Employee records. We map this to a Candidate custom field during migration. For organizations that also plan to use Crelate's placement or contracting workflows, the employment type maps to the Crelate placement type so that temp-to-perm or contract placements carry the correct classification.
HR-ON
Onboarding Workflow State
Crelate
Candidate Custom Field (read-only)
1:1HR-ON embeds onboarding workflow stages in systemFields on Employee records. These stages have no direct Crelate equivalent because Crelate models recruiting pipelines rather than HR onboarding workflows. We migrate the last-known onboarding stage as a static custom field value on the Candidate record, flagging it as a historical marker rather than an active workflow state. The customer's admin rebuilds any active onboarding tracking in Crelate's task and pipeline tools post-migration.
HR-ON
Benefits Enrollment Data
Crelate
Candidate Custom Fields (read-only)
1:1If HR-ON stores benefits enrollment information in custom fields on Employee records, we migrate these as read-only custom fields on the Crelate Candidate. Crelate has no native benefits management module, so benefits data is preserved for reference only and the customer's HR admin handles benefits administration separately from the recruiting CRM.
HR-ON
Organizational Hierarchy (flat in systemFields)
Crelate
Department Custom Field + Placement Reporting
lossyHR-ON stores organizational hierarchy within systemFields on Employee records rather than as a separate structure. We flatten this into a department custom field on the Crelate Candidate record. If the customer requires a Crelate departmental structure for reporting, we can create a Department custom object and populate it with the extracted hierarchy, but this requires Crelate's Business Plus or Enterprise tier and is scoped as an optional configuration item during discovery.
| HR-ON | Crelate | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| systemFields (Organizational Metadata) | Candidate Custom Fieldslossy | Fully supported | |
| Document Template | Candidate Attachment (with template reference)1:1 | Fully supported | |
| Document (generated from template) | Candidate Attachment1:1 | Fully supported | |
| Custom Fields (on Employee) | Custom Fields (on Candidate)lossy | Fully supported | |
| User | User1:1 | Fully supported | |
| Date Metadata (flexible formats) | Date Fields (ISO 8601)lossy | Fully supported | |
| Language Preference | Candidate Language Field1:1 | Fully supported | |
| Employment Type Metadata | Candidate Custom Field or Placement Type1:1 | Fully supported | |
| Onboarding Workflow State | Candidate Custom Field (read-only)1:1 | Fully supported | |
| Benefits Enrollment Data | Candidate Custom Fields (read-only)1:1 | Fully supported | |
| Organizational Hierarchy (flat in systemFields) | Department Custom Field + Placement Reportinglossy | 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.
HR-ON gotchas
No bulk export endpoint forces sequential reads
Date format normalization required before import
Language-specific document types may not map directly
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 scoping
We audit the HR-ON tenant via JWT-authenticated API calls, extracting a full inventory of Employee records, Document Templates, systemFields, custom properties, and user accounts. We assess the employee base size to estimate extraction time given HR-ON's sequential API constraints. We review any HR-ON onboarding workflow configurations that the customer wants documented for rebuild. The discovery output is a written migration scope, a data quality report flagging records with unparseable dates or missing required fields, and a candidate versus employee classification decision for records with future start dates.
Date normalization and language preference extraction
We normalize all date values from HR-ON's four format variants (DD-MM-YYYY, DD/MM/YYYY, YYYY-MM-DD, and written form) to ISO 8601 during extraction. We extract the language preference (da_DK or en_US) from each employee record and template and store it as a dedicated field for mapping to Crelate's candidate language field. Any date that fails normalization is logged with the source record ID and original value for manual review. This step runs in parallel with discovery to avoid re-reading data.
Crelate sandbox setup and custom field provisioning
We provision a Crelate sandbox environment and create all required custom fields on the Candidate object to match the HR-ON custom property schema and systemField extras. We map HR-ON data types to Crelate field types, flagging any multi-select, multi-checkbox, or nested JSON properties that require custom text fields or delimited values in Crelate. We configure the Crelate user roles to approximate the HR-ON role structure and flag any HR-ON-specific permissions that require manual configuration post-migration.
Sandbox migration and reconciliation
We run a full migration into the Crelate sandbox using production-equivalent data volumes. We validate record counts, spot-check 25-50 records against the HR-ON source for field accuracy, and verify that date normalization produced correct ISO 8601 values. The customer's HR lead reviews the sandbox data and signs off on the field mapping and custom field schema before production migration begins. Any mapping corrections happen here.
Production migration in dependency order
We run production migration in the following order: Crelate Users (validated against the user provisioning list), Candidate records (with organizational metadata from HR-ON systemFields mapped to custom fields), Candidate attachments (documents from HR-ON with template reference metadata preserved), and language preferences (carried from HR-ON da_DK and en_US locale settings). Each phase emits a row-count reconciliation report before the next phase begins. We maintain a delta log of any records modified in HR-ON during the migration window for a final cutover sync.
Cutover, validation, and workflow handoff
We freeze HR-ON writes during cutover, run a final delta migration of any records modified during the migration window, and enable Crelate as the system of record. We deliver a written inventory of every HR-ON onboarding workflow state, document routing rule, and automation requiring rebuild in Crelate's task and pipeline tools. We support a one-week hypercare window for reconciliation issues. We do not rebuild HR-ON workflows as Crelate automations inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
HR-ON
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 HR-ON 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
HR-ON: Not publicly documented..
Data volume sensitivity
HR-ON 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 HR-ON to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your HR-ON 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 HR-ON
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.