Integration
Migrates student and applicant records from PeopleSoft Campus Solutions into Salesforce Education Cloud Architecture with field-level mapping and data integrity validation.
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.
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 |
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.
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.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.
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.
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.
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.
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).
| 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 |
Contact.NamingExemption__c or a custom Historical Name object to avoid enrollment record orphaning.ACAD_CAREER values (e.g., Undergraduate and Graduate) generate multiple Affiliation records; ensure affiliation primary-flag logic prevents duplicate "primary" assignments.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.STDNT_ACAD_PROG.PROGRAM value has no corresponding EDA Program record, the affiliation load fails. Seed Program/Plan objects before any affiliation loads.EMPLID assignments across test and production environments. Isolate test data in separate EDA sandbox; never load test EMPLIDs into production.ENRL_STATUS: 'E', 'D', 'W') must map explicitly; unmapped codes defaulting to null break academic standing calculations.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.
Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.