HRMS migration
Field-level mapping, validation, and rollback between ZenHR and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
ZenHR
Source
Crelate
Destination
Compatibility
7 of 12
objects map 1:1 between ZenHR and Crelate.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from ZenHR to Crelate is a platform-type migration: ZenHR is a full HRMS covering the MENA-region employee lifecycle from hire to retirement, while Crelate is an ATS and recruiting CRM built for agency and in-house talent acquisition teams in the US market. The migration scope is narrower than a typical HRMS-to-HRMS move. We migrate ZenATS candidate records, vacancy pipeline stages, and interview data with full stage-history preservation, and we map employee profile fields that represent candidate records in the recruiting context. We do not migrate payroll runs, leave balances, attendance data, EOSB calculations, loans, overtime records, organizational hierarchy, or custom HR workflows because Crelate has no schema to receive them. We deliver a written inventory of ZenHR automations and HR letter templates requiring manual rebuild in Crelate or a parallel HR system post-migration.
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 ZenHR object lands in Crelate, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
ZenHR
ZenATS Candidate
Crelate
Candidate
1:1ZenATS Candidate records map to Crelate Candidate as the primary migration object. We map first name, last name, email, phone, current company, current title, source, and tags directly. Candidate status in ZenATS (active, placed, rejected, withdrawn) maps to Crelate's Candidate Status field. We preserve the original ZenATS candidate_id as a custom field zenats_candidate_id__c for reconciliation. SMS and email communication bodies sent to candidates are not exposed via the ZenHR API; we transfer metadata (timestamps, template names) only and flag the gap during scoping.
ZenHR
ZenATS Vacancy / Job Opening
Crelate
Job
1:1ZenATS Vacancy records map to Crelate Job. The ZenATS vacancy title becomes the Job title, job_description maps to the Job description field, and status (open, on hold, filled, cancelled) maps to Crelate Job status. Department, location, employment type, and salary range from ZenATS map to their Crelate equivalents. We preserve stage history with each stage transition timestamp from ZenATS as notes on the Crelate Job record.
ZenHR
ZenATS Stage / Pipeline Stage
Crelate
Job Stage
lossyZenATS pipeline stages (Applied, Screening, Interview, Offer, Hired, Rejected, etc.) map to Crelate Job Stages configured in the destination before migration. Stage probability percentages from ZenATS set the Crelate stage weighting for reporting. We sequence stage values in order matching the ZenATS pipeline so that Crelate reporting reflects the original funnel conversion rates.
ZenHR
ZenATS Interview Record
Crelate
Activity / Note
1:1ZenATS interview records map to Crelate Activity records (type = Interview) linked to the Candidate and Job. Interviewer name, date, duration, interview type, and interviewer notes transfer as Activity details. If ZenATS stores scorecards or structured feedback, we map those to Crelate Activity custom fields or linked Notes attached to the Activity.
ZenHR
Employee (recruiting-relevant fields)
Crelate
Candidate or Contact
1:1ZenHR Employee records that represent active or past candidates in the recruiting context map to Crelate Candidate or Contact depending on the recruiting workflow. We scope this mapping during discovery: employees hired through ZenATS pipelines migrate as Candidates with status changed to Hired; passive talent stored in ZenHR without a vacancy association migrates as Crelate Contacts. Name, email, phone, department, and job title map directly. Payroll compensation fields do not migrate because Crelate has no payroll schema.
ZenHR
Document (candidate attachments)
Crelate
Resume / Attachment
1:1Candidate resumes, cover letters, and supporting documents stored in ZenATS attach to the corresponding Crelate Candidate record via Crelate's resume and document upload API. We map document type, upload date, and expiry information as metadata on the Crelate Attachment. Document binary transfer uses the Crelate bulk attachment API with rate-limit handling.
ZenHR
User and Role (recruiting team only)
Crelate
User
1:1ZenHR Users who have access to ZenATS map to Crelate Users by email match. ZenHR role names (Recruiter, Hiring Manager, Admin) map to Crelate User Roles and Permissions. Users without ZenATS access are excluded from the Crelate migration scope. Active/inactive status and last login date from ZenHR transfer as User metadata fields in Crelate.
ZenHR
Custom Fields (candidate and vacancy)
Crelate
Custom Fields
lossyZenHR tenant-specific custom fields on Candidate and Vacancy objects are discovered during pre-migration field audit. Each custom field is typed (text, number, date, picklist, boolean) and mapped to a Crelate Custom Field of equivalent type. Custom picklist values in ZenATS are replicated as Crelate picklist options. Any custom field with no Crelate equivalent is flagged with a recommendation for a custom field or note-field workaround.
ZenHR
Branch / Department
Crelate
Location or Division
lossyZenHR Branches that represent physical office locations associated with vacancies map to Crelate Job Location. We map branch name, address, and city from ZenHR Branch to the Crelate Location field. ZenHR organizational levels and positions do not map to Crelate because Crelate has no HR org hierarchy; we document these as out-of-scope in the migration report.
ZenHR
HR Letters (recruiting-related)
Crelate
Note or Template
1:1HR Letters generated in ZenATS for candidates (offer letters, onboarding checklists, onboarding schedules) map to Crelate Notes attached to the Candidate record with a type indicating the letter purpose. The e-signature audit trail migrates as note metadata. HR letter templates are documented in the migration report for manual rebuild in Crelate's template system.
ZenHR
Timeoffs (for candidate availability context)
Crelate
Not Migrated
lossyZenHR Timeoff records represent leave balances for employees, not recruiting availability. Crelate has no leave management schema. Timeoff data is excluded from the Crelate migration scope entirely. If the customer requires leave tracking post-migration, we recommend a separate HRIS platform (BambooHR, Rippling, or Workday) running in parallel. We document this as an out-of-scope data category in the migration report.
ZenHR
Payroll / Financial Transactions
Crelate
Not Migrated
lossyZenHR payroll runs, financial transactions, loans, overtimes, and EOSB calculations have no equivalent in Crelate. Crelate handles placement invoicing and client billing for recruiting fees, but not employee payroll. We exclude all financial and compensation data from the Crelate migration scope. If the customer needs historical payroll records for compliance or audit, we recommend exporting those as PDFs or reports from ZenHR before the migration window and storing them outside Crelate.
| ZenHR | Crelate | Compatibility | |
|---|---|---|---|
| ZenATS Candidate | Candidate1:1 | Fully supported | |
| ZenATS Vacancy / Job Opening | Job1:1 | Fully supported | |
| ZenATS Stage / Pipeline Stage | Job Stagelossy | Fully supported | |
| ZenATS Interview Record | Activity / Note1:1 | Fully supported | |
| Employee (recruiting-relevant fields) | Candidate or Contact1:1 | Fully supported | |
| Document (candidate attachments) | Resume / Attachment1:1 | Fully supported | |
| User and Role (recruiting team only) | User1:1 | Fully supported | |
| Custom Fields (candidate and vacancy) | Custom Fieldslossy | Mapping required | |
| Branch / Department | Location or Divisionlossy | Fully supported | |
| HR Letters (recruiting-related) | Note or Template1:1 | Fully supported | |
| Timeoffs (for candidate availability context) | Not Migratedlossy | Fully supported | |
| Payroll / Financial Transactions | Not Migratedlossy | 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.
ZenHR gotchas
ZenATS candidates and SMS/email communication logs are not fully exportable via API
Custom fields are tenant-specific and require a pre-migration field audit
Attendance raw data volume can overwhelm bulk exports without pagination controls
Terminations require effective-date sequencing to preserve EOSB and leave balance calculations
Crelate gotchas
120 req/min API rate limit throttles bulk migrations
20 custom field per-entity cap forces data model decisions
15,000-record export ceiling on single operations
Sequences and automation workflows do not migrate
API key is a querystring parameter, not a header
Pair-specific challenges
Migration approach
Discovery and scope definition
We audit the source ZenHR tenant with focus on ZenATS: candidate record volume, vacancy pipeline count and stage definitions, stage-history depth, active custom fields on Candidate and Vacancy, user count with ZenATS access, document attachment volume per candidate, and communication log metadata. We also map the ZenHR employee records in scope for Crelate migration. We identify out-of-scope data categories (payroll, leave, attendance, org hierarchy, loans, overtimes) and document the platform-type gap explicitly in the scope agreement before any migration work begins.
Field audit and schema mapping
We run the ZenHR API field discovery against the source tenant, enumerating every standard and custom field on Candidate, Vacancy, Employee, User, and Document objects. We match each field to a Crelate field by name and type, flagging custom fields with no Crelate equivalent and recommending a custom field or Notes workaround. We configure Crelate Job Stages to match ZenATS pipeline stages in sequence order and set stage probability percentages from ZenATS stage weights. This schema map is validated against a sample of 50 candidate records before bulk migration begins.
Candidate and vacancy migration with stage history
We migrate ZenATS Vacancies first, then Candidates. Vacancies are inserted into Crelate as Jobs with stage configuration applied. Candidates are inserted with the zenats_candidate_id__c custom field as a reconciliation key. Stage history from ZenATS (each stage transition with timestamp and optional notes) is written to Crelate as Job Activity records with a stage-change activity type, preserving the original pipeline funnel analysis. Candidate documents (resumes, cover letters, attachments) transfer via the Crelate bulk attachment API with type and date metadata.
Employee-to-candidate and employee-to-contact mapping
ZenHR Employee records that represent hired candidates (linked via ZenATS) migrate as Crelate Candidates with status changed to Hired. Employee records without a ZenATS candidate association migrate as Crelate Contacts in the recruiting CRM context. We map recruiting-relevant fields only (name, email, phone, department, job title, hire date). Payroll compensation, banking information, leave balances, and benefits data are excluded. The zenats_candidate_id__c on Crelate Candidates maintains the link to the original ZenATS record for reconciliation.
User and role reconciliation
We extract ZenHR Users with ZenATS access and match by email against the Crelate destination tenant's User table. Crelate User records are provisioned for each matched ZenHR user with the appropriate Crelate role (Admin, Recruiter, Hiring Manager) mapped from ZenHR role permissions. Users without ZenATS access are documented as out-of-scope. If any ZenHR user lacks a Crelate seat, the customer's admin provisions the Crelate license before User migration completes.
Cutover, validation, and automation inventory handoff
We freeze ZenATS writes during the cutover window and run a final delta migration of any records modified during migration. Crelate becomes the system of record for recruiting data. We validate record counts, spot-check 25-50 candidate records for field-level accuracy, and confirm stage-history sequencing. We deliver the written automation and HR letter template inventory document to the customer's admin team with recommended rebuild actions in Crelate. We support a one-week post-cutover window for reconciliation issues. We do not rebuild ZenHR automations or letter templates in Crelate; that work is separate from the migration scope.
Platform deep dives
ZenHR
Source
Strengths
Weaknesses
Crelate
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 ZenHR and Crelate.
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
ZenHR: Not publicly documented — requires direct inquiry to ZenHR support to determine safe request-pacing thresholds.
Data volume sensitivity
ZenHR 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 ZenHR to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your ZenHR to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave ZenHR
Other ways to arrive at Crelate
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.