Skip to content
SFTP Integration
Share
Explore

icon picker
SFTP Integration

Last edited 11 days ago by Jason Milano

SFTP Integration

SFTP integration allows for schools/districts to make all changes to student, parent, and roster data in their SIS and the changes will be reflected in ParentSquare after the following sync. These instructions and specifications are intended for a data admin at your district/school or a contact person at your SIS.
The steps to SFTP include:
Upload your files to ParentSquare’s SFTP server via your favorite SFTP software.
Email ParentSquare to alert them that the files are ready for initial data load.
Automate your SFTP transfers to send in the early evening (optional, but highly recommended).

Set Up SFTP Credentials

You will need to establish a connection to the ParentSquare SFTP Server. ParentSquare will issue a username and you will create a secure password on the ParentSquare web interface.
Log into ParentSquare and please go to Admin > District from your district page. Districts only need to set up their SFTP connection once at the district level (not each school level) and send files that include all school sites. For example, the students.csv file will include all students in your district.
Scroll down and check the box for “Use SFTP for SIS integration.”
image.jpeg
SFTP Server: and port: 22.
Your username will be given to you.
Create a password.
Click “Save.”
(Optional) Test the connection by logging into the sftp server with your credentials. You can use an SFTP client software such as WinSCP or FileZilla to test your connection.

Export Your Data

Before you use ParentSquare SIS SFTP sync, you need to export information from your student information system (SIS) to CSV files. The specifications for each file are provided in the section below. A header row should be present in each file and match the specifications exactly. Most headers use underscores. Spaces or dashes are not acceptable substitutes. All data fields are ingested as strings.

Required files

Optional files

Schools Data

Filename: schools.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
Yes
no spaces, no underscores
2
school_name
Yes
Yes
3
school_zip
Yes
No
4
school_address
Yes
No
5
school_city
Yes
No
6
school_state
Yes
No
7
principal_first_name
Yes
No
8
principal_last_name
Yes
No
9
principal_email
Yes
No
10
school_phone
Yes
No
There are no rows in this table


Students Data

Filename: students.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
student_id
Yes
Yes
no spaces
3
state_student_id
No
Yes
no spaces
4
first_name
Yes
No
5
last_name
Yes
No
6
grade_level
Yes
No
( -4 to 12, or 100 for no grades) Example: -4 = PreK 1 -3 = PreK 2 -2 = Junior Kindergarten -1 = Transitional Kindergarten 0 = Kindergarten 1 = 1st Grade 2 = 2nd Grade 100 = No grades.
7
status
No
No
1 = active, 0 = incoming
8
student_email
No*
Yes
9
cellphone
No*
Yes
10 digits
10
address_line1
No
No
11
address_line2
No
No
12
city
No
No
13
postal_code
No
No
There are no rows in this table

Student Attributes

Any additional column added to the file can be imported as a student attribute within ParentSquare. Student attributes can be used to aggregate students into one or more groups based on their attribute values.
For example, an additional header labeled IEP with values True or False can be used to create a group of all students with an IEP value of True.
Student attribute headers should not be a number or contain any spaces or special characters.
For example, some attribute column headers we see are as follows:
is_504 for 504 plan
Note, five_o_four as a header will not work
is_iep for Individualized Educational Plan
Note, iep as a header will not work
ell for English Language Learner
Note, english_language_learner will not work
enl for English as a New Language
reduced_meal
free_meal
special_education

Contacts Data

Filename: parents.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No (No spaces.)
no spaces
2
student_id
Yes
No (No spaces.)
no spaces
3
parent_id
No
No
no spaces. may be called contact_id
4
first_name
Yes
No
5
last_name
Yes
No
6
email
Yes*
No
A phone or email is required for a parent to be synced to ParentSquare
7
mobile
Yes*
No
10 digits. A phone or email is required for a parent to be synced to ParentSquare
8
language
No
No
We recommend using ISO 639-1, ISO 639-2 or common language names(’en’, ‘eng’ or English, ‘es’ ‘spa’ or Spanish…) If you use another convention, please tell us and share a mapping of your codes to ISO 639-1.
9
primary
No
No
1 = Yes, 0 = No
10
relationship
No
No
11
login
No
Yes
no spaces
12
secondary_phone
No
No
Used only for emergency notifications
There are no rows in this table

Staff Data

Filename: staff.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
staff_id
Yes
No
no spaces. Unique to the staff member, but the staff member can be at more than one school.

Cannot be shared with another staff user in the file.
3
title
No
No
4
first_name
Yes
No
5
last_name
Yes
No
6
email
Yes
Yes
a phone or email is required for a staff user to be synced to ParentSquare
7
mobile
No
Yes
10 digits. A phone or email is required for a staff user to be synced to ParentSquare
8
login
No
Yes
should include username values if we are implementing SAML and email addresses are not being used
9
secondary_phone
No
No
Used only for emergency notifications
There are no rows in this table

Your staff.csv file should contain staff from your main source of staff data which in most cases is your SIS.

Filename: additional_staff.csv (optional)

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
staff_id
Yes
No
no spaces. Unique to the staff member, but the staff member can be at more than one school.

Cannot be shared with another staff user in the file.
3
title
No
No
4
first_name
Yes
No
5
last_name
Yes
No
6
email
Yes
Yes
a phone or email is required for a staff user to be synced to ParentSquare
7
mobile
No
Yes
10 digits. A phone or email is required for a staff user to be synced to ParentSquare
8
login
No
Yes
should include username values if we are implementing SAML and email addresses are not being used
9
secondary_phone
No
No
Used only for emergency notifications
There are no rows in this table
Your additional_staff.csv file should contain staff from an alternative source that exists outside your SIS.
For example, you might have staff that you want to import into ParentSquare that are not recorded in your SIS such as bus drivers, sports coaches, and cafeteria staff. While absent in your SIS, these staff members might be present in your HR or accounting software.

Terms Data

Filename: terms.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
Yes
no spaces, unique per school
2
term_id
Yes
Yes
no spaces
3
term_name
Yes
No
4
portion
No
No
semester, trimester, quarter, etc.
5
start_date
Yes
No
mm/dd/yyyy or yyyy-mm-dd
6
end_date
Yes
No
mm/dd/yyyy or yyyy-mm-dd
7
school_year
Yes
No
school year to which the academic session contributes. Format is YYYY-YY (Ex - 2022-23)
There are no rows in this table
This file will sync automatically on a nightly basis, and can be manually synced on the school terms page. Please note, if you are sending term data you must update your file to include term data.

Section Data

Filename: sections.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
2
section_id
Yes
No
no spaces, should be unique per school
3
term_id
No
No
Required if sending terms.csv
4
staff_id
Yes
No
no spaces
5
course_name
Yes
No
6
period_number
No
No
7
section_number
No
No
8
is_primary
No
No
can be used to denote which teacher is the primary teacher. Accepted values are 1 or 0. There may only be one primary teacher per section. The primary teacher’s last name will be used in the section name
There are no rows in this table
If importing , you can send class and roster data for the entire year. Just be sure all classes are associated with a valid term ID.

Roster Data

Filename: rosters.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
section_id
Yes
No
no spaces
3
student_id
Yes
No
no spaces
There are no rows in this table
If importing , you can send class and roster data for the entire year.

Attendance Data

Filename: attendance.csv

You may choose either version of the file. Both support period attendance or daily attendance. The attendance.csv file may include attendance data for all schools in your district.
Check that the codes in the file match those listed in your settings; notification codes are case sensitive and must match exactly.
Attendance notifications will be sent at the time selected in ParentSquare and will use the most recent attendance.csv available. We recommend sending the file ~15 minutes before your notification time. If multiple attendance notices are scheduled throughout the day, multiple attendance.csv files must be sent.
For more information on attendance, see .
Attendance by row (each student has as many rows as needed)
Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
2
student_id
Yes
Yes
3
date
Yes
No
accepted date formats are mm/dd/yyyy and yyyy-mm-dd.
4
period
Yes
No
name of the class period or ‘all_day’ One line/record per period if not all_day
5
code
Yes
No
There are no rows in this table

Attendance by column (each student has one row with codes in as many columns as needed)
Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
2
student_id
Yes
Yes
3
date
Yes
No
accepted date formats are mm/dd/yyyy and yyyy-mm-dd.
4
all_day
No
No
attendance code for all day
5
p0
No
No
attendance Code for Period 0
6
p1
No
No
attendance Code for Period 1
7
...
attendance Code for Period n
8
p9
No
No
attendance Code for Period 9
There are no rows in this table

Groups Data

Filename: groups.csv

This file establishes the list of groups that will be synced to your ParentSquare site.
Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
group_id
Yes
Yes
no spaces
3
group_name
Yes
No
4
category
No
No
There are no rows in this table

Filename: group_members.csv

This file establishes the student membership of your groups. All parents associated with the student members will automatically be in the group, too.

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces. school_id for the group
2
group_id
Yes
No
no spaces
3
student_id
Yes
No
no spaces
There are no rows in this table

Filename: group_user_members.csv

This file establishes non-student membership of your groups. Groups with student members will automatically include all associated parents. For this reason, most schools/districts only send us the groups.csv & the group_members.csv.
Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
group_id
Yes
No
no spaces
3
staff_id
No
No
no spaces
4
parent_id
No
No
the contact_id of the parent associated with student
5
email
No*
No
will be used to identify the group member if staff_id and parent_id are blank
6
mobile
No*
No
7
role
No
No
each user must have a value of ‘member’ or ‘owner’.
There are no rows in this table

Emergency Contacts Data

Filename: emergency_contacts.csv

Column Header
Field Required
Unique Value
Notes
1
school_id
Yes
No
no spaces
2
student_id
Yes
No
no spaces
3
contact_id
Yes
No
no spaces
4
first_name
Yes
No
5
last_name
Yes
No
6
email
Yes*
No
7
phone
Yes *
No
one of email or phone is required
There are no rows in this table
Emergency contacts will only receive urgent alerts. They will not receive other types of communication. They will not have a ParentSquare account or be able to access the app.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.