HRMS migration
Field-level mapping, validation, and rollback between Eddy and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Eddy
Source
Zoho Recruit
Destination
Compatibility
8 of 13
objects map 1:1 between Eddy and Zoho Recruit.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Migrating from Eddy to Zoho Recruit is an HRMS-to-ATS migration: you are moving from an all-in-one human resources management system to a recruiting and talent acquisition platform. The core challenge is that Eddy organizes data around the employed person (Employee, PTO, Documents, Onboarding, Training) while Zoho Recruit organizes data around the hiring process (Job Openings, Candidates, Interviews, Client Contacts). We resolve this structural mismatch by mapping Employee records to Candidates with custom fields carrying employment details (title, department, salary band), extracting PTO balances as snapshots into a dedicated custom field or external note, and attaching Employee documents as Candidate attachments. We do not migrate Eddy's onboarding workflows, benefits configurations, or payroll data as these have no equivalent in Zoho Recruit; we deliver a written configuration guide for your admin to rebuild these in Zoho Recruit's workflow rules and custom fields.
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 Eddy 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.
Eddy
Employee
Zoho Recruit
Candidate
1:1Eddy Employee records map to Zoho Recruit Candidate records. Core fields (first name, last name, email, phone, hire date, employment status) migrate to their Zoho Recruit equivalents. The Eddy job title maps to a custom Candidate field (e.g., edd_previous_title__c) since Zoho Recruit Candidates represent applicants, not employees, and do not natively store employment history without custom fields. Eddy department assignment maps to Zoho Recruit's Department picklist or a custom field. Last Name is mandatory in Zoho Recruit; any Eddy employee record without a last name is flagged and given a 'not provided' placeholder during import per Zoho Recruit's import requirements.
Eddy
Employee
Zoho Recruit
Contact (optional parallel)
1:manyEddy Employee records may also map to Zoho Recruit Contacts if the organization's Zoho Recruit plan includes the Staffing Agency module and the customer wants to maintain a client-facing Contact record separate from the Candidate recruiting record. We implement this split only when specified in scoping; in most HRMS-to-ATS migrations, a single Candidate record per employee is sufficient. The mapping type is documented as a split decision during scoping rather than a default.
Eddy
PTO Balance
Zoho Recruit
Custom Field on Candidate + Note
lossyEddy PTO balances (accrued, used, pending, carry-over) have no native equivalent in Zoho Recruit's ATS object model. We create a custom field group (e.g., edd_pto_accrued__c, edd_pto_used__c, edd_pto_balance__c, edd_pto_policy__c) on the Candidate object to carry balance snapshots at migration time. Active PTO requests are documented as a Note attached to the Candidate record. Balance snapshot is time-stamped at migration export. We flag that any ongoing accrual calculations require the destination to configure Zoho Recruit's workflow rules or a connected time-off tool post-migration.
Eddy
Document
Zoho Recruit
Attachment on Candidate
1:1Eddy Employee documents (offer letters, contracts, signed agreements, tax forms) migrate as Zoho Recruit Candidate attachments. PDF and standard document formats are fully supported. We preserve original file names and apply a directory naming convention (e.g., /EddyMigration/[EmployeeName]/[DocumentType]_[Date].pdf) to maintain organization. Document metadata (document type, upload date, associated employee) migrates as fields on the attachment record where supported by Zoho Recruit's file versioning API.
Eddy
Onboarding Workflow
Zoho Recruit
Task + Workflow Rule
lossyEddy onboarding step checklists and task assignments do not have a direct Zoho Recruit equivalent. We extract active onboarding tasks and their completion status, then map these to Zoho Recruit Tasks attached to the Candidate record with the original task name, assignee, due date, and completion status preserved. The workflow structure (sequence of steps, conditional branches) is documented in a written handoff guide; Zoho Recruit's Workflow Rules and Assignment Rules are the closest native replacement, but the customer's admin rebuilds these as they require ATS-specific logic rather than HR-specific logic.
Eddy
Training Record
Zoho Recruit
Custom Field or Note on Candidate
1:1Eddy training completion records (course name, completion date, status, certification expiration) migrate to custom fields on the Zoho Recruit Candidate record or as Notes with structured templates. The field naming convention (e.g., edd_training_[courseid]_completed__c) handles multiple training records per employee. Zoho Recruit's Assessments module (available on Standard and above) can store formal assessment results, but training completion history is typically maintained as custom fields or notes unless the customer licenses a dedicated learning management integration.
Eddy
Employee Directory
Zoho Recruit
Contact + Department
1:1The Eddy employee directory (name, title, department, email, phone, location) maps to Zoho Recruit's Contact record and Department configuration. Organizational hierarchy (reporting structure) is preserved as a Note attached to the Contact or as a custom lookup field (edd_manager_id__c) pointing to the manager's Contact record. We extract the full org chart as a JSON structure during scoping and deliver it as a reference document for the customer's admin to configure Zoho Recruit's organizational reporting structure.
Eddy
Department
Zoho Recruit
Department
1:1Eddy departments map directly to Zoho Recruit Departments. Both platforms store department as a picklist on the primary record. We extract department names and any associated cost center codes and map them to the Zoho Recruit Department object during initial configuration. Parent-child department relationships (division > department > team) are preserved in Zoho Recruit's department hierarchy where the plan supports it.
Eddy
Payroll Data
Zoho Recruit
Custom Field + External Reference
1:1Eddy payroll data (pay run history, salary information, benefit deduction amounts) cannot migrate into Zoho Recruit because Zoho Recruit has no native payroll module. We extract available payroll records as a CSV export from Eddy (where payroll module data exists) and deliver it as a structured reference file. Pay run history, salary bands, and compensation details are documented as Notes on the Candidate record or stored in a custom field group (edd_salary_band__c, edd_pay_frequency__c) for reference. The customer must configure a payroll system post-migration—Zoho Payroll, Gusto, Rippling, or a similar HRIS integration are the standard replacements.
Eddy
Company Settings
Zoho Recruit
Manual Configuration Guide
lossyEddy company-level settings (org policies, approval rules, locations, benefits configurations, time-off policies) export in limited formats and cannot migrate programmatically to Zoho Recruit. We extract the settings data as a structured reference document and deliver a written configuration guide mapping each Eddy setting to its nearest Zoho Recruit equivalent (Workflow Rules, Assignment Rules, Department configuration, or a Note documenting the original setting for manual reconfiguration). We do not configure these settings inside Zoho Recruit as part of the migration scope.
Eddy
Job Opening (Eddy)
Zoho Recruit
Job Opening
1:1If Eddy contains internal job postings or requisitions, these map to Zoho Recruit Job Openings. The job title, description, requirements, and posting status migrate directly. Posting channels (internal job board, external job boards) require manual reconfiguration in Zoho Recruit's job distribution settings because Zoho Recruit manages multiposting through its own integrations rather than as a property of the job record.
Eddy
Benefits Enrollment
Zoho Recruit
Note + Reference Document
1:1Eddy benefits enrollment data (health plan selection, 401k participation, dependent information) has no equivalent object in Zoho Recruit's ATS data model. We extract benefits enrollment records as structured Notes attached to the Candidate record with plan name, enrollment date, and coverage level preserved. The customer configures benefits management in a dedicated HRIS (Rippling, Gusto, ADP, or Zoho People) and links it to the employee record via Zoho Recruit's custom field or integration post-migration.
Eddy
Employment History
Zoho Recruit
Custom Field Group on Candidate
lossyEddy stores employment history (previous titles, previous employers, promotion dates) as part of the Employee record timeline. Zoho Recruit Candidate does not natively track prior employment history for already-employed candidates. We create a custom multi-line field group (edd_prev_title__c, edd_prev_employer__c, edd_prev_start_date__c, edd_prev_end_date__c) on the Candidate object to carry employment history data. For candidates who were hired via Zoho Recruit and then onboarded in Eddy, the onboarding employment details are preserved as these custom fields.
| Eddy | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Employee | Contact (optional parallel)1:many | Fully supported | |
| PTO Balance | Custom Field on Candidate + Notelossy | Fully supported | |
| Document | Attachment on Candidate1:1 | Fully supported | |
| Onboarding Workflow | Task + Workflow Rulelossy | Fully supported | |
| Training Record | Custom Field or Note on Candidate1:1 | Fully supported | |
| Employee Directory | Contact + Department1:1 | Fully supported | |
| Department | Department1:1 | Fully supported | |
| Payroll Data | Custom Field + External Reference1:1 | Mapping required | |
| Company Settings | Manual Configuration Guidelossy | Mapping required | |
| Job Opening (Eddy) | Job Opening1:1 | Fully supported | |
| Benefits Enrollment | Note + Reference Document1:1 | Fully supported | |
| Employment History | Custom Field Group on Candidatelossy | 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.
Eddy gotchas
Contract data cannot be exported via API
Reporting limitations require workarounds
Payroll and HR integration is incomplete
Per-employee pricing counts all employees including inactive
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 plan-tier verification
We audit the source Eddy instance across all supported objects: Employee records (headcount, inactive count, custom properties), PTO balances and active requests, document volume and file types, onboarding workflow definitions and active task states, training record completeness, department structure, and payroll data availability. We verify the destination Zoho Recruit plan tier (Free, Standard, Professional, or Enterprise) because custom field limits, Lookup field availability, and Workflow Rule counts depend on the plan. We confirm whether the migration is a full HRMS sunset (all employees to Candidates) or a partial migration (active recruiting pipeline only). The discovery output is a written migration scope with record counts, field inventory, and a plan-tier recommendation if the customer is on Free Edition.
Data extraction and transformation
We extract all source records from Eddy via API and CSV export where available. Employee records are exported with all standard and custom properties. PTO balance snapshots are extracted as a time-stamped CSV with accrual, used, and pending balances per employee. Documents are exported as binary blobs with original file names and metadata preserved. Onboarding workflow definitions are extracted as a structured JSON documenting each step, assignee, and conditional logic. Training records are extracted as a normalized table. We flag contract data limitations (Eddy does not export contract terms programmatically) and payroll data gaps (Eddy's HR and payroll modules are not fully integrated, requiring manual CSV export of pay run history). The transformation layer normalizes dates, phone number formats, and state/country codes to Zoho Recruit's import format.
Custom field schema design in Zoho Recruit
We design the destination custom field schema in Zoho Recruit based on the extracted employment data. Custom fields are created in the Candidate and Contact modules (and Department if org hierarchy is modeled) before any data import begins. Fields follow the naming convention edd_[object]_[fieldname]__c to identify migrated Eddy data in the destination system. Lookup fields (connecting Candidate to Department, or to a related Job Opening) are configured only if the Zoho Recruit plan supports them (Professional tier minimum). If the customer is on Standard Edition, we store supplementary employment data as structured Notes rather than custom fields and document the tradeoff. Custom field creation is performed in a Zoho Recruit sandbox or the production org based on the customer's preference.
Sandbox migration and reconciliation
We run a full migration into the customer's Zoho Recruit sandbox environment using production-like data volumes. The customer reconciles record counts (Candidates imported vs Employees extracted), spot-checks 25-50 random Candidate records against the source Eddy data, and verifies that custom field values populated correctly. We specifically verify that PTO balance snapshots, document attachments, and department assignments are present and legible in Zoho Recruit. Any field mapping corrections, custom field additions, or validation rule failures are resolved in this phase. The customer signs off the sandbox migration before production migration begins.
Production migration in dependency order
We run production migration in dependency order: Departments first (since they are referenced by Candidate records), then Candidate records with custom fields populated from the Employee data, then document attachments linked to Candidate records, then Tasks derived from onboarding workflow steps. Each phase emits a row-count reconciliation report. For any Zoho Recruit users with pre-existing individual Zoho Recruit accounts (identified during discovery), migration of their user record is held until the customer confirms account closure. We use Zoho Recruit's native import tool for bulk record creation and handle complex custom field populations via API.
Cutover, validation, and configuration handoff
We freeze Eddy write access during cutover, run a final delta migration of any records modified during the migration window, then enable Zoho Recruit as the active system of record for recruiting and candidate management. We deliver three handoff documents: a Workflow Rebuild Guide mapping Eddy onboarding workflows to Zoho Recruit Workflow Rules, an Onboarding Configuration Checklist for rebuilding benefits and PTO policies in a connected HRIS, and a Payroll Setup Reference for configuring Zoho Payroll or a third-party payroll integration to replace Eddy's incomplete payroll module. We offer a one-week hypercare window for reconciliation issues. We do not rebuild workflows, automations, or forms inside Zoho Recruit; these are separate engagements or internal admin tasks.
Platform deep dives
Eddy
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 Eddy 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
Eddy: Not publicly documented..
Data volume sensitivity
Eddy 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 Eddy to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Eddy 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 Eddy
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.