For Developers
Implementation Details
How the Integration Works
Edlink's integration with Schoology facilitates synchronization of key rostering data via periodic "syncs". The integration leverages the Schoology API endpoints to pull data and transform it into Edlink's unified data model. Schoology objects are mapped to Edlink objects through a standardized transformation process.
Data Mapping
| Schoology Model | Edlink Model |
|---|---|
| Root School | District |
| Buildings | School |
| Grading Period | Session |
| User | Person |
| User | Agent |
| Course | Course |
| Course.subject_area | Subject |
| Section | Class |
| Section | Section (deprecated) |
| Enrollment | Enrollment |
| Documents | File |
| Assignment | Assignment |
| Grade | Submission |
| Submissions | Submission |
| Grading Rubrics | Rubric |
Rostering Details
- Edlink pulls most roster data from Schoology like courses, classes, people, and schools.
- Each section in Schoology is treated as an individual class in Edlink. This abstracts away sections for developers making it much easier to interact with them.
- Enrollments are mapped automatically, ensuring that people are placed in the appropriate classes without manual intervention.
Key Considerations
- Limited Historical Data: Schoology's API may restrict access to historical data, limiting roster imports to the current academic year. This is common amongst LMS providers.
- On-Demand Assignments+Grades: As opposed to our rostering data, we interface with the Schoology API on demand when Assignment or Submissions related endpoints are used. As such, those endpoints may be slower, but also closer to "real-time" since there is no sync process to wait on.
- User Token Submissions Only: While Edlink provides both a Graph API and a User API, due to rules enforced by the Schoology API, only students are allowed to submit work, which requires using the Edlink User API for that use case.
- Linked Sections: In Schoology, "sections" are organized under a "course." Teachers have the option to link these sections together for ease of assigning all the same coursework to the students in their various sections. To handle this, we have a specific process you should follow when creating assignments. This process should only be followed if the sections are linked. If you follow the
parent_idprocess on sections that are not linked, you will encounter strange and unpleasant behavior. Thus, we expose a special property on schoology-based Classes:properties.schoology.linked. This will tell you if the underlying section is "linked" and requires theparent_idprocess, or if you should just create assignments on a per-class basis as normal.
Custom Field Mapping
The following fields can be custom-mapped in our dashboard UI:
- roles