HRMS migration
Field-level mapping, validation, and rollback between BambooHR and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
BambooHR
Source
Crelate
Destination
Compatibility
6 of 15
objects map 1:1 between BambooHR and Crelate.
Complexity
CModerate
Timeline
3-5 weeks
Try the reverse
Overview
BambooHR and Crelate serve different primary use cases, which makes this migration inherently asymmetric. BambooHR is a full HRIS that bundles ATS, onboarding, HR records, time-off, and payroll in a single platform; Crelate is a purpose-built recruiting platform combining an ATS, recruiting CRM, and talent-sourcing tools for executive search, direct placement, and in-house talent teams. Companies migrating this direction are typically doing so because BambooHR's recruiting module has become a ceiling rather than a foundation: limited pipeline configurability, weak mobile candidate interaction, and integrations that require context-switching between systems. We extract BambooHR's applicant records and reconstruct them as Crelate People with linked Applications and Job Orders. We map BambooHR pipeline stages to Crelate's customizable pipeline stages and preserve source attribution and engagement history. We do not migrate payroll records, benefits enrollment, time-off balances, or performance reviews as these have no functional equivalent in Crelate's recruiting data model; we deliver a written scope noting these gaps. Workflows, onboarding task chains, and custom HR fields that are not recruiting-relevant are documented separately for manual rebuild.
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.
Source platform
BambooHR platform overview
Scorecard, SWOT, gotchas, and pricing for BambooHR.
Destination platform
Crelate platform overview
Scorecard, SWOT, gotchas, and pricing for Crelate.
Data migration guide
The complete Crelate migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
BambooHR migration guide
Understand the data you're exporting from BambooHR before mapping it.
Destination checklist
Crelate migration checklist
Pre- and post-cutover tasks for moving onto Crelate.
Source checklist
BambooHR migration checklist
Exit checklist for unwinding your BambooHR setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a BambooHR 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.
BambooHR
Employee
Crelate
Person
1:1BambooHR Employee records map to Crelate Person records. Core fields (first name, last name, email, phone, address) migrate directly. The BambooHR employee ID is preserved in a custom field (e.g., bamboohr_id__c) for reconciliation. Employment status (active, inactive, terminated) from BambooHR maps to a custom status field in Crelate; terminated employees can be archived rather than deleted so the recruiting history is retained. Hire date and termination date migrate as Person custom fields since Crelate does not have a native employment-status field.
BambooHR
Applicant
Crelate
Person + Application
1:manyBambooHR Applicant records map to Crelate Person records at the individual level, with one Crelate Application record created per BambooHR application-to-job-link. BambooHR's applicant status (applied, rejected, hired, etc.) maps to Crelate's pipeline stage values after a stage-name mapping exercise during scoping. Source attribution (where the candidate came from: Indeed, referral, LinkedIn, etc.) migrates to the Crelate Application's source field.
BambooHR
Job Opening (from Applicants module)
Crelate
Job Order
1:1BambooHR job postings from the ATS module map to Crelate Job Orders. The job title, job description, location, and employment type (full-time, part-time, contract) migrate directly. BambooHR job status (open, closed, on hold) maps to Crelate Job Order status. Each BambooHR job opening becomes a Crelate Job Order that can have multiple Applications attached to it.
BambooHR
Applicant Pipeline Stage
Crelate
Pipeline Stage
lossyBambooHR's pipeline stage names (e.g., Applied, Phone Screen, Interview, Offer, Hired) are account-specific and must be mapped manually to Crelate's customizable pipeline stages. During scoping, we inventory all BambooHR stage values used across all job openings and create a Crelate pipeline template that covers all of them. Closed pipeline stages in BambooHR become archived or inactive stages in Crelate to preserve historical data without cluttering the active recruiting workflow.
BambooHR
Application Custom Fields
Crelate
Application Custom Fields
lossyBambooHR allows custom fields on applications (e.g., interview score, background check status, referral source detail). We inventory these during scoping, validate their field types against BambooHR's API field type reference, and create equivalent custom fields in Crelate under the Application record. Multi-select, date, and text field types translate directly; checkbox and currency fields require type mapping to Crelate's supported custom field types (Text, Integer, Decimal, Money, Date, etc.).
BambooHR
Applicant Engagement: Notes
Crelate
Activity + Note
1:1BambooHR applicant notes (the notes attached directly to an applicant record) migrate to Crelate Activity records linked to the Person or Application. The note body, author, and timestamp are preserved. If the note contains formatted content, we strip to plain text or migrate as-is depending on Crelate's activity field capacity. We flag any notes that exceed Crelate's field length limits during scoping so they can be handled as multi-record notes.
BambooHR
Applicant Engagement: Emails
Crelate
Email Activity
1:1BambooHR email engagements linked to applicants migrate to Crelate Email Activity records attached to the Person. The email subject, body, sender, recipient, and timestamp migrate. Email threading (which emails are replies to which) is preserved by matching In-Reply-To or References headers where available in the BambooHR export. If BambooHR email history is stored as a plain-text thread dump rather than individual records, we split by timestamp and author to reconstruct individual email entries.
BambooHR
Applicant Engagement: Interviews / Scheduled Activities
Crelate
Activity
1:1BambooHR scheduled activities on applicants (interviews, calls, assessments) migrate to Crelate Activity records with the activity type set to the corresponding Crelate activity type (Interview, Call, etc.). Scheduled date and time migrate to the Activity scheduled date. Interviewer names are resolved to Crelate User records by email match where possible; unresolved interviewers are stored as text in a custom field.
BambooHR
Job Information (title, department, location)
Crelate
Job Order Custom Fields
lossyBambooHR stores job title, division, department, employment type, and location as first-class attributes on the Employee record. For recruiting data migration (applicants rather than employees), we map these as custom fields on the Crelate Job Order. Department and division map to Crelate Job Order tags or custom fields depending on whether the customer wants these as filterable tags or structured fields.
BambooHR
Supervisor / Reporting Chain
Crelate
Person Custom Field or Tag
1:1BambooHR stores supervisor relationships as a link from Employee to another Employee. When migrating recruiting data (not full HR records), the supervisor relationship is less critical. If the customer wants it preserved, we map the supervisor Employee to a custom Person field (supervisor__c) referencing another Person record, or store the supervisor name as a text field. We resolve by email match against the Person records already migrated.
BambooHR
Onboarding Tasks / New Hire Checklist
Crelate
Not migrated (documented separately)
lossyBambooHR onboarding tasks and checklists are tied to new hires but are not exposed as standalone objects in the standard API export. We reconstruct the onboarding state as a written inventory: which new hires had which checklist items completed or pending, based on the employee export and BambooHR's onboarding report. This inventory is delivered as a document for the customer's admin to rebuild in Crelate or a separate onboarding tool. We do not migrate onboarding workflows as code.
BambooHR
Time-Off Balances
Crelate
Not migrated
lossyBambooHR time-off requests, balances, and policies have no equivalent in Crelate's recruiting data model. Crelate does not store HR-benefit data or accrual balances. If the customer needs time-off data preserved for audit purposes, we export it as a CSV and deliver it as a separate data artifact. We do not attempt to load it into Crelate. This gap is documented in the migration scope before work begins.
BambooHR
Compensation (pay rate, pay type, currency)
Crelate
Person Custom Fields
lossyBambooHR compensation fields (pay rate, pay type, currency, pay frequency) can migrate to Crelate Person custom fields if the customer wants to carry salary expectations or current compensation into the recruiting record. However, Crelate is not an HRIS and does not use compensation fields in its standard workflows; we treat these as optional migration items scoped explicitly during discovery. If included, we create Crelate custom fields of type Money or Decimal and flag that they are informational only.
BambooHR
Benefits Enrollment
Crelate
Not migrated
lossyBambooHR benefits enrollment data is highly customer-specific and stored as a structured export per employee. Crelate does not have a benefits administration module. Benefits enrollment data (carriers, coverage tiers, dependents, election dates) does not migrate. We export it as a structured CSV and deliver it as a separate artifact for the customer's HR team to retain for compliance or audit purposes.
BambooHR
Documents (offer letters, contracts, signed forms)
Crelate
File attachments on Person or Application
lossyBinary document attachments from BambooHR (offer letters, signed I-9s, employment contracts) are accessible via the BambooHR API and can be attached to the corresponding Crelate Person record. We migrate these as file uploads to the Person record or Application record, maintaining the document filename and MIME type. PDF-based documents are preserved as binary; text-based documents are preserved as-is. Document migration is scoped as a separate line item because it requires per-record API retrieval and file handling beyond standard CSV-based migration.
| BambooHR | Crelate | Compatibility | |
|---|---|---|---|
| Employee | Person1:1 | Fully supported | |
| Applicant | Person + Application1:many | Fully supported | |
| Job Opening (from Applicants module) | Job Order1:1 | Fully supported | |
| Applicant Pipeline Stage | Pipeline Stagelossy | Fully supported | |
| Application Custom Fields | Application Custom Fieldslossy | Fully supported | |
| Applicant Engagement: Notes | Activity + Note1:1 | Fully supported | |
| Applicant Engagement: Emails | Email Activity1:1 | Fully supported | |
| Applicant Engagement: Interviews / Scheduled Activities | Activity1:1 | Fully supported | |
| Job Information (title, department, location) | Job Order Custom Fieldslossy | Fully supported | |
| Supervisor / Reporting Chain | Person Custom Field or Tag1:1 | Fully supported | |
| Onboarding Tasks / New Hire Checklist | Not migrated (documented separately)lossy | Fully supported | |
| Time-Off Balances | Not migratedlossy | Fully supported | |
| Compensation (pay rate, pay type, currency) | Person Custom Fieldslossy | Fully supported | |
| Benefits Enrollment | Not migratedlossy | Fully supported | |
| Documents (offer letters, contracts, signed forms) | File attachments on Person or Applicationlossy | 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.
BambooHR gotchas
Undocumented API rate limits can trigger 503 errors
Per-employee pricing model requires active record count verification
API credentials must be sent on every request to avoid extra round trips
Custom field schema varies per account and requires manual inventory
Document and attachment exports are not covered by standard report exports
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 applicant inventory
We audit the source BambooHR account: active and inactive applicants across all job openings, pipeline stage names used, custom application fields, engagement history volume (notes, emails, scheduled activities), document attachments on applicant records, and any employee records that may also need migration. We produce a written migration scope document that explicitly lists what migrates, what migrates as informational custom fields, and what does not migrate with rationale. The scope document is the customer-facing agreement before any technical work begins.
Stage mapping and pipeline design
We inventory every BambooHR pipeline stage value used across all job openings and map them to Crelate pipeline stages. We create the Crelate pipeline template in a Crelate test environment, configure the stage names, status values, and any tags that correspond to BambooHR's custom categorization. This step requires customer input on which BambooHR stages map to which Crelate stages, particularly for stages like Rejected (BambooHR) that may map to multiple Crelate statuses depending on rejection timing.
Custom field creation in Crelate
We pre-create all required Crelate custom fields (on Person, Application, and Job Order) before any data import. This includes BambooHR compensation fields (if scoped), custom application fields, and any metadata fields (bamboohr_id__c for reconciliation, original_source__c for source attribution). Crelate supports drag-and-drop custom field placement on record layouts; we configure the field order to match the customer's priority for usability. Custom fields are deployed to the Crelate test environment first for validation before production.
Sandbox migration and reconciliation
We run a full migration into Crelate's test environment using production-like data volume. The customer's recruiting operations lead reconciles record counts (Persons in, Applications in, Job Orders in, Activities in), spot-checks 25-50 random Person records against the BambooHR source, and validates that pipeline stages and source attribution are correct. Any field mapping corrections, stage name adjustments, or custom field type issues surface here. Crelate's test environment migration is the gate before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Job Orders first (so that Application records have a parent to attach to), then Persons (People records created from BambooHR applicant data), then Applications (one per BambooHR applicant-to-job-link, pointing to the correct Person and Job Order), then Activities (notes, emails, interviews linked to the correct Person or Application). Document attachments migrate last, with per-record file retrieval from BambooHR's API and upload to the corresponding Crelate Person or Application. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and onboarding rebuild handoff
We freeze BambooHR recruiting writes during cutover and run a final delta migration of any applicants modified during the migration window. We then enable Crelate as the system of record for recruiting. We deliver the onboarding task chain inventory (reconstructed from BambooHR's new-hire checklist data) to the customer's recruiting operations team with recommendations for rebuilding in Crelate Tasks or a separate onboarding tool. We support a one-week hypercare window for reconciliation issues. We do not rebuild BambooHR onboarding workflows as Crelate tasks inside the migration scope; that is documented separately for manual rebuild.
Platform deep dives
BambooHR
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 BambooHR 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
BambooHR: Not publicly documented; BambooHR reserves the right to throttle with 503 responses.
Data volume sensitivity
BambooHR 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 BambooHR to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your BambooHR 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 BambooHR
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.