HRMS migration
Field-level mapping, validation, and rollback between greytHR and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
greytHR
Source
Zoho Recruit
Destination
Compatibility
4 of 12
objects map 1:1 between greytHR and Zoho Recruit.
Complexity
BStandard
Timeline
2-4 weeks
Overview
The greytHR-to-Zoho-Recruit migration is an HRMS-to-ATS move, not a like-for-like platform swap. greytHR stores the full employee lifecycle — payroll runs, statutory compliance fields (UAN, PF, ESI), leave balances, and position history — while Zoho Recruit is purpose-built for the hiring funnel: candidate sourcing, interview scheduling, and placement tracking. We migrate the subset that fits an ATS data model: employees who are current, on notice, or eligible for re-hire become Zoho Recruit Candidates, with their current department, designation, employment dates, and contact details preserved. Statutory fields (UAN, PAN, PF, ESI), payroll records, leave balances, and performance reviews do not map to Zoho Recruit and are flagged in the cutover checklist for manual retention in a separate compliance repository. Workflows, approval chains, and leave-policy rules do not migrate; Zoho Recruit's Workflow Rules and Assignment Rules are different automation constructs that require rebuild by the customer's admin. The migration leverages Zoho Recruit's CSV-based Data Migration wizard with field mapping, supplemented by API writes for custom fields and batch imports exceeding the wizard's per-module limit.
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 greytHR 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.
greytHR
Employee
Zoho Recruit
Candidate
1:1Active employees, employees on notice, and re-hire-eligible former employees map to Zoho Recruit Candidate records. Employment status determines the Candidate Status value in Zoho Recruit: Active employees map to Active; those on notice map to On Hold or a custom status; former employees with prior satisfactory tenure map to Sourced or Referred for re-hire consideration. We extract current department, designation, grade, employment start date, and contact details. Statutory fields (UAN, PAN, PF, ESI) and compensation data do not map to Zoho Recruit and are flagged in the cutover checklist for retention in a separate compliance repository. Zoho Recruit's Last Name field is mandatory; greytHR stores a single Full Name field in many configurations, so we apply name-split logic during transformation using common Indian name conventions and space-based splitting as a first pass, with records flagged for admin review where splitting is ambiguous.
greytHR
Department
Zoho Recruit
Department (custom picklist)
lossygreytHR departments map to Zoho Recruit's Department picklist field on the Candidate module. We extract the full LOV value set from greytHR during scoping, then pre-create matching picklist values in Zoho Recruit under Setup > Recruiting > Picklists before any records are imported. Where greytHR uses a nested department hierarchy (e.g., Engineering > Frontend > React Team), we flatten to the top two levels as Department and Sub-Department custom fields. Department headcount and cost-center data from greytHR does not map to any Zoho Recruit field and is not migrated.
greytHR
Designation
Zoho Recruit
Current Title (custom picklist)
lossygreytHR designations map to a custom picklist field (Current Title) on the Candidate module in Zoho Recruit. We extract the greytHR designation LOV values and pre-create matching picklist entries in Zoho Recruit. Grade and band-level data from greytHR maps to a separate custom picklist (Grade/Level) if the customer requires it; otherwise it is documented in the cutover notes. Salary range and compensation figures from greytHR designation records do not map to Zoho Recruit.
greytHR
Position History (current)
Zoho Recruit
Work Experience (Candidate detail section)
1:1The most recent position record from greytHR (current department, designation, employment start date, and location) maps to the Work Experience section on the Candidate record in Zoho Recruit. Employment Start Date becomes the From Date; End Date is set to the migration date for active employees and to the actual exit date for separated employees. Historical position changes (prior roles, promotions, transfers) are documented as a structured notes attachment because Zoho Recruit's Candidate object does not natively support a multi-row employment history table. If the customer requires full position history in Zoho Recruit, a custom module (Work History) must be pre-created and linked via a lookup relationship.
greytHR
Documents (offer letter, ID proof, joining letter)
Zoho Recruit
Document Library (Attachments)
1:1Employee documents exported from greytHR (offer letters, ID proofs, joining letters) migrate as attachments to the corresponding Candidate record in Zoho Recruit's Document Library. We export document binary files via the greytHR document API where access is granted, and store them as Zoho Recruit attachments linked via ContentDocumentLink. Proof-of-identity documents (PAN card copies, Aadhaar) are flagged as sensitive and are migrated only over an encrypted channel with a post-migration deletion confirmation. Document metadata (issue date, expiry, document type) is preserved in a structured CSV alongside the binary files for admin reference.
greytHR
Users and Roles
Zoho Recruit
Users
1:1greytHR HR admin users who will also recruit in Zoho Recruit map to Zoho Recruit User accounts. We resolve greytHR user email addresses against Zoho Recruit User provisioning. greytHR role definitions (HR Admin, Manager, Employee Self Service permissions) have no Zoho Recruit equivalent and are documented separately for the customer's admin to configure in Zoho Recruit's Roles and Profiles. Employee-level greytHR users who are not recruiters are not provisioned as Zoho Recruit users unless the customer intends to use Zoho Recruit's candidate-facing portals.
greytHR
Custom Fields
Zoho Recruit
Custom Fields (module-level)
lossygreytHR custom fields on the Employee record that are not covered by standard mappings (current title, department, email, phone) are recreated as custom fields in Zoho Recruit under the Candidates module. We extract the greytHR custom field definitions (field type, required flag, LOV values) during scoping, then the customer's Zoho Recruit admin creates matching fields under Setup > Module Builder > Candidates before migration. greytHR custom field values are then imported as standard data values in the CSV migration file. LOV-based greytHR custom fields require pre-creation of matching Zoho Recruit picklist values. This is a manual configuration step outside our API-driven import; we document the full field list and provide the mapping CSV.
greytHR
Leave Management
Zoho Recruit
Not applicable
lossygreytHR leave entitlement, accrual, balance, carry-forward, and encashment records have no Zoho Recruit equivalent. Zoho Recruit has no leave or attendance module; leave data is HRMS-specific and belongs in Zoho People or another HRMS, not an ATS. We export current leave balances as a structured CSV for the customer's admin to import into their destination HRMS (Zoho People or another platform) separately. Leave policy rules (carry-forward percentages, encashment eligibility) are documented in the cutover checklist as a manual configuration item at the destination.
greytHR
Payroll Runs
Zoho Recruit
Not applicable
lossyPayslip data (gross salary, deductions, net pay, TDS deducted) and payroll run history do not map to Zoho Recruit. An ATS does not store compensation data as a standard field. We recommend the customer export greytHR payslip records for the current and prior fiscal years as a supplemental manual export from the greytHR payroll reports module, and retain these in a secure HRMS repository (Zoho People or a dedicated payroll archive). Salary structure definitions from greytHR are documented in the cutover checklist but cannot be migrated as Zoho Recruit does not expose a salary or compensation object.
greytHR
Statutory Compliance (PF/ESI/TDS)
Zoho Recruit
Not applicable
lossyUAN, PF numbers, ESI numbers, PAN, and TDS section data stored as structured fields on greytHR Employee records do not map to any Zoho Recruit field. ATS platforms do not maintain government-filing compliance data. We flag these as high-priority cutover items: the customer must download official PF and ESI challans from the respective government portals (EPFO, ESIC) and retain statutory records in a separate compliance archive. PAN and Aadhaar copies are migrated as sensitive document attachments (see Documents mapping) but are not stored as structured ATS fields. This is a critical mid-year migration concern: switching HRMS mid-compliance cycle without a statutory data retention plan can cause government-filing errors.
greytHR
Attendance Records
Zoho Recruit
Not applicable
lossySwipe logs, shift schedules, overtime records, and attendance regularization status from greytHR do not map to Zoho Recruit. The ATS has no attendance module. We export raw attendance data for the 90 days prior to migration as a supplemental CSV for the customer's admin to retain in a separate HRMS. Attendance regularization discrepancies (where swipe data contradicts the regularization status, a known greytHR gotcha) are flagged in the pre-migration audit so that the customer does not carry forward false absence flags into a new HRMS.
greytHR
Performance Reviews
Zoho Recruit
Not applicable
lossyCompleted review cycles, ratings, goals, and feedback text from greytHR Performance Management module have no Zoho Recruit equivalent. An ATS does not store performance review data. We export completed review records as a structured CSV for the customer's HR admin to import into their destination performance management system (Zoho People performance module, or another platform). In-progress review cycles are migrated with a status flag indicating completion percentage; cycle finalization must occur in the destination HRMS post-migration. Review templates and rating scales are documented in the cutover checklist for manual reconfiguration.
| greytHR | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Department | Department (custom picklist)lossy | Fully supported | |
| Designation | Current Title (custom picklist)lossy | Fully supported | |
| Position History (current) | Work Experience (Candidate detail section)1:1 | Fully supported | |
| Documents (offer letter, ID proof, joining letter) | Document Library (Attachments)1:1 | Fully supported | |
| Users and Roles | Users1:1 | Mapping required | |
| Custom Fields | Custom Fields (module-level)lossy | Fully supported | |
| Leave Management | Not applicablelossy | Fully supported | |
| Payroll Runs | Not applicablelossy | Mapping required | |
| Statutory Compliance (PF/ESI/TDS) | Not applicablelossy | Fully supported | |
| Attendance Records | Not applicablelossy | Fully supported | |
| Performance Reviews | Not applicablelossy | 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.
greytHR gotchas
Statutory field data quality directly impacts government filings
Attendance regularization status does not always reflect true swipe data
Leave carry-forward and encashment rules are policy-specific, not record-specific
API lacks documented bulk export endpoint for historical payroll data
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 scope definition
We audit the source greytHR tenant across modules in scope (Employees, Documents, Custom Fields, LOV definitions) and extract record counts per object. We pair this with a Zoho Recruit edition review (Free, Standard at $25/recruiter/month, or Enterprise at $75/recruiter/month for Corporate HR) to determine which Zoho Recruit features will be available post-migration. The discovery output is a written migration scope specifying which greytHR objects map to Zoho Recruit, which are flagged as outside ATS scope with a destination recommendation, and which require manual configuration (custom fields, picklist pre-creation) before migration begins.
Schema pre-creation in Zoho Recruit
Before any data moves, we guide the customer's Zoho Recruit admin to pre-create the destination schema: custom picklist values for Department, Current Title, and Grade (matching greytHR LOV definitions); custom fields on the Candidates module (matching greytHR custom field names and types); and any custom modules (e.g., Work History) required for employment history records. We provide a field-mapping document listing every greytHR field on the left and the Zoho Recruit destination on the right, with transformation notes for split-name handling, date format normalization, and picklist value substitution. The admin deploys these changes in Zoho Recruit before migration day.
Data extraction, transformation, and name-field resolution
We extract employee records, document binaries, and custom field values from greytHR via a combination of API reads and UI-based CSV exports (supplemental payroll and attendance reports from the greytHR reports module). During transformation, we apply name-split logic to the Full Name field, flagging ambiguous records for admin review; normalize date formats to YYYY-MM-DD; map greytHR LOV values to pre-created Zoho Recruit picklist values; and compute Candidate Status from greytHR employment status. Records with missing mandatory Zoho Recruit fields (Last Name, at minimum) are held in a reconciliation queue until resolved.
Sandbox test migration and reconciliation
We run a full test migration into a Zoho Recruit sandbox using production-equivalent record volume. The customer's HR lead and Zoho Recruit admin reconcile record counts (Candidates imported vs. Employees sourced), spot-check 25-50 candidate records against greytHR source data, validate picklist values on a random sample, and confirm document attachment integrity. Name-split ambiguity resolution, picklist mapping gaps, and any schema misconfigurations are corrected before the production migration window opens. No production records are written until sandbox sign-off is received.
Production migration in dependency order
We run production migration in the following sequence: picklist values and custom fields (configuration, no data), then Candidate records with name splitting applied and status computed, then document attachments via ContentDocumentLink, then supplemental CSVs for leave balances, payroll, and attendance (flagged as out-of-ATS-scope but retained for the customer's compliance archive). Each phase emits a row-count reconciliation report. During cutover, we freeze greytHR write access to prevent new records from entering the source during the final delta window, then run a last-pass delta export to capture any employees who changed status during the migration window.
Cutover, validation, and workflow handoff
We validate the production Zoho Recruit tenant against the source-of-truth reconciliation report, confirm all candidate records have Last Name populated and correct Candidate Status, and verify document attachment count. We deliver the workflow and automation inventory document listing every greytHR approval chain and leave-policy rule to the customer's admin for rebuild in Zoho Recruit Workflow Rules or Zoho People. We deliver the statutory and payroll data export files with a recommendation to retain these in a dedicated HRMS or compliance archive. We support a one-week hypercare window for reconciliation issues raised by the recruiting team.
Platform deep dives
greytHR
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 greytHR 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
greytHR: Not publicly documented.
Data volume sensitivity
greytHR 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 greytHR to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your greytHR 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 greytHR
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.