HRMS migration
Field-level mapping, validation, and rollback between SumTotal and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
SumTotal
Source
Bullhorn ATS & CRM
Destination
Compatibility
2 of 12
objects map 1:1 between SumTotal and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from SumTotal to Bullhorn is a paradigm shift from a full HRMS and LMS platform to a recruitment-focused ATS and CRM. Bullhorn does not natively support learning management, course catalogs, curricula, compliance training tracks, or performance reviews. We extract learner profiles, company records, and training history from SumTotal's REST API, then map them to Bullhorn's Candidate, ClientCorporation, and custom object structures, with training completions and certification records preserved as custom fields on Candidate. Workflow automation rules, deadline escalation configurations, and learner assignment rules from SumTotal do not export via API; we deliver a written inventory for manual rebuild in Bullhorn Automation. The migration scope excludes LMS-native objects (Courses, Curricula, ILT Sessions, Compliance Certifications as standalone records) that have no Bullhorn equivalent and must be either dropped or contracted as a custom configuration project.
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 SumTotal object lands in Bullhorn ATS & CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
SumTotal
Learner (User)
Bullhorn ATS & CRM
Candidate
1:1SumTotal learner records map to Bullhorn Candidate. We extract firstName, lastName, email, custom profile fields, and employment status from /apis/api/v1/users. Learner suspension or inactive status in SumTotal maps to Candidate's isDeleted flag or a custom inactive reason field. Bullhorn requires distinct email addresses per Candidate; duplicate emails trigger a dedupe warning we surface for admin resolution before import.
SumTotal
Company
Bullhorn ATS & CRM
ClientCorporation
1:1SumTotal company records (from the HRMS module) map to Bullhorn ClientCorporation. Company name, address, industry, and custom fields transfer directly. We use companyName as the dedupe key during import. ClientCorporation must exist before any Candidate records that reference it are imported.
SumTotal
Training Record (Transcript)
Bullhorn ATS & CRM
Candidate (custom fields)
lossySumTotal training transcripts map to custom fields on the Bullhorn Candidate record. Completion date, course name, score, and credit flag become individual custom fields (type: text, date, number, or checkbox depending on the data). Bullhorn caps custom fields per entity; we scope the field count during discovery and recommend a structured custom object for organizations with high training volume rather than burning through the Candidate field limit.
SumTotal
Compliance Certification
Bullhorn ATS & CRM
Candidate (custom fields) + Note
lossySumTotal compliance certifications carry expiry dates, renewal rules, and audit metadata that have no native Bullhorn equivalent. We export the certification name, issue date, expiry date, and status to custom fields on Candidate. Renewal rules and audit trail metadata that cannot fit within the custom field limit are attached as Bullhorn Note records linked to the Candidate, timestamped with the original certification metadata.
SumTotal
Course
Bullhorn ATS & CRM
Custom Object (Course)
lossySumTotal courses cannot map to any standard Bullhorn entity because Bullhorn has no native LMS module. We create a custom object named Course__c (or similar admin-approved API name) with fields for courseTitle, courseDescription, courseVersion, metadataFields, and prerequisites. Course-to-curriculum associations are stored as a junction custom object or as a multi-select field on Course__c.
SumTotal
Curriculum
Bullhorn ATS & CRM
Custom Object (Curriculum__c)
lossySumTotal curricula bundle multiple courses into learning paths with ordering and deadline configurations. We create a Curriculum__c custom object and a junction object CurriculumCourse__c to store curriculum-to-course associations and the sequence order. Deadline rule configurations are documented as a text field or as Bullhorn Note for admin reference during rebuild.
SumTotal
ILT Session
Bullhorn ATS & CRM
Custom Object (ILTSession__c) + Custom Object (Registration__c)
lossyInstructor-Led Training sessions in SumTotal include session metadata (date, time, venue, instructor) and registration records with attendance status. We create ILTSession__c for session data and Registration__c as a child custom object linked to Candidate for attendance records. Room-level facility data that SumTotal may store separately is often not fully exported; we flag any missing venue records during discovery.
SumTotal
Performance Goal
Bullhorn ATS & CRM
Note or Custom Object (Goal__c)
lossySumTotal Goals are gated behind enterprise-tier licensing and do not have a native Bullhorn equivalent. We export goal records as raw data to a Goal__c custom object or attach as Bullhorn Note on the Candidate for admin review. Bullhorn's ATS focus means performance management must be handled by a separate HRMS or by a Bullhorn-compatible third-party integration post-migration.
SumTotal
Performance Review
Bullhorn ATS & CRM
Not Migrated (documented)
lossySumTotal Performance Reviews (360-degree feedback, ratings, reviewer assignments) have no Bullhorn equivalent and cannot be imported. We extract raw review data as a JSON export for the customer's HR admin to evaluate for re-entry into a performance management tool. Review templates, scoring rubrics, and template-specific fields cannot be migrated in structured form.
SumTotal
Workflow Automation Rules
Bullhorn ATS & CRM
Not Migrated (documented for rebuild)
lossySumTotal's learner assignment rules, deadline escalation workflows, and notification triggers are stored as automation configuration objects, not as data records. The REST API exports learner data and course records but does not export automation rules. We document which workflows exist and deliver a written inventory with triggers, conditions, and actions for the customer's Bullhorn admin to rebuild using Bullhorn Automation.
SumTotal
Custom Fields (Learner Profile)
Bullhorn ATS & CRM
Custom Fields (Candidate)
lossySumTotal allows custom fields on learner profiles. We capture custom field definitions (name, type, validation rules) during discovery and recreate them as Bullhorn Candidate custom fields using Admin > Field Mappings. Field types are mapped: text to text, number to number, date to date, checkbox to checkbox, and multi-select to Bullhorn multi-select picklist. Bullhorn's per-entity custom field limit is confirmed before migration to avoid truncation.
SumTotal
Content Library Metadata
Bullhorn ATS & CRM
Course__c (metadata fields)
lossySumTotal's Content Library holds course metadata, taxonomy categories, and folder structure that governs content browsing. We export course records with their metadata fields but cannot replicate the folder/category hierarchy via API. The course records land in Course__c; the customer rebuilds the taxonomy in Bullhorn's category or tag structure manually or via a Bullhorn partner.
| SumTotal | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Learner (User) | Candidate1:1 | Fully supported | |
| Company | ClientCorporation1:1 | Fully supported | |
| Training Record (Transcript) | Candidate (custom fields)lossy | Fully supported | |
| Compliance Certification | Candidate (custom fields) + Notelossy | Fully supported | |
| Course | Custom Object (Course)lossy | Fully supported | |
| Curriculum | Custom Object (Curriculum__c)lossy | Fully supported | |
| ILT Session | Custom Object (ILTSession__c) + Custom Object (Registration__c)lossy | Fully supported | |
| Performance Goal | Note or Custom Object (Goal__c)lossy | Fully supported | |
| Performance Review | Not Migrated (documented)lossy | Fully supported | |
| Workflow Automation Rules | Not Migrated (documented for rebuild)lossy | Fully supported | |
| Custom Fields (Learner Profile) | Custom Fields (Candidate)lossy | Fully supported | |
| Content Library Metadata | Course__c (metadata fields)lossy | Mapping required |
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.
SumTotal gotchas
50,000 req/hour API rate limit can throttle large exports
Enterprise-tier gating on talent management objects
Mobile app completion credits not reliably propagated to backend
Cornerstone OnDemand acquisition introduces v1/v2 API duality
Workflow automation rules are configuration objects not exported via data API
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and custom object architecture design
We audit the SumTotal tenant for licensed modules (LMS, Talent Management, Workforce Management), active object counts (learners, companies, courses, curricula, training transcripts, ILT sessions, compliance certifications), and custom field definitions. We pair this with a Bullhorn admin review of existing custom fields and objects. The output is a written migration scope that specifies which SumTotal objects map to Bullhorn standard entities versus custom objects, the custom field count per Candidate, and which objects (Performance Reviews, automation rules) are excluded with documented rationale.
Custom object and custom field provisioning in Bullhorn
Before any data moves, we provision Bullhorn custom objects (Course__c, Curriculum__c, CurriculumCourse__c, ILTSession__c, Registration__c) via Bullhorn's entity configuration or API. We create all custom fields on Candidate for training records and compliance certifications. Schema is deployed into a Bullhorn sandbox or validated against the production org with admin sign-off before record migration begins. Bullhorn's custom field limit per entity is confirmed during this step to avoid mid-migration truncation.
Sandbox migration and reconciliation
We run a full migration into the Bullhorn production org (or sandbox for large migrations) using a representative data volume sample. The customer's Bullhorn admin reviews record counts, spot-checks 25-50 Candidate records for field accuracy, validates training history custom fields, and confirms custom object data. Any mapping corrections are made before the full production migration runs. We do not proceed to full production until the admin signs off on the sandbox output.
Learner and company export with pacing
We export SumTotal learner records via the v2 REST API with request pacing below the 50,000 req/hour ceiling. SumTotal's v1/v2 API duality is resolved during discovery; all calls route to the confirmed v2 surface. Inactive or suspended learner records are flagged with a status field on the Bullhorn Candidate for admin review. Companies export in parallel and land as ClientCorporation records, which must exist before any Candidate records that reference them.
Training history and compliance record import
Training transcripts from SumTotal import as Bullhorn Candidate custom fields. For organizations with high training volume, we use a CourseCompletion__c custom object strategy. Compliance certifications import as a mix of custom date/status fields (expiry, renewal status) and Bullhorn Notes (audit trail metadata). Each phase emits a row-count reconciliation report; any records that fail validation are held in a review queue for admin resolution before the next phase begins.
Cutover, delta sync, and automation handoff
We freeze writes on SumTotal during cutover, run a final delta export of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver the automation inventory document describing every SumTotal workflow with its trigger, conditions, and recommended Bullhorn Automation equivalent. We support a one-week hypercare window for reconciliation issues. We do not rebuild SumTotal automations as Bullhorn Automation inside the migration scope; that work requires a separate engagement or an internal Bullhorn admin.
Platform deep dives
SumTotal
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between SumTotal and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SumTotal and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between SumTotal and Bullhorn ATS & CRM.
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
SumTotal: 50,000 requests per hour per tenant across all REST APIs, with some individual endpoints carrying lower per-endpoint limits documented in the Swagger.
Data volume sensitivity
SumTotal 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 SumTotal to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your SumTotal to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave SumTotal
Other ways to arrive at Bullhorn ATS & CRM
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.