Communication
Conversations and chat controls
Channel-based messaging, moderation settings, and staff-student communication rules.
Communication guide for day and boarding schools.
Last updated August 29, 2026
Conversations provide channel chat between staff and students. The pilot uses polling (~few seconds on open threads) rather than WebSockets. School administrators configure who can initiate chats and moderation policies.
Configure the chat policy before you tell anyone the module exists. The rules are evaluated when a conversation is created, not when a message is sent, so a thread opened while the policy was loose keeps working after you tighten it. Deciding up front whether students may start direct messages, and whether they may direct message anyone other than staff, avoids having to hunt down and close existing threads later.
- /conversations - channel list and message threads
- /conversations/[id] - active conversation view
- /conversations/settings - school-wide chat policies
- Chat controls - restrict student-initiated DMs where required
- Staff-only channels - departmental groups without student access
Conversation types
| Type | Rules |
|---|---|
| DIRECT | Exactly two participants. Opening a direct thread with someone you already have one with returns the existing thread instead of a duplicate. |
| GROUP | Several named participants, no channel name required |
| CHANNEL | Named, for standing groups such as a department. The creator becomes an ADMIN participant. |
Chat controls
- Students can create groups - off by default. When off, a student attempting to create a channel or group is refused.
- Parents can create groups - off by default, with the same behaviour.
- Students can send direct messages - off by default. When off, students may still take part in threads staff created for them.
- Students can only direct message staff - on by default, and only shown once student direct messaging is enabled.
- Parents can only direct message staff - on by default, so parents cannot reach other parents or students.
Inside a thread
- Attachments, emoji reactions, pinned messages, and replies that open as a side thread.
- Editing your own message is allowed for 15 minutes; after that the text is fixed.
- Deleting is allowed for your own message, or for any message if you are an ADMIN participant of that conversation.
- Participants can leave a conversation; inactive user accounts cannot be added as participants.
Delivery and retention
There is no WebSocket transport. The open thread re-fetches every three seconds and the conversation list every thirty, pausing while the browser tab is hidden. That is fast enough for classroom use but it is not a live-typing experience, and it means an idle tab left open still generates traffic. Message retention is 365 days: the daily purge blanks older message bodies and marks them deleted rather than removing the rows.
Limits
- No read receipts beyond an unread counter, and no typing indicators.
- No keyword filtering or automatic moderation queue - review is manual.
- Chat controls are school-wide. You cannot set a different policy for one class or year group.
Common questions
Quick answers in plain language.
What happens if chat controls have never been saved?+
The code falls back to the safest combination: students and parents cannot create channels or groups, students cannot start direct messages at all, and both students and parents are limited to staff when direct messaging is allowed. You have to loosen those deliberately at /conversations/settings.
Who can change chat controls?+
Only Platform Admin, Principal, Vice Principal, and Admin. Other staff can open /conversations/settings and read the current policy, but the switches are disabled and the save button is hidden.
Can a teacher delete a student message?+
Only inside a conversation where they are an ADMIN participant, which the creator of a channel or group is by default. Anyone can delete their own message, and editing your own message is allowed for 15 minutes after sending.
How long are chat messages kept?+
Messages older than 365 days are purged by POST /api/conversations/retention/purge, which scripts/run-school-cron.sh calls daily. The row survives with its content replaced by a retention notice, so thread structure and timestamps remain for audit.
Related searches
School leaders and IT teams often search for: how to conversations in school management software, best parent communication app schools for K-12 schools, Schoolyi conversations guide, school notice board software, school announcement system, and parent messaging platform schools.

