Canvas Integration — Data Synchronization

As of July 12, 2021, this "Learn Veracross" site has been deprecated.  It will remain live through December 2022, but will no longer be updated. All knowledge content has moved to the new Veracross Community.  Please update your bookmarks.

Here is the new version of this article in the Veracross Community.


This article explains in detail what data are synchronized when Veracross and the Canvas Learning Management System (LMS) are integrated. When Veracross-Canvas integration is configured, data are sent nightly from Veracross to Canvas. If you don’t already have this integration, and are interested in purchasing it, contact your account manager. Read the overview of this integration or more about Canvas.

The data sync from Veracross to Canvas nightly uses what Canvas defines as “Diffing mode,” meaning that each night’s data set is considered to be “comprehensive,” and any data that was included in a previous sync – that is not included in the next dataset – will be deleted. This is why this data sync from Veracross to Canvas sends a comprehensive set of Terms, Courses, and Sections, and up to 2 years worth of Enrollments (see below).

Canvas Data Types

For each data type listed below, the bulletted text in italics are the fieldnames in Canvas, followed by a brief description of how Veracross populates those fields.


The terms that are synchronized from Veracross can be configured. For example, the school may only want to sync Upper School grading periods if Canvas will only be used in the upper school. Use Veracross Minor Grading Periods to determine which grading periods to sync, plus the Veracross “ALL” grading period.

Terms format:

  • Term_ID. This is the “SIS Id” that administrators see within Canvas. Veracross sends this in the format “grading_period_id.year”. For example “50.2015” in Canvas will be based on the “ALL” Grading period (grading period ID 50 in Veracross) in the 2015 school year. Terms in Canvas must be year-specific because grading periods may have different start and end dates each year.
  • Name. E.g. “ALL” or “Semester 1”
  • Status. Possible Canvas values are “Active” or “Deleted”. Veracross syncs all grading periods as “Active” until the school year is rolled over; Veracross never sends grading periods with the value “Deleted”.
  • Start_date, End_date. These date field values come from Veracross Grading Periods and influence when courses have their status updated from “Active” to “Completed” (see Courses: Status below).


There are two important facts to know about Courses in Canvas.

  1. Courses contain content (Assignments, discussions, etc.).
  2. Courses, not Classes, are scheduled.

For these two reasons, the meaning of a “course” in Canvas is fundamentally different than the meaning of a course in Veracross.

Courses will be created in Canvas for all active & future classes in Veracross. All Classes in Veracross are combined as sections in one course in Canvas. For teachers, this means all their sections will be in one content-sharing course in Canvas. If teachers of sections of the same course wish to share content, they may do so by cross-listing their sections to the target course. Read more about cross-listing courses.

Canvas courses are scheduled and have a begin and end date (inherited from the term). Therefore courses cannot be persistent year-over-year in Canvas (which is one key way that courses in Canvas are fundamentally different from courses in Veracross).

New courses will be created in each term when its classes are scheduled within Veracross. For this reason, it is strongly advised that “Yearlong” classes in Veracross should always be scheduled using the “ALL” Grading period rather than with a combination of minor grading periods. If a class in Veracross is scheduled for “Trimester 1,” “Trimester 2” and “Trimester 3” individually (for example) rather than simply scheduled for the “ALL” grading period, that would result in 3 separate courses being created in Canvas. Depending on the desired approach for course content management, that might in fact be a desirable approach for teachers, but generally speaking it is advisable to schedule all-year classes for the ALL grading period in Veracross so that only one course gets created in Canvas.

Because new courses are created when one class schedule ends and the next begins (which, for yearlong classes, will only happen when the school year rolls over in the summer) teachers will become familiar with copying course content forward when courses end in canvas and new ones begin.

As a default, Academic, Homeroom and Advisory courses will be included in the data that is synchronized, however, it is possible to configure which course types get included.

Course format:

  • course_id. This is the “SIS Id” that administrators — but not teachers, parents, or students — see within Canvas. A unique identifier (course-grading period-year-teacher) defines a Canvas course because (1) “course” means different things in Canvas and Veracross, (2) a course holds content, and (3) terms must be matched to courses because a course might have different sections in different terms. An example of a unique course_id is 87.50.2015.1234:
    • 87 is the Veracross internal course ID
    • 50 is the grading period for the scheduled section(s)
    • 2015 is the school year
    • 1234 is the Teacher’s person ID in Veracross. Note that this value is pulled for any teacher with the class permission role "Primary Teacher" or "Coach". If more than one teacher has this class permission role, then unexpected results may occur (too many Courses, and by extension too many Sections, may end up in Canvas). 
  • short_name. Displays Course ID.
  • long_name. Used for naming and for searches within Canvas.
  • term_id. This is a property of the course in Canvas, and tells Canvas when the course ends so that it doesn’t appear in dashboards any longer than necessary, and so that a new course is created when the prior one ends.
  • status. Values are Active, Deleted, Completed. Veracross sends all Active, Future and Completed Veracross courses (including prior year) with the Canvas Status of “Active” if it’s current year, or “Completed” for prior year Courses. When the term end date is reached, the course status is set as “Completed” by Canvas, not by Veracross.


Canvas sections are containers for enrollments. The group of people contained in a section is derived from Veracross “class” records, but it’s not exactly the same thing as a class in Veracross: In Veracross, classes are scheduled, but in Canvas courses are scheduled. A Canvas section is basically only a container of enrollments and make it possible to group them in one course for the easy sharing of content across sections.

Sections format:

  • section_id. This is the “SIS Id” that administrators see in Canvas.
  • course_id. This is self-explanatory and is used to link the section with the course in Canvas.
  • name. This used to display the name of the section throughout Canvas so that teachers and students know which section it is. It is simply the Veracross Class ID value (not the “internal class ID,” but rather the alphanumeric class ID).
  • status. The only possible values are “active” and “deleted.” Veracross sends all Active & Future classes to Canvas, and in Canvas their status is set as “Active.” School admins can change a class status within Canvas to “Deleted” if they see fit.


There are two types of enrollments: course enrollments and section enrollments. Primary teachers are enrolled in courses; everyone else is enrolled in sections. Enrollments for classes whose status in Veracross are “Active,” “Future” and/or “Complete,” for the current school year and the most previous school year, are included in the sync. This enables all class rosters to remain fully populated for review purposes by teachers and administrators

Enrollments Format:

  • course_id. “Teachers” are enrolled in their course, that is how they get a top-down view of all the sections. This field is blank for students and observors (parents). The “Teacher” is the primary teacher, configured on the General tab of a class in Veracross. Note: Additional teachers are not automatically synced in this integration, but schools may upload additional teachers manually via the Canvas .csv import function. 
  • user_id. This field identifies who the enrollment is for and is the relationship with the User data (see below).
  • role. Values are Student, Teacher, Observer. This is used to determine what kind of permission they have and who they are for this course or section.
    • “Students” are the students enrolled in a class (which corresponds to Veracross “class enrollment” records)
    • “Teachers” are the primary teacher that is configured on the General tab of the class in Veracross
    • “Observers” are the parents of the students
  • section_id. All Students and Observers are enrolled in specific sections rather than courses. This field is blank for primary teachers.
  • status. All possible Canvas values are: Active, Deleted, Completed, Inactive. Veracross sends class enrollments with the status “Active” unless the class enrollment “withdraw date” is populated with a date of “today” or earlier. For withdrawn class enrollment records (where “withdraw date” is equal to today or earlier), they are sent with the status of “Inactive.” Inactive enrollments still display in the gradebook and the teacher can do any final grading, however, inactive enrollments do NOT display for the Student to see. Note, this Canvas documentation explains how Canvas admins or teachers can change student enrollments inside Canvas if the students should have their enrollments re-enabled. Canvas will mark enrollments “Complete” when the class ends, and this is how classes end in Canvas. The gradebook will still be visible to the teachers and they can use that information to make determinations about term grades to put in Veracross.
  • associated_user_id. This value enables Observers to observe the grades of their associated Students in the class. An Observor is associated with a student when the observor has the relationship of “Mother,” “Father,” or “Guardian” with a student configured in Veracross.

User Data

Each Veracross Person with a role of Student, Parent, Staff, or Faculty has a corresponding Canvas User. The data that are populated in Canvas are:

  • user_id. This is what displays as “SIS Id” within Canvas. This is populated by the unique Veracross Person ID, and is what the system uses for regular data syncs/updates to other values.
  • login_id. This is of primary importance for regular functionality, because it sets the single-sign-on and authentication link with Veracross.
  • first_name.
  • last_name
  • sortable_name. The name value that is used in searches.
  • short_name. Display name of the user.
  • email
  • status. Possible Canvas values are “Active” or “Deleted”, however Veracross sends all people with the status of “Active.”

Note that the meaning of “people” in Canvas is primarily designed to support users (i.e., the people who “log in” are users), however, we specially support the use of the gradebook for students without user accounts (typically Pre-School and Lower School students) by using their Veracross person_id to fill their Canvas user_id.

Frequently Asked Questions

Q1 If our admins change any of the above data in Canvas manually, how will the sync handle that?

A1 If for example the class name, or person ID, or enrollment status, or any other data points are changed manually in Canvas, the data sync will not restore the synchronicity. A possible common case might involve handling withdrawn students: as noted above, the sync will automatically update the Canvas status for a student withdrawn inside Veracross to “Inactive” in Canvas, but if a teacher or admin changes that status back to “Active” manually inside of Canvas, the sync will not change the status again unless it is manually brought back into synchronicity.

Q2 Do the data automatically sync two ways?

A2 No, the data are only sent from Veracross to Canvas. All gradebook data entered in Canvas will remain in Canvas. The Veracross portals will commonly remain the place that teachers enter report card grades, take attendance, and more; and parents and students will still use the Veracross portals for communication, to receive reports, and more.

Q3 What if a course/class/enrollment have been deleted in Veracross after the sync has begun? Will that Course/Class/Enrollment be deleted in Canvas?

A3 This is generally true. There are contexts in which changes in canvas will not be reverted in the nightly sync so long as the data in the sync itself does not differ from the previous sync. However, if the data changes from one sync to the next, those changes will be enforced in the next sync.

Q4 How often is data synchronized?

A4 Nightly. The data are sent shortly after midnight server time.

Q5 What happens if someone’s password is changed in Veracross?

A5 The user will still be able to log into Canvas immediately (with their new password) because the authentication is done using the Veracross username and password.

Q6 What happens if someone’s username is changed?

A6 This should be rare, however either a system administrator may log into Canvas and change the username value in Canvas to match that in Veracross, or the user would be unable to access Canvas until the next synchronization occurs the following night.

Q7 Some of the things mentioned above say they are “configurable.” Where do we configure them in Veracross?

A7 Certain options, including grading periods and course types, are configured by Veracross engineering when implementing the Canvas integration.

Q8 Some of my classes are unscheduled, will they appear in Canvas?

A8 No, every class must have a schedule in order to appear in Canvas. This might mean adding a single grading period to the class schedule even if you don’t schedule it for a particular time or block or room. This is because “Grading periods” are more than just a schedule: they impact when and how a class might be graded.