Roster PowerSchool for Free (Scheduled SFTP Extract)
You don't need the PowerSchool plugin or a OneRoster license to keep Manage1to1's roster current. PowerSchool can export students, staff, and guardians to CSV files on a nightly schedule and drop them straight into your Manage1to1 SFTP folder, and Manage1to1's automated import picks them up every night. It's built into PowerSchool, it's free, and once it's set up nobody has to touch it again.
This guide covers the PowerSchool side: building the scheduled export and pointing it at SFTP. The Manage1to1 side (what the files are named, where they land, and turning on the nightly import) is covered in Uploading Student, Staff & Guardian CSVs via SFTP, which this guide hands off to at the end.
Moving to the SFTP extract is a supported, self-service, non-destructive change. Your buildings, students, staff, devices, tickets, and history all stay exactly as they are. Turning on an automated import only creates and updates records; it never wipes anything. It's also fully reversible: you can move to the plugin or a OneRoster provider later, or back to manual CSV, whenever you like. See Switching Your Roster Source for how roster sources hand off cleanly. Think of this as a starting point you can build on, not a door that closes behind you.
Which PowerSchool tool to use
PowerSchool has two built-in scheduled-export tools. The difference that matters for Manage1to1 is the column headers.
| Data Export Manager (DEM) | AutoSend | |
|---|---|---|
| Header row in the file | Yes, and you can rename each column | No, AutoSend can't write a header row |
| Custom column names | Yes | No |
| Schedule and SFTP delivery | Yes | Yes |
| Works with Manage1to1's importer | Yes | Not on its own |
Manage1to1's importer reads the first row as column headers and matches them by name (case doesn't matter). AutoSend can't produce that header row, so use Data Export Manager. If your district has historically used AutoSend for other integrations that don't need headers, that's fine; this one just needs DEM instead.
You need PowerSchool District or System Administrator access to build a scheduled export, and you need to be the primary contact for your district to retrieve your Manage1to1 SFTP credentials.
Before you start
- Your Manage1to1 SFTP credentials. See Accessing Your SFTP Credentials. You'll get a host, port, username, and password, and your files go in the
/incoming/data/folder. - Aligned building codes. This is the one thing to get right up front. Manage1to1 matches each person to a building by a Building Code, and the export carries PowerSchool's school identifier in that column. Before the first import, make sure each Manage1to1 building's Building Code matches the PowerSchool School Number (SchoolID) for the same school, so schools aren't duplicated and students aren't orphaned. See the building-alignment notes in Switching Your Roster Source.
- A test building or a small school you can run first, so you can confirm the mapping before rolling out district-wide.
Step 1: Build the student export in Data Export Manager
In PowerSchool, go to System > Page and Data Management > Data Export Manager (older versions: System > Data Export Manager).
- Category / Table: choose Students (the student core table).
- Records: scope it to the students you want Manage1to1 to manage. Typically that's all currently enrolled students across the district. If you'd rather export one school at a time, that's fine; just make each school's file complete for that school.
- Columns: add the PowerSchool fields below, then rename each column header (DEM lets you edit the output header for every column) to the exact Manage1to1 name in the middle column.
| PowerSchool field | Rename the column to | Notes |
|---|---|---|
Student_Number | Local Student ID | Required. The student's local ID, which is Manage1to1's unique key for the person. |
First_Name | First Name | Required. |
Last_Name | Last Name | Required. |
Grade_Level | Grade Level | Numeric grades work as-is. PK/K style labels are mapped on the Manage1to1 side. |
SchoolID (School Number) | Building Code | Must match the Building Code on the matching Manage1to1 building. |
Student_Email (your district's student email field) | Email | Optional but recommended. Used for portal sign-in and notifications. |
State_StudentNumber | State ID | Optional. |
- Output options: set the field delimiter to comma, make sure the header row (Include column headers) is on, and set the record/line ending to CRLF.
- File name: name the output file exactly
students.csv. Manage1to1 looks for that exact name.
By default a PowerSchool export writes technical field names as headers, sometimes even prefixed with the table (like Students.Student_Number). Manage1to1 needs the friendly names from the table above. Local Student ID, First Name, and Last Name are the three that must be present and named correctly; the rest are matched if present and ignored if not. Local ID, Grade, and Building also work as aliases for Local Student ID, Grade Level, and Building Code if that's easier on your end.
You're not limited to the columns above. Add any extra column your SIS holds, whether that's a program track, graduation year, bus route, lunch status, or homeroom, and Manage1to1 stores it as a custom field on the student or staff record. Extra columns are matched to your custom fields by the column name, and anything Manage1to1 doesn't recognize is simply ignored. A stray or mismatched column never breaks the import, so you can export freely. To turn a brand-new column into a field, run the file through the in-app Bulk Student Import once (its preview offers to create the field for you), or add it first under Settings > Custom Fields. For the SIS-driven approach, see Mapping SIS Data into User Custom Fields.
Step 2: Schedule it and deliver to SFTP
Still in the export template:
- Delivery / Destination: choose SFTP (or a saved SFTP connection), and enter your Manage1to1 SFTP host, port, username, and password from the prerequisites above. Set the remote path to
/incoming/data/. If PowerSchool prompts you to accept the server's host key on the first connection, accept it. - Schedule: run it nightly, at a time at least 30 minutes before your Manage1to1 Default Daily Automation Time. Most districts export around 1 to 3 AM and import around 3 to 5 AM. That ordering guarantees the fresh file is fully written and closed before Manage1to1 reads it.
- Save, then use Run Now (or run the template once by hand) to push a first file and confirm the connection works.
If PowerSchool is still writing students.csv when Manage1to1 tries to read it, the import can fail with a file-lock error. Scheduling the export to finish well before the import time avoids this. If your PowerSchool export writes slowly, have it write to a temporary name and rename it to students.csv when finished, so Manage1to1 only ever sees a complete file.
Step 3: Add the staff export
Repeat Step 1 with a second Data Export Manager template, this time on the Staff / Teachers table, named staff.csv:
| PowerSchool field | Rename the column to | Notes |
|---|---|---|
TeacherNumber (staff local ID) | Staff ID Number | Required. |
First_Name | First Name | Required. |
Last_Name | Last Name | Required. |
Email_Addr | Email | Recommended. Used for sign-in and notifications. |
SchoolID (School Number) | Building Code | Matches the Manage1to1 building. |
Optional staff columns Manage1to1 picks up if you include them: Position, Certification, Username, Password. Schedule and deliver it to /incoming/data/ exactly as in Step 2.
Step 4: Add the guardian export (optional)
If you want guardian and parent contacts in Manage1to1, add a third template on PowerSchool's contacts data (the "Students for All Contacts" style source, where the exact field names vary by PowerSchool version). Name it guardians.csv with these columns:
| Manage1to1 column | What it holds |
|---|---|
Local Student ID | The student's Student_Number, which links the guardian to the student. Required. |
Guardian ID | A stable ID for the guardian (the contact's ID). |
Guardian First Name / Guardian Last Name | The guardian's name. |
Guardian Email | The guardian's email. Used for portal access and family notifications. |
Guardian Home Phone / Guardian Work Phone / Guardian Cell Phone | Optional phone numbers. |
Guardian Relationship | For example Mother, Father, or Guardian. |
Because PowerSchool's contact model changed over the years, map your version's contact fields to these column names in DEM. The linking column (Local Student ID set to the child's Student_Number) is the one that has to be exactly right.
Step 5: Turn on the nightly import in Manage1to1
The files are now landing in SFTP on a schedule. Finish on the Manage1to1 side by following Uploading Student, Staff & Guardian CSVs via SFTP: set the Default Daily Automation Time, enable Automatic Student / Staff / Guardian Import, and decide whether to enable the "mark missing as inactive" toggles.
The deactivation toggles treat your file as the authoritative roster: anyone not in it gets deactivated on the next run. Turn them on only once your PowerSchool export is confirmed to include every active student and guardian district-wide. For a partial or single-building file, leave them off. Always validate with one small file first. You can run it through the in-app Bulk Import preview on a copy to see exactly what would happen before scheduling.
Verify
- In PowerSchool, confirm the scheduled export ran and reported success, and that a fresh
students.csvsits in/incoming/data/. - The morning after the first Manage1to1 import, spot-check a few students. Names, grade levels, and buildings should match PowerSchool, and each student should land in the right building (proof your Building Codes align).
- The created, updated, and skipped counts land in the Manage1to1 Activity Log after each nightly run.
Moving on later
Nothing here locks you in. If you later want student photos or richer fields, you can add the PowerSchool plugin or a OneRoster provider and switch over, and your existing data carries across. Want class schedules too? You can stay on the free CSV approach and load them from OneRoster CSV; see Import Class Schedules from OneRoster CSV. This free extract is a solid, no-cost foundation you can grow from whenever you're ready.