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:

  1. Query for all courses (https://api.schoology.com/v1/courses)
  2. For each course:
    1. Query for all sections (https://api.schoology.com/v1/courses/{course_id}/sections)
    2. For each section:
      1. Query for all assignments (https://api.schoology.com/v1/sections/{section_id}/assignments)
      2. For each assignment, which has a grade_item_id:
        1. 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 ResourceData Model EntityBusiness Logic Notes
UserUsersIncludes both students and staff
Course SectionSectionsIncludes all sections that are in a currently-active Grading Period

Assignment

AssignmentsThere 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 + GradeSubmissions

(warning) 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" realmSection Activities
Update Comment in the "Section" realmSection Activities
AttendanceAttendance Events

Grades

Grades(warning) The initial software release will not include these section grades
Discussion Thread in the "Groups" realmSystem Activities
Discussion Reply in the "Groups" realmSystem Activities
Updates in the "Groups" realmSystem Activities
Update Comment in the "Groups" realmSystem Activities
EnrollmentSection Associations
Usage Analytics*System ActivitiesReports 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:

  1. Sign-in to Schoology as an administrator
  2. Click on the Tools menu and then "Usage Analytics"
  3. Click the Actions button in the upper right quadrant of the screen, and choose Export Report
  4. Follow the prompts to generate an e-mailed report link
  5. Once the e-mail is received, save the downloaded file into an input directory
  6. 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.

EnumerationSystem ValuesEquivalent LMS UDM Attribute
enrollments.status
  • 1: Active
  • 2: Expired
  • 3: Invite pending
  • 4: Requrest Pending
  • 5: Archived
LMSUserLMSSectionAssociation.EnrollmentStatus
assignments.type
  • assignment
  • discussion
  • assessment
Assignment.AssignmentCategory
assignments.comments.status
  • 0: deleted
  • 1: available
  • 2: pending moderation approval
LMSUserActivity.ActivityStatus
attendance.status
  • 1: present
  • 2: absent
  • 3: late
  • 4: excused
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