Schoology Mapping Notes
Contents
Usage Notes
The Schoology API is well designed for resource discovery and access to hierarchical data. For example, to retrieve assignment submissions:
- Query for all courses (https://api.schoology.com/v1/courses)
- For each course:
- Query for all sections (https://api.schoology.com/v1/courses/{course_id}/sections)
- For each section:
- Query for all assignments (https://api.schoology.com/v1/sections/{section_id}/assignments)
- For each assignment, which has a
grade_item_id
:- Query for all submissions (https://api.schoology.com/v1/sections/{section_id}/submissions/{grade_item_id}/)
This is very logical - and makes it a chatty interface. Thus the overall processing requires a considerable number of API calls. Furthermore, there are no tools for querying by date range or by create / modified date. Thus users of the Schoology Extractor may want to consider running during off hours rather than during school hours, and should consider carefully the frequency of data pulls, which are retrieving all available records every time the extractor runs.
Resource Mapping
Schoology Resource | Data Model Entity | Business Logic Notes |
---|---|---|
User | Users | Includes both students and staff |
Course Section | Sections | Includes all sections that are in a currently-active Grading Period |
Assignments | There is a bug in the Schoology API which causes the Description  field to be blank in all requests for Assignment data. Thus this column will always be blank in the output CSV files. | |
Submissions + Grade | Submissions |  The initial software release will not include the assignment grades |
Discussion Thread in the "Section" realm | Section Activities Assignment | Discussions that are marked for grading are cross-listed in both the Section Activities and Assignments outputs |
Discussion Reply in the "Section" realm | Section Activities Submissions | Replies on "graded discussions" are cross-listed in both the Section Activities and Submissions outputs |
Updates in the "Section" realm | Section Activities | |
Update Comment in the "Section" realm | Section Activities | |
Attendance | Attendance Events | |
Grades | Â The initial software release will not include these section grades | |
Discussion Thread in the "Groups" realm | System Activities | |
Discussion Reply in the "Groups" realm | System Activities | |
Updates in the "Groups" realm | System Activities | |
Update Comment in the "Groups" realm | System Activities | |
Enrollment | Section Associations | |
Usage Analytics* | System Activities | Reports on the "Login success" and "Logout" actions from the usage analytics report |
Retrieving Usage Analytics
* Because of the lack of API support, the Usage Analytics processing requires manual steps by the system administrator:
- Sign-in to Schoology as an administrator
- Click on the Tools menu and then "Usage Analytics"
- Click the Actions button in the upper right quadrant of the screen, and choose Export Report
- Follow the prompts to generate an e-mailed report link
- Once the e-mail is received, save the downloaded file into an input directory
- Configure the Schoology Extractor to read from that input directory.
Schoology Enumerations
The following enumerations and value sets for Schoology are based on the Schoology API documentation. Note that user roles in Schoology are stored in a configurable attribute, Role.title so there are no static system values.
Enumeration | System Values | Equivalent LMS UDM Attribute |
---|---|---|
enrollments.status |
| LMSUserLMSSectionAssociation.EnrollmentStatus |
assignments.type |
| Assignment.AssignmentCategory |
assignments.comments.status |
| LMSUserActivity.ActivityStatus |
attendance.status |
| LMSUserAttendanceEvent.AttendanceStatus |
Mappings to ODS Tables
Object | Schoology API elements | ODS Column |
---|---|---|
User | user.school_uid | edfi.Student.StudentUniqueId |
Section | section.section_school_code | edfi.Section.SectionIdentifier |
Assignment | assignment.id | lmsx.Assignment.AssignmentIdentifier |
"Schoology" | lmsx.Assignment.LMSSourceSystemDescriptorId | |
assignment.title | lmsx.Assignment.Title | |
assignment.type | lmsx.Assignment.AssignmentCategoryDescriptorId | |
assignment.description | lmsx.Assignment.AssignmentDescription | |
None | lmsx.Assignment.StartDateTime | |
None | lmsx.Assignment.EndDateTime | |
assignment.due | lmsx.Assignment.DueDateTime | |
assignment.max_points | lmsx.Assignment.MaxPoints | |
Submission | submission.id + assignment.id + section.id + user.id | lmsx.AssignmentSubmission.AssignmentSubmissionIdentifier |
submission.late + submission.draft + submission.due | lmsx.AssignmentSubmission.SubmissionStatusDescriptorId | |
submission.created | lmsx.AssignmentSubmission.SubmissionDateTime | |
None | lmsx.AssignmentSubmission.EarnedPoints | |
None | lmsx.AssignmentSubmission.Grade |