HRMS migration
Field-level mapping, validation, and rollback between Breathe and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Breathe
Source
BambooHR
Destination
Compatibility
9 of 10
objects map 1:1 between Breathe and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Breathe to BambooHR is a mid-market HRIS transition that requires explicit handling of five structural differences. Breathe stores documents in two UI-bound silos with no bulk export API, making document migration a manual step rather than an automated one. Leave balances in Breathe are calculated internally and must be independently verified against entitlement settings and approval records before loading to avoid carry-forward errors. BambooHR is US-centric and uses US employment forms; UK-specific fields such as National Insurance numbers, UK right-to-work schema, and statutory pay references require explicit mapping to BambooHR's custom field model rather than native fields. Performance review templates and historical review data migrate as structured records, but the review cycle definitions are configuration that requires rebuilding in BambooHR. Sickness entries and Breathe Learn completion records may fall outside the standard People Data Export if the customer is on a lower Breathe tier, requiring additional extraction steps identified during the pre-migration data audit.
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 Breathe 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.
Breathe
Employee
BambooHR
Employee
1:1Breathe Employees map to BambooHR Employees as the central record. The Breathe People Data Export provides the primary employee dataset including name, contact details, job role, department, start date, employment status, and emergency contacts. National Insurance numbers, UK right-to-work references, and other UK-specific fields have no native BambooHR equivalent and map to custom fields that we create in the destination before import. We use the employee's email address as the BambooHR dedupe key to prevent duplicate records on re-runs.
Breathe
Custom Fields
BambooHR
Custom Fields
1:1Breathe custom fields on the Employee record extract from the People Data Export as field-name and value pairs. We map each to an equivalent BambooHR custom field, flagging any fields with unsupported data types (multi-select, date calculations, formula fields) that require type conversion or truncation. Fields present in Breathe that have no mapping target in BambooHR are flagged in the pre-migration data audit for the customer's HR admin to decide whether to retain or drop.
Breathe
Absence / Leave records
BambooHR
Time Off
1:1Breathe annual leave, sick leave, and other absence types map to BambooHR Time Off records. Leave types (Annual Leave, Sick Leave, Other) are created as BambooHR Time Off Policies before record import. We verify leave balances independently by extracting entitlement settings and approval records and computing expected balances, then comparing against any pre-calculated balance fields in the export before loading. This resolves the common carry-forward error where Breathe's internal balance calculation is assumed to be accurate at a point-in-time.
Breathe
Sickness records
BambooHR
Time Off (Sick)
1:1Breathe sickness entries are a distinct record type linked to employees. We export the full sickness history including dates, return-to-work dates, reasons, and Fit Note references where present. Sickness records migrate as BambooHR Time Off entries under a Sick leave policy. Fit Note metadata (return-to-work dates, fitness-to-work declarations) maps to custom fields on the Time Off record because BambooHR does not have a native Fit Note field.
Breathe
Performance reviews
BambooHR
Performance Reviews
1:1Breathe Performance Review module records, review templates, and historical review data map to BambooHR Performance Management (Pro tier). We extract review cycle names, review periods, ratings, and reviewer comments as structured records. The review template structure and rating rubrics are configuration that does not migrate automatically; we deliver a written inventory of the existing templates with their structure so the customer's BambooHR admin rebuilds them in BambooHR's review builder.
Breathe
Onboarding
BambooHR
Onboarding / Employee setup tasks
1:1Breathe onboarding records track new-hire tasks, pending documents, and workflow steps. We extract the task list and completion status as structured Employee Custom Fields or a supplementary onboarding checklist document. Onboarding workflow definitions are configuration and do not migrate; we document the source workflow steps for the customer's admin to rebuild in BambooHR's onboarding module.
Breathe
Remuneration Report
BambooHR
Employee Compensation Fields
1:1Breathe provides a Remuneration Report covering salaries, additional payments, benefits, and auto-enrolment pension data via Reports > Payroll exports. We extract these as structured records and map salary, bonus, benefits, and pension contribution fields to BambooHR Employee fields and custom fields. Annual salary and pay frequency map to BambooHR's pay rate and pay frequency fields where supported. Auto-enrolment pension scheme and contribution percentages map to custom fields as BambooHR does not have a native UK pension scheme tracker.
Breathe
Documents (Company and Employee)
BambooHR
Employee Files
lossyBreathe stores Company documents and Employee documents in two separate UI sections with no bulk export API. We provide a guided checklist for the customer's HR admin to download documents from Company > Company Documents and Profile > More > Documents. Each file is attached to the corresponding BambooHR Employee record via the Files tab. Contract documents, right-to-work evidence, and offer letters attach directly; company-wide policy documents attach to a designated admin employee record or are stored in BambooHR's Company Files section if the destination account has this feature enabled.
Breathe
Breathe Learn (completion records)
BambooHR
Training / Custom Fields
1:1Breathe Learn completion records (GDPR awareness, health and safety, and other compliance training) may not be included in the standard People Data Export depending on the customer's Breathe tier and module configuration. We perform a pre-migration data audit against the customer's module list and flag any modules that require additional extraction steps. Completion records that export are mapped to BambooHR custom fields or a training completion log as a supplementary record.
Breathe
Employment History
BambooHR
Job History / Employment (Custom Fields)
1:1Breathe maintains employment history including previous job titles, department transfers, and salary changes as part of the Employee record timeline. We extract the employment history entries and map them to BambooHR Employee custom fields capturing job title, department, and employment status history with effective dates. BambooHR does not have a native employment history object, so we structure the data as dated entries in a custom field set.
| Breathe | BambooHR | Compatibility | |
|---|---|---|---|
| Employee | Employee1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| Absence / Leave records | Time Off1:1 | Fully supported | |
| Sickness records | Time Off (Sick)1:1 | Fully supported | |
| Performance reviews | Performance Reviews1:1 | Mapping required | |
| Onboarding | Onboarding / Employee setup tasks1:1 | Mapping required | |
| Remuneration Report | Employee Compensation Fields1:1 | Fully supported | |
| Documents (Company and Employee) | Employee Fileslossy | Not supported | |
| Breathe Learn (completion records) | Training / Custom Fields1:1 | Fully supported | |
| Employment History | Job History / Employment (Custom Fields)1: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.
Breathe gotchas
No bulk document export — manual download required
No direct migration path between Breathe accounts
People Data Export may omit data in non-standard modules
Leave balance carry-forward requires manual verification
Tier-gated features may limit export coverage
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
Pre-migration data audit and scope definition
We audit the source Breathe account across tier (Starter/Professional/Enterprise), active modules, custom fields, absence history depth, sickness record count, performance review history, and Breathe Learn module status. We produce a written data audit report listing every record type, record count, and module with a migration path status (automated, manual, or not available). The customer reviews and approves the scope before extraction begins. Any tier-gated modules are identified at this stage so the customer can upgrade or extract from the correct licensed module.
Schema design and custom field creation in BambooHR
We design the destination schema in BambooHR before any data moves. This includes creating all custom fields needed for UK-specific data (National Insurance number, pension scheme, Fit Note references, Breathe Learn completion flags) and mapping Breathe custom fields to their BambooHR equivalents with appropriate field types. We create the required Time Off policies (Annual Leave, Sick Leave, Other) to match Breathe's absence types. Time Off policies and custom fields are deployed into a BambooHR test account first for validation.
Leave balance verification
We extract entitlement settings, approval records, and any pre-calculated balance fields from Breathe independently. We compute expected current-year and carry-forward balances using the entitlement settings and approval history, then compare against the exported balance figures. Discrepancies are flagged to the customer's HR admin for resolution before the BambooHR import. This step prevents the most common day-one migration error: employees logging in to find their holiday balance is wrong.
Guided document archival checklist delivery
Because Breathe has no bulk document export API, we deliver a structured checklist identifying every document section to visit in the Breathe UI. The checklist lists Company Documents and each Employee's Profile > More > Documents section, with the document name and associated employee. The customer's HR admin works through the checklist in parallel with the data migration. We receive the downloaded files, rename them per a naming convention (EmployeeName_DocumentType_Date), and bulk-upload them to the corresponding BambooHR Employee records as the final migration step.
Production migration in dependency order
We run production migration in record-dependency order: Employees first (establishing the central record with all core fields and custom fields mapped), Time Off policies (ensuring the leave types exist before absence records are loaded), Absence records (with independently verified balances), Sickness records, Remuneration data, and Performance review history. Each phase emits a row-count reconciliation report comparing source record count to destination record count before the next phase begins. Document files are uploaded last once all employee records exist to attach them to.
Cutover, validation, and configuration rebuild handoff
We freeze writes to the Breathe account during cutover, run a final delta migration of any records modified during the migration window, then enable BambooHR as the system of record. We deliver the performance review template inventory and onboarding workflow inventory to the customer's HR admin for rebuild. We support a one-week post-cutover window where we resolve any record-level reconciliation issues. We do not rebuild Breathe Learn, performance review templates, or onboarding workflows as part of the data migration scope; these are configuration tasks documented for the customer's admin team.
Platform deep dives
Breathe
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 Breathe 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
Breathe: Not publicly documented.
Data volume sensitivity
Breathe 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 Breathe to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Breathe 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 Breathe
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.