HRMS migration
Field-level mapping, validation, and rollback between Folks HR and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Folks HR
Source
BambooHR
Destination
Compatibility
9 of 11
objects map 1:1 between Folks HR and BambooHR.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Folks HR to BambooHR is a mid-size HRIS migration for Canadian SMBs looking to move from a 30-module platform to one with stronger employee self-service and a more intuitive interface. The source side exports employee profiles, leave request history, time entries, performance review cycles, recruitment candidates, and document attachments. We handle the Folks HR API rate limit of 60 requests per minute with batch throttling, retrieve documents one at a time (no bulk endpoint exists), and preserve leave balance snapshots rather than accrual transaction histories since those calculations live server-side in Folks HR. BambooHR's custom field builder lets us create destination fields without a support ticket, but field type mapping (dropdown vs text vs date) requires upfront schema review during scoping. Workflows, recruitment pipeline automations, and onboarding task sequences do not migrate as code; we deliver a written inventory for your admin to rebuild in BambooHR's workflow builder. Leave balance projections remain an operational limitation in BambooHR as well, which we flag explicitly during scoping.
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 Folks HR 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.
Folks HR
Employee
BambooHR
Employee
1:1Folks HR employee profiles (contact info, job title, department, start date, employment status, salary history, dependents) map to BambooHR Employee records. The mapping uses email as the primary dedupe key. Job title maps to BambooHR's jobTitle field; department resolves via the Departments lookup. Employment status (active, inactive, terminated) maps to BambooHR's hireDate, terminationDate, and employmentHistoryStatus fields. Salary history is sensitive data; we transfer only the most recent compensation figure unless the customer explicitly requests full history and confirms compliance with their data retention policy.
Folks HR
Leave Request
BambooHR
Time Off Request
1:1Folks HR leave requests (type, start date, end date, status, approver, notes) map to BambooHR Time Off Requests. The leave type from Folks HR (vacation, sick, personal, etc.) maps to the corresponding BambooHR time-off type configured in the destination. Approved, pending, and denied statuses transfer directly. We link each request to the employee record via email-based lookup resolution.
Folks HR
Leave Balance (snapshot)
BambooHR
Time Off Balance
lossyFolks HR does not expose accrual transaction history via API—only the current balance snapshot per employee per leave type. We export those snapshots and write them as initial balance values in BambooHR's time-off module. Because BambooHR has its own accrual engine, we set the initial balance and enable the accrual rule going forward rather than trying to replicate server-side accrual logic. We document this gap in the migration checklist so HR admins can validate year-end carry-forwards against source records before BambooHR's engine takes over.
Folks HR
Time Entry
BambooHR
Time Tracking Entry
1:1Folks HR time entries (date, hours, cost code, employee) map to BambooHR time tracking entries. Cost code assignments from Folks HR become cost code custom fields in BambooHR. Historical timesheet records transfer with full date, hours, and cost-code fidelity. We batch time entry imports to stay within the Folks HR 60 requests per minute limit using exponential backoff across multi-session exports.
Folks HR
Performance Review
BambooHR
Performance Review
1:1Folks HR performance review cycles, review forms, ratings, and reviewer comments map to BambooHR Performance Reviews. The reviewer assignment (manager, peer, direct report for 360-degree reviews) migrates to BambooHR's review participant model. Review status (draft, in-progress, completed) transfers directly. We preserve the review cycle name and review period dates as metadata on the BambooHR review record.
Folks HR
Recruitment Candidate
BambooHR
Job Applicant
1:1Folks HR candidates (application status, resume, interview scores, hiring stage) map to BambooHR Job Applicants if BambooHR ATS is in scope. If the customer does not license BambooHR ATS, candidates migrate as Employee records with a custom candidate_status field preserving the last pipeline stage. Resume files are retrieved individually from Folks HR (no bulk download endpoint) and uploaded to BambooHR as Employee Files. We sequence candidate migration after employee records to resolve the hire/no-hire outcome against existing employee IDs.
Folks HR
Document
BambooHR
Employee File
1:1Folks HR employee documents (contracts, tax forms, certifications) and recruitment attachments (offer letters, signed agreements) migrate as BambooHR Employee Files. Each file must be retrieved individually from Folks HR via its file ID—no bulk download endpoint exists. For large archives (hundreds of files), we implement a sequential retrieval loop with backoff and surface file count to the customer during scoping so they can prioritize high-value documents (most recent contracts, active certifications) first. We preserve the original filename and MIME type.
Folks HR
Department
BambooHR
Department
1:1Folks HR departments (name, code, manager assignment) map directly to BambooHR Departments. The manager assignment resolves by matching the manager's email against the employee lookup we build during the employee migration phase. Department codes transfer as a custom field if BambooHR's native department model does not include a code field.
Folks HR
Custom Field (Employee Profile)
BambooHR
Custom Field
lossyFolks HR custom fields on employee profiles map to BambooHR custom fields created via the BambooHR Custom Field Builder. Field type mapping requires review: Folks HR dropdown options become BambooHR dropdown lists, date fields map to date fields, and text fields map to text fields. We pre-create all destination custom fields before the employee import phase so the import does not fail on unknown field errors. Any Folks HR custom field without a clear BambooHR equivalent becomes a text field with the original value preserved.
Folks HR
User Account and Role
BambooHR
User and Access Level
1:1Folks HR user accounts with role-based permissions (admin, manager, employee) map to BambooHR user accounts with corresponding access levels. The email address is the primary lookup. We preserve the role assignment as a custom field during import and configure BambooHR's permission set structure post-migration. Note that role naming conventions differ between platforms; an admin in Folks HR maps to an employee with full BambooHR admin access, not a specific role name match.
Folks HR
Expense Report
BambooHR
Expense Report
1:1Folks HR expense reports with line items, amounts, and approval status export via the API. Receipts must be downloaded individually (no bulk download). BambooHR does not have a native expense report module in its core product; expense data migrates as a CSV attachment to the employee record or as a separate spreadsheet handoff depending on whether the customer uses a third-party expense tool post-migration. We flag this gap clearly and recommend a dedicated expense management integration if the customer's finance team requires receipt-level expense tracking.
| Folks HR | BambooHR | Compatibility | |
|---|---|---|---|
| Employee | Employee1:1 | Fully supported | |
| Leave Request | Time Off Request1:1 | Fully supported | |
| Leave Balance (snapshot) | Time Off Balancelossy | Fully supported | |
| Time Entry | Time Tracking Entry1:1 | Fully supported | |
| Performance Review | Performance Review1:1 | Fully supported | |
| Recruitment Candidate | Job Applicant1:1 | Fully supported | |
| Document | Employee File1:1 | Fully supported | |
| Department | Department1:1 | Fully supported | |
| Custom Field (Employee Profile) | Custom Fieldlossy | Fully supported | |
| User Account and Role | User and Access Level1:1 | Fully supported | |
| Expense Report | Expense Report1: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.
Folks HR gotchas
API rate limit of 60 requests per minute
Document attachments require individual retrieval
No SSO forces email-based two-factor login
Leave balance calculations not exposed via API
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
Scoping and schema inventory
We audit the Folks HR instance for employee count, custom field definitions (with explicit field-type notes), leave type configuration, time entry volume, performance review cycle count, recruitment pipeline stage names, and document archive size. We pair this with a BambooHR destination review: which tier, which add-ons (ATS, Performance, Payroll), and which custom fields need pre-creation. The scoping output is a written migration checklist with record counts per object, a custom field type mapping table, and a leave balance validation plan. We flag the accrual transaction gap, the document retrieval volume, and the expense report limitation at this stage.
Custom field creation and leave policy configuration
We create all destination custom fields in BambooHR using the Custom Field Builder, matching each Folks HR custom field definition to the appropriate BambooHR field type. Leave types and accrual policies are configured in BambooHR's time-off settings with the customer's chosen accrual rules. This step happens in a BambooHR sandbox or trial environment first for validation. We do not proceed to data migration until the schema is signed off by the customer's HR admin.
Employee data export and transformation
We export all Folks HR employee records via the REST API with 60 requests per minute throttling and batch chunking across multiple export sessions. Each record is transformed: email address becomes the primary key, job title maps to BambooHR jobTitle, department resolves via the department lookup, and employment status maps to hireDate and terminationDate. Custom field values are mapped using the type-mapped schema from step one. We run a reconciliation count (records exported vs records expected) before moving to validation.
Leave balance snapshot and time entry migration
We export current leave balance snapshots per employee per leave type and write them as initial balance values in BambooHR. Time entries (historical timesheet data) are exported in date-sorted batches and imported into BambooHR time tracking. We document the accrual gap explicitly: future accruals will be computed by BambooHR's engine, not replicated from Folks HR. The customer HR admin validates a sample of balance snapshots against the Folks HR source before BambooHR's accrual engine is activated.
Document retrieval and file migration
We retrieve employee documents individually from Folks HR by file ID, preserving original filenames and MIME types. For large archives, we sequence downloads with backoff to avoid the 60 requests per minute limit and surface progress to the customer. Documents are uploaded to the corresponding BambooHR Employee Files section. Candidate documents (resumes, offer letters) are uploaded to the applicant record if BambooHR ATS is in scope, or to the hired employee's file section if the candidate was converted.
Performance review and recruitment data migration
Performance review cycles, reviewer assignments, ratings, and comments are exported from Folks HR and imported into BambooHR Performance Reviews. Recruitment candidate pipelines are migrated to BambooHR Job Applicants if ATS is licensed, preserving stage history and interview scores. If ATS is not in scope, candidates migrate as employee records with a candidate_status custom field retaining the last pipeline stage.
Cutover, validation, and workflow handoff
We freeze writes in Folks HR during cutover, run a final delta export of any records modified during the migration window, then close the Folks HR read access. We deliver a reconciliation report comparing source record counts to destination record counts per object. We provide a written inventory of Folks HR workflows, recruitment pipeline automations, and onboarding task sequences that require rebuild in BambooHR's workflow builder. We support a 72-hour hypercare window for validation issues. We do not rebuild workflows or automations as a standard migration deliverable.
Platform deep dives
Folks HR
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Folks HR and BambooHR.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Folks HR and BambooHR.
Object compatibility
All 7 core objects map 1:1 between Folks HR and BambooHR.
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
Folks HR: 60 requests per minute per organization.
Data volume sensitivity
Folks HR 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 Folks HR to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Folks HR 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 Folks HR
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.