0 · Why SFTP?
No API keys to juggle. Just drop a file every night—Proserva does the rest.
District retains full control. You decide exactly what fields land in Proserva, and where they come from.
Works with any SIS. If it can spit out a CSV, it can sync.
1 · Pre-Flight Checklist
✅ Item | Notes |
IP address(es) to whitelist | Send to Proserva so we can open the gate. |
Preferred SFTP username | Or we’ll auto-generate one. |
Nightly export time | Pick any; most districts use 2-3 a.m. local. |
2 · Build Your CSV
Use UTF-8 and include one header row followed by staff records. Order doesn’t matter, spelling does.
Refer to the Guide on Uploading and Updating District Data here for the template file.
3 · Automate the Nightly Drop
Export from SIS → Save/transform to the header format above.
SFTP client or cron/Scheduled Task → Upload to the root of the SFTP folder.
Overwrite or add: Either replace the previous day’s file or add a new, date-stamped one—Proserva ingests the newest file it finds.
Upload Frequency
Default: one file per 24 h.
Need more? Let us know—we can pull as often as every 4 h.
4 · How Data Overwrites Work
Proserva is gentle with your existing data. It will not overwrite existing date unless it falls in one of these scenarios:
Scenario | What happens |
New user appears | We create the account with the data as given. |
Field is blank in Proserva, but present in new file | We fill it in with the data as given. |
A different first name, last name, or email in the file (and existing employee ID) | We update to the new name/email. |
⚠️ Therefore, if you need to correct an existing field (e.g. wrong file_folder_number, or tenure), edit directly in Proserva. The nightly file won’t overwrite populated fields.
5 · Test & Go-Live
Send a one-off “test” CSV with 2–3 staff.
Proserva confirms records landed as expected.
Flip on the nightly job.
Celebrate with coffee—roster sync is now automatic.
➡️ 6 · Disabling (and Re-Enabling) Users
Keeping your roster clean is more than housekeeping—it protects licensure data, prevents orphaned coaching assignments, and simplifies billing. Proserva gives you three ways to disable accounts, plus an easy path to bring people back if they return.
Method | When to Use | How It Works | Reactivating Later |
A. resignation_date column (preferred) | You already know the last day of employment (retirement, resignation, leave). | Add the resignation_date (YYYY-MM-DD) to the user’s row. At midnight of that date the account flips to Inactive. | Remove the date or set a new future date; status switches back to Active at next sync. |
B. Remove user from nightly CSV | Short-notice departures where you can’t update resignation_date. | If a user’s employee_id + email disappears from the nightly file, Proserva automatically disables the account. | Re-add their row in the next file. |
C. Manual toggle in the Admin Portal | One-off cases (long-term leave, sub roles) or emergency lockouts. | User Search → search name → Disable account. Takes effect instantly; no sync needed. | Click Restore Access in the same place. |
What “Disabled” Means Under the Hood
Area | Behavior |
Login | User cannot sign in (SSO or email). |
Licensure & CEU data | Retained—no data loss. |
Coaching / Portfolio | Goals & artifacts remain view-only for coaches/admins. |
Billing | Inactive users are excluded from per-seat counts at renewal. |
🔒 Data is never deleted on disable—it’s simply hidden from active rosters.
Best-Practice Workflow
Add resignation_date for known departures (retirements, contracts ending).
Purge your nightly CSV of staff who’ve already left but don’t have a resignation date—Proserva will catch & disable automatically.
Manual toggle only for edge cases such as maternity leave or disciplinary suspensions.
Reactivation Scenarios
Scenario | Action |
Teacher returns from sabbatical | Remove the resignation_date or set a new future date → nightly sync flips them back to Active. |
Mistaken disable | Re-add the user’s row in nightly CSV (or manual enable). Their courses, CEUs, and coaching history reappear instantly. |
Rehire with new email | Add a new row (new email, same employee_id). Proserva merges records so history follows the staff member. |
Users can always be reactivated using the "Restore Access" button found on their user profile. You can find deactivated users in the District/Network Portal > Manage > Users.
Need a hand?
Ping your onboarding specialist or email support@proserva.co—we can bulk-reactivate or export a list of inactive users on request.
FAQs
Q | A |
What if our SIS can’t export resignation_date? | Leave it out; you can still disable staff manually in Proserva. |
Can we include extra columns? | Sure—Proserva ignores unrecognized fields. |
What if we need to pause the sync? | Simply stop sending files; existing accounts stay active. |
File size limit? | None in practice—CSV parses up to hundreds of thousands of rows. |
Need help?
Email support@proserva.co or message your Proserva onboarding rep.
We’ll get you squared away faster than you can spell “SFTP.”
CSV Upload Frequency
The frequency of data upload is every 24 hours. You can perform an upload at any time. If you need to trigger it more often, please advise Proserva.
Data Overwriting
Each upload will not overwrite all existing data within the database. The data will only be overwritten in the following cases:
It is a new user.
The existing data in the application for that field is empty.
If the email, first or last name change and there is an existing user with that employee ID number in your district.
This means that correcting data such as an incorrect file_folder_number must be done manually within Proserva.