HRMS migration
Field-level mapping, validation, and rollback between ADP Workforce Now and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
ADP Workforce Now
Source
BambooHR
Destination
Compatibility
8 of 10
objects map 1:1 between ADP Workforce Now and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ADP Workforce Now to BambooHR is a migration from an enterprise HCM suite into a SMB-focused HRIS. ADP Workforce Now structures data around a Worker object with separate Deduction Instructions, Benefit Enrolments, and Time Off APIs; BambooHR consolidates these into a single Employee record with typed Employment History, Benefits, and Time Off sections. We sequence the export from ADP using its Worker Management API, Validation Tables, and Benefits endpoints, then map compensation, deduction, and accrual records into BambooHR's employee schema. We flag that ADP's API does not expose Involuntary Withholding Orders (garnishments) or Company Loans, that Worker Custom Fields are write-only (no read endpoint), and that Talent Management modules are inaccessible via the public API. BambooHR's payroll module does not include ADP's tax-filing penalty guarantee or multi-state compliance automation, so companies migrating from ADP Select or Plus tiers should evaluate BambooHR Payroll Add-on coverage before cutover. Workflows, automations, and Talent Management records do not migrate as code; we deliver a written inventory for the customer's admin to 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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a ADP Workforce Now 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.
ADP Workforce Now
Worker
BambooHR
Employee
1:1ADP Workers map directly to BambooHR Employees. The Worker identifiers (associateOID) become the BambooHR employee ID field. We map Worker Person demographics (legal name, date of birth, gender, address, contact information) into BambooHR's Employment Info and Personal Info tabs. Employment status, hire date, termination date, and worker type (employee, contractor) map to BambooHR employment fields. The ADP hire date (businessCommunication.terminationDateDetails is used for term date if present) maps to BambooHR's hireDate and terminationDate fields. ADP's Worker Status (Active, Inactive) maps to BambooHR's employmentStatus field.
ADP Workforce Now
Location
BambooHR
Location
1:1ADP Locations map to BambooHR Locations. ADP's Location validation table exposes locationCode, locationName, address, and status. We map these to BambooHR Location records and use the location association as the department proxy since BambooHR does not have a separate Departments object. For organizations with distinct ADP Locations and Departments (common in multi-state employers), we create a BambooHR Location per ADP Location and use the name field to encode both location and department context. Location assignment per Worker migrates to BambooHR's employee.location field.
ADP Workforce Now
Department
BambooHR
Location (via naming convention)
1:1ADP Departments map to BambooHR Locations with a naming convention that preserves the department hierarchy. Since BambooHR Locations function as the primary organizational unit and there is no separate Departments object, we map ADP departmentCode and departmentName into BambooHR Location records using a {department_code} - {department_name} format. If the organization uses a flat org structure, we use a single BambooHR Location per ADP Department Code. If Locations are used for geographic entities and Departments for functional units, we recommend using BambooHR's custom fields feature on the Location object to distinguish between location-type and department-type records.
ADP Workforce Now
Payroll Deduction Instruction (Voluntary)
BambooHR
Benefit or Deduction
1:1ADP voluntary Deduction Instructions (health, dental, vision, retirement, FSA, HSA contributions) map to BambooHR Benefit records with the deduction type preserved. We map deductionCode, deductionDescription, and the deduction amount or percentage. BambooHR supports benefit plans with coverage tiers (employee only, employee plus spouse, employee plus children, family). We map ADP coverage election codes to BambooHR coverage tier values. Pre-tax and post-tax designations from ADP map to BambooHR's deductionType field (before-tax, after-tax, or subject to taxes). Deduction effective dates map to benefit start dates in BambooHR.
ADP Workforce Now
Payroll Deduction Instruction (Involuntary)
BambooHR
Benefit (manual flag)
lossyADP Involuntary Withholding Orders (garnishments) and Company Loans are explicitly excluded from the Deduction Instruction API and cannot be exported programmatically. We flag all active garnishment orders during scoping, document the garnishment type, court order reference, withholding amount or percentage, and maximum deduction threshold for each affected employee. We deliver a manual reconciliation checklist that the customer's BambooHR admin uses to recreate each garnishment order as a manual deduction record in BambooHR after migration. This step requires HR involvement and cannot be automated.
ADP Workforce Now
Benefit Enrolment
BambooHR
Benefit
1:1ADP Benefit Plan enrolments map to BambooHR Benefit records. We map plan name, coverage level, employer contribution, employee contribution, and enrollment date. ADP's beneficiary and dependent data (Beneficiaries and Benefit Dependents endpoints) map to BambooHR's dependent fields on each benefit record. We note that BambooHR supports dependents on benefit records; if dependents are not enrolled in BambooHR as distinct records, we create a custom field on the Benefit record to capture beneficiary information.
ADP Workforce Now
Time Off Request
BambooHR
Time Off
1:1ADP Time Off history maps to BambooHR Time Off records. We map time off type, request dates, approval status, and accrued balance at the time of migration. The ADP Time Off Requests API exposes current balances and leave event records. We map each leave event as a BambooHR Time Off entry with the original date, type, and hours. Leave plan configurations (accrual rates, carryover limits, negative balance rules) from ADP do not migrate programmatically; we deliver a leave plan configuration document listing each ADP leave plan with its settings so the admin can configure corresponding leave types in BambooHR.
ADP Workforce Now
Compensation
BambooHR
Employment History
1:1ADP compensation data (pay rate, pay frequency, compensationPackage entries) maps to BambooHR Employment History records. We map the most recent pay rate and pay frequency into BambooHR's payRate and payRateType fields. If ADP contains historical compensation changes, we map these as Employment History entries with effective dates. ADP's compensationCurrencyCode maps to BambooHR's currency field. Bonuses, commissions, and one-time compensation entries map to BambooHR's pay extras as one-time entries with effective dates. Note that BambooHR's core pay fields support one active pay rate; historical compensation is stored as separate Employment History entries.
ADP Workforce Now
Worker Custom Field
BambooHR
Custom Field
lossyADP Worker Custom Fields (8 types: amount, code, date, indicator, number, percentage, string, telephone) applied at the Worker and Worker Person levels cannot be read via the ADP API. During scoping, we request that the customer provide a reference file (CSV export from ADP reports) containing custom field values for each Worker. We map each ADP custom field to a BambooHR custom field of the corresponding type. String fields map to BambooHR Text custom fields; indicator maps to BambooHR Checkbox; date maps to Date; number and percentage map to Number; amount maps to Currency; code maps to Text. The customer must validate custom field values against the reference file post-migration.
ADP Workforce Now
Validation Table (Job Titles, Cost Numbers)
BambooHR
Location or Custom Field
1:1ADP Validation Tables store domain values for Job Titles, Cost Numbers, Locations, and other reference data. We map Job Titles from ADP's validation table to BambooHR's job title field on the Employee record. Cost Numbers (project or department cost codes) from ADP do not have a direct BambooHR equivalent; we map these to a BambooHR custom text field on the Employee record for cost allocation tracking. If the organization uses multiple cost numbers per employee (labor distribution), we create a custom field with multiple values or recommend using BambooHR's time tracking add-on for granular cost allocation.
| ADP Workforce Now | BambooHR | Compatibility | |
|---|---|---|---|
| Worker | Employee1:1 | Fully supported | |
| Location | Location1:1 | Fully supported | |
| Department | Location (via naming convention)1:1 | Fully supported | |
| Payroll Deduction Instruction (Voluntary) | Benefit or Deduction1:1 | Fully supported | |
| Payroll Deduction Instruction (Involuntary) | Benefit (manual flag)lossy | Fully supported | |
| Benefit Enrolment | Benefit1:1 | Fully supported | |
| Time Off Request | Time Off1:1 | Fully supported | |
| Compensation | Employment History1:1 | Fully supported | |
| Worker Custom Field | Custom Fieldlossy | Fully supported | |
| Validation Table (Job Titles, Cost Numbers) | Location or Custom Field1: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.
ADP Workforce Now gotchas
ADP API access requires a signed developer agreement
API rate limits are per-client and not publicly documented
Worker Custom Fields are write-only via the ADP API
Reports-based ADP integrations have known sync reliability issues
Involuntary Withholding Orders and Company Loans are not supported in the 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 ADP developer agreement
We conduct a discovery session to audit the ADP Workforce Now instance: headcount, active Workers, Locations, Departments, Deduction Instructions (voluntary and involuntary), Benefit Plan enrolments, Time Off records, and Worker Custom Fields in use. We confirm whether Involuntary Withholding Orders or Company Loans are active. We verify the ADP developer agreement status — ADP requires a signed developer agreement before API authentication, which can take days to weeks depending on procurement cycles. We work with the customer's ADP representative to accelerate this step. The scoping output is a written migration scope document listing every object, field mapping, exclusion (garnishments, company loans, Talent Management), and a request for the custom field reference file.
Data extraction and reference file validation
We extract data from ADP using the Worker Management API, Validation Tables API, Benefits API, and Time Off Requests API. For each Worker, we retrieve demographics, employment status, locations, departments, compensation, deductions, and benefit enrolments. We validate the ADP export against the customer's reference file for custom field values, flagging any discrepancies. We validate the ADP Locations and Departments against BambooHR Locations to confirm the mapping strategy (one Location per ADP Location, department naming convention, or split). We extract a current Time Off balance snapshot from ADP and confirm the leave type taxonomy matches the BambooHR leave type configuration.
Schema configuration in BambooHR
We configure BambooHR as the destination: Locations (based on ADP Locations and Departments), leave types (mapped from ADP time off types with accrual settings documented for manual configuration), benefit records structure (mapped from ADP deduction and benefit plans), and custom fields (created in BambooHR to match ADP custom field names and types). We configure BambooHR's employment fields to align with ADP Worker status values. We do not configure BambooHR payroll tax withholding settings — this is a customer admin task post-migration for companies adding BambooHR Payroll. We set up a test employee import to validate field mapping before the full migration begins.
Migration run in dependency order
We run the production migration in record-dependency order. First, Locations (the foundational org unit in BambooHR). Second, Employees with core demographics, employment status, and job title. Third, compensation and benefit enrolments attached to employees. Fourth, time-off balances. Fifth, ADP custom field values (validated against the reference file). We handle garnishment orders by flagging them in a separate reconciliation report rather than importing — the customer recreates these manually. We handle Talent Management by documenting the existence of records for each employee in a separate handoff file. Each phase emits a row-count reconciliation report comparing ADP source records to BambooHR imported records.
Cutover, validation, and handoff
We freeze ADP write access during cutover, run a final delta migration of any records modified during the migration window, and then validate the BambooHR instance against ADP reports. We spot-check 25-50 employee records for data accuracy across demographics, compensation, benefits, and time-off. We deliver the garnishment reconciliation checklist, the leave plan configuration document, the custom field validation report, and the Talent Management handoff file to the customer's BambooHR admin. We support a one-week hypercare window to resolve reconciliation issues. We do not configure BambooHR payroll tax withholding, rebuild ADP workflows, or set up BambooHR automations inside the standard migration scope.
Platform deep dives
ADP Workforce Now
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between ADP Workforce Now and BambooHR.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ADP Workforce Now and BambooHR.
Object compatibility
All 7 core objects map 1:1 between ADP Workforce Now 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
ADP Workforce Now: Per-client rate limits and concurrency limits — specific thresholds not publicly documented.
Data volume sensitivity
ADP Workforce Now 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 ADP Workforce Now to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your ADP Workforce Now 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 ADP Workforce Now
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.