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/conversations

List all conversations in the admin's school (with flag/mute status)

GET/api/messages/:id

Get messages in a conversation (admin bypass — no participant check)

POST/api/messages/monitor/:id/join

Start monitoring — adds admin to conversation monitors array

DELETE/api/messages/monitor/:id/join

Stop monitoring — removes admin from monitors array

POST/api/messages/monitor/:id/flag

Flag a conversation with a reason

DELETE/api/messages/monitor/:id/flag

Unflag a conversation

POST/api/messages/monitor/:id/mute

Mute a conversation with a reason

DELETE/api/messages/monitor/:id/mute

Unmute a conversation

POST/api/messages/monitor/:id/flag-message

Flag 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