HRMS migration
Field-level mapping, validation, and rollback between Loxo and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Loxo
Source
BambooHR
Destination
Compatibility
9 of 12
objects map 1:1 between Loxo and BambooHR.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Loxo to BambooHR is an ATS-to-HRIS migration that requires acknowledging a fundamental schema difference. Loxo stores recruiting data: Candidates with outreach history, Jobs with pipeline stages, Deals for client engagements, and Placements linking placed candidates to requisitions. BambooHR is an HRIS built around Employees as the primary object, with hiring and onboarding as secondary workflows. We map Loxo Candidates to BambooHR Employees, preserving work history, tags, and communication history where the target schema allows. ATS-native objects like Deals, custom pipeline stages, Loxo Outreach sequences, and Placements do not have direct BambooHR equivalents; we store these as custom fields, document them as reference notes, or flag them for rebuild in a dedicated ATS post-migration. This migration is best suited for in-house teams that used Loxo primarily as an applicant tracking system and are consolidating onto BambooHR for HRIS and light recruiting, rather than agencies that rely on Loxo's CRM and deal-tracking capabilities.
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 Loxo object lands in BambooHR, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Loxo
Candidate
BambooHR
Employee (primary)
1:1Loxo Candidates map to BambooHR Employees with name, email, phone, address, work history, education, and skills preserved as standard or custom fields. Loxo candidate status (active, placed, rejected) migrates to a BambooHR custom field loxo_candidate_status__c. Communication history (emails, calls, notes) migrates to BambooHR Employee Notes if the volume is modest; large histories may be scoped to the most recent 12 months to avoid import performance issues. Candidates who have no existing employee relationship in BambooHR are loaded as Applicants first, then promoted to Employees during onboarding if applicable.
Loxo
Contact (Candidate-facing)
BambooHR
Employee
1:1Loxo Contacts tagged or categorized as candidate-facing map to BambooHR Employees using the same field mapping as Candidates. The distinction between candidate and employee contact in Loxo is preserved via a loxo_contact_type__c custom field. All contact properties (phone, email, company association) transfer to the corresponding BambooHR Employee fields.
Loxo
Contact (Client-facing)
BambooHR
Employee or Company field
lossyLoxo Contacts tagged as client-facing have no native home in BambooHR's HRIS model. We map these to a BambooHR Employee record only if the contact is also an employee. If the client contact is external (not employed by the company), we store them as a custom Employee field loxo_client_contact__c with the contact name and a reference to the associated Loxo Job or Deal. The customer decides during scoping whether to migrate external client contacts or exclude them and manage them in a separate CRM.
Loxo
Job
BambooHR
Job Opening (BambooHR ATS add-on) or Employee custom field
lossyLoxo Jobs have no standard BambooHR equivalent unless BambooHR's optional ATS add-on is active. If the ATS add-on is not in scope, we store Loxo Job name, status, and requirements as a custom field on the associated Employee record (the hired candidate) and document the full job list separately for the customer's admin to recreate in their ATS of choice. If BambooHR ATS is active, Loxo Jobs map to BambooHR Job Openings with stage, description, and assigned hiring manager migrated.
Loxo
Deal (Pipeline)
BambooHR
No direct equivalent
1:1Loxo Deals tracking client assignments and revenue have no direct BambooHR equivalent. BambooHR is an HRIS, not a CRM. We do not migrate Deals as structured records. If a Deal references a placed candidate, we link the associated Employee record to the Loxo Deal name via a custom field loxo_associated_deal__c for reference. The customer receives a written Deal inventory listing every Loxo Deal with its stage, value, owner, and associated contacts for manual re-creation in their CRM or pipeline management tool.
Loxo
Placement
BambooHR
Employee hire date and job title
1:1Loxo Placements recording placed candidates against a Job and Deal map to BambooHR Employee fields: hire date, start date, job title, and compensation details migrate as standard or custom Employee fields. The association to a specific Loxo Job and Deal is preserved in loxo_original_job__c and loxo_associated_deal__c custom fields for audit trail. BambooHR does not have a dedicated Placement object, so the full placement history (multiple placements per candidate) requires custom fields or a separate reference document.
Loxo
Client Company
BambooHR
Company field or Employee custom field
lossyLoxo Client Companies map to BambooHR's Company field on the Employee record if the parent organization is the employer. If Loxo Client Companies represent external organizations (not the employer), they are stored as a custom field loxo_client_company__c on the associated Employee. Company billing information from Loxo does not map to BambooHR and is documented separately for the customer's finance or operations team.
Loxo
Pipeline Stages
BambooHR
No direct equivalent (HRIS lacks pipeline model)
1:1Loxo Pipeline stages are a recruiting/CRM concept with no BambooHR equivalent. We extract the full stage list from Loxo during discovery and document it as a reference table for the customer's admin. If BambooHR ATS is active, stages may map to Job Opening statuses. Otherwise, stage history is stored as a custom field on the Employee record if needed for placement audit.
Loxo
Custom Fields
BambooHR
Custom Employee Fields
1:1Loxo custom fields on Candidates, Contacts, Jobs, and Deals map to BambooHR custom Employee fields. We extract the full custom field schema (name, type, options) from Loxo during discovery and map each to the equivalent BambooHR field type: text, dropdown, date, number, or checkbox. Custom fields on Jobs and Deals without a BambooHR equivalent are stored as Employee custom fields or documented separately. Field naming conventions differ between platforms; we apply a customer-confirmed naming prefix to avoid collisions with BambooHR system fields.
Loxo
Activities (Emails, Calls, Texts)
BambooHR
Employee Notes
1:1Loxo communication history (emails, calls, SMS) logged against Candidates and Contacts migrates to BambooHR Employee Notes. Each activity type is prefixed in the note body for identification. We scope activity history to the most recent 12-24 months to reduce import volume; older histories are exported as a separate CSV reference file. BambooHR's note model does not support threaded conversations, so the original threading context is flattened into a chronological list per employee.
Loxo
Tags and Labels
BambooHR
Tags
1:1Loxo tags on Candidates, Contacts, and Jobs migrate to BambooHR Tags. We export all tag associations, resolve duplicates, and apply tags to the corresponding Employee records in BambooHR. Tags that do not exist in BambooHR are created during import. Tag-based candidate segmentation from Loxo is preserved as a tag list on each Employee for filtering and reporting.
Loxo
Attachments (Resumes, Documents)
BambooHR
Employee Files
1:1Binary attachments (resumes, cover letters, client agreements) are downloaded from Loxo via API and uploaded to BambooHR Employee Files attached to the corresponding Employee record. Resume files attach to the Employee's application or document storage section. Large file counts may extend the migration timeline; we confirm file volume during discovery.
| Loxo | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate | Employee (primary)1:1 | Fully supported | |
| Contact (Candidate-facing) | Employee1:1 | Fully supported | |
| Contact (Client-facing) | Employee or Company fieldlossy | Fully supported | |
| Job | Job Opening (BambooHR ATS add-on) or Employee custom fieldlossy | Fully supported | |
| Deal (Pipeline) | No direct equivalent1:1 | Fully supported | |
| Placement | Employee hire date and job title1:1 | Fully supported | |
| Client Company | Company field or Employee custom fieldlossy | Fully supported | |
| Pipeline Stages | No direct equivalent (HRIS lacks pipeline model)1:1 | Mapping required | |
| Custom Fields | Custom Employee Fields1:1 | Mapping required | |
| Activities (Emails, Calls, Texts) | Employee Notes1:1 | Mapping required | |
| Tags and Labels | Tags1:1 | Fully supported | |
| Attachments (Resumes, Documents) | Employee Files1:1 | Mapping required |
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.
Loxo gotchas
API returns 403 on trailing spaces in URL parameters
Outreach campaign automation not available via API
Duplicate candidate profiles for multi-job candidates
Loxo Connect email boundary risk
Pricing discrepancy between published tiers and actual invoices
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
Pair-specific challenges
Migration approach
Discovery and ATS-to-HRIS scope definition
We audit the Loxo account across objects: Candidate volume, duplicate candidate counts, Job count and status, Deal volume and pipeline stage count, Placement records, custom field schemas on each object, engagement history volume and age, and tag usage. We confirm with the customer whether BambooHR ATS add-on is active, whether they plan to use a separate ATS post-migration, and whether client-facing Contacts are in scope. The discovery output is a written migration scope document that explicitly lists which Loxo objects map to BambooHR, which become custom fields, and which are documented for rebuild.
Duplicate candidate deduplication and field schema mapping
We run Loxo's API to extract all Candidates and identify duplicates by email address. We present the customer with a deduplication plan: merge into one Employee record per person, or load separate Employee records with a link field. We simultaneously extract the full custom field schema from Loxo (field name, type, options) and map each to the equivalent BambooHR custom field type. Field naming is standardized against BambooHR's conventions to avoid collisions with system fields.
Sample migration and schema validation in BambooHR sandbox
We run a test migration of a representative subset (50-100 Employee records with attached notes, tags, and files) into BambooHR using the production target domain. The customer's HR admin validates field accuracy, custom field rendering, and attachment access. Any field mapping corrections, data format issues, or validation rule conflicts surface here before production migration begins. This step also confirms that BambooHR's field type enforcement is satisfied by the transformed data.
Full migration in dependency order
We execute production migration in record-dependency order: Employees first (all candidates deduplicated and mapped), then Employee custom fields, then Notes and activity history, then Tags and attachments. Custom field data for Jobs, Deals, and Placements attaches to the corresponding Employee record as reference fields. Each phase emits a row-count reconciliation report. We use BambooHR's REST API with rate-limit handling and exponential backoff. The delta window (records created or modified during migration) is captured as a final incremental run before cutover.
Deal and sequence inventory handoff
We deliver the written Deal inventory listing every Loxo Deal with its stage, value, owner, and associated contacts. We deliver the Loxo Outreach sequence inventory documenting each active campaign's cadence, steps, and trigger logic. Both documents are organized for the customer's admin to re-create deal tracking in a CRM (Salesforce, HubSpot, or Pipedrive) and outreach sequences in a dedicated sales engagement tool (Salesloft, Outreach, or a new ATS with built-in sequencing). This is not a migration of these objects; it is a reference handoff.
Cutover, validation, and go-live support
We freeze Loxo write access during cutover, run a final delta migration of any records modified during the window, then mark BambooHR as the system of record. We deliver a reconciliation report comparing Loxo record counts against BambooHR Employee counts and flag any discrepancies. We support a one-week hypercare window for the customer's team to report data issues. We do not rebuild Loxo Workflows, Loxo Outreach sequences, or BambooHR reports and dashboards as part of the standard migration scope.
Platform deep dives
Loxo
Source
Strengths
Weaknesses
BambooHR
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 Loxo and BambooHR.
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
Loxo: Not publicly documented.
Data volume sensitivity
Loxo 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 Loxo to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Loxo to BambooHR migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Loxo
Other ways to arrive at BambooHR
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.