HRMS migration
Field-level mapping, validation, and rollback between Breathe and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Breathe
Source
Zoho Recruit
Destination
Compatibility
10 of 12
objects map 1:1 between Breathe and Zoho Recruit.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Breathe to Zoho Recruit is an HR-to-ATS migration that requires careful object-model reconciliation because Breathe is structured around the Employee as the primary HR record, while Zoho Recruit's primary model centres on Candidates, Job Openings, and the hiring pipeline. We map Breathe Employee records to Zoho Recruit Candidates and the Corporate HR Department structure, transfer Absence and sickness histories into custom fields or Note records where no native equivalent exists, and preserve employment start dates, job roles, and salary data in typed Zoho Recruit fields. Documents (Company and Employee) cannot be bulk-exported from Breathe's UI and must be archived manually before migration; Zoho Recruit's Document Library accepts file attachments post-import. Workflows, Breathe Learn compliance training completions, and onboarding task definitions are configuration artefacts that do not migrate; we deliver a written inventory of these for the customer's admin 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 Breathe 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.
Breathe
Employee
Zoho Recruit
Candidate and Contact
1:1Breathe Employee records map to Zoho Recruit Candidates in the first instance, with the option to convert to Contact (Corporate HR mode) once hired. We preserve name fields, contact details (email, phone), address, job title, department, employment start date, employment status, and salary band in typed Zoho Recruit fields. The Employee ID from Breathe is stored as a custom field for audit traceability. Custom fields on the Employee record (Professional tier and above) map to Zoho Recruit custom fields with type matching (text, picklist, date, number). Department structure from Breathe maps to Zoho Recruit's Departments module.
Breathe
Custom Fields
Zoho Recruit
Custom Fields
1:1Breathe custom fields on the Employee record migrate to Zoho Recruit custom fields on the Candidate or Contact module. We extract field names and data types from the People Data Export, provision equivalent custom fields in Zoho Recruit via Setup > Customization > Modules before import, and map values during the CSV load. Multi-select picklist values from Breathe map to Zoho Recruit multi-select picklists; date fields map to date fields; numeric fields map to numeric fields. Note that custom fields are unavailable on Zoho Recruit's Free Edition; we recommend Standard tier ($25/recruiter/month) as the minimum for organisations with active custom field requirements.
Breathe
Absence / Leave records
Zoho Recruit
Custom Fields or Note records
1:manyBreathe's native Absence module (annual leave, sick leave, other leave types) has no direct Zoho Recruit equivalent. We handle this by creating a custom Absence History section on the Candidate or Contact record using custom fields for balance totals per leave type, and attaching structured Note records per absence entry with dates, type, and approval status. Leave entitlement settings migrate as typed custom fields. Balance carry-forward requires manual verification against the source export at the point of migration; we compute expected balances from entitlement settings and approval records rather than relying on pre-calculated fields alone.
Breathe
Sickness records
Zoho Recruit
Custom Fields on Candidate or Note records
1:1Breathe sickness entries are a distinct record type linked to employees. We migrate sickness history as structured Note records attached to the Candidate or Contact, with key fields (sick dates, Fit Note reference where present, return-to-work date) captured in custom fields on the Note or as separate custom fields on the parent record. Fit Note attachments (PDFs) must be downloaded manually from Breathe's UI and re-uploaded to Zoho Recruit's Document Library post-import.
Breathe
Performance reviews
Zoho Recruit
Notes or custom module
1:1Breathe's performance review module (Professional tier and above) stores review cycles, ratings, and reviewer comments. We extract historical review records and map them to Zoho Recruit Notes attached to the Candidate or Contact, preserving review date, overall rating, and reviewer name. Custom rating scales from Breathe map to Zoho Recruit picklist values, with a mapping table documented during scoping. Review template definitions are configuration artefacts that do not migrate; we document the template structure for the customer's admin to rebuild in Zoho Recruit.
Breathe
Onboarding
Zoho Recruit
Tasks and Notes
1:1Breathe onboarding records track new-hire setup tasks, pending documents, and workflow step completion. We extract the task list and completion status as Zoho Recruit Tasks attached to the Candidate or Contact record, with task names and due dates preserved. Onboarding workflow definitions are configuration artefacts; we deliver a written inventory of active onboarding tasks and their completion status for the customer's admin to rebuild in Zoho Recruit's workflow rules or as a Task template.
Breathe
Remuneration / Payroll data
Zoho Recruit
Custom Fields on Candidate or Contact
1:1Breathe's Remuneration Report (salary, additional payments, benefits, auto-enrolment) migrates to Zoho Recruit custom fields on the Candidate or Contact record. Salary fields map to currency fields, benefit flags map to checkbox fields, and auto-enrolment status maps to a picklist. We extract payroll data from Reports > Payroll exports and load it as structured rows during the main Employee migration phase. Note that Zoho Recruit does not have a native payroll module; payroll data is stored as reference fields rather than in a dedicated payroll object.
Breathe
Company Documents
Zoho Recruit
Document Library (manual)
1:1Breathe Company-level documents (policies, handbooks, templates) are stored in a separate section from Employee documents and cannot be bulk-exported via API. We flag this as a manual step requiring the customer to download documents from Breathe's Company > Company documents section before the migration date. Downloaded files are uploaded to Zoho Recruit's Document Library under the appropriate module post-import. We provide a guided checklist of document sections to visit.
Breathe
Employee Documents
Zoho Recruit
Attachments on Candidate or Contact
1:1Breathe Employee documents (contracts, certifications, ID documents) are stored per employee in the Profile > More > Documents section with no bulk export endpoint. We flag this as a manual archiving step at the scoping stage, provide a checklist of the UI sections to visit, and coordinate with the customer to complete downloads before migration. Individual files are attached to the corresponding Candidate or Contact record in Zoho Recruit post-import. This step is a common source of delay; we advise beginning document archiving four to six weeks before the planned migration date.
Breathe
Department
Zoho Recruit
Departments
1:1Breathe's organisational structure (departments and reporting lines) maps to Zoho Recruit's Departments module in Corporate HR mode. We extract the department hierarchy from the People Data Export and create matching Department records in Zoho Recruit before Employee migration begins, ensuring that the department lookup on each Candidate or Contact record can be resolved at insert time.
Breathe
Owner / HR Admin
Zoho Recruit
Users
1:1Breathe users who administer HR records map to Zoho Recruit User accounts. We resolve owners by email match. Any Breathe user without a matching Zoho Recruit User account is held in a reconciliation queue for the customer's admin to provision before Candidate and Contact import resumes. Inactive users are mapped to inactive Zoho Recruit User records to preserve assignment history.
Breathe
Breathe Learn (compliance training)
Zoho Recruit
Not applicable
lossyBreathe Learn completion records (GDPR awareness, health and safety compliance training) are not supported by a direct Zoho Recruit equivalent. Zoho Recruit has no native learning management module. We document the completion status of each employee at migration time as a structured data deliverable (CSV), and the customer configures compliance tracking in Zoho Recruit custom fields or integrates a dedicated L&D platform post-migration. We do not migrate training content or course definitions as these are not data records.
| Breathe | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employee | Candidate and Contact1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| Absence / Leave records | Custom Fields or Note records1:many | Fully supported | |
| Sickness records | Custom Fields on Candidate or Note records1:1 | Fully supported | |
| Performance reviews | Notes or custom module1:1 | Mapping required | |
| Onboarding | Tasks and Notes1:1 | Mapping required | |
| Remuneration / Payroll data | Custom Fields on Candidate or Contact1:1 | Mapping required | |
| Company Documents | Document Library (manual)1:1 | Fully supported | |
| Employee Documents | Attachments on Candidate or Contact1:1 | Fully supported | |
| Department | Departments1:1 | Fully supported | |
| Owner / HR Admin | Users1:1 | Mapping required | |
| Breathe Learn (compliance training) | Not applicablelossy | 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.
Breathe gotchas
No bulk document export — manual download required
No direct migration path between Breathe accounts
People Data Export may omit data in non-standard modules
Leave balance carry-forward requires manual verification
Tier-gated features may limit export coverage
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 edition alignment
We audit the source Breathe account across tier (Starter/Professional/Enterprise), active modules, employee record count, custom field definitions, absence history volume, and document attachment count. We pair this with a Zoho Recruit edition assessment: Standard ($25/recruiter/month) covers custom field migrations and standard reports; Professional ($50/recruiter/month) is required for custom reports, advanced analytics with Zoho Analytics, and higher custom field limits (300 per module); Enterprise ($75/recruiter/month) adds custom roles, blueprints, and staffing portals. The discovery output is a written migration scope and a Zoho Recruit edition recommendation.
Document archiving kickoff
We deliver a guided checklist of all Breathe document sections (Company > Company documents and Profile > More > Documents per employee) and set a document archive deadline four to six weeks before the planned migration date. The customer's HR team completes manual downloads in parallel. We do not begin migration data processing until the document archive is complete or a written waiver acknowledging the limitation is received from the customer.
Schema provisioning and custom field setup
We provision the destination Zoho Recruit schema before any data import. This includes creating Department records from the Breathe organisational structure, provisioning custom fields on the Candidate and Contact modules to receive Breathe Employee custom fields, Absence histories, sickness records, and remuneration data, and configuring the Zoho Recruit Corporate HR module settings. Custom fields are deployed in a Sandbox or staging Zoho Recruit account first for validation.
Sandbox migration and reconciliation
We run a full migration into a Zoho Recruit Sandbox using production-like data volume. The customer's HR lead reconciles record counts (Employees in, Candidates out, Departments in), spot-checks 25-50 random records against the Breathe source export, and signs off the schema and field mapping before production migration begins. Any field type corrections or missing custom field definitions are addressed here, not in production.
Production migration in dependency order
We run production migration in record-dependency order: Departments first (resolved by all downstream records), then Candidate and Contact records (with Employee data, custom fields, and department lookup resolved), Absence history as Note records and custom fields, sickness history, performance review Notes, remuneration data, and onboarding Tasks. Owner and HR admin resolution by email match occurs before record import resumes. Document attachments are uploaded after record migration using the archived files from the document archiving step.
Cutover, validation, and configuration handoff
We freeze Breathe as the system of record during cutover, run a final reconciliation pass to confirm all expected records are present in Zoho Recruit, and enable Zoho Recruit as the active system. We deliver a written inventory of active Breathe onboarding task definitions, Breathe Learn compliance training records, and absence approval workflows that require rebuild in Zoho Recruit. We support a one-week hypercare window for reconciliation issues. Workflow rebuilds, onboarding task template recreation, and L&D platform selection are outside migration scope.
Platform deep dives
Breathe
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 Breathe 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
Breathe: Not publicly documented.
Data volume sensitivity
Breathe 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 Breathe to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Breathe 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 Breathe
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.