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 field | OneRoster field |
|---|---|
grade_points | score |
grade_comment | comment |
state | scoreStatus (created → not submitted, submitted → submitted, returned → fully graded) |
flags: ["excused"] | scoreStatus: "exempt" |
Submission Notes
- Skyward's OneRoster API requires a numeric
scoreon Result create/update, including when the result is marked exempt. - Sending
flags: ["excused"]withgrade_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_pointsfor excused submissions on providers that allow it; Skyward does not. - Workaround: include a numeric
grade_pointsvalue when marking a submission excused (for example0, if that matches your district's gradebook practice).
Entity Mapping
| Skyward Entity | Edlink Entity |
|---|---|
| Entity | School |
| GradingBucket | Session |
| Course | Course |
| Staff | Person |
| Class | Class |
| Student | Person |
| StudentSchedule | Enrollment |
| DisciplineOffense | Incident |
| Guardian | Person, Agent |
| AttendanceByDate | Attendance, Day, Meeting |
| AttendanceByPeriod | Attendance, Period, Day, Meeting |
| OneRoster Entity | Edlink Entity |
|---|---|
| Category | Category |
| LineItem | Assignment |
| Result | Submission |
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=trueif 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