For Developers

Implementation Details

Limitations

The SFTP (with OneRoster) integration is the preferred method for syncing data between SMS and other systems. The SMS API integration has a more limited data set available from SMS.

Please use the SFTP methods whenever possible to ensure the richest data set is available for syncing.

Grade Passback

Grade passback for Skyward SMS uses Skyward's OneRoster Results API. Edlink maps Submissions to OneRoster Results:

Edlink fieldOneRoster field
grade_pointsscore
grade_commentcomment
statescoreStatus (created → not submitted, submitted → submitted, returned → fully graded)
flags: ["excused"]scoreStatus: "exempt"

Submission Notes

  • Skyward's OneRoster API requires a numeric score on Result create/update, including when the result is marked exempt.
  • Sending flags: ["excused"] with grade_points: null (or omitting a numeric score) will fail with a 400 from Skyward: "A score is required for a Result by the OneRoster Specification."
  • This is a Skyward OneRoster implementation restriction. Edlink accepts null grade_points for excused submissions on providers that allow it; Skyward does not.
  • Workaround: include a numeric grade_points value when marking a submission excused (for example 0, if that matches your district's gradebook practice).

Entity Mapping

Skyward EntityEdlink Entity
EntitySchool
GradingBucketSession
CourseCourse
StaffPerson
ClassClass
StudentPerson
StudentScheduleEnrollment
DisciplineOffenseIncident
GuardianPerson, Agent
AttendanceByDateAttendance, Day, Meeting
AttendanceByPeriodAttendance, Period, Day, Meeting
OneRoster EntityEdlink Entity
CategoryCategory
LineItemAssignment
ResultSubmission

Notes

  • There is some support for historical data using an SFTP CSV sync.
  • There can be multiple rows for a single staff member. We merge the rows and combine their schools ids and assign as active=true if they are active at any school
  • We attempt to de-duplicate Periods during syncing, since Skyward can report them multiple times.

Custom Field Mapping

The following fields can be custom-mapped in our dashboard UI:

  • agent relationships
  • grade levels