Class Attendance Import Type

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.


The Veracross Data Importer allows you to import class attendance records and apply them to people in batch. This import type is considered an importer and an updater — it inserts class attendance records and can overwrite existing class attendance records for the same day/person/class. Learn more about class attendance by reviewing documentation on the topic.

Uploading Class Attendance records involves the following two steps:

  1. Preparing the data for upload using the Class Attendance import type template, which is provided before data import on the Importer site.
  2. Uploading the data using the Veracross Data Importer.

Preparing the Data for Upload

The user must prepare a comma separated value (CSV) file containing all data to import. This file must contain all columns in the order listed below, even if no content is populated in the columns. If there is no content in a column, that row must be left blank.

Recommendation: Use the import template provided at, rather than creating your own CSV file. This can eliminate many unintentional errors.

Fields in the Import Type Template

This template has an instance of a "either this field or that field are required" scenario. See the notes in the table below for more information.

Column (field) NameNotes
Required fields:
person_id or
person_reference_type and person_reference_value
person_idNumeric format. The person_id can be found in the Person ID field in a standard Find Person query.

Text/numeric format. Must be an already existing person reference type. This information can be found in a Person Reference Type query. Must be either of the following:

  • person reference type id (numeric format)
  • person reference type description (text/numeric format)
person_reference_valueText/numeric format. This value is the reference value in a Find Person Reference Number query.
Required fields:
internal_class_id or class_id
internal_class_idNumeric format. The internal class ID of the class you are taking attendance for, which can be found as the "Internal Class ID" field in this Find Classes query.
class_idText/numeric format. The class ID of the class for the current school year, which can be found as the "Class ID" field in this Find Classes query.
attendance_dateRequired field. Date format. The date that the attendance is being taken for. This field must be in YYYY-MM-DD format.
periodNumeric format. The ID of the block/period in which the class is meeting. Leaving this blank sets the value as 0, which is "None Specified". You can find this value as the ID field in the standard Block Schedule query on the System homepage.
statusRequired Field. Numeric format. The ID of the attendance status that should be applied for this day/person/class combination. You can find this value as the ID field in the standard Attendance Status Codes query on the System homepage.
event_idNumeric format. The ID of the event if this class attendance record applies to an event instead of a class. Leaving this value blank sets the value as 0, or None. You can find this value as the Event ID field in a Find Group Events query on the Main homepage.
notesText format. A note field for the class attendance record. Each text field has a 500 character limit.
substitute_idNumeric format. The person ID of the person designated as the substitute teacher if the class attendance record is for the teacher of the class. If left blank, this field defaults to "None". The person_id can be found in the Person ID field in a standard Find Person query.


In addition to the criteria set in the table above, this import type has a number of additional considerations that should be taken into account.

Does this import type create attendance records that don't currently exist?Yes — upon import, class attendance records are created if they do not exist already. Additionally, if the class is also configured to take master attendance, master attendance records are created as well.
If both the internal class ID and class ID are present, what happens? If both are present, the internal class ID takes precedence.
Since this updates records as well, what happens if I leave a column blank the second time I update the same class/person/date combination?The value is overwritten as blank. The following values will always be updated on the class attendance record — so if a blank value is uploaded, it will clear out any previously stored value.
  • period
  • status
  • event_id
  • notes
  • substitute_id