Sync / roster
Bidirectional sync of student roster and grade data between Workday Student and Canvas LMS using LTI Advantage.
This integration connects Workday Student, the university’s student information system, with Canvas LMS via the LTI Advantage standard, enabling automatic bidirectional sync of enrollment (roster) data and grade submissions. The implementation requires mapping Workday’s academic unit structures and term definitions to Canvas’s course and section models, handling differences in identity formats, and ensuring compliance with LTI 1.3/Advantage specifications. Complexity arises from the need to maintain data consistency across systems, manage asynchronous synchronization, and support legacy term calendars while preserving auditability of changes.
A working piece from this integration — no sign-up. The full build handles the edge cases, safeguards, and cutover.
Canvas exposes its LTI 1.3 Names and Roles Provisioning Service (NRPS) at a course-scoped URL. Workday invokes this with an OAuth 2.0 bearer token to pull the canonical enrollment payload:
# Canvas NRPS endpoint for a specific course (course_id = 84720000000001234) GET https://university.instructure.com/api/lti/courses/84720000000001234/names_and_roles Authorization: Bearer oauth2_access_token # Response (JSON-LD per LTI 1.3 NRPS spec) { "@context": "http://purl.imsglobal.org/ctx/lti/v2/namesandroleservice/v1", "@type": "Page", "id": "https://university.instructure.com/api/lti/courses/84720000000001234/names_and_roles", "context": { "@type": "CourseSection", "id": "84720000000001234", "label": "BIO-201-01", "title": "Molecular Biology" }, "members": [ { "status": "Active", "name": "Priya Mehta", "given_name": "Priya", "family_name": "Mehta", "email": "[email protected]", "user_id": "ab6f3e9f-8c2d-4e1a-b9f0-1d2e3f4a5b6c", "roles": ["http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor"] }, { "status": "Active", "name": "Tyler Okonkwo", "given_name": "Tyler", "family_name": "Okonkwo", "email": "[email protected]", "user_id": "c7d8e9f0-1a2b-3c4d-5e6f-7a8b9c0d1e2f", "roles": ["http://purl.imsglobal.org/vocab/lis/v2/membership#Learner"] } ] }
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 syncs student enrollments and grade passback between Workday Student (the system of record) and Canvas LMS using LTI 1.3 Advantage, specifically the Assignment and Grade Services (AGS) and Names and Role Provisioning Service (NRPS). The architecture treats Workday as the authoritative source; Canvas grades flow back via LTI AGS for学籍 reconciliation.
user_id format (typically sis_user_id or lms_id).deployment_id, and JWKS endpoint. Validate the LTI 1.3 launch handshake in a sandbox environment./learning/courses/{courseId}/roster equivalent endpoint. Implement the OAuth bearer token retrieval flow for NRPS calls from Canvas to Workday.lineitem identifiers to Workday grade categories (assignments, exams, participation).active, inactive, dropped) mapping to Canvas enrollment types.| Workday Student Field | Canvas LTI/NRPS Field | Notes |
|---|---|---|
Student_ID | user_id (or sub) | Must match sis_user_id in Canvas user provisioning |
Academic_Period | context.label | Term identifier for scoped roster queries |
Course_Section_ID | course_id | Maps to Canvas section or course enrollment |
Enrollment_Status | status | Active → Active; Dropped → Inactive |
Role_Code | role | Student, Instructor, TeachingAssistant per NRPS spec |
Assignment_Identifier | lineitem.id | AGS grade lineitem; unique per course |
Numeric_Grade | resultScore | Posted via AGS POST /lineitems/{id}/results |
status: pending flag and retry after Workday assignment creation.role and grade visibility permissions in Canvas.Student_ID formats (numeric vs. alphanumeric) must normalize to the sis_user_id pattern configured in Canvas or the sync fails silently.Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.