HRMS migration
Field-level mapping, validation, and rollback between Workstream and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Workstream
Source
Zoho Recruit
Destination
Compatibility
8 of 12
objects map 1:1 between Workstream and Zoho Recruit.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Workstream organizes its data around physical locations (stores) as the primary organizational unit, tying every Team Member, Position, and Role to a specific location. Zoho Recruit uses a module-based data model with Candidates, Job Openings, and optional Clients. The migration maps Workstream's location-role combination to a department or organizational unit structure in Zoho Recruit, flattens Position Templates into instantiated Job Opening records, and carries candidate Applications as linked Candidates with application-stage history preserved. Workstream's CSV export requires careful schema profiling because Active, Onboarding, and Offboarded employees live in separate tabs, and custom fields are scoped by role or location rather than globally. Binary document files (tax forms, ID scans, signed onboarding packets) do not migrate. We do not rebuild Workstream's automated SMS candidate communication workflows or integration configurations; we deliver a written inventory of both for the customer's admin to reconfigure 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 Workstream 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.
Workstream
Team Member (Employee)
Zoho Recruit
Candidate
1:1Workstream Team Member records (Active, Onboarding, Offboarded tabs) map to Zoho Recruit Candidate records. We query all three tabs explicitly during profiling because offboarded records may be omitted from a standard export. Standard fields (name, email, phone, hire date, job title, department, location assignment) map directly. Lifecycle status from Workstream (active, onboarding, offboarded) is preserved in a custom Candidate field ws_lifecycle_status__c for compliance and audit. Home address maps to Zoho Recruit's address fields on Candidate.
Workstream
Location
Zoho Recruit
Department or Organization
1:1Workstream Locations (store-level entities with name, address, and manager) map to Zoho Recruit Departments. We preserve the location name, address, and manager assignment as Department fields. In organizations with a flat structure, locations map to Organizations instead. The location-location_role combination that determines pay and schedule authority in Workstream is preserved as a custom Candidate field ws_location_role__c in Zoho Recruit.
Workstream
Position
Zoho Recruit
Job Opening
1:1Workstream Position records (linked to a specific location) map to Zoho Recruit Job Opening records. Position title, department, pay rate or range, schedule type, and job description migrate directly. The location association on the Position maps to a Zoho Recruit Department or to a custom Job Opening field ws_source_location__c. Position status (open, paused, filled, closed) maps to Zoho Recruit Job Opening status.
Workstream
Position Template
Zoho Recruit
Job Opening (from template)
lossyWorkstream Position Templates are reusable job definitions that feed multiple Position instances. We flatten Position Templates into their instantiated Position records during CSV extraction, preserving the template origin as a tag ws_template_origin__c on each resulting Job Opening. If a customer wants to preserve templates as a Zoho Recruit template construct, we document the template definitions for manual recreation in Zoho Recruit.
Workstream
Application
Zoho Recruit
Candidate (linked to Job Opening)
1:manyWorkstream Applications are candidate submissions tied to a specific Position and stored as separate records with applicant contact info, screening question answers, communication history, and pipeline status. Zoho Recruit does not have a separate Application object; applications are represented as Candidate records linked to Job Openings with activity history. We merge each Application into the corresponding Candidate record, preserving the application date, screening answers as custom Candidate fields, and the original hiring pipeline stage as a custom field.
Workstream
Hiring Pipeline Stage
Zoho Recruit
Job Opening Stage (custom)
lossyWorkstream uses configurable hiring pipeline stages (Applied, Screening, Interview, Offer, Hired, and custom stages). We extract the full pipeline definition including stage names and ordering. Zoho Recruit's Job Openings have a customizable hiring process with stage names. We configure the Zoho Recruit hiring process to match Workstream's stage names and order before migration so that candidate status maps correctly. Stage probability weights do not apply in Zoho Recruit's ATS context as they do in sales CRMs.
Workstream
Custom Field
Zoho Recruit
Custom Field
lossyWorkstream custom fields in text, date, number, and dropdown formats map to Zoho Recruit custom Candidate or Job Opening fields of equivalent type. Multi-select dropdowns map to Zoho Recruit multi-select picklists. Workstream's location-role scoping does not have a Zoho Recruit equivalent; we flatten scoped custom fields to module-level custom fields visible on all Candidate records. We detect field-level presence per record during profiling to avoid null-fill issues where a field exists on some records but not others.
Workstream
Payroll Data
Zoho Recruit
Custom Field (on Candidate or Job Opening)
1:1Workstream stores pay rates, pay schedules, and payroll sync status as employee properties from its payroll integrations. Zoho Recruit does not have a native payroll module. We map pay rate and pay schedule to custom Candidate fields (ws_pay_rate__c, ws_pay_schedule__c). We do not migrate ADP, Paychex, or Paylocity sync status as tokens are not transferable; we document the payroll provider for the customer's admin to reconfigure integration in Zoho Recruit.
Workstream
Document Metadata
Zoho Recruit
Custom Field (on Candidate)
1:1Workstream stores document completion metadata (which forms were submitted, submission dates) as employee record properties. This metadata migrates as custom Candidate fields (ws_doc_tax_form__c, ws_doc_id_scan__c, ws_doc_onboarding_signed__c) so the Zoho Recruit HR team can see what was already completed. Binary document files (PDFs, scans) do not migrate; we flag this during scoping and advise the customer to download document packets from Workstream before cutover.
Workstream
Integration Configuration
Zoho Recruit
N/A (documented for rebuild)
1:1Workstream integrations with ADP, Paychex, Paylocity, Square, and Toast are stored as OAuth tokens and configuration metadata specific to the source tenant. These do not transfer. We document which integrations were active, which employees were synced, and the sync frequency. The customer's admin re-establishes these connections in Zoho Recruit with fresh OAuth authentication. Zoho Recruit has native integrations with Indeed, Google Workspace, and other platforms that may partially replace Workstream's integration ecosystem.
Workstream
Role and Assignment
Zoho Recruit
Custom Field on Candidate or Job Opening
1:1Workstream Role definitions scoped to locations determine pay and schedule authority. We map which roles exist and how employees are assigned to them as a custom Candidate field (ws_role__c) carrying the location-role combination. Role definitions themselves (as reusable constructs) are documented for manual recreation in Zoho Recruit if the customer requires role-based configuration at scale.
Workstream
Engagement (Application Communication)
Zoho Recruit
Candidate Activity Notes
1:1Workstream stores candidate communication history (SMS messages, email threads, notes) as part of the Application record. Zoho Recruit represents candidate communication as Activity records (emails, calls, tasks) linked to the Candidate. We extract Workstream's communication history from the Application CSV and create Zoho Recruit Activity records with the original timestamp and direction (sent/received). SMS content migrates as Activity notes.
| Workstream | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Team Member (Employee) | Candidate1:1 | Fully supported | |
| Location | Department or Organization1:1 | Fully supported | |
| Position | Job Opening1:1 | Fully supported | |
| Position Template | Job Opening (from template)lossy | Fully supported | |
| Application | Candidate (linked to Job Opening)1:many | Fully supported | |
| Hiring Pipeline Stage | Job Opening Stage (custom)lossy | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Payroll Data | Custom Field (on Candidate or Job Opening)1:1 | Mapping required | |
| Document Metadata | Custom Field (on Candidate)1:1 | Fully supported | |
| Integration Configuration | N/A (documented for rebuild)1:1 | Fully supported | |
| Role and Assignment | Custom Field on Candidate or Job Opening1:1 | Fully supported | |
| Engagement (Application Communication) | Candidate Activity Notes1:1 | 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.
Workstream gotchas
Location-based pricing does not follow employee headcount
Offboarded employee data requires explicit scoping
Custom field schemas vary by location and role scope
Binary document files are not migratable
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
Workstream source profiling and scoping
We audit the Workstream account by querying all three CSV export tabs (Active, Onboarding, Offboarded) explicitly, cataloging the complete field set including standard, predefined, and custom fields per record. We extract location count, position count, position template count, active hiring pipeline stage names and order, and active custom field definitions with their location-role scopes. We document which payroll and POS integrations were connected and which employees were in sync scope. We flag binary document availability and advise the customer to download document packets before cutover. The profiling output is a written migration scope document covering record counts, schema map, and out-of-scope items.
Zoho Recruit destination schema configuration
We design the Zoho Recruit module structure based on the Workstream profiling output. This includes creating custom Candidate fields to receive Workstream's custom fields (with type mapping to Zoho Recruit's supported field types), creating departments to receive Workstream Locations with manager and address preservation, configuring the hiring process with Workstream's pipeline stage names and order, and creating custom Job Opening fields for position metadata. We deploy this schema into a Zoho Recruit sandbox first, validate field counts against the Workstream schema map, and obtain the customer's sign-off before any production configuration begins.
Sandbox migration and reconciliation
We run a full migration into the Zoho Recruit sandbox using production-like data volume. The customer's HR lead reconciles record counts by location and lifecycle status, spot-checks 25-50 records across locations for field-level accuracy, validates that application history maps to the correct Candidate and Job Opening, and confirms that custom field values match the source Workstream records. Any mapping corrections are documented and applied to the production migration plan. Sandbox sign-off is required before we proceed to production migration.
Production migration in dependency order
We run production migration in record-dependency order: Departments (from Workstream Locations) first, then Job Openings (from Positions and Position Templates), then Candidates (from Team Members with lifecycle status preserved), then Candidate-Job Opening links (from Workstream Applications), then Activity history (communication logs as Candidate Activities), then custom field data on all records. Each phase emits a row-count reconciliation report before the next phase begins. We use Zoho Recruit's native import tools for bulk record inserts and handle custom field mapping through the configured schema. Any records that fail import are logged to a reconciliation queue for resolution.
Cutover, delta sync, and handoff
We freeze Workstream writes during cutover, run a final delta migration of any records modified during the migration window (new applications, status changes, offboardings), then enable Zoho Recruit as the HR and hiring system of record. We deliver the Integration Inventory document listing which ADP, Paychex, Paylocity, Square, and Toast connections were active and need re-authentication in Zoho Recruit. We deliver the Candidate Communication Workflow inventory for manual rebuild in Zoho Recruit. We do not rebuild Workstream's automated SMS workflows or payroll integrations as part of the migration scope. We support a one-week hypercare window for reconciliation issues.
Platform deep dives
Workstream
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 Workstream 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
Workstream: Not publicly documented on developer portal.
Data volume sensitivity
Workstream 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 Workstream to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Workstream 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 Workstream
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.