HRMS migration
Field-level mapping, validation, and rollback between Aotal and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Aotal
Source
BambooHR
Destination
Compatibility
6 of 11
objects map 1:1 between Aotal and BambooHR.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Aotal and BambooHR occupy different positions in the HRIS landscape. Aotal is a talent-management platform built for New Zealand businesses with deep recruitment, onboarding, performance, and learning modules. BambooHR is a US-founded HRIS targeting small and mid-market companies globally with employee records, onboarding checklists, time-off management, and optional ATS and performance add-ons. The structural gap between a talent-management data model and an HRIS data model means the migration requires careful object remapping: Aotal competency profiles and role histories have no direct BambooHR equivalent and land as custom fields, while Aotal learning records require a separate Learning Management System recommendation if the customer needs structured course and curriculum data post-migration. We sequence the load to respect BambooHR's dependency chain (Department before Employee, Employee before Performance Review), use BambooHR's field-request API model to pull only the fields present in the source export, and handle the ~100 req/min rate limit with exponential backoff. Workflows, onboarding workflows, and performance review cycles do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in BambooHR's builder.
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 Aotal 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.
Aotal
Employee
BambooHR
Employee
1:1Aotal employee records map to BambooHR Employee. The Aotal employee record contains personal data, employment dates, and job assignments. We map firstName, lastName, workEmail, hireDate, and terminationDate directly. Any Aotal custom employee fields migrate to BambooHR custom fields (referenced by field ID via GET /v1/meta/fields). BambooHR's field-request model means we must specify field IDs explicitly during migration rather than receiving all fields by default.
Aotal
Department
BambooHR
Department
1:1Aotal Department records map to BambooHR Department. Department is the parent entity for Employee in BambooHR's org hierarchy. We load Departments first in the migration sequence so that the Department ID reference is satisfied when Employees are inserted. Aotal's multi-level department hierarchy (parent and child departments) maps to BambooHR's flat department structure with a parentDepartment field if the destination account supports it.
Aotal
Role
BambooHR
Job Title
lossyAotal Role records carry job title, effective start date, and end date for role history tracking. BambooHR does not natively store role history with effective dates. We map the current active role to the Employee's jobTitle field and preserve historical role assignments in a custom multi-value field or linked custom object if the customer requests full audit trail reconstruction. Effective-date sequencing is maintained by loading the most recent active role first.
Aotal
Competency Profile
BambooHR
Custom Fields
1:manyAotal competency profiles (skill ratings, competency assessments, proficiency levels) have no direct BambooHR equivalent. We split the competency data: numeric ratings map to custom number fields on the Employee record; text-based competency names and descriptions map to custom text fields or a custom object with an Employee lookup. The customer chooses between in-record custom fields (simpler, fewer lookups) or a competency custom object (more scalable for complex matrices) during scoping.
Aotal
Performance Review Cycle
BambooHR
Performance (BambooHR Pro/Elite)
1:1Aotal performance review cycles (goals, ratings, review dates, reviewer assignments) map to BambooHR Performance Management when the destination account includes the Performance add-on. Review status, rating scores, and feedback comments migrate as custom fields if the BambooHR Performance module is not included in the customer's plan. We preserve review dates as ActivityDate equivalents for audit ordering.
Aotal
Learning Record
BambooHR
External Reference or Custom Field
lossyAotal learning module records (courses completed, completion dates, curricula, certification dates) have no native BambooHR equivalent. We do not migrate the learning management system as a structured data model into BambooHR because it would require a custom object setup and ongoing maintenance. Instead, we export learning records as a structured CSV, recommend a dedicated LMS (such as BambooHR's integration partners or a standalone platform), and optionally store a completion flag or certification date as a custom field on the Employee record for quick reference.
Aotal
Onboarding Checklist
BambooHR
Onboarding (BambooHR Core)
lossyAotal onboarding workflow steps (documents to sign, tasks to complete, onboarding milestones) do not migrate as automated workflows. BambooHR Core includes a basic onboarding checklist builder. We deliver a written inventory of every Aotal onboarding step with its sequence, assignee, and completion criteria so that the customer's BambooHR admin rebuilds the checklist manually. This ensures the checklist reflects BambooHR's builder rather than a direct translation.
Aotal
Document (binary attachment)
BambooHR
Employee File Attachment
1:1Aotal binary documents (employment contracts, signed agreements, offer letters) migrate as file attachments to the corresponding Employee record in BambooHR. We treat them as attachments-only because Aotal's internal document formats require case-by-case format review before any transformation. We flag any e-signature metadata (signing status, signer email, timestamp) as requiring a manual re-sign workflow in BambooHR's e-signature tool post-migration.
Aotal
Supervisor/Manager
BambooHR
Supervisor (Employee field)
1:1Aotal supervisor assignments on employee records map to BambooHR's supervisor field, which is a lookup pointing to another Employee record. We resolve supervisor assignments by matching Aotal supervisor employee ID to the migrated BambooHR Employee ID. If a supervisor record has not yet been migrated (dependency ordering issue), we hold the supervisor assignment and resolve it in a second pass after all Employees are loaded.
Aotal
Location
BambooHR
Location
1:1Aotal location data (office names, addresses, regional tags) maps to BambooHR Location. BambooHR uses Location as a lightweight org unit alongside Department. If Aotal stores multi-site data (which site an employee works at, remote vs office designation), we map it to the BambooHR Location field and note any Aotal regional groupings that do not have a direct BambooHR equivalent for manual consolidation.
Aotal
Employment History
BambooHR
Employment History (BambooHR Core)
lossyAotal employment history records (job title changes, department transfers, compensation adjustments with effective dates) do not migrate as a full audit log into BambooHR's employment history feature without a custom object setup. BambooHR Core provides basic employment status tracking (active, inactive, terminated). We map the current employment status directly; historical changes are preserved in a custom Employment_History__c object if the customer requires an audit trail, or noted as a reconciliation report for the HR admin to reference post-migration.
| Aotal | BambooHR | Compatibility | |
|---|---|---|---|
| Employee | Employee1:1 | Fully supported | |
| Department | Department1:1 | Fully supported | |
| Role | Job Titlelossy | Fully supported | |
| Competency Profile | Custom Fields1:many | Fully supported | |
| Performance Review Cycle | Performance (BambooHR Pro/Elite)1:1 | Fully supported | |
| Learning Record | External Reference or Custom Fieldlossy | Fully supported | |
| Onboarding Checklist | Onboarding (BambooHR Core)lossy | Fully supported | |
| Document (binary attachment) | Employee File Attachment1:1 | Fully supported | |
| Supervisor/Manager | Supervisor (Employee field)1:1 | Fully supported | |
| Location | Location1:1 | Fully supported | |
| Employment History | Employment History (BambooHR Core)lossy | 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.
Aotal gotchas
Data lives in multiple microservices across the Talent App Store
SnapHire ATS and Talent App Store are distinct products with different data shapes
Vendor-assisted extraction is likely required given no public API docs
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
Source audit and schema discovery
We audit the Aotal tenant to enumerate all employee records, department structures, role histories, competency profiles, performance review cycles, learning module data, and file attachments. We identify custom talent fields (competency ratings, skill matrices) and module-specific configurations that do not have direct BambooHR equivalents. We also assess the volume of binary documents requiring attachment-only migration and flag any role history records with effective dates for the custom object decision. The discovery output is a written migration scope document with object counts, field-level mapping, and a recommendation on whether to use BambooHR custom fields or a custom object for competency and role history data.
BambooHR schema pre-configuration
Before any data loads, we create the BambooHR custom field schema by calling GET /v1/meta/fields to retrieve the existing field IDs and then adding new custom fields for Aotal talent data (competency ratings, skill names, role history dates). If the customer requests full role history audit trail, we design the Employment_History__c custom object with the required fields and relationships. We coordinate with the customer's BambooHR admin to provision the migration service account with API key authentication (HTTP Basic Auth) and verify read access to employee data before migration begins.
Sandbox migration and reconciliation
We run a full migration into a BambooHR test account (or the production account with a test subset) using a representative sample of employee records. The customer's HR lead spot-checks 25-50 randomly selected employees against the Aotal source for field accuracy, confirms that department assignments resolved correctly, and validates that supervisor lookups linked to the right employee records. Any field mapping corrections, custom field additions, or department consolidation decisions happen in this phase before production migration proceeds.
Department and location load (phase 1)
We load Aotal Department records into BambooHR Department, and Location records into BambooHR Location. These are loaded first because all Employee records have a required Department lookup. If Aotal has multi-level department hierarchies (parent and child), we flatten them into BambooHR's structure with the parentDepartment field set where supported. Locations are inserted after departments as a secondary org unit.
Employee and supervisor resolution (phase 2)
We load Aotal employee records into BambooHR Employee, mapping personal data, hire dates, termination dates, and job titles directly. Supervisor assignments are resolved by matching Aotal supervisor IDs to migrated BambooHR employee IDs. If a supervisor record has not yet been migrated (dependency ordering), we hold the supervisor assignment in a resolution queue and resolve it after all employees are loaded. Competency scores and skill ratings from Aotal populate the pre-created custom fields. Any binary documents are uploaded as Employee file attachments after the employee record is confirmed in BambooHR.
Performance and learning data handoff (phase 3)
We load Aotal performance review data into BambooHR Performance Management (if the customer's plan includes it) or into custom fields for review status and ratings. Learning module records are exported as a structured CSV with employee email, course name, completion date, and certification status. The customer receives the CSV and a written recommendation for LMS integration. We do not build a custom learning object in BambooHR as part of standard scope; if the customer requires it, it is a separate configuration engagement.
Cutover, validation, and onboarding workflow inventory handoff
We freeze Aotal write access during cutover, run a final delta migration of any records modified during the migration window, and confirm all employee records, department assignments, and file attachments are present in BambooHR. We deliver a written inventory of every Aotal onboarding workflow step with its sequence, assignee, and completion criteria for the customer's BambooHR admin to rebuild in the BambooHR onboarding checklist builder. We support a one-week hypercare window for reconciliation issues. We do not rebuild Aotal onboarding workflows as BambooHR workflows inside the migration scope.
Platform deep dives
Aotal
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Moderate HRMS migration. 4 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 Aotal and BambooHR.
Object compatibility
4 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
Aotal: Not publicly documented.
Data volume sensitivity
Aotal 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 Aotal to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Aotal 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 Aotal
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.