The most common question from a new school is "I pressed Invite — did the student get anything?" The answer makes sense once you know what an invitation actually is.
What an invitation is
When an admin invites someone, the portal stores a record: an email address, a role (student, teacher, admin), a stream, a random token and an expiry date. The token becomes a link of the form `.../invite/<token>`.
No account is created. The person signs up for Voone themselves; the link only attaches an existing person to your school and stream. This is not penny-pinching: an account created by a school would belong to the school, and parting ways with a teacher would become an argument about whose mailbox and whose password it is.
That shapes the screen too. A fresh link is shown large, copied with one button and handed to your mail program with another. If a new invitation merely dropped into a table as one more row, schools would press Invite, walk away, and wait for a student who was never told.
The link is the part that always works
You can send the link by email, in a messenger, or read it out over the phone. It does not depend on whether a message was delivered, whether it landed in a spam folder or whether somebody mistyped one letter of an address.
A few rules that save time:
Copying an expired link is pointless — it is dead. Such an invitation offers "Invite again" instead of "Copy": the portal extends it and issues a new token.
An accepted invitation is spent. The portal shows three honest states: waiting, expired, accepted.
Invitations are an admin's list. Teachers are not shown it, because inviting people into a school is administration, not teaching.
Where email fits
There is one mail system across the whole product: sign-in codes and school messages go out through the same sender, configured in one place and written to one delivery log. The portal's share of that mail is being extended right now, so the useful thing to know is not a list of occasions but the rules behind them, which are not going to change:
Mail a person is waiting for ignores unsubscribes. An invitation, or a verdict on their work, answers something they did themselves. A school inviting someone while the message silently stays home is not an acceptable outcome.
Anything that behaves like a stream can be switched off, and every such message carries an unsubscribe link.
The message is signed by the school, the technical sender stays ours. The school's name is in the From line and its address in Reply-To, so a student replies to you and not into the void. Putting the school's own domain in the technical sender would fail that domain's authentication and land the message in spam.
Nobody is written to at an address the portal does not have. The portal learns a person's address after their first sign-in; the exception is the invitation, where the address is written in the invitation itself.
The practical conclusion is one line: email is a convenience, the link is the mechanism. Keep the link within reach and a failed message costs you one more note in a messenger rather than a lost student.
When a student never arrives
Check the state of the invitation first. "Waiting" means nobody has used the link — send it again. "Expired" means invite again. "Accepted", yet the person is not in the stream, means they were invited to the school rather than to a stream: enrol them from the stream card by hand.