HRMS migration
Field-level mapping, validation, and rollback between HR-ON and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
HR-ON
Source
Zoho Recruit
Destination
Compatibility
9 of 12
objects map 1:1 between HR-ON and Zoho Recruit.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from HR-ON to Zoho Recruit is a category shift from HRMS employee administration to ATS candidate management. HR-ON stores employee records with systemFields, document templates, and language metadata in a structured REST API with no bulk export; Zoho Recruit expects Candidates, Job Openings, and activity history in CSV or via its data migration wizard. We resolve the structural gap by treating the HR-ON Employee as the primary Candidate source, flattening organizational metadata into Zoho Recruit departments and custom fields, and preserving dateFormat and language (da_DK, en_US) through the migration so that records are immediately usable in the destination. Workflows, document templates, and custom automation do not migrate as code; we deliver a written inventory for the customer to rebuild in Zoho Recruit's workflow builder.
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 Zoho Recruit, 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
Zoho Recruit
Candidate
1:1HR-ON Employee records map to Zoho Recruit Candidate. The HR-ON employee ID becomes the candidate's External Candidate ID for reconciliation. Standard employee properties (name, email, phone, address) map to Zoho Recruit's Candidate fields. The HR-ON systemFields containing organizational metadata (department, reporting manager reference) are parsed and mapped to Zoho Recruit's Department field and custom candidate fields. We preserve the original hire_date or start_date as a custom field since Zoho Recruit Candidate does not have a native hire-date property.
HR-ON
Organizational Structure (systemFields)
Zoho Recruit
Department
lossyHR-ON stores department and organizational hierarchy inside systemFields on Employee records rather than as separate objects. We extract these values during scoping, deduplicate the unique department names, create the corresponding Department records in Zoho Recruit, and populate the Department field on each Candidate at migration time. If HR-ON stores manager references as employee IDs, we resolve these to Candidate records post-insertion.
HR-ON
Custom Fields
Zoho Recruit
Custom Candidate Fields
1:1HR-ON custom properties on Employees map to Zoho Recruit custom Candidate fields. We pre-create the destination custom fields via Zoho Recruit's field management UI (up to 50 per module on Standard, 300 on Enterprise). HR-ON multi-select or checkbox custom properties map to Zoho Recruit multi-select picklists where the picklist values are derived from the unique HR-ON values at migration time.
HR-ON
Document Templates
Zoho Recruit
Custom Fields or Attachments
1:1HR-ON document templates with language metadata (da_DK, en_US) are flagged for manual reassignment because Zoho Recruit does not have a native template inheritance model for candidate documents. We export each template as a PDF or file reference, attach it to the relevant Candidate record in Zoho Recruit, and include a migration note flagging the source language so the customer's admin can assign the correct Zoho Recruit template post-migration if needed.
HR-ON
Documents (generated)
Zoho Recruit
Candidate Attachments
1:1HR-ON generated documents (offer letters, contracts, onboarding forms) associated with an Employee migrate as file attachments on the corresponding Candidate record in Zoho Recruit. Binary blobs or file links are uploaded to the Candidate's attachment list. We preserve the original dateFormat and language metadata as attachment-level custom fields for traceability.
HR-ON
User
Zoho Recruit
User
1:1HR-ON user accounts map to Zoho Recruit Users. We resolve by email match against the Zoho Recruit destination account. Any HR-ON user with an existing separate Zoho Recruit account (a known Zoho platform constraint) cannot be imported until that separate account is closed; we flag these in the scoping report and hold them in a reconciliation queue.
HR-ON
Date Metadata
Zoho Recruit
Date Fields (ISO 8601)
lossyAll date values from HR-ON are normalized to ISO 8601 (YYYY-MM-DD) during extraction before loading into Zoho Recruit. This covers hire dates, start dates, document generation dates, and any other date fields on Employee records. We validate that Zoho Recruit's date field requirements are met for each candidate field before inserting.
HR-ON
Language Preferences (da_DK, en_US)
Zoho Recruit
Custom Fields
1:1HR-ON explicitly stores language at locale level (da_DK, en_US) per template and employee. We carry this through as a custom Candidate field (Original_Language__c) to preserve the employee's preferred locale. This is particularly relevant for organizations with Danish-speaking employees where document generation or communication preferences were set in HR-ON.
HR-ON
HR-ON Roles/Permissions
Zoho Recruit
Zoho Recruit Roles
lossyHR-ON role structures map to Zoho Recruit's Role and Profile system. We extract HR-ON role assignments per user and map them to the closest Zoho Recruit Role (Recruiter, Hiring Manager, Admin). HR-ON-specific permission flags that have no Zoho Recruit equivalent are flagged in the scoping report for the customer's admin to assign post-migration.
HR-ON
No equivalent: HR-ON Onboarding Records
Zoho Recruit
No direct equivalent
1:1HR-ON onboarding workflow records (onboarding step status, completion timestamps, onboarding-specific notes) have no direct Zoho Recruit equivalent. These are not candidate application records but internal HR onboarding state. We export them as a JSON report and attach it to the Candidate record for the customer's HR admin to interpret manually during onboarding setup in Zoho Recruit or Zoho People.
HR-ON
HR-ON Payroll Data (if applicable)
Zoho Recruit
Not Migrated
1:1HR-ON may store payroll-related fields (salary, compensation tier, bank details) depending on the customer's HR-ON configuration. Zoho Recruit is an ATS and does not handle payroll. We flag payroll-related fields in the scoping report, exclude them from migration, and recommend the customer evaluate Zoho Payroll or another HRMS for ongoing payroll administration. Bank details and salary information are excluded from migration on data-security grounds unless explicitly requested with written customer authorization.
HR-ON
HR-ON Document Types
Zoho Recruit
Custom Fields
1:1HR-ON documentType values (contract, NDA, policy_acknowledgment, etc.) are extracted and mapped to a Zoho Recruit multi-select picklist custom field (Document_Types__c) on the Candidate. Each Candidate's associated documents are tagged with the applicable document type values, enabling the customer to filter candidates by documentation status in Zoho Recruit's candidate management view.
| HR-ON | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Organizational Structure (systemFields) | Departmentlossy | Fully supported | |
| Custom Fields | Custom Candidate Fields1:1 | Mapping required | |
| Document Templates | Custom Fields or Attachments1:1 | Mapping required | |
| Documents (generated) | Candidate Attachments1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Date Metadata | Date Fields (ISO 8601)lossy | Mapping required | |
| Language Preferences (da_DK, en_US) | Custom Fields1:1 | Mapping required | |
| HR-ON Roles/Permissions | Zoho Recruit Roleslossy | Fully supported | |
| No equivalent: HR-ON Onboarding Records | No direct equivalent1:1 | Fully supported | |
| HR-ON Payroll Data (if applicable) | Not Migrated1:1 | Fully supported | |
| HR-ON Document Types | Custom Fields1:1 | Mapping required |
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
Zoho Recruit gotchas
Daily API rate limits are tier-gated and per-user capped
User import hard cap of 2,000 records
Attachment folder hierarchy must be preserved exactly
Resume parsing quota varies by plan and resets daily
Custom fields unavailable in Free and Standard editions
Pair-specific challenges
Migration approach
Discovery and API scoping
We audit the HR-ON API scope by connecting via JWT authentication to /v1/staff/employees and enumerating all object types, custom properties, and document template records. We count employee records, document attachment volume, unique department values, language locale distributions, and any payroll or sensitive fields flagged for exclusion. We simultaneously review the destination Zoho Recruit account for existing Users, Department structure, and custom field configuration. The discovery output is a written migration scope document including the record count per object, a preliminary field mapping, a list of duplicate Zoho Recruit accounts to close, and an estimated timeline.
Schema preparation in Zoho Recruit
We pre-create the destination schema in Zoho Recruit before any data loads. This includes creating custom Candidate fields (up to the Standard limit of 50 or Enterprise limit of 300 per module), configuring the Department structure from the HR-ON organizational metadata, and setting up any multi-select picklists derived from HR-ON custom property values. We coordinate with the customer's Zoho Recruit admin to ensure the migration user has the required permissions for data import. Any validation rules or required-field constraints in Zoho Recruit that could block import are either temporarily disabled or extended with a migration-context exception during the migration window.
Date normalization and field transformation
We extract all employee records from HR-ON via sequential API calls, normalize all date values to ISO 8601, split full names into First Name and Last Name (with 'Not Provided' fallback for missing surnames), and extract organizational metadata from systemFields into flat custom field values. Document template associations are parsed and tagged with their source language locale. The transformation output is a validated CSV file per object type ready for Zoho Recruit import.
User migration and reconciliation
We extract HR-ON user records and match by email against the Zoho Recruit destination User table. Users with existing separate Zoho Recruit accounts are flagged and held pending account closure by the customer's Zoho admin. HR-ON role assignments are mapped to Zoho Recruit Roles. Any users without a matching Zoho Recruit account are held in a reconciliation queue. Migration cannot proceed to Candidate import until all required Owner references are resolved because Zoho Recruit requires OwnerId on imported records.
Candidate and attachment import via Zoho migration wizard
We run the candidate import using Zoho Recruit's native data migration tool (Setup > Data Administration > Data Migration). Candidates are loaded first, with the HR-ON employee ID preserved as External Candidate ID. Document attachments are uploaded to the Document Library and linked to the corresponding Candidate records. Department assignments are populated from the reconstructed Department structure. We run row-count reconciliation after each phase before proceeding to the next.
Cutover, delta sync, and documentation delivery
We freeze writes to HR-ON during cutover, run a final delta extraction of any records modified during the migration window, and load the delta into Zoho Recruit. We deliver a written document inventory of HR-ON document templates requiring manual reassignment in Zoho Recruit, HR-ON role-permission mappings for manual role assignment, and any payroll fields excluded from migration. We do not rebuild HR-ON workflows or automations in Zoho Recruit's Workflow Rules or Blueprint; that work is handed off to the customer's admin with a documented mapping. We support a one-week hypercare window for reconciliation issues raised during the customer's first hiring cycle in Zoho Recruit.
Platform deep dives
HR-ON
Source
Strengths
Weaknesses
Zoho Recruit
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 Zoho Recruit.
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 Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your HR-ON to Zoho Recruit 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 Zoho Recruit
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.