HRMS migration
Field-level mapping, validation, and rollback between WebHR and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
WebHR
Source
Zoho Recruit
Destination
Compatibility
7 of 12
objects map 1:1 between WebHR and Zoho Recruit.
Complexity
BStandard
Timeline
2-3 weeks
Overview
WebHR is a full hire-to-retire HRMS with an optional ATS module; Zoho Recruit is a dedicated applicant tracking system with a free recruiter tier through Enterprise at $90 per recruiter per month. The migration from WebHR to Zoho Recruit is primarily a recruitment-focused data move: we extract candidate profiles, job opening records, client organizations, and interview notes from WebHR and land them in Zoho Recruit's Candidate, Job Opening, and Client modules. The key pair-specific risk is that WebHR's Recruitment module is a paid add-on at $0.50 per employee per month; if it was never activated, candidate records may not exist in the source despite the customer expecting them. We check active modules before scoping. Pipeline stage names in WebHR are customer-defined, so we extract the actual stage configuration during discovery and build a custom field map before any records move. Workflows, approval chains, and custom review templates in WebHR do not migrate; we deliver a written inventory for the customer's admin to rebuild in Zoho Recruit.
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 WebHR 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.
WebHR
Employees / Candidate Records
Zoho Recruit
Candidate
1:1WebHR's Recruitment Candidate records map to Zoho Recruit's Candidate module. The mapping includes first name, last name (required in Zoho Recruit; we substitute 'Not Provided' for blank values), email, phone, current company, current job title, application date, and source. If WebHR's Recruitment module was not active (a paid add-on at $0.50/employee/month), candidate records do not exist in the source API despite the customer's expectation. We verify module activation before scoping commits to candidate data completeness.
WebHR
Recruitment Pipeline Stages
Zoho Recruit
Job Opening Status
lossyWebHR pipeline stages (Screening, Technical Interview, Culture Fit, Offer) are customer-defined with no canonical schema. We extract the actual stage names and order during the discovery phase, then configure Zoho Recruit's Job Opening stages to match. Each stage in Zoho Recruit is tied to a Job Opening record rather than a global pipeline; we create stage values per active Job Opening during migration.
WebHR
Job Openings
Zoho Recruit
Job Opening
1:1WebHR job posting records map to Zoho Recruit Job Opening. We extract job title, job description (rich text), department, location, employment type, required experience, and posting date. Active and closed job status migrates to Zoho Recruit's Open/Closed state. The Zoho Recruit Standard tier allows 10 active jobs per recruiter; Enterprise allows 20 per recruiter; we flag any customer exceeding these limits before migration so the customer can upgrade or archive stale postings.
WebHR
Clients (Organizations)
Zoho Recruit
Client
1:1WebHR's Companies/Organization records map to Zoho Recruit's Client module. We extract company name, website, address, industry, and size. The Client module in Zoho Recruit supports contact-person relationships; we link the primary WebHR employee contact to the Client as a primary contact.
WebHR
Employees (Internal Contacts)
Zoho Recruit
Zoho Recruit Users
1:1WebHR employee records used as hiring managers, interviewers, and recruiters map to Zoho Recruit User accounts. We resolve by email match against Zoho Recruit's user table. Any WebHR employee without a corresponding Zoho Recruit User is held in a reconciliation queue; the customer's admin provisions the missing User before record import resumes.
WebHR
Notes / Interview Notes
Zoho Recruit
Notes
1:1WebHR notes attached to candidate records migrate to Zoho Recruit Notes linked to the Candidate. We preserve the note body, author (mapped to Zoho Recruit User), and timestamp. If notes contain file attachments, we enumerate the attachment metadata and upload the blobs to Zoho Recruit's Document Library under the corresponding Candidate.
WebHR
Leave / PTO Records
Zoho Recruit
Not Migrated (Manual Post-Migration)
lossyLeave and PTO records in WebHR do not have a native equivalent in Zoho Recruit's ATS data model. We do not migrate leave balances or leave history because Zoho Recruit is an ATS, not a core HRMS. We flag this as a gap and recommend migrating leave data separately to Zoho People or another HRMS if the customer requires it.
WebHR
Performance Reviews
Zoho Recruit
Not Migrated (Custom Module or Manual)
lossyWebHR Performance Review records use custom rating templates with customer-defined scales (1-5, Strength/Development, numerical). Zoho Recruit has no native performance review module. We extract the review records during discovery and deliver them as a structured CSV with the original rating scale preserved. If the customer wants these records in Zoho Recruit, we set up a custom module to receive them; otherwise they are excluded from the ATS migration scope.
WebHR
Documents / Files
Zoho Recruit
Document Library
1:1WebHR file attachments (resumes, contracts, certifications) stored under the Files module migrate to Zoho Recruit's Document Library. We enumerate file metadata via WebHR API, download blobs, and upload them to Zoho Recruit linked to the corresponding Candidate or Client record. File naming conventions are preserved for traceability.
WebHR
Departments
Zoho Recruit
Department
1:1WebHR organizational department records map to Zoho Recruit's Department module. This supports job opening department assignment in Zoho Recruit. We extract department name and parent department hierarchy for nested department structures.
WebHR
Scheduler / Shifts
Zoho Recruit
Not Migrated (Post-Migration Manual)
lossyWebHR's Scheduler module stores shift assignments and rosters. Zoho Recruit has no scheduling module. We do not migrate shift data. If the customer uses WebHR for workforce scheduling, we recommend a separate migration to Zoho Shifts or Zoho People Plus as a standalone engagement.
WebHR
Custom Forms / Custom Fields
Zoho Recruit
Custom Fields (per module)
lossyWebHR custom form field data and employee-level custom field values migrate to Zoho Recruit custom fields created during schema setup. We extract the actual custom field names, types, and values during discovery and create matching Zoho Recruit custom fields (up to 50 per module on Standard, 300 per module on Enterprise) before candidate import. Any fields exceeding the destination edition limit are flagged for field consolidation or Enterprise upgrade.
| WebHR | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employees / Candidate Records | Candidate1:1 | Fully supported | |
| Recruitment Pipeline Stages | Job Opening Statuslossy | Fully supported | |
| Job Openings | Job Opening1:1 | Fully supported | |
| Clients (Organizations) | Client1:1 | Fully supported | |
| Employees (Internal Contacts) | Zoho Recruit Users1:1 | Fully supported | |
| Notes / Interview Notes | Notes1:1 | Fully supported | |
| Leave / PTO Records | Not Migrated (Manual Post-Migration)lossy | Fully supported | |
| Performance Reviews | Not Migrated (Custom Module or Manual)lossy | Mapping required | |
| Documents / Files | Document Library1:1 | Fully supported | |
| Departments | Department1:1 | Fully supported | |
| Scheduler / Shifts | Not Migrated (Post-Migration Manual)lossy | Fully supported | |
| Custom Forms / Custom Fields | Custom Fields (per module)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.
WebHR gotchas
Payroll module is a paid add-on not included in base plan
Free tier limited to 5 employees with restricted module access
API lacks documented bulk export or batch endpoints
Custom review templates and pipeline stages vary by account configuration
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
Active module verification and scoping
We audit the source WebHR account for active subscription modules by querying the billing and subscription API endpoints. Specifically, we confirm whether the Recruitment add-on is active and which stage names are configured in the ATS pipeline. We also enumerate the total record counts for candidates, job openings, clients, departments, and file attachments. This step determines whether candidate data exists at all and establishes the baseline for timeline and cost estimation. We deliver a written scope document with record counts and any module activation requirements before migration begins.
Zoho Recruit edition and schema preparation
We confirm the customer's Zoho Recruit edition and verify its API rate limits against the migration volume. We create the destination schema: custom fields matching WebHR's custom form field names, Job Opening stage values configured per WebHR's pipeline stage names extracted in Step 1, Department records, and any custom modules required for Performance Review data. We verify custom field limits per edition (50/module on Standard, 300/module on Enterprise) and flag any consolidation requirements. Schema is set up in the production Zoho Recruit account before any data import begins.
Discovery extraction and field mapping document
We extract all candidate records, job opening records, client organizations, departments, notes, and file metadata from WebHR via paginated API calls. We build a field mapping document that pairs each WebHR field (name, type, sample value) to its Zoho Recruit equivalent (standard field or newly created custom field). For each WebHR pipeline stage, we assign the corresponding Zoho Recruit Job Opening stage in the mapping document. We deliver this mapping document to the customer for written sign-off before any records are written to Zoho Recruit.
Staging migration and reconciliation
We run a full migration into a staging environment or a parallel Zoho Recruit account using representative data volume. The customer's recruiting lead reconciles record counts (candidates in, job openings in, clients in), spot-checks 25-50 candidate records against the WebHR source for field accuracy and attachment presence, and validates that stage names are correctly mapped. Any mapping corrections, missing fields, or data quality issues are resolved here before production migration. We do not proceed to production until written sign-off is received.
Production migration in dependency order
We run production migration in this order: Departments (first, as they are referenced by job openings), Clients (referenced by candidates), Job Openings (with stage configuration applied), Candidates (with Last Name resolved and stage mapped), Notes (linked to candidates by ID), and Document Library files (linked to candidates and clients by record ID). Each phase emits a row-count reconciliation report. We throttle API writes to Zoho Recruit's per-edition limit to avoid 429 errors and implement exponential backoff on rate-limit responses. No records are written to the next phase until the previous phase's reconciliation report is verified.
Cutover, validation, and workflow inventory delivery
We freeze WebHR ATS writes during the cutover window, run a delta migration of any records created or modified during the migration window, then designate Zoho Recruit as the system of record. We deliver the WebHR ATS workflow inventory document listing every active workflow with its trigger, conditions, and recommended Zoho Recruit Blueprint or Workflow Rule equivalent for the customer's admin to rebuild. We conduct a one-week hypercare window resolving any data quality issues raised by the recruiting team. We do not rebuild WebHR workflows as Zoho Recruit workflows within the migration scope; that is a separate engagement.
Platform deep dives
WebHR
Source
Strengths
Weaknesses
Zoho Recruit
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 2 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 WebHR and Zoho Recruit.
Object compatibility
2 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
WebHR: Not publicly documented.
Data volume sensitivity
WebHR 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 WebHR to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your WebHR 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 WebHR
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.