HRMS migration
Field-level mapping, validation, and rollback between Factorial and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
Factorial
Source
Crelate
Destination
Compatibility
10 of 12
objects map 1:1 between Factorial and Crelate.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Factorial and Crelate serve fundamentally different HR workflows. Factorial is a full HRMS covering the entire employee lifecycle from hire through payroll, with modules for time tracking, absence management, and compensation history. Crelate is an ATS and recruiting CRM designed for talent acquisition teams at recruiting and staffing firms, with a data model centered on Candidates, Contacts, Companies, Jobs, and recruiting Activities. This is not a like-for-like replacement. We migrate what has a structural equivalent: Factorial Employees map to Crelate Candidates, Departments map to Organizations, and Documents migrate as Candidate Attachments. We flag payroll runs, absence records, compensation history, time entries, and employment contracts as non-portable because Crelate has no native fields for salary, accruals, deductions, or time-off balances. We deliver a written inventory of these records and recommend where to document them post-migration so your HR team can recreate them manually or in a dedicated HRMS.
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 Factorial 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.
Factorial
Employee
Crelate
Candidate
1:1Factorial Employees map to Crelate Candidates. We extract the primary employee record (name, contact, start date, department, employment status) and map it to the Candidate profile. Crelate's Candidate object does not have native fields for salary, manager hierarchy, or employment type beyond what is captured in the work history section. We flag any salary or compensation data stored on the employee profile as requiring a custom field or manual documentation post-migration.
Factorial
Department
Crelate
Organization or Team
1:1Factorial Departments and Cost Centers map to Crelate Organizations or Teams depending on whether the Crelate instance uses the Organization hierarchy or the Team tagging feature. We preserve parent-child department relationships and validate no orphaned departments remain after import. If the customer uses Factorial's cost center tagging for billing or project allocation, we map cost center codes to a custom field on the Candidate or Job record.
Factorial
Document
Crelate
Candidate Attachment
1:1Factorial Documents attached to Employees (contracts, ID files, certifications, offer letters) migrate as Crelate Candidate Attachments. Factorial does not expose a bulk document export endpoint, so we paginate the document list via the API and download each file individually. Large document archives (over 5,000 files) add significant time to the migration window and are flagged during scoping so the customer can decide whether to migrate the full archive or a recent window.
Factorial
Custom Fields (Employee)
Crelate
Custom Fields (Candidate)
lossyFactorial allows arbitrary custom fields on Employee records but exposes no schema or metadata endpoint. We discover all active custom fields by calling the Employee and Contract API endpoints during scoping, then map each to a Crelate Candidate custom field of equivalent type. Custom fields with no Crelate equivalent are flagged for the customer to create in Crelate Settings before migration begins. This discovery step is required on every Factorial migration because per-customer field sets vary.
Factorial
Employment Contract
Crelate
Candidate Work History Entry
lossyFactorial Employment Contracts (contract type, working hours, probation period, legal entity reference) do not have a direct Crelate ATS equivalent. We extract the key fields and populate them as structured entries in the Candidate's Work History section or as custom fields if the customer has configured them. Country-specific legally required fields are noted in the migration deliverable for the customer's HR admin to verify against local compliance requirements.
Factorial
Payroll Run
Crelate
Not Migrated
1:1Factorial Payroll Runs are country-locked to the legal entity and contain salary, deductions, supplements, overtime, and net-pay calculations tied to Factorial's payroll engine. Crelate has no payroll module and no fields for gross salary, tax withholding, social security contributions, or net pay. We do not migrate payroll runs. We export payroll data as a structured CSV for the customer's finance team to use when setting up payroll in their chosen payroll processor.
Factorial
Compensation History
Crelate
Not Migrated
1:1Factorial Compensation History (effective-dated salary changes, bonuses, equity grants, benefits) has no Crelate equivalent. Crelate's Candidate and Placement records do not include salary history fields. We extract the compensation timeline as a structured export for the customer's HR admin to document in their new HRMS or compensation management tool. If the customer uses Crelate Placements, we map the billing rate or fee to the Placement record as a custom field.
Factorial
Absence Record
Crelate
Not Migrated
1:1Factorial Absence records (types, balances, accrual rules, and accrual balances at migration time) do not migrate to Crelate. Crelate has no absence management module; it tracks candidate availability for interviews but not time-off balances or accruals. We deliver a written inventory of active absence types and current balances so the customer's HR admin can configure equivalent accrual rules in their new HRMS or payroll system.
Factorial
Time Entry
Crelate
Not Migrated
1:1Factorial Time Entries (clock-in/out records, timesheets, project tags, cost-center tags) do not migrate to Crelate. Crelate has no time tracking module. For staffing firms using Factorial for contractor time tracking, we recommend migrating the current open timesheet period as a CSV for manual entry into a dedicated time-tracking tool or for import into the customer's new payroll processor.
Factorial
Workflow and Approvals
Crelate
Not Migrated
1:1Factorial approval chains for time-off, expenses, and documents are stored as platform-specific automation objects with no export representation. Crelate's workflow model is different and not compatible. We document the Factorial workflow structure during discovery so the customer's admin can rebuild equivalent approvals in Crelate or in a dedicated workflow tool. This documentation is delivered as part of the standard migration package.
Factorial
Employee Profile Photo
Crelate
Candidate Photo
1:1Employee profile photos in Factorial migrate as Candidate photos in Crelate. We extract the photo from the Employee API response and upload it to the corresponding Candidate record. If the photo is stored as a separate document attachment rather than an embedded profile field, we migrate it as a Candidate Attachment.
Factorial
Job Position (from Factorial Hiring module)
Crelate
Job
1:1If the customer uses Factorial's hiring or recruitment module to track open positions, those Job records map to Crelate Job records with position title, department, and status preserved. Factorial's hiring pipeline stages map to Crelate's Job stage values. We flag any custom pipeline stages that require configuration in Crelate before the position data migrates.
| Factorial | Crelate | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Department | Organization or Team1:1 | Fully supported | |
| Document | Candidate Attachment1:1 | Fully supported | |
| Custom Fields (Employee) | Custom Fields (Candidate)lossy | Fully supported | |
| Employment Contract | Candidate Work History Entrylossy | Fully supported | |
| Payroll Run | Not Migrated1:1 | Fully supported | |
| Compensation History | Not Migrated1:1 | Mapping required | |
| Absence Record | Not Migrated1:1 | Fully supported | |
| Time Entry | Not Migrated1:1 | Fully supported | |
| Workflow and Approvals | Not Migrated1:1 | Fully supported | |
| Employee Profile Photo | Candidate Photo1:1 | Fully supported | |
| Job Position (from Factorial Hiring module) | Job1: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.
Factorial gotchas
No public bulk export API for documents
Custom fields are not discoverable via a schema endpoint
Payroll data is country-locked to the legal entity
Workflow automation does not export
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 schema audit
We audit the source Factorial tenant for employee count, active departments, document volume per employee, custom field inventory via API discovery, legal entities, and any active hiring module positions. We identify which objects have Crelate equivalents and which require export-only treatment. We also assess the Factorial API rate limits and pagination behavior to estimate the document download timeline. The discovery output is a written migration scope that lists every object, its destination, and the reason for any non-migration.
Custom field schema creation in Crelate
We create all required custom fields in Crelate before any data migration begins. This includes custom fields on Candidate, Contact, Company, and Job records to receive Factorial employee properties, employment contract details, and department tags. We configure custom picklist values, date fields, numeric fields, and text fields based on the Factorial custom field inventory discovered in Step 1. Field types are mapped to their Crelate equivalents during this step.
Document archive preparation
We paginate the Factorial document API to build a complete list of employee-attached files, then download each file individually with retry logic. We organize the download into a folder structure by employee ID so that each document is correctly associated with its target Candidate in Crelate. For migrations exceeding 5,000 documents, we coordinate with the customer on whether to migrate the full archive or a recent window and provide a CSV index of the excluded files for manual archival.
Sandbox migration and reconciliation
We run a full migration into a Crelate staging or test environment using production-like data volume. The customer's HR lead and recruiting lead reconcile record counts (Candidates in, Employees processed, Documents attached), spot-check 25-50 candidate records against the Factorial source, and verify department mappings and custom field values. Any mapping corrections happen in this sandbox phase before production migration begins.
Production migration in dependency order
We run the production migration in record-dependency order: Departments first (to satisfy any organizational tagging), then Employees as Candidates (with custom fields populated), then Documents as Candidate Attachments (uploaded after candidate records are confirmed in Crelate), then any Job positions from the Factorial hiring module. Each phase emits a row-count reconciliation report before the next phase begins. Non-migrated objects (payroll, compensation, absences, time entries) are exported as CSV deliverables during this phase.
Cutover, validation, and non-portable data handoff
We freeze Factorial writes during cutover, run a final delta migration of any records modified during the migration window, then enable Crelate as the recruiting system of record. We deliver the non-portable data package (payroll CSV, compensation history CSV, absence inventory, time entry export, and workflow documentation) to the customer's HR and finance teams. We support a one-week hypercare window for reconciliation issues raised by the recruiting team. We do not configure Crelate workflows, automations, or email sequences as part of the migration scope.
Platform deep dives
Factorial
Source
Strengths
Weaknesses
Crelate
Destination
Strengths
Weaknesses
Complexity grading
Moderate HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Factorial 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
Factorial: 200 requests per minute for POST requests per Factorial's published API docs. GET-side limits are not separately enumerated; we tune extraction concurrency conservatively against the customer's tenant during scoping..
Data volume sensitivity
Factorial 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 Factorial to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your Factorial 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 Factorial
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.