Sync / roster
Bidirectional sync of course rosters and grades between PeopleSoft Campus Solutions and the Blackboard LMS using REST APIs and middleware orchestration.
This integration establishes a bidirectional sync between PeopleSoft Campus Solutions (the system of record for student enrollments and academic history) and the Blackboard Learn LMS (where instruction, assignments, and gradebooks live). The middleware layer—implemented via MuleSoft, Dell Boomi, or SnapLogic—consumes enrollment changes from PeopleSoft via SFTP extracts or REST calls and provisions them into Blackboard's Course Memberships API on a scheduled or event-driven basis.
In the reverse direction, final grades submitted by instructors in the Blackboard Gradebook are reconciled back into PeopleSoft's STDNT_CAR_PRGRM / STDNT_GRADE_TERM tables through a mapping of CRSE_ID, SESSION_CODE, and EMPLID. The hardest part is reconciling the differing term and section data models: PeopleSoft uses STRM (academic term codes) and CLASS_NBR while Blackboard uses course UUIDs and term GUIDs, requiring a canonical mapping table maintained by the registrar's office.
A working piece from this integration — no sign-up. The full build handles the edge cases, safeguards, and cutover.
PeopleSoft delivers enrollment and grade feeds (typically via SFTP flat files or Integration Broker), which the middleware transforms and posts to Blackboard REST endpoints.
// 1. Enrollment sync: PeopleSoft enrollment flat file → Blackboard course membership // PeopleSoft source fields: EMPLID, CRSE_ID, STRM, ENRL_STATUS, ENROLL_DT // 2. Middleware maps PeopleSoft term/CRSE_ID to Blackboard course ID GET/learn/api/public/v1/courses?courseId={crseId}_{strm}// 3. Create or update course membership PUT/learn/api/public/v1/courses/{bbCourseId}/users/{emplid}Content-Type: application/json { "userId": "PSU-{emplid}", "courseRole": "Student", "availability": { "available": "Yes" } } // 4. Grade push: PeopleSoft grade data → Blackboard gradebook column PUT/learn/api/public/v1/courses/{bbCourseId}/gradebook/columns/{columnId}/users/{emplid}{ "status": "GRADED", "score": 92.5, "text": "A" }
| PeopleSoft Field | Blackboard Target | Notes |
|---|---|---|
EMPLID | user.userId | Prefix with institution code |
CRSE_ID + STRM | course.courseId | Concatenated external ID |
ENRL_STATUS = A | courseRole = Student | Active only; drops handled separately |
GRADE_MARK | gradebook.score | Map via grading scheme |
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 course rosters and final grades between PeopleSoft Campus Solutions and the Blackboard Learn LMS using REST APIs orchestrated through middleware. Rosters flow from PeopleSoft (source of truth for enrollment) to Blackboard; grades flow bidirectionally, with PeopleSoft as the authoritative grade-of-record for official grades and Blackboard submitting draft grades back through the integration. The sync runs on a configurable schedule—typically nightly for rosters and immediately on grade submission for final marks—with middleware handling transformation, deduplication, and error logging.
STDNT_ENRL, CLASS_TBL, STDNT_CRS_GRADE) and confirm Blackboard REST API endpoints for course membership and gradebook. Map PeopleSoft term codes (STRM) to Blackboard course UIDs. Document authentication: PeopleSoft Integration Broker vs. Blackboard OAuth 2.0 (LTI Advantage or Learn REST API token).EMPLID/CLASS_NBR to Blackboard userName/courseMembershipId.access_token and refresh_token using client credentials or admin grant. Configure PeopleSoft Integration Broker to expose outbound REST services or configure middleware to query PeopleSoft component interfaces (e.g., SSR_DRV_CRSECMP for section enrollment).ENRL_STATUS), grade codes, and term identifiers to Blackboard course membership actions (ENROLL, DROP) and gradebook column entries. Handle multi-value fields (waitlist, audit, concurrent enrollments). Normalize date formats and ID types.| PeopleSoft Field | Blackboard API / Object | Direction | Notes |
|---|---|---|---|
EMPLID | user.userName or user.batchUid | PS → BB | Student identifier used to locate or create BB user |
CLASS_NBR | courseMembership.courseId / externalId | PS → BB | Class number mapped to BB course section ID |
STRM | course.termId / externalId suffix | PS → BB | Term code appended to course externalId for uniqueness |
ENRL_STATUS | courseMembership.available (true/false) | PS → BB | E = enroll; D = drop; W = waitlist (map to not enrolled) |
CRSE_GRADE_OFF | gradebookColumn.grade / score | PS → BB | Official grade posted by registrar; mapped to BB gradebook column |
SCD_GRADE | gradebookColumn.grade / draft submission | BB → PS | Instructor draft grade submitted from BB; written back to PeopleSoft |
STDNT_ENRL.UNT_TAKEN | gradebookColumn.attempt / weight | PS → BB | Credit hours used to weight gradebook columns |
SSR_SECTION_GUID (Blackboard cross-reference) | course.id | Lookup | Maps PeopleSoft section CRSE_ID to BB course GUID; maintained in cross-reference table |
A, B+) must map to the numeric or custom scale configured in the Blackboard gradebook column; if the column type is percentage but PeopleSoft sends a letter grade, values will post incorrectly.Cutover must be reversible: before go-live, export the current state of Blackboard course memberships and gradebook entries as snapshots stored in a staging table or file archive. During cutover, run the sync in shadow mode for one full cycle, comparing PeopleSoft-to-Blackboard deltas and logging all exceptions before writing to production. If rollback is required, the PeopleSoft enrollment snapshots are used to restore the pre-sync state by triggering inverse membership actions in Blackboard, and gradebook snapshots are reloaded to overwrite any values written by the sync. Reconciliation is performed within 24 hours of cutover by comparing PeopleSoft enrollment count and grade distribution reports against Blackboard API queries, with discrepancies routed to an academic records review queue. The integration remains in supervised mode—manual overrides disabled in Blackboard but with a designated break-glass account—for five business days post-cutover before being promoted to fully automated production status.
Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.