Chat Monitoring
Admin oversight of teacher–parent conversations — read-only monitoring, flagging, and muting.
Admins can silently monitor any teacher–parent conversation in real time. A persistent banner is shown to the teacher only — the parent is never informed.
Who Can Monitor
adminrosesuper_adminplatform_admin
teacher, accountant, facilities_admin, librarian, parent, student — cannot monitor.
Capabilities
- Admin joins a conversation as a silent read-only monitor — no messages sent from the monitor view
- Teacher sees a persistent non-dismissible 'This conversation is being monitored' banner
- Parent is never notified of monitoring activity
- Admin can flag a conversation with a written reason for later review
- Admin can mute a conversation — pauses all messaging for both participants
- Admin can flag individual messages within a conversation
- Real-time updates via Socket.IO — monitoring starts instantly on join
- Admin can stop monitoring at any time
API Routes
GET
/api/messages/monitor/conversationsList all conversations in the admin's school (with flag/mute status)
GET
/api/messages/:idGet messages in a conversation (admin bypass — no participant check)
POST
/api/messages/monitor/:id/joinStart monitoring — adds admin to conversation monitors array
DELETE
/api/messages/monitor/:id/joinStop monitoring — removes admin from monitors array
POST
/api/messages/monitor/:id/flagFlag a conversation with a reason
DELETE
/api/messages/monitor/:id/flagUnflag a conversation
POST
/api/messages/monitor/:id/muteMute a conversation with a reason
DELETE
/api/messages/monitor/:id/muteUnmute a conversation
POST
/api/messages/monitor/:id/flag-messageFlag a specific message in the conversation
Frontend Pages
/dashboard/admin/conversationsList all conversations with All / Flagged / Muted filter tabs/dashboard/admin/conversations/[id]Read-only conversation view with flag/mute action buttons