# How do I manage the staff directory?

Go to Manage Staff Directory (/staff/admin) — a browsable listing of your school's own faculty and staff (name, title, email, phone, location), separate from the family/student roster. The directory…

Source: https://www.studentdirectory.app/help/admins/staff-directory
Last updated: 2026-11-04

*From the School Administrator manual, "Staff Directory".*

Go to **Manage Staff Directory** (`/staff/admin`) — a browsable listing of your school's own faculty
and staff (name, title, email, phone, location), separate from the family/student roster. The
directory always sorts by last name, then first name.

- **+ Add Staff** for one entry at a time (`/staff/new`) — enter **First Name**, **Last Name**
  (both required), and an optional **Salutation** (e.g. Mr., Mrs., Dr., Coach) alongside Title,
  Email, Phone, and Location. There's no single "Name" field to fill in — the displayed name (e.g.
  "Dr. Jane Smith") is built automatically from these parts. A **Biography** field at the bottom
  uses the same formatting toolbar as Notices (bold, italics, headings, lists, links) for a
  longer-form write-up of the staff member — optional, and left blank shows nothing on their page.
- **Import CSV** (`/staff/import`) for bulk entry, same pattern as the student CSV import. The
  template's columns are `last_name`, `first_name`, `salutation`, `title`, `email`, `phone`,
  `location`, `biography` — last name and first name are required on every row. A biography column
  in the CSV is imported as **plain text only** — any formatting has to be added afterward through
  Edit, since the CSV import has no way to express bold/headings/etc.
  **Importing again later is safe.** A re-import only adds and updates, it never deletes or clears. A person
  is matched by email; a row with no email is matched by first and last name when exactly one person has
  that name (a name shared by several people is skipped and reported). Cells with a value overwrite what's
  stored; **blank cells leave the stored value alone**, so you can import a file that carries only the
  columns you want to change. To remove a person or clear a phone number, use Edit on the staff page.
  A biography in the file replaces the one shown on that person's page. If **Confirm import** fails, a
  red message says why and your preview stays on screen so you can try again; a file with no email for
  a row that matches nobody adds that row as a new person.
- **Edit** an existing entry (`/staff/{id}/edit`) to add a photo — click **Add photo** (or
  **Replace photo** if one is already set), pick an image, crop it, and save. **Remove photo**
  clears it back to the colored-initials placeholder.
- **Delete** (via the trash/delete control) on each existing entry.
- **Invite** — a staff-directory entry is just contact info by default; it doesn't grant that
  person any app access on its own. A staff member with an email on file who isn't already a member
  or already invited shows an **Invite** button (here, and on their own detail page at `/staff/
  {id}`) — click it, pick a role, and Send to have them registered the same way Manage Access's own
  invites work. **Manage Staff Directory** also has a bulk version: every eligible staff member is
  pre-selected (uncheck any you don't want in this batch), pick one role for the whole group in the
  bar at the bottom of the page, and click **Invite**. If anyone in the batch already has a role at
  your school, they're skipped and listed inline below the "Invited N" message, along with their
  existing role — the rest of the batch still goes through. The same applies to **Also invite** on the
  New Staff Member form: when that email already has a role, the form says the person was added but no
  invite was sent, with a **Continue to the staff list** link. There's no "Resend" here — only for a
  genuinely new invite; to resend one already sent, use **Manage Access**.

Every school member (parents included) can browse the read-only directory at `/staff`. Tapping a
staff member's name opens their own page with the same details, their photo (or a colored-initials
placeholder when none is set), and, on both Web and the SwiftUI app, a fully formatted biography
below the contact details when one is set.

When your school uses **Departments** (see Classes & Departments), the directory also shows each
person's departments: up to two small green department labels under their name (and "+2" if they are
in more), and a row of department buttons above the list. Tap a department button to show only that
department's staff; tap it again (or **All**) to show everyone. A person who is in no department
shows no label, and a school that does not use Departments sees neither.

**SwiftUI app:** an admin viewing an existing staff member's page can also create, edit, and delete
entries there directly, not just browse them — tap the pencil icon to edit any field (including the
photo, via a library picker with no crop step) and Save, or tap **Delete Staff Member** (inside Edit
mode, behind a confirmation) to remove the entry — the same real hard delete as the web Delete
control (an entry linked as an Organization Leader stays listed there, just unlinked). A **+** button
on the Staff Directory list creates a new entry immediately with a placeholder name and opens
straight into its Edit form — fill in the real details and Save. Tapping **+** and then Cancel without
changing anything still leaves that placeholder entry in the directory; use Delete (inside Edit) to
remove it.
