HRMS migration
Field-level mapping, validation, and rollback between HROffice and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
HROffice
Source
Crelate
Destination
Compatibility
7 of 12
objects map 1:1 between HROffice and Crelate.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from HROffice to Crelate is a cross-regional ATS migration with a significant data model gap. HROffice uses an assignment-based staffing workflow where temporary workers are placed into short-term or temp-to-perm roles tracked with weekly timecard cycles. Crelate uses a standard ATS model built around candidates, applications, and placements. We do not collapse assignments into employment records; instead we export assignments as a related supplemental object and attach them as custom properties on the Crelate candidate record so the staffing history is preserved and auditable. Custom career site fields and employer-branded job posting content do not migrate; we deliver a written specification for your admin to rebuild them in Crelate. HROffice's API is a paid add-on with limited public documentation, which means we handle the API connection setup and negotiate access terms directly with HROffice before migration begins. Workflows, referral recruitment automations, and timecard approval rules do not migrate; we provide a written inventory for your team to rebuild in Crelate'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 HROffice 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.
HROffice
Candidate
Crelate
Contact
1:1HROffice Candidate records map directly to Crelate Contact. Name, email, phone, address, source channel, and current application status migrate as standard Contact fields. The HROffice candidate_id is preserved as an external reference field for audit and reconciliation. We resolve the HROffice application history to build a Crelate activity timeline showing the candidate's placement pipeline progression.
HROffice
Application
Crelate
Job Order and Activity
1:manyHROffice Applications tied to Job Postings map to Crelate Job Orders (representing the role) and as Activity records on the Contact timeline (representing the candidate's application event). Application status from HROffice maps to a Crelate custom picklist preserving the original stage name so recruiters can still read the pipeline progression. Application notes and recruiter comments migrate as Activity notes on the Contact.
HROffice
Job Posting
Crelate
Job Order
1:1HROffice Job Postings migrate to Crelate Job Orders with title, department, location, employment type, and description preserved. Posting date and expiration date migrate as Job Order metadata. HROffice's department and location metadata map to Crelate's category and region custom fields. Employer branding, custom career site styling, and job posting HTML templates do not migrate; we deliver a written job posting template specification for your admin to rebuild in Crelate.
HROffice
Assignment
Crelate
Custom Fields on Contact
lossyHROffice Assignments represent temporary or temp-to-perm placements with start dates, end dates, assignment type, and weekly pay rate. This is a staffing-agency-specific concept with no direct Crelate equivalent. We export Assignments as supplemental records and attach them as a structured set of custom fields on the Contact record—assignment_type__c, assignment_start__c, assignment_end__c, assignment_rate__c, and assignment_status__c—so the placement history is preserved without creating duplicate or conflicting employment records. This is the critical design decision for this pair and we document it explicitly in the scoping deliverable.
HROffice
Timecard
Crelate
Activity and Custom Fields
lossyHROffice weekly timecards include hours worked and submission dates per assignment. Crelate does not include a native timecard or payroll cycle module. We export timecard history as Crelate Activity records (with a custom timecard subtype) linked to the Contact, and hours data as a custom numeric field on each activity. This preserves the payroll context in a searchable, auditable form. We flag this as a configuration item during scoping because some customers prefer timecard history stored as a custom JSON or structured text field rather than individual activity records.
HROffice
User
Crelate
User
1:1HROffice internal users (recruiters, administrators) map to Crelate User records by email match. Role-based permissions (recruiter, hiring manager, admin) map to Crelate's permission roles. We extract every distinct HROffice user referenced on Candidate, Application, or Assignment records. Any HROffice user without a matching Crelate User goes to a reconciliation queue for your admin to provision before the record import phase.
HROffice
Benefits
Crelate
Custom Fields on Contact
1:1HROffice benefit enrollment records and plan assignments may exist for placed temporary workers. We export benefit plan name, enrollment date, and coverage type as custom fields on the Contact record. We do not attempt to create a separate Benefits object because Crelate does not include a native benefits management module; the benefit history travels as supplemental metadata on the candidate or placement record.
HROffice
Compensation
Crelate
Custom Fields on Contact or Assignment
1:1HROffice compensation records include pay type (hourly, salary), rate, and effective dates for temporary placements. Pay rate, pay frequency, and pay type migrate as custom fields on the Contact (for direct hires) or on the Assignment custom fields (for temporary placements). The mapping destination depends on whether the worker is still on assignment or has converted to direct hire at migration time.
HROffice
Custom Fields
Crelate
Custom Fields
lossyHROffice custom candidate, application, and job posting fields require a discovery audit before migration. HROffice's limited public API documentation means we cannot programmatically enumerate custom fields in advance; we request read access to the HROffice data dictionary during scoping or extract a representative record set that includes all non-empty custom field values. We then reproduce the field structure in Crelate (text, number, picklist, date, or Boolean type matching Crelate's supported types), create the fields before migration, and apply the transform during the migration run.
HROffice
Employer Branding and Career Site Content
Crelate
N/A
lossyHROffice's built-in career website builder, branded job posting templates, and employer branding assets (logos, color schemes, copy) do not have a Crelate equivalent that accepts automated content import. We do not migrate branded career site pages or employer content. We deliver a written content inventory listing every active HROffice job posting URL, branded page title, and key copy so your admin can reproduce them in Crelate's job distribution tools or a standalone career site CMS.
HROffice
Referral Recruitment Data
Crelate
Candidate Source Field
1:1HROffice's built-in referral recruitment tool generates candidate records with a referral source indicator. Referral source metadata migrates to the Candidate Source field in Crelate. Active referral workflows and referral-specific routing rules do not migrate; we document the referral source values and recommend rebuilding any referral-specific routing in Crelate's workflow builder post-migration.
HROffice
Historical Timestamps
Crelate
Created Date and Modified Date
1:1All HROffice records carry created_at and updated_at timestamps. We preserve these on every migrated Crelate record using the API's created_date and last_modified_date parameters. This is critical for audit trails, compliance reporting, and recruiter workflows that rely on time-of-action context. We do not overwrite timestamps with the migration run date.
| HROffice | Crelate | Compatibility | |
|---|---|---|---|
| Candidate | Contact1:1 | Fully supported | |
| Application | Job Order and Activity1:many | Fully supported | |
| Job Posting | Job Order1:1 | Fully supported | |
| Assignment | Custom Fields on Contactlossy | Fully supported | |
| Timecard | Activity and Custom Fieldslossy | Fully supported | |
| User | User1:1 | Fully supported | |
| Benefits | Custom Fields on Contact1:1 | Mapping required | |
| Compensation | Custom Fields on Contact or Assignment1:1 | Mapping required | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Employer Branding and Career Site Content | N/Alossy | Fully supported | |
| Referral Recruitment Data | Candidate Source Field1:1 | Fully supported | |
| Historical Timestamps | Created Date and Modified Date1: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.
HROffice gotchas
Zero public review presence limits due diligence
API is a paid add-on, not self-service
Assignment-based data model does not map directly to standard HRMS
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 API connection negotiation
We audit the HROffice instance across candidates, applications, job postings, assignments, timecards, and custom fields. If API access has not been purchased, we engage HROffice directly to enable the API connection before migration scoping proceeds. We extract a representative record set (50-100 records including all non-empty custom field values) to build the custom field inventory. We also map the assignment structure (assignment type, duration, pay rate, timecard frequency) to define the custom field schema in Crelate. The discovery output is a written migration scope, field mapping document, and Crelate custom field creation checklist.
Crelate configuration and custom field creation
We provision all required custom fields in Crelate before any data import. This includes assignment-type fields (assignment_type__c, assignment_start__c, assignment_end__c, assignment_rate__c, assignment_status__c), timecard custom fields on Activity, and any HROffice custom candidate or job posting fields reproduced from the discovery audit. We configure the Crelate User roles to match the HROffice permission structure, map HROffice departments to Crelate categories, and set up the Job Order record type to capture posting metadata. Configuration happens in a Crelate sandbox or trial org for validation before production setup.
Test migration and reconciliation
We run a full test migration using production-like data volume into the validated Crelate configuration. The customer's HR lead reviews a random sample of 25-50 migrated records against the HROffice source, checking candidate completeness, assignment metadata accuracy, timecard history preservation, and custom field fidelity. We reconcile record counts by object and surface any mapping gaps. Crelate's published migration approach (Discovery, Development, Testing, Verification, Launch) informs our validation gates. Test migration sign-off is required before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct HROffice user referenced on Candidate, Application, Assignment, and Timecard records and match by email against the Crelate destination tenant's User list. Any HROffice user without a matching Crelate User is held in a reconciliation queue. The customer's Crelate admin provisions missing Users with appropriate roles. This step must complete before record import because User references are required for activity attribution and assignment ownership.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated), Job Orders (from HROffice Job Postings), Contacts (candidates with name and contact data), Activities (application history on Contact timeline), Assignments (as custom fields on Contact), Timecards (as Activity records with hours data), Benefits and Compensation (as custom fields), Custom Fields (remaining HROffice custom fields replicated in Crelate), and User permissions. Each phase emits a row-count reconciliation report before the next phase begins. We use Crelate's REST API with rate-limit handling and exponential backoff for all inserts.
Cutover, validation, and workflow rebuild handoff
We freeze HROffice write access during cutover, run a final delta migration of any records modified during the migration window, then designate Crelate as the system of record. We deliver the written inventory of timecard workflows, assignment approval rules, referral recruitment automations, and employer branding content requiring rebuild. We do not rebuild these as Crelate workflows, sequences, or career site pages inside the migration scope; that is a separate engagement. We support a one-week post-cutover reconciliation window to resolve data quality issues raised by your recruiting team.
Platform deep dives
HROffice
Source
Strengths
Weaknesses
Crelate
Destination
Strengths
Weaknesses
Complexity grading
Moderate HRMS migration. 3 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 HROffice and Crelate.
Object compatibility
3 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
HROffice: Not publicly documented.
Data volume sensitivity
HROffice 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 HROffice to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your HROffice 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 HROffice
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.