HRMS migration
Field-level mapping, validation, and rollback between SumTotal and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
SumTotal
Source
Zoho Recruit
Destination
Compatibility
7 of 12
objects map 1:1 between SumTotal and Zoho Recruit.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from SumTotal to Zoho Recruit is a category-shift migration. SumTotal is an enterprise HRMS covering learning management, talent management, performance, and compliance training for organisations with 1,000+ employees. Zoho Recruit is an applicant tracking system designed for in-house HR teams and staffing agencies that need candidate sourcing, resume parsing, interview scheduling, and pipeline management. The two platforms share almost no overlapping object schemas: SumTotal's Learners, Courses, Curricula, Training Records, and Compliance Certifications have no direct Zoho Recruit equivalents. We scope the migration to the subset of SumTotal data that can be represented in Zoho Recruit — primarily Users (mapped to Candidates or Employees depending on use case), any open requisitions or job postings captured in SumTotal's talent acquisition module, and supporting documents and notes. We flag SumTotal's API rate ceiling (50,000 req/hour), the v1/v2 endpoint duality introduced by the Cornerstone OnDemand acquisition, and the enterprise-tier gating on talent management objects. We do not migrate SumTotal's Workflow automation rules, course content, curricula assignments, compliance certification expiry logic, or performance goals because these are either configuration objects not accessible via SumTotal's data API or belong to schema areas that Zoho Recruit does not support. We deliver a written inventory of these objects for the customer's admin to evaluate in Zoho Recruit's workflow builder or in a separate LMS/HRMS addition.
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 Zoho Recruit, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
SumTotal
Learners (Users)
Zoho Recruit
Candidate or Employee (via Custom Module)
1:1SumTotal Learner records map to Zoho Recruit Candidates via the Candidate module. We extract first name, last name, email address, phone, hire date, and any custom profile fields. Last Name is mandatory in Zoho Recruit — any SumTotal learner record missing a last name is flagged and populated with 'not provided' before import per Zoho's import documentation. Users who already hold individual Zoho Recruit accounts must close those accounts before they can be imported into a company Zoho Recruit instance; we flag these conflicts during reconciliation. SumTotal user status (active, inactive, suspended) maps to Zoho Recruit Candidate status flags.
SumTotal
Courses / Curricula
Zoho Recruit
Custom Module (Courses) or Job Opening
1:manySumTotal Courses and Curricula represent learning content rather than job requisitions and have no native Zoho Recruit equivalent. If SumTotal was used to track internal job requisitions or requisition-based training programs alongside its LMS functions, those requisitions map to Zoho Recruit Job Openings with associated Candidates. Standalone learning content (Courses, Curricula) is documented as a custom Zoho Creator or Zoho Recruit custom module for the customer's admin to configure post-migration, as it requires a separate content management strategy.
SumTotal
Training Records (Transcripts)
Zoho Recruit
Custom Module (Training History)
1:1SumTotal Training Records (transcripts) capture what each learner completed, with completion dates, scores, and credit flags. We export the full transcript history and map it to a custom Training History module in Zoho Recruit, linked to the corresponding Candidate record via a Lookup relationship. Completion dates migrate as custom date fields; scores migrate as custom number fields. Note that Zoho Recruit's custom modules on Standard are limited to 50 fields per module, and Lookup fields are not available in Standard — the Professional or Enterprise tier is required for cross-module lookup relationships.
SumTotal
Compliance Certifications
Zoho Recruit
Custom Module (Certifications)
lossySumTotal Compliance Certification records include expiry dates, renewal rules, and audit-trail metadata. These map to a Zoho Recruit custom Certifications module with expiry date, renewal status, and issuing body as custom fields. Renewal automation logic (automated reminders, escalation triggers) does not migrate because SumTotal stores renewal rules as configuration objects not accessible via data API. We document the renewal rules for the customer's admin to rebuild as Zoho Recruit Workflow Rules post-migration.
SumTotal
ILT Sessions (Instructor-Led Training)
Zoho Recruit
Custom Module (Sessions)
lossySumTotal ILT Sessions include session metadata, registrations, attendance records, and venue/room associations. We export session-level metadata and registration records as a custom Sessions module linked to Candidates (attendees). Venue and room facility data is typically not fully exported from SumTotal and is documented as a Zoho Recruit custom field or note for manual completion post-migration.
SumTotal
Performance Goals / Performance Reviews
Zoho Recruit
Not migratable (talent management gated module)
1:1SumTotal Goals and Performance Reviews are part of the talent management module, which is gated behind enterprise-tier licensing. Not all SumTotal tenants have this module active, and it has no equivalent in Zoho Recruit's ATS schema. We confirm module availability during scoping, exclude these objects from the migration contract, and document the performance data scope for the customer's HR leadership to evaluate whether Zoho People or a separate HRMS handles this post-migration.
SumTotal
Workflow Assignments and Automation Rules
Zoho Recruit
Not migratable (configuration objects)
lossySumTotal's automation engine drives learner assignment rules, deadline notifications, and escalation workflows stored as automation configuration rather than data records. The REST API does not export these rules. We document every active SumTotal workflow with its trigger, conditions, and actions in a written inventory delivered alongside the migration. The customer's admin rebuilds these as Zoho Recruit Workflow Rules (available on Standard and Enterprise at different limits: 5 per module on Standard, 50 on Enterprise) or as Blueprint processes on Enterprise.
SumTotal
Custom Fields and User-Defined Properties
Zoho Recruit
Custom Fields (Zoho Recruit)
lossySumTotal allows custom fields on standard objects. We capture every custom field definition (field name, type, validation rules, picklist values) alongside data exports. Zoho Recruit supports custom fields per module on paid tiers (50 per module on Standard, 300 on Professional, 300 on Enterprise). Custom field types including lookup, formula, multi-select picklist, and dependency fields are supported on Professional and Enterprise only. We pre-create all destination custom fields before import and map data types to their closest Zoho Recruit equivalents.
SumTotal
Job Openings / Requisitions (if active in SumTotal)
Zoho Recruit
Job Opening
1:1If SumTotal was used to track internal job requisitions as part of its talent acquisition module, those requisitions map directly to Zoho Recruit Job Opening records. Job title, department, hiring manager, status, and description migrate as standard Zoho Recruit Job Opening fields. Zoho Recruit's Corporate plan comparison shows job opening limits per tier (1 on Free, 10 on Standard/recruiter, 20 on Enterprise/recruiter), which we confirm against the import scope during scoping.
SumTotal
Content Library Metadata
Zoho Recruit
Not migratable (content management gap)
1:1SumTotal's Content Library holds course metadata including taxonomy, categories, and folder hierarchies used for content discoverability. The Content Library browsing and taxonomy navigation is not fully replicated via SumTotal's API export — we export the course records but the folder/category hierarchy requires manual reconstruction in Zoho Recruit's document management system (Zoho WorkDrive) or as a custom content module. We flag this as a manual post-migration step.
SumTotal
Users (SumTotal Admins and Instructors)
Zoho Recruit
Users (Zoho Recruit Staffing or Corporate)
1:1SumTotal administrative users and instructors map to Zoho Recruit Users. We resolve SumTotal owner/instructor records by email against Zoho Recruit's User table. Zoho Recruit differentiates between staffing agency mode (Candidates, Clients, Job Openings) and corporate HR mode (Employees, Department, Candidates). The customer selects the deployment mode during Zoho Recruit onboarding; we align the migration object model to this selection during scoping.
SumTotal
Documents and Attachments
Zoho Recruit
Document Library or Candidate Attachments
1:1SumTotal learner documents, course materials, and compliance certificates stored as attachments migrate to Zoho Recruit's Document Library (available on Standard and Enterprise). Candidate attachments (resumes, cover letters, credentials) migrate to Candidate attachment records linked via ContentDocumentLink. We export attachments in bulk and map them to the corresponding parent record in Zoho Recruit, preserving original file names and content types.
| SumTotal | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Learners (Users) | Candidate or Employee (via Custom Module)1:1 | Fully supported | |
| Courses / Curricula | Custom Module (Courses) or Job Opening1:many | Fully supported | |
| Training Records (Transcripts) | Custom Module (Training History)1:1 | Fully supported | |
| Compliance Certifications | Custom Module (Certifications)lossy | Mapping required | |
| ILT Sessions (Instructor-Led Training) | Custom Module (Sessions)lossy | Fully supported | |
| Performance Goals / Performance Reviews | Not migratable (talent management gated module)1:1 | Fully supported | |
| Workflow Assignments and Automation Rules | Not migratable (configuration objects)lossy | Mapping required | |
| Custom Fields and User-Defined Properties | Custom Fields (Zoho Recruit)lossy | Mapping required | |
| Job Openings / Requisitions (if active in SumTotal) | Job Opening1:1 | Fully supported | |
| Content Library Metadata | Not migratable (content management gap)1:1 | Mapping required | |
| Users (SumTotal Admins and Instructors) | Users (Zoho Recruit Staffing or Corporate)1:1 | Fully supported | |
| Documents and Attachments | Document Library or Candidate Attachments1: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.
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
Zoho Recruit gotchas
Daily API rate limits are tier-gated and per-user capped
User import hard cap of 2,000 records
Attachment folder hierarchy must be preserved exactly
Resume parsing quota varies by plan and resets daily
Custom fields unavailable in Free and Standard editions
Pair-specific challenges
Migration approach
Discovery and module availability audit
We audit the source SumTotal tenant across modules (LMS base, Professional/Advanced, or Enterprise full suite), API endpoint version (v1 vs v2), custom field definitions on standard objects, active learner counts, transcript volumes, compliance certification records, and any active talent management modules. We confirm which modules are licensed at the current tenant because talent management objects (Goals, Performance Reviews) are not available on base LMS tier and cannot be exported if the tenant does not hold that license. We also confirm SumTotal's current API credentials, rate limit utilisation, and any legacy Skillsoft-era endpoint references still active in the tenant. The discovery output is a written migration scope listing in-scope and out-of-scope objects with availability justifications.
Zoho Recruit edition selection and schema preparation
We confirm the destination Zoho Recruit edition (Standard at $25/user/month, Professional at $50/user/month, or Enterprise at $75/user/month) based on the migration scope. If the scope includes custom fields with lookup relationships or cross-module references, Professional or Enterprise is required. We create the destination schema in Zoho Recruit: custom modules (Training History, Certifications, Sessions if required), custom fields with field types mapped from SumTotal definitions, Workflow Rules framework, and page layout assignments. We also configure Zoho Recruit's deployment mode (Staffing Agency vs Corporate HR) to align with the customer's hiring model. Schema preparation happens in the customer's live Zoho Recruit account before any data import.
Data extraction from SumTotal in dependency order
We extract SumTotal data in dependency order: Users and Admins first (resolved by email for Zoho Recruit User matching), then Learners (mapped to Candidates), Job Openings (if present), Training Records (transcripts), Compliance Certifications, and ILT session registrations. We pace exports below the 50,000 req/hour ceiling and chunk large record sets across multiple windows. Each module export produces a CSV file with field names aligned to the SumTotal v2 API schema, with any legacy v1 field names normalised. We flag any 429 rate-limit responses and resume after the window resets. All exports include a record-count reconciliation report comparing source tenant record counts to exported file record counts.
Data cleaning, field mapping, and mandatory field resolution
We clean the exported data before import: populating missing Last Name fields with 'not provided' per Zoho Recruit's mandatory field requirement, de-duplicating records by email address, validating email formats, resolving custom field picklist values to match Zoho Recruit's picklist definitions, and mapping SumTotal custom fields to their Zoho Recruit equivalents. We build a field mapping document that pairs every SumTotal field in scope with its Zoho Recruit destination field, field type, and any transformation logic applied (date format normalisation, multi-select to comma-separated text, etc.). Records with unresolved Zoho Recruit User references (SumTotal owners without matching Zoho accounts) are held in a reconciliation queue.
Import sequencing and reconciliation
We import data into Zoho Recruit in dependency order: Users first (validated against the Zoho Recruit User table), then Candidates (linked to Users by email), Job Openings (linked to Candidates), custom module records (Training History, Certifications linked to Candidates via Lookup on Professional/Enterprise), and finally attachments. Each phase emits a row-count reconciliation report. We validate that record counts in Zoho Recruit match the exported file totals and flag any discrepancies for investigation before the next phase begins. We run a spot-check of 25-50 records per module comparing source SumTotal values to imported Zoho Recruit values to confirm mapping accuracy.
Cutover, delta migration, and workflow rebuild handoff
We freeze SumTotal writes during cutover, run a final delta export of any records modified during the migration window, and import the delta into Zoho Recruit. We then enable Zoho Recruit as the system of record. We deliver the written automation inventory — documenting every SumTotal workflow, assignment rule, deadline escalation, and notification trigger — with recommended Zoho Recruit Workflow Rule and Blueprint equivalents for the customer's admin to rebuild. We do not rebuild SumTotal automation as Zoho Recruit Workflow Rules inside the migration scope; that is a separate engagement or an internal admin task. We provide a one-week post-migration hypercare window for reconciliation issues raised during the first recruiting cycle in Zoho Recruit.
Platform deep dives
SumTotal
Source
Strengths
Weaknesses
Zoho Recruit
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 SumTotal and Zoho Recruit.
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
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 Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your SumTotal to Zoho Recruit 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 Zoho Recruit
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.