Integration

PeopleSoft Campus Solutions to Salesforce Education Data Architecture Migration

PSSFOR Oracle PeopleSoft Campus Solutions ──▶ Salesforce Education Cloud (EDA)

Migrates student and applicant records from PeopleSoft Campus Solutions into Salesforce Education Cloud Architecture with field-level mapping and data integrity validation.

TypeIntegration
Indicative timeline4–8 weeks
ComplexityEnterprise
DeliveryFixed-scope
  • Successfully mapped PeopleSoft STIDENT and SAASTDN entities to EDA Account and Contact objects
  • Preserved historical enrollment and academic standing data across all migration waves
  • Established bidirectional delta sync for new applicants entering post-migration
student data applicant records education cloud higher ed crm migration ferpa
How it works

This migration extracts student demographic, enrollment, and academic records from PeopleSoft Campus Solutions and loads them into Salesforce Education Cloud (EDA) using the EDA Data Architecture object model (Accounts, Contacts, Course Connections, Plan Requirements). The primary challenge lies in reconciling PeopleSoft's complex三代 student structure—including multiple identifiers, program enrollment rows, and applicant data in SAC_APPL_WRK—with EDA's account-contact affiliation framework, while maintaining referential integrity across the Course Connection and Plan Requirement objects. Additionally, PeopleSoft's soft-deletes and effective-dated rows require careful sequencing to avoid creating duplicate or stale records in EDA.

Free reference snippet

Yours to use

A working piece from this integration — no sign-up. The full build handles the edge cases, safeguards, and cutover.

Mapping student records from PeopleSoft Campus Solutions to Salesforce EDA requires matching the EMPLID key and converting PeopleSoft's flat name structure to EDA's Account-Contact model. ```html
PeopleSoft Field EDA Object EDA Field Transform Logic
PS_PERSON.EMPLID Contact hed__University_Email__c (lookup key) Unique identifier; external ID on Contact
PS_PERSON.FIRST_NAME Contact FirstName Direct map
PS_PERSON.LAST_NAME Contact LastName Direct map
PS_PERSON.BIRTHDATE Contact Birthdate Date format: TO_CHAR(dob,'YYYY-MM-DD')
PS_ADDRESS.ADDRESS1 Contact MailingStreet CONCAT(address1, ' ', address2)
PS_APPLICANT_DATA.ACAD_CAREER Application__c hed__Application_Type__c Map codes: 'UGRD' → 'Undergraduate', 'GRAD' → 'Graduate'
PS_STDNT_CAR_TERM.STDNT_STATUS Contact hed__Student__c Boolean: 'AS' OR 'AC' → true
``` **PeopleSoft extraction query:** ```sql SELECT p.EMPLID, p.FIRST_NAME, p.LAST_NAME, p.BIRTHDATE, a.ADDRESS1, a.CITY, a.STATE, a.POSTAL, ad.ACAD_CAREER, ad.APPL_PROGRAM, s.STDNT_STATUS FROM PS_PERSON p LEFT JOIN PS_ADDRESS a ON p.EMPLID = a.EMPLID AND a.ADDR_STATUS = 'AC' LEFT JOIN PS_APPLICANT_DATA ad ON p.EMPLID = ad.EMPLID LEFT JOIN PS_STDNT_CAR_TERM s ON p.EMPLID = s.EMPLID AND s.UNT_TYPE = 'SS' WHERE p.EMPLID = :targetEmplid; ``` **EDA Contact creation payload:** ```json { "FirstName": "Jane", "LastName": "Martinez", "Birthdate": "1999-03-15", "hed__University_Email__c": "[email protected]", "hed__Student__c": true, "MailingStreet": "1234 Campus Dr Apt 7", "MailingCity": "Portland", "MailingState": "OR", "MailingPostalCode": "97201" }

Implementation pathway

Step by step

How we'd take this from discovery to a production-safe cutover — the phases, the canonical mapping, and the edge cases that bite.

This implementation pathway guides the technical migration of student and applicant records from Oracle PeopleSoft Campus Solutions to Salesforce Education Data Architecture (EDA), maintaining referential integrity across identifiers while preserving academic history, enrollment status, and affiliation data essential for institutional operations.

Implementation Phases

  1. Source System Assessment & Discovery — Extract PeopleSoft metadata: table structures (STDNT_CAR_DEGR, STDNT_ACAD_PROG, APPLICANT, PERSONAL_DATA, ACAD_PLAN, ENROLLMENT), key relationships, and data volume counts per entity. Validate record counts against source system reports to establish baseline.
  2. Target Schema Configuration in EDA — Configure EDA Account Model (Administrative or Household naming), enable Affiliation Settings for institutional program types, configure Academic Terms in EDA System Tools, and define Program Plans that mirror PeopleSoft academic plan types.
  3. Mapping Design & Identifier Strategy
  4. Extract-Transform-Load (ETL) Build
  5. Data Validation & Reconciliation
  6. User Acceptance Testing
  7. Parallel Run & Delta Sync
  8. Production Cutover

Mapping Design & Identifier Strategy

Establish the primary key mapping between EMPLID (PeopleSoft) and ContactId (EDA). Create a lookup cross-reference table that persists both identifiers throughout migration phases. Configure External ID fields on EDA objects to enable upsert operations rather than insert, preventing duplicate record creation during iterative loads.

Extract-Transform-Load (ETL) Build

Configure ETL jobs using Salesforce Data Loader, MuleSoft, or equivalent tool. Sequence loads by dependency: (1) Contact base records from PERSONAL_DATA, (2) Account records for institutional affiliations, (3) Affiliation records linking Contacts to Accounts via STDNT_CAR_DEGR, (4) Academic Program Affiliations from STDNT_ACAD_PROG, (5) Course Connections from ENROLLMENT, and (6) Applicant records from APPLICANT into Application objects. Implement field-level transformations for date formats, address normalization, and multi-value handling.

Data Validation & Reconciliation

Execute record-count reconciliation at each entity level: total Contacts vs. total PERSONAL_DATA rows, affiliation counts vs. STDNT_CAR_DEGR distinct EMPLIDs, program plan counts vs. ACAD_PLAN. Perform field-sampling audits: compare random 50-record samples for name accuracy, term assignments, enrollment status codes.

User Acceptance Testing

Have institutional users validate record accuracy in EDA sandbox. Confirm academic program affiliations display correctly, enrollment terms align with institutional calendar, and applicant pipeline stages reflect PeopleSoft admission statuses.

Parallel Run & Delta Sync

During parallel run, capture net-new and changed records in PeopleSoft daily. Re-apply delta loads to EDA until delta volume stabilizes below agreed threshold (DELTA_THRESHOLD configurable, typically <50 records/day).

Field Mapping

PeopleSoft Entity / Field EDA Object EDA Field / Attribute Transformation Notes
PERSONAL_DATA.EMPLID Contact Student_ID__c (External ID) Populated as text; enables upsert
PERSONAL_DATA.NAME Contact Name Parsed into FirstName/LastName; prefix/suffix mapped to Suffix
PERSONAL_DATA.BIRTHDATE Contact Birthdate Date format conversion to Salesforce ISO format
STDNT_CAR_DEGR.ACAD_CAREER Affiliation Affiliation_Type__c Maps to configured affiliation type (e.g., "Student", "Alumni")
STDNT_ACAD_PROG.PROGRAM Program Affiliation Program__c Looked up against EDA Program object; verify PROGRAM values exist as Program records pre-load
ACAD_PLAN.PLAN Program Plan Academic_Plan__c Creates or links to existing Program Plan; PLAN_TYPE determines primary/secondary flag
ENROLLMENT.STRM Course Connection Course__c + Term__c Maps PeopleSoft term code (STRM) to EDA Term; CLASS_NBR to Course
APPLICANT.ADM_APPL_NBR Application Application_ID__c (External ID) Upsert key; APPLICANT.EMPLID links to Contact via Student_ID__c

Edge Cases

  • Name Changes Mid-Academic Career — PeopleSoft may retain historical names; EDA Contact.Name represents current state. Preserve prior names in Contact.NamingExemption__c or a custom Historical Name object to avoid enrollment record orphaning.
  • Multi-Campus or Multi-Degree Students — Students with multiple ACAD_CAREER values (e.g., Undergraduate and Graduate) generate multiple Affiliation records; ensure affiliation primary-flag logic prevents duplicate "primary" assignments.
  • Term Code Format Mismatch — PeopleSoft term codes (STRM) may be 4-digit (YYYY+T) or 6-digit; EDA Terms use distinct Term ID. Pre-validate all active term codes exist in EDA before enrollment loads.
  • Program and Plan Records Missing in EDA — If STDNT_ACAD_PROG.PROGRAM value has no corresponding EDA Program record, the affiliation load fails. Seed Program/Plan objects before any affiliation loads.
  • Duplicate EMPLID Scenarios — Rarely, PeopleSoft may have duplicate EMPLID assignments across test and production environments. Isolate test data in separate EDA sandbox; never load test EMPLIDs into production.
  • Enrollment Status Transitions — PeopleSoft enrollment status codes (ENRL_STATUS: 'E', 'D', 'W') must map explicitly; unmapped codes defaulting to null break academic standing calculations.
  • Address Overwrites — If ETL uses upsert on Contact address fields, later PeopleSoft address corrections overwrite EDA addresses. Determine write-authority policy: EDA-only, PeopleSoft-source, or merge logic.

Cutover

Execute cutover during a scheduled maintenance window with no active PeopleSoft transactions. Perform a final delta extraction immediately prior to EDA go-live. Validate that delta records apply without errors; suspend new PeopleSoft-to-EDA integrations until cutover confirmation. Prepare a full rollback package: export EDA records to CSV via Data Loader, preserving ContactId and Student_ID__c mapping. If rollback is required, re-import the CSV to restore pre-migration state. Post-cutover, run a 3-day reconciliation comparing PeopleSoft record counts against EDA totals across all entities, escalating discrepancies within 24 hours. Designate a migration hold period (7–14 days) where all corrections route through the ETL pipeline, not direct EDA edits, to maintain synchronization integrity.

What a full implementation includes

  • Canonical mapping between Oracle PeopleSoft Campus Solutions and Salesforce Education Cloud (EDA), to the field level.
  • The edge cases that corrupt data at cutover — identified, handled, and tested.
  • Production-safe rollout: reversible, phased, with reconciliation checks.
  • Handover documentation your team can operate from.

Build this against your estate

Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.

$45,000–$95,000
Contact us