Sync / roster

Ellucian Colleague to PeopleSoft Campus Solutions Bidirectional Sync

ELPSM Ellucian Colleague ──▶ Oracle PeopleSoft Campus Solutions

Real-time bidirectional sync of student demographics, enrollment, and academic standing between Ellucian Colleague and PeopleSoft Campus Solutions using MuleSoft as the integration middleware.

TypeSync / roster
Indicative timeline3–6 weeks
ComplexityEnterprise
DeliveryFixed-scope
  • Eliminates dual data entry when departments operate across both SIS platforms simultaneously
  • Ensures consistent student records regardless of which system staff access or update
  • Provides a phased migration pathway allowing parallel operation before full Colleague sunset
student-information-system sis integration real-time-sync two-way bidirectional mulesoft
How it works

This integration establishes a real-time bidirectional synchronization between Ellucian Colleague and Oracle PeopleSoft Campus Solutions, enabling institutions to consolidate SIS platforms or support cross-departmental operations during a migration lifecycle. MuleSoft serves as the integration engine, managing identity resolution, field-level mapping, and conflict detection between the two disparate student record schemas.

The primary challenge lies in reconciling fundamentally different data models: Colleague uses its own identifier conventions, term structures, academic standing rules, and student person types that do not map one-to-one onto PeopleSoft's STVTERM-based terminology and STU record architecture. Without a canonical layer, every sync cycle requires careful conflict resolution to prevent data drift, especially when both systems may be updated by different administrative offices within hours of each other.

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.

%dw 2.0
%output application/json

/* Ellucian Colleague → PeopleSoft Campus Solutions */
/* Student Demographics Sync Mapping */

payload map ((person) -> {
  EMPLID: person.STU_ID,
  FIRST_NAME: person.FIRST_NAME,
  LAST_NAME: person.LAST_NAME,
  MIDDLE_NAME: person.MIDDLE_NAME default "",
  EMAIL_ADDR: person.EMAIL_ADDRESS,
  BIRTHDATE: person.BIRTH_DATE as Date {format: "yyyy-MM-dd"},
  CAMPUS: person.PRIMARY_COLLEGE,
  ACAD_PROG_PRIMARY: person.PROGRAM_CODE,
  LASTUPDDTTM: now() as String {format: "yyyy-MM-dd'T'HH:mm:ss"}
})

/* PeopleSoft PUT to: /api/campus-community/person/$(EMPLID) */

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 integration synchronizes student core data, enrollment events, and academic standing between Ellucian Colleague (system of record for academics) and PeopleSoft Campus Solutions (system of record for financials and student accounts) via MuleSoft Anypoint Platform, using a publish/subscribe event architecture with guaranteed delivery and idempotent processing.

Implementation Phases

  1. Identity Resolution Layer. Establish a canonical EMPLID mapping table hosted in MuleSoft Object Store. Build a lookup service that correlates PIDM from Colleague to EMPLID in PeopleSoft. Seed this from a batch comparison of STUDENTS.ID vs. PS_PERSONAL_DATA.EMPLID using a deterministic hash where IDs differ.
  2. Colleague API Abstraction. Configure MuleSoft connectors for Colleague's REST API. Define base URLs for /api/students, /api/enrollments, and /api/academic-records endpoints. Implement DataWeave transforms that flatten Colleague's nested JSON entities into a canonical sync payload schema.
  3. PeopleSoft CI and REST Exposure. Expose PeopleSoft component interfaces (CI_SFA_STDNT_ENRL, CI_STDNT_CAREFL, CI_PERSONAL_DATA) via PeopleSoft Integration Broker as REST services. Alternatively, use MuleSoft's PeopleSoft Connector with the CI adapter targeting the STU_ENRL and STDNT_CAREFL components.
  4. Change Data Capture. Enable polling-based CDC on Colleague using scheduled polling flows (every 5 minutes) against STUDENTS, STU_ENROLLMENTS, and STDNT_CAREFL tables. Capture UPD_DTTM timestamps to generate delta payloads. Tag payloads with operation type: INSERT, UPDATE, or DELETE.
  5. Bidirectional Sync Logic with Conflict Resolution. Build two unidirectional flows: (1) Colleague → PeopleSoft for demographics and academic standing; (2) PeopleSoft → Colleague for enrollment and financial aid. Implement a precedence rule: Colleague wins for academic data; PeopleSoft wins for enrollment data. Log all sync operations to a reconciliation table with SYNC_ID, TIMESTAMP, STATUS, and PAYLOAD_HASH.
  6. Idempotency and Error Handling. Use SYNC_ID as an idempotency key stored in Object Store with a 48-hour TTL. Implement a dead-letter queue (DLQ) in Anypoint MQ for failed records. Configure exponential backoff retry (3 attempts: 1min, 5min, 30min). Route 4xx errors to the DLQ for manual review; 5xx errors trigger auto-retry with alerting.
  7. Testing and Data Validation. Run parallel sync in shadow mode for two weeks, comparing record counts and field-level diffs between systems. Generate a reconciliation report daily. Validate that GPA values in STDNT_CAREFL.CUM_GPA match ACADEMIC_RECORD.GPA within 4 decimal places.
  8. Cutover and Go-Live. Execute a full快照 sync of all active students the night before cutover. During the cutover window, pause inbound PeopleSoft enrollment updates, run the snapshot, validate record counts, then resume real-time sync. Monitor the reconciliation table for 72 hours post-cutover.

Canonical Field Mapping

Domain Colleague Entity Colleague Field PeopleSoft Record PeopleSoft Field Transform Notes
Identity STUDENTS PIDM PS_PERSONAL_DATA EMPLID Use mapping table; fallback to STUDENTS.ID if direct match
Demographics STUDENTS FIRST_NAME, LAST_NAME PS_NAMES FIRST_NAME, LAST_NAME Name Primary Name type (NAME_TYPE = 'PRI')
Demographics STUDENTS EMAIL PS_EMAIL_ADDRESSES EMAIL_ADDR Primary email flag; truncate to 254 chars
Enrollment STU_ENROLLMENTS STU_ID, CRN, TERM PS_SFA_STDNT_ENRL EMPLID, CRSE_ID, STRM Map CRN to CRSE_ID via CRSE_CATALOG join
Enrollment STU_ENROLLMENTS ENROLLMENT_STATUS PS_SFA_STDNT_ENRL ENRL_STATUS Map Colleague codes (E/W/D) to PS codes (A/W/D)
Academics STDNT_CAREFL STU_ID, CUM_GPA PS_STDNT_CAREFL EMPLID, CUM_GPA Decimal(5,3); set UNT_TAKEN from HOURS_ATTEMPTED
Academics STDNT_CAREFL CLASS_LEVEL PS_STDNT_CAREFL CLASSIFICATION Map codes (FR/SO/JR/SR) to PS classification values
Financial Aid FINANCIAL_AID AID_YEAR, AWARD_AMOUNT PS_SFA_AID_APP AID_YEAR, AWARD_AMT PeopleSoft → Colleague direction only

Edge Cases

  • Missing EMPLID mapping. A Colleague student with no mapped EMPLID silently drops; must be caught in the lookup step and routed to an exception flow that creates the person in PeopleSoft first.
  • Duplicate enrollment events. A late-arriving Colleague ENROLLMENT_STATUS update arrives after a contradictory PeopleSoft update; without idempotency keys the record flips back and forth indefinitely.
  • Term rollover gaps. During term transition, STRM codes diverge between systems if mapping is hardcoded; handle null or unknown STRM by holding events until the term is provisioned in both systems.
  • Name change propagation. A student changes their legal name in Colleague but a pending financial aid document in PeopleSoft references the old name; updating PS_NAMES immediately can invalidate active documents.
  • GPA recalculation lag. Colleague calculates CUM_GPA asynchronously after grade posting; syncing the old value before recalculation completes causes a stale read in PeopleSoft that never reconciles.
  • Batch vs. real-time collision. A nightly batch full sync overwrites a field that a real-time flow updated hours earlier, clobbering the more recent change. Batch must respect UPD_DTTM timestamps and skip records newer than the batch start time.

Cutover

Make the cutover reversible by maintaining a bidirectional shadow table in a dedicated MuleSoft database: all writes to both systems are logged with direction, timestamp, and a 30-day rollback window. Before the cutover window, run a hash-based reconciliation comparing record counts and field-level checksums for all active students across STUDENTS, STU_ENROLLMENTS, and STDNT_CAREFL. Any record with a checksum mismatch is quarantined. During cutover, pause PeopleSoft inbound traffic at the integration boundary (not the database), perform the snapshot load, then resume with a 24-hour read-only verification period before switching to full bidirectional mode. If rollback is required, replay the shadow table logs in reverse order, which restores both systems to their pre-cutover state within a 15-minute window.

What a full implementation includes

  • Canonical mapping between Ellucian Colleague and Oracle PeopleSoft Campus Solutions, 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.

$52,000–$95,000
Contact us