HRMS migration
Field-level mapping, validation, and rollback between Workstream and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
Workstream
Source
Crelate
Destination
Compatibility
9 of 12
objects map 1:1 between Workstream and Crelate.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Workstream to Crelate is a shift from a location-centric hourly-workforce HR platform to an agency-style ATS with CRM capabilities. Workstream organizes hiring around physical locations and hourly position types; Crelate organizes around Candidates, Job Orders, and Placements with a recruiting sales cycle. We extract all three of Workstream's employee tabs (Active, Onboarding, Offboarded) explicitly, flatten Position Templates into their instantiated Position records, and map Workstream's hiring pipeline stages to Crelate status values. Workstream's CSV export feeds a structured transform that we load into Crelate's Candidate and Job Order objects. Document packets, integrations, and custom scheduling rules do not migrate; we deliver written inventories of these for the customer to address 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 Workstream 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.
Workstream
Employee (Team Member)
Crelate
Candidate
1:1Workstream Employee records map to Crelate Candidate. We extract all three lifecycle tabs (Active, Onboarding, Offboarded) explicitly during scoping and map Workstream's lifecycle state to a custom Crelate field (e.g., original_lifecycle_stage__c) plus Crelate's native candidate status. Workstream standard fields (name, contact info, hire_date, job_title, department, location assignment) map to typed Crelate Candidate fields. We preserve termination date and offboarded reason as custom fields if the customer's compliance policy requires them.
Workstream
Position
Crelate
Job Order
1:1Workstream Positions map to Crelate Job Orders. Each Workstream Position record carries title, department, pay rate/range, schedule type, and job description; these map to Crelate Job Order title, description, and salary fields. We resolve the Workstream location assignment and attach it as a Crelate Job Order location or a custom field. Position status (Open, Paused, Filled, Closed) maps to Crelate Job Order status with the corresponding status values configured in Crelate before migration.
Workstream
Position Template
Crelate
Job Order
1:manyWorkstream Position Templates are reusable job definitions that instantiate multiple Position records. We flatten all template-fed Position instances during the export phase, creating one Crelate Job Order per instantiated Position. The template origin is preserved as a tag or custom field on each Job Order (e.g., template_source__c) so the customer can see which positions were standardized versus ad hoc.
Workstream
Application
Crelate
Candidate-Job Order Link
1:1Workstream Applications (candidate submissions tied to a Position) map to Crelate's Candidate-to-Job-Order association. Application status (Applied, Screening, Interview, Offer, Hired) maps to Crelate's placement pipeline status values. Screening question answers and communication history migrate as custom fields or notes on the candidate record. We resolve the candidate and job order references at migration time using Workstream's application_id and the extracted candidate and position identifiers.
Workstream
Location
Crelate
Location or Department
1:1Workstream Locations are the primary organizational unit and carry name, address, and manager. We map these to Crelate Locations if the Crelate destination has the Locations module enabled, or to Departments if that is the customer's preferred organizational unit. Location-role combinations that determine pay and schedule authority are preserved as custom fields on the Candidate record since Crelate does not natively model per-location role scoping.
Workstream
Role and Assignment
Crelate
Custom Fields on Candidate and Job Order
lossyWorkstream Roles scoped to locations do not have a direct Crelate equivalent. We model location-role combinations as custom fields on Candidate (e.g., location_name__c, role_title__c, assigned_role__c). The pay rate associated with a role-location assignment migrates as a custom field on the Candidate record or as a salary field on the associated Job Order.
Workstream
Custom Fields (Employee)
Crelate
Custom Fields on Candidate
1:1Workstream custom fields on employees (text, date, number, dropdown) scoped by role, location, or department migrate to equivalent Crelate custom fields on the Candidate object. Workstream's per-record field presence variation (a field may exist on one employee record but not another) is handled by mapping only fields that are populated for each individual record, avoiding null-fill issues. We detect field-level presence during profiling and generate a per-record field manifest before import.
Workstream
Custom Fields (Position)
Crelate
Custom Fields on Job Order
1:1Workstream position-scoped custom fields migrate to Crelate Job Order custom fields. These typically capture role-specific requirements (certifications required, shift pattern, equipment needed) that Crelate Job Order custom fields can hold. We match field types: Workstream dropdown becomes Crelate picklist, Workstream number becomes Crelate number, Workstream text becomes Crelate text.
Workstream
Pay Rate and Payroll Data
Crelate
Salary Fields on Job Order or Candidate
1:1Workstream pay rate, pay schedule, and payroll sync status are available as employee properties. We map pay rate to Crelate Job Order salary or to a custom field on the Candidate (e.g., offered_salary__c, pay_rate__c). Workstream's payroll provider integration status (ADP, Paychex, Paylocity) migrates as a text field noting the integration; the OAuth connection itself does not transfer.
Workstream
Hiring Pipeline Stages
Crelate
Placement Status Values
lossyWorkstream's configurable hiring pipeline stages (Applied, Screening, Interview, Offer, Hired) map to Crelate's candidate status values on the Candidate-Job-Order association. Stage probability percentages and stage order are preserved. If Crelate's default statuses do not match the customer's pipeline, we configure custom status values during the Crelate setup phase before migration.
Workstream
Employee Status History (Offboarded tab)
Crelate
Custom Fields on Candidate
1:1Offboarded employee records from Workstream's third employee tab migrate to Crelate Candidates with a termination_custom_status__c field set to Offboarded, along with termination_date__c and termination_reason__c custom fields. We include offboarded history only if the customer explicitly opts in during scoping, as Crelate is an ATS not a payroll or HRIS system and offboarded employee records may not align with the customer's active candidate workflow.
Workstream
SMS and Candidate Communication History
Crelate
Activity Records on Candidate
1:1Workstream's SMS-based candidate communication history migrates to Crelate Activity records linked to the Candidate. Each SMS thread becomes a note or activity entry with timestamp and direction (sent/received). Crelate's communication tracking does not natively replicate Workstream's SMS UX, so we preserve the communication content as structured notes rather than as native SMS objects. The customer rebuilds automated SMS workflows in Crelate's communication tools post-migration.
| Workstream | Crelate | Compatibility | |
|---|---|---|---|
| Employee (Team Member) | Candidate1:1 | Fully supported | |
| Position | Job Order1:1 | Fully supported | |
| Position Template | Job Order1:many | Fully supported | |
| Application | Candidate-Job Order Link1:1 | Fully supported | |
| Location | Location or Department1:1 | Fully supported | |
| Role and Assignment | Custom Fields on Candidate and Job Orderlossy | Fully supported | |
| Custom Fields (Employee) | Custom Fields on Candidate1:1 | Fully supported | |
| Custom Fields (Position) | Custom Fields on Job Order1:1 | Fully supported | |
| Pay Rate and Payroll Data | Salary Fields on Job Order or Candidate1:1 | Fully supported | |
| Hiring Pipeline Stages | Placement Status Valueslossy | Mapping required | |
| Employee Status History (Offboarded tab) | Custom Fields on Candidate1:1 | Fully supported | |
| SMS and Candidate Communication History | Activity Records on Candidate1: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
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 CSV export scoping
We audit the Workstream account across all three employee lifecycle tabs (Active, Onboarding, Offboarded), active positions, position templates, application pipeline volume, custom field schemas, and hiring pipeline stage definitions. We extract the CSV export using Workstream's native export tool and run a pre-profiling pass that identifies field types, date formats, multi-select encodings, and custom field presence variation per record. The discovery output is a written migration scope document that includes the record count breakdown, custom field inventory, and a flagging of binary documents, OAuth integrations, and offboarded employee scope decisions for the customer to confirm.
Crelate workspace setup and schema configuration
We configure the Crelate workspace before any data loads. This includes creating custom fields on Candidate and Job Order to match Workstream's custom field inventory, configuring location or department organizational units, setting up hiring pipeline status values that match the Workstream stage names and order, and configuring Crelate's Candidate and Job Order required fields to match the incoming data. Crelate's Settings panel is used for this configuration, and we validate that the workspace schema accepts the incoming field types before the migration run begins.
CSV normalization and field mapping
We run the Workstream CSV through a normalization transform that converts untyped string fields to correct data types (dates to ISO 8601, numbers to numeric fields, picklist values to Crelate-compatible formats), splits pipe-delimited multi-select fields into individual entries, truncates values that exceed Crelate's character limits, and generates a per-record field manifest that records which custom fields are populated for each individual Employee record. The normalized CSV is validated against the Crelate import template before any records are loaded.
Location and role remapping
Workstream locations are mapped to Crelate Locations or Departments. We create each Crelate Location record with the Workstream location name and address. Role-location-pay combinations are remapped to custom fields on the Candidate record (e.g., assigned_location__c, role_title__c, pay_rate__c) since Crelate does not natively support per-location role scoping. Position templates are flattened into individual Position records during this phase, with template origin preserved as a tag on each Job Order.
Candidate and Job Order bulk import
We load normalized data into Crelate in dependency order: Locations and Departments first, then Job Orders (from Workstream Positions), then Candidates (from Workstream Employees), then Candidate-Job-Order associations (from Workstream Applications). Each phase emits a row-count reconciliation report. Crelate's bulk import tool handles record creation; we monitor for validation errors and rerun failed batches after mapping corrections. Activity records (SMS communication history) are imported as Note entries on the Candidate record after the core Candidate load completes.
Cutover, delta migration, and handoff inventory
We freeze Workstream writes during cutover, run a final delta migration of any records modified during the migration window, then confirm Crelate as the system of record. We deliver a written integration inventory document listing each active Workstream OAuth integration, its last known sync status, and the recommended reconnection steps in Crelate or a replacement system. We deliver a document migration checklist for the customer to address binary file re-upload. We do not rebuild Workstream SMS workflows, scheduling automations, or payroll sync configurations; those are documented for the customer's admin to address as a post-migration configuration task.
Platform deep dives
Workstream
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 Workstream 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
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 Crelate migration scoping. Not seeing yours? Book a call.
Walk through your Workstream 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 Workstream
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.