TrackITk12 can create and update Sites, Users, Patrons, and Devices in bulk by uploading a CSV file for each. This page documents the columns each file needs, how records are matched and updated, and provides a ready-to-use template for each one.
General rules
- Files must be saved as CSV (UTF-8 encoding).
- The first row must be a header row with the exact column names shown below — don’t rename, remove, or reorder them. Extra columns you don’t need can be left out entirely, except where marked Required.
- Uploading a file updates existing records and creates new ones in the same pass — you don’t need to separate new records from updates. Each file below explains exactly how existing records are matched.
- Leave a cell blank to skip an Optional field. Required fields must have a value on every row.
sites.csv,users.csv, andpatrons.csvcan be uploaded together on the Data Integration → Bulk Upload page. If you’re uploading more than one at once, sites are always processed first, then users, then patrons — so a new site referenced inusers.csvcan be included in the same upload as itssites.csvrow.devices.csvis uploaded separately from the Devices page.
sites.csv
Upload from Data Integration → Bulk Upload.
A site is matched to an existing record by site_name, then site_acronyms, then site_code (whichever matches first) — if none match, a new site is created. When a match is found, all of that site’s fields are overwritten with the values from the row.
| Column | Required | Description | Example |
|---|---|---|---|
site_name |
Required | Site name. Used to match existing sites. | Lincoln Elementary School |
site_acronyms |
Required | Short acronym for the site. | LES |
site_cds |
Required | CDS (or equivalent district) code. | 12-73399-1232232 |
site_code |
Required | Short numeric or alphanumeric site code. | 786978 |
site_address |
Required | Street address. | 123 Lincoln Ave |
site_type |
Required | Elementary School, Middle School, High School, or District Office | Elementary School |
sitecity |
Optional | City. | Springfield |
sitestate |
Optional | State. | CA |
sitezip |
Optional | Zip code. | 90001 |
prnfirstn |
Optional | Principal’s first name. | Maria |
prnlastn |
Optional | Principal’s last name. | Garcia |
email |
Optional | Principal’s email. | m.garcia@example.edu |
phone |
Optional | Principal’s phone number. | 5551234567 |
Template
site_name,site_acronyms,site_cds,site_code,site_address,site_type,sitecity,sitestate,sitezip,prnfirstn,prnlastn,email,phone
Example Elementary School,EES,12-73399-1232232,897908,345 Main Street,Elementary School,Anytown,CA,12345,Jane,Doe,j.doe@example.edu,5555550100
users.csv
Upload from Data Integration → Bulk Upload.
A user is matched to an existing record by email. When a match is found, their name, room, role, site, and status are updated. Any active user who is not present in the uploaded file is automatically marked Inactive — the file is treated as the complete, current list of active users, so leave out only the users you intend to deactivate. New users are created with a random password and must change it on first login — no email is sent automatically, so use Send Temporary Password on each new user’s Edit User page afterward to email them one.
| Column | Required | Description | Example |
|---|---|---|---|
first_name |
Required | First name. | Jane |
last_name |
Required | Last name. | Doe |
email |
Required | Email address. Used to match existing users. | j.doe@example.edu |
role_id |
Required | The numeric ID of an existing role (see the Roles page for your district’s role IDs). | 4 |
site_name |
Required | Must match an existing site’s name exactly (case-insensitive). | Example Elementary School |
rm_num |
Required | Room number or identifier. | 101 |
middle_name |
Optional | Middle name. | Ann |
status |
Optional | Active or Inactive. Defaults to Active if left blank. | Active |
Because this upload deactivates any active user who is missing from the file, always export or double-check your current user list before uploading a partial file.
Template
first_name,middle_name,last_name,email,role_id,site_name,rm_num,status
Jane,,Doe,j.doe@example.edu,4,Example Elementary School,101,Active
John,A,Smith,j.smith@example.edu,4,Example Elementary School,102,Active
patrons.csv
Upload from Data Integration → Bulk Upload, or from the dedicated Patrons → Bulk Upload page — both accept the same file format.
A patron is matched to an existing record by badge_id. When a match is found, all of that patron’s fields are updated. Rows with missing required fields, an unrecognized role_name, or an unrecognized site_name are skipped (with the reason listed after upload) — the rest of the file still processes normally.
| Column | Required | Description | Example |
|---|---|---|---|
badge_id |
Required | Unique badge/ID number. Used to match existing patrons. | STU-001 |
first_name |
Required | First name. | Alex |
last_name |
Required | Last name. | Smith |
email |
Required | Email address. | a.smith@example.edu |
grade |
Required | Grade level. | 9 |
status |
Required | Active or Inactive. | Active |
rm_num |
Required | Room number or identifier. | 204 |
role_name |
Required | Must match an existing role’s name exactly (case-insensitive), e.g. Student. | Student |
site_name |
Required | Must match an existing site’s name exactly (case-insensitive). | Example Elementary School |
middle_name |
Optional | Middle name. | — |
guardian_name |
Optional | Parent or guardian name. | Jane Smith |
phone |
Optional | Contact phone number. | 5558675309 |
Template
badge_id,first_name,middle_name,last_name,email,grade,status,rm_num,role_name,site_name,guardian_name,phone
STU-001,Alex,,Smith,a.smith@example.edu,9,Active,204,Student,Example Elementary School,Jane Smith,5558675309
STU-002,Maria,Elena,Garcia,m.garcia@example.edu,KN,Active,101,Student,Example Elementary School,,
STU-003,Jordan,,Lee,j.lee@example.edu,12,Active,215,Student,Example Elementary School,Pat Lee,5551234567
devices.csv
Upload from the Devices → Bulk Upload page.
A device is matched to an existing record by serial_num. When a match is found, its fields are updated (including reassignment or check-in). Rows with missing required fields, an unrecognized category_name or site_name, an invalid device_condition, or an unrecognized badge_id are skipped (with the reason listed after upload) — the rest of the file still processes normally.
| Column | Required | Description | Example |
|---|---|---|---|
category_name |
Required | Must match an existing device category exactly (case-insensitive). | Chromebook |
serial_num |
Required | Unique serial number. Used to match existing devices. | SN-2024-0001 |
brand_name |
Required | Manufacturer. | Dell |
model_name |
Required | Model. | Latitude 5420 |
device_condition |
Required | One of: new, good, broken_screen, damaged_keyboard, not_charging, water_damaged, lost |
good |
site_name |
Required | Must match an existing site’s name exactly (case-insensitive). | Lincoln Elementary School |
device_tag |
Optional | Asset tag or label. | TAG-001 |
badge_id |
Optional | Patron badge ID to assign the device to. | 12345 |
return_at |
Optional | Return date, format YYYY-MM-DD. |
2026-06-15 |
expiration_date |
Optional | Warranty/lifecycle expiration date, format YYYY-MM-DD. |
2028-06-15 |
comments |
Optional | Free-text notes. | Screen cracked |
Template
category_name,serial_num,device_tag,brand_name,model_name,device_condition,site_name,badge_id,return_at,expiration_date,comments
Laptop,SN-2024-0001,TAG-001,Dell,Latitude 5420,good,Lincoln Elementary School,,,2028-08-01,
Laptop,SN-2024-0002,TAG-002,HP,EliteBook 840,new,Lincoln Elementary School,,,2029-01-15,Assigned to new teacher
Laptop,SN-2024-0003,TAG-003,Apple,MacBook Air,good,Washington Middle School,,2026-06-15,2027-06-15,End of year return