HRMS migration
Field-level mapping, validation, and rollback between Softgarden and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Softgarden
Source
BambooHR
Destination
Compatibility
7 of 10
objects map 1:1 between Softgarden and BambooHR.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Softgarden to BambooHR crosses a product category boundary: Softgarden is an ATS built for DACH-region recruiting pipelines with multiposting and onboarding workflows, while BambooHR is an HRIS that treats applicant tracking as a module within a broader employee-records platform. We migrate the applicant base (Bewerber), applications (Bewerbungen), positions (Stellen), attachments (CVs and documents), application sources, and pipeline stage timestamps. We do not migrate Softgarden Workflows, absence.io personnel files, or the Softgarden Frontend API's composed applicant PDFs (which are status-triggered and not on-demand). BambooHR's ATS is a priced add-on; we verify ATS is enabled in the destination tenant before applicant records import. We handle German-language field label normalization (Katalogwerte to catalog values, Stellen to positions) during transformation, and we flag upfront any applicants who entered the trigger status before the Softgarden export integration was configured, since those records are permanently excluded from PUSH export.
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 Softgarden 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.
Softgarden
Applicant (Bewerber)
BambooHR
Applicant (BambooHR ATS module)
1:1Softgarden Applicant records map to BambooHR Applicant records. The applicant's name, email, phone, address, and custom profile fields transfer to BambooHR's Applicant object. Softgarden's German-language field labels (e.g., fields with German identifiers) are normalized to English equivalents during transformation. BambooHR's ATS must be enabled in the destination tenant as a priced add-on before applicant import begins. Any applicant who entered the configured trigger status before the Softgarden export was set up is permanently excluded from PUSH export and is flagged during scoping for manual extraction or alternative retrieval.
Softgarden
Application (Bewerbung)
BambooHR
Applicant (linked to Job Opening)
lossySoftgarden Application records link Applicants to Positions and carry pipeline stage, application date, and source channel. BambooHR does not have a distinct Application object; instead, the applicant record is associated with a Job Opening and the stage status is tracked within the applicant timeline. We map the Softgarden application date to the BambooHR Applicant dateApplied field and the source channel to the source field. Pipeline stage names (New, Screening, Interview, Offer, Hired, Onboarding) migrate as status notes or custom fields where BambooHR's schema allows.
Softgarden
Position (Stelle)
BambooHR
Job Opening
1:1Softgarden Positions map to BambooHR Job Openings. The position title, department, location, employment type, and job description migrate as Job Opening fields. Softgarden's Katalogwerte for location and department map to BambooHR's location and department dropdown fields, with catalog value resolution against the destination system's configured options. Active versus archived status distinguishes open versus closed Job Openings in BambooHR.
Softgarden
Catalog Values (Katalogwerte)
BambooHR
Location, Department, Employment Type (dropdowns)
lossySoftgarden uses Katalogwerte for structured dropdown fields such as location, department, employment type, and source channel. The Softgarden API exposes a dedicated endpoint for resolving catalog values. We map each Katalogwerte entry to the corresponding BambooHR dropdown field and pre-create any destination options that do not already exist. Mismatches between Softgarden catalog values and BambooHR dropdown options are reconciled during scoping and resolved to the closest matching destination value or flagged for admin to configure.
Softgarden
Attachment (CV, documents)
BambooHR
Attachment (on Applicant record)
1:1Softgarden attachments including CVs, profile pictures, and application documents migrate as file attachments on the corresponding BambooHR Applicant record. We retrieve attachments via the Softgarden attachment API and upload to BambooHR using the BambooHR file upload API. The Softgarden system-composed applicant PDF (which includes all attachments in a composed summary) is not available via on-demand API and is excluded; we rely on raw attachment files from the API instead. All file attachments are validated for format compatibility with BambooHR's supported file types.
Softgarden
Application Source
BambooHR
Source field (dropdown on Applicant)
1:1Softgarden tracks the channel (job board, direct, referral) each application came from via configured application sources. These catalog values migrate to BambooHR's Applicant source field, which can be a standard dropdown or a custom field depending on the destination configuration. We resolve each Softgarden source catalog value against the BambooHR source options and flag any values without a matching option for admin configuration before migration.
Softgarden
Pipeline Stages (Workflow Stages)
BambooHR
Applicant Status / Custom Fields
lossySoftgarden uses configurable workflow stages (e.g., New, Screening, Interview, Offer, Hired, Onboarding) with transition timestamps. BambooHR tracks applicant status within the applicant timeline but does not have an equivalent configurable stage pipeline in its standard ATS module. We migrate stage names and transition dates as custom fields or timeline notes on the Applicant record, preserving the historical progression. Custom stage names from Softgarden are mapped to BambooHR-compatible labels or retained as custom field values.
Softgarden
Custom Fields (application and position)
BambooHR
Custom Fields (on Applicant and Job Opening)
1:1Softgarden exposes custom fields within application and position records but does not publish a dedicated API endpoint to enumerate all custom fields and their types upfront. We discover active custom fields by querying a sample of records during the discovery phase and inferring schema from field presence across the dataset. Each discovered custom field is then configured in BambooHR using the Custom Field Builder (available in Settings) or via BambooHR support for field types that require admin creation. Field type mapping (text to short answer, dropdown to list) is determined during discovery and documented in the mapping spec.
Softgarden
Absence.io Data
BambooHR
Not Migrated
1:1Softgarden acquired absence.io in 2021 to add personnel files, absence management, and time recording. This data lives in a separate product instance with its own API and is not accessible via the Softgarden ATS Frontend API v3. We do not migrate absence.io data as part of a Softgarden-to-BambooHR migration. Customers needing absence.io data migrated should treat it as a separate migration engagement with the absence.io source system.
Softgarden
Owner (Hiring Manager)
BambooHR
User (BambooHR Employee or Applicant Owner)
1:1Softgarden tracks hiring managers and recruiters as owner references on applications and positions. We resolve owners by email match against the BambooHR User table. In BambooHR's ATS context, the assigned recruiter on an Applicant record maps from the Softgarden owner reference. Any Softgarden owner without a matching BambooHR User is held in a reconciliation queue for the customer's admin to provision before record import resumes.
| Softgarden | BambooHR | Compatibility | |
|---|---|---|---|
| Applicant (Bewerber) | Applicant (BambooHR ATS module)1:1 | Fully supported | |
| Application (Bewerbung) | Applicant (linked to Job Opening)lossy | Fully supported | |
| Position (Stelle) | Job Opening1:1 | Fully supported | |
| Catalog Values (Katalogwerte) | Location, Department, Employment Type (dropdowns)lossy | Fully supported | |
| Attachment (CV, documents) | Attachment (on Applicant record)1:1 | Fully supported | |
| Application Source | Source field (dropdown on Applicant)1:1 | Fully supported | |
| Pipeline Stages (Workflow Stages) | Applicant Status / Custom Fieldslossy | Fully supported | |
| Custom Fields (application and position) | Custom Fields (on Applicant and Job Opening)1:1 | Fully supported | |
| Absence.io Data | Not Migrated1:1 | Fully supported | |
| Owner (Hiring Manager) | User (BambooHR Employee or Applicant Owner)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.
Softgarden gotchas
Applicant Data Export only captures data from setup point onward
No publicly documented bulk API—migrations run per-record
German-language field labels require translation mapping
Applicant PDF export is status-triggered, not on-demand
No public API documentation for custom field registry
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 scoping
We audit the source Softgarden instance via the Frontend API v3, enumerating applicants, applications, positions, attachments, catalog values, and custom fields. We identify the status trigger configuration and flag any applicants who entered the trigger status before the export integration was set up, since those records are permanently excluded from PUSH export. We count attachment files, assess catalog value complexity, and document the German-language field label set requiring normalization. We verify that BambooHR ATS is enabled in the destination tenant and identify any BambooHR user provisioning gaps. The discovery output is a written migration scope with object counts, field mapping draft, and the historical gap disclosure.
Schema design and catalog value pre-configuration
We configure the BambooHR destination schema before data migration begins. This includes creating any custom dropdown options in BambooHR that correspond to Softgarden Katalogwerte (locations, departments, employment types, source channels) using the Custom Field Builder or admin settings. We configure custom fields on the Applicant and Job Opening objects to receive Softgarden custom field data. We verify the applicant source field is available and populated. All schema configuration is validated in BambooHR before record migration begins.
Catalog value resolution and field mapping
We resolve each Softgarden catalog value (Katalogwerte) against the configured BambooHR dropdown options. Where a Softgarden value has no matching BambooHR option, we flag it for admin to add to the destination dropdown before migration. We produce a field mapping document that pairs each Softgarden field (with its German-language label) to the equivalent BambooHR field, including type transformations (e.g., Softgarden text custom fields to BambooHR short-answer custom fields). This mapping is validated against a sample of five to ten records before full migration begins.
Sandbox migration and reconciliation
We run a full migration into the destination BambooHR environment using a representative data sample. The customer's HR lead reconciles record counts (applicants in, applications in, positions in, attachments in), spot-checks mapped fields for accuracy, and validates catalog value resolution. Any mapping corrections or destination dropdown additions are made during this phase. The customer signs off the field mapping and schema configuration before production migration proceeds.
Production migration in dependency order
We run production migration in record-dependency order: first Job Openings (from Softgarden Positions), then Applicants (with attachments linked individually per the per-record API), then application-to-applicant associations and source/channel data. Catalog values are resolved during each record insert. Each phase emits a row-count reconciliation report before the next phase begins. Historical applicants excluded by the status-triggered export gap are documented in the scope as a separate manual-extraction task for the customer's admin.
Cutover, validation, and handoff
We perform a final delta migration of any records modified during the migration window, then enable BambooHR as the system of record for applicant tracking. We deliver a written migration summary documenting object counts, catalog value resolution results, the status-triggered export gap disclosure, and any records that could not be migrated with reason codes. We do not rebuild Softgarden Workflows or automations as BambooHR workflows; we deliver a written inventory of any detected automation triggers for the customer's admin to rebuild in BambooHR. We support a one-week hypercare window for reconciliation issues raised during initial BambooHR ATS usage.
Platform deep dives
Softgarden
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 Softgarden 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
Softgarden: Not publicly documented by Softgarden. The API documentation does not specify rate limits, so we default to conservative request pacing and monitor for 429 responses to adjust dynamically..
Data volume sensitivity
Softgarden 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 Softgarden to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Softgarden 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 Softgarden
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.