Overview
The CSV import feature lets you add a large number of parent records at once by uploading a spreadsheet file. It uses a two-step preview-and-confirm process so you can review how the system matched parents to students before anything is saved.
Who Can Use CSV Import
CSV import is available to MSP administrators and school administrators. Counselors, staff, and parents cannot access this feature.
Preparing Your CSV File
Your file should have one row per parent. The supported columns are:
- parent_email (required) — The parent's email address
- parent_name (recommended) — The parent's full name
- parent_phone (optional) — Phone number for SMS notifications
- student_email (preferred) or student_name — Used to link the parent to their child's roster entry
- relationship — One of: mother, father, guardian, legal custodian
A file can have up to 5,000 rows per import session.
Tips for best results:
- Include student emails when you have them. Email matching is exact and reliable.
- When using student names instead of emails, use the same spelling and formatting as the school's Google Workspace directory.
- Diacritics (accents, special characters) are handled by the fuzzy matcher, but cleaner names produce better matches.
Step 1: Upload and Preview
- Open the Parents tab in the portal.
- Click Import from CSV.
- Select and upload your file.
- Shield processes each row and displays a preview table. This step does not save anything — it only analyzes your data.
For each row, the preview shows:
- Exact match — The student_email in the row matched a student already in your school's roster. These rows are ready to confirm as-is.
- Fuzzy match (up to 3 suggestions) — No email was provided or it did not match exactly, but the student_name was close enough to one or more students in the roster. Shield uses a normalized name-similarity algorithm with a minimum score threshold; candidates below that threshold are not suggested.
- No match — The row could not be matched to any student in your roster. You can still confirm the parent and link them to a student manually after import.
The preview session is saved for up to seven days. You do not have to confirm immediately.
Step 2: Review Fuzzy Matches
For rows with fuzzy match suggestions, review each candidate carefully. The system offers up to three possible matches per row, ranked by similarity score.
For each fuzzy match row you can:
- Accept the highest-ranked suggestion
- Choose a different candidate from the list
- Skip the row entirely (the parent will be imported with no student link)
This step is important. Incorrectly linking a parent to the wrong student would expose that parent to another family's alerts. Take a moment to verify that each match looks correct.
Step 3: Confirm the Import
Once you are satisfied with your review:
- Click Confirm.
- Shield validates every confirmed student link against your school's actual roster. Any student hash that does not belong to your school is silently dropped — this prevents a malformed file from linking a parent to a student at a different school.
- Shield creates the parent records, establishes the student links, and fires invite emails to every newly created parent account.
- The import session is marked as confirmed.
After Import
- Newly created parents receive a magic-link invite email and can sign in to the parent portal immediately.
- Parent records start with consent unverified. You must verify consent for each parent before they can receive alert notifications. See Consent Verification.
- Confirmed import sessions are retained for 30 days for reference, then automatically deleted.
Frequently Asked Questions
What if I upload the same parent twice?
Shield handles this gracefully. If a parent with the same email already exists in the school's records, the import merges the new data rather than creating a duplicate.
Can I import parents for multiple schools at once?
No. Each CSV import is scoped to a single school. Run separate imports for each school.
What happens to a row I marked as "skip"?
The parent record is not created for that row. You can add them manually later using the Add Parent form.
The fuzzy matcher suggested the wrong student. What do I do?
Use the candidate selector to choose the correct match from the list, or skip the row and add the parent manually after import with the correct student link.
How long does it take for invite emails to go out after confirmation?
Invite events are published immediately on confirmation. Email delivery depends on your email provider but is typically within a few minutes.