All modules & pricing
EssentialsStaff portalStudent portalParent portal

Communication & Messaging

One place for everything the school says — notices, direct messages and automatic alerts — sent to the right people, on the channels they actually read, with proof it arrived.

Get startedTalk to us₦3,500.00/mo · on top of your base package

What this module is

School communication is usually scattered across a WhatsApp group nobody can audit, a bulk-SMS account with a separate login, a letter in a school bag, and a teacher’s personal phone number. Nothing is on the record, nobody can prove a message was sent, and when a parent says they were never told, the school has no answer.

The Communication module replaces all four with surfaces that already know the school. An announcement is aimed at an audience the platform can resolve — a grade, a class, a named student group, an access profile — because those are the school’s own records, not a mailing list somebody keeps up to date by hand. A direct message is a thread between two real accounts, held by the school rather than by either person.

It divides into five surfaces for the school office — announcements, messages, notification operations, moderation and policy — and gives staff, students and guardians the receiving end of each in their own portal. It also carries the delivery machinery every other module depends on: the fee reminder, the clinic notice and the leave-pass approval all leave through this module’s pipeline, which is why the delivery log below shows traffic no one composed by hand.

What you get

Audiences the school already has

Aim a notice at a grade, a class, a student group or a role and the recipients resolve themselves from the roll. There is no list to maintain, and no list to forget to update in September.

Proof of delivery, not hope

Every announcement carries read receipts, and every send lands in a delivery log with a per-channel outcome. "We told the parents" becomes a number rather than a claim.

Messaging the school actually owns

Parent–teacher conversations happen on school accounts, on the school record, subject to school policy — instead of on a teacher’s personal number where the school has no visibility and no recourse.

Moderation built in, not bolted on

Anyone in a thread can escalate a message; it lands in a school queue with the reported content attached and notifies administrators immediately.

One pipeline for the whole platform

Fee reminders, clinic notices, hostel leave passes and results releases all dispatch through this module, so a school configures its channels and templates once.

Failures that can be fixed

A bounced email or an unreachable phone number shows in the log as a failed channel, and can be retried on that channel alone rather than by re-sending to everyone.

Every flow, every role

How Communication & Messaging actually works

Everything below is the real application, running live on this page with sample school data — not screenshots. Each screen is the same one your team would use.

School office / Administrator

The office is where communication is produced and governed. These screens are the whole job: send a notice to the right people, hold the school’s own conversations, watch what actually went out, review anything escalated, and set the rules everyone else operates under.

1

Start at the communication hub

The module opens on a hub rather than a feed, because communication splits into two jobs that should not be confused: getting a message out, and governing how messaging works.

Delivery surfaces — messages for direct threads, announcements for broadcasts.
Operations surfaces — the notification log, the moderation queue, and policy settings.
Each tile is access-controlled: a member of staff sees only the surfaces their role grants, so the hub is different for the bursar and the head.
2

Work the announcement outbox

Every notice the school has written lives here — published, scheduled and draft together — so the state of school-wide communication is one list rather than a memory.

Filter by status, channel, priority and audience scope to find what went where.
Drafts sit beside sent notices, so a half-written notice is never lost in someone’s email.
A scheduled notice shows its send time and has not gone anywhere yet — it is a queued job, not a reminder to a person.
Open any notice for its read receipts: how many recipients it reached and how many have actually opened it.
Duplicate a past notice to reuse it — the same end-of-term reminder does not get retyped each term.
3

Compose to an audience the platform can resolve

This is the screen that makes the module different from a bulk-SMS account: the recipients are chosen as school concepts, and the platform expands them at send time from the live roll.

Audience scopes: the whole school, all staff, all students, all parents — or a specific set of grades, classes, named student groups or access profiles.
Channels per notice — in-app, email and SMS — chosen for that message rather than fixed for the school.
Priority (low, normal, high) carries through to how the notice is presented in every recipient portal.
Publish now, or set a send time and let the scheduler dispatch it; an expiry date retires the notice without anyone remembering to.
Save as a draft and come back — the form keeps an offline draft, so a lost connection does not lose the wording.
4

Hold the school’s own conversations

The same messaging workspace every portal uses, seen from the office: threads with guardians, teachers and students, each attached to the school rather than to whoever happens to be handling it.

Start a thread with any parent, teacher or student the school’s policy permits.
Attachments, replies to a specific message, and forwarding into other threads.
Close a conversation when a matter is settled — it stays readable, but nobody can add to it.
Flag a message for review from inside the thread, which puts it in the moderation queue.
Unread counts and live updates, so a thread that needs an answer is visible without opening it.
5

Watch what actually went out

Announcements are only part of what a school sends. This is the delivery log for the whole platform — every fee reminder, clinic notice and results release — with the outcome of each channel and a way to fix what failed.

Pending, scheduled, dispatching, completed and failed requests in one queue, with the originating event key on each row.
Per-channel delivery status: how many in-app, email and SMS deliveries succeeded, and the error on the ones that did not.
Retry a whole request, or retry only the channel that failed — a bounced SMS batch does not mean re-emailing 800 parents.
Reusable templates per channel, with variable substitution and a live preview before anything is sent.
Queue a one-off operational notification directly, aimed at roles, grades, classes or a pasted list of recipients.
6

Review what has been escalated

Open messaging between adults and children is only defensible if someone is watching. Anyone in a thread can escalate a message, and it arrives here with the reported content attached.

Every flag with its reason, who raised it, and the message itself — not just a pointer to a conversation.
Filter by status and by the role of the reporter, so a pattern involving one group is visible.
Resolve or dismiss with the outcome recorded against the flag.
Administrators are notified in-app the moment a flag is raised, so review is not dependent on someone checking the queue.
7

Set the rules everyone operates under

The policy screen decides who may open a conversation with whom, and who may close one. It is short on purpose — these are the only two decisions that matter, and both are the school’s to make.

Initiation, per role: administrators, parents, form teachers, subject teachers and students each on or off.
Closing, per role: who may end a conversation for everyone in it.
Changes take effect immediately across every portal — the "new conversation" control simply is not there for a role the school has not enabled.
The default is deliberately not everything-on: subject teachers cannot open threads, and only administrators can close one.

Teachers & other staff

Staff are on both sides of this module: they receive what the school publishes, and they hold their own conversations with guardians and the office. Neither requires a second app, and neither uses a personal phone number.

1

Read what the school sent them

A member of staff sees the notices aimed at them — staff-wide, their role, their classes — in their own portal, with the urgent ones marked.

Filter by channel and priority to find a specific notice.
Read state is tracked, which is what feeds the read receipts the office sees.
An unread count in the navigation, so a rota change is not missed.
2

Hold their own threads

The same messaging workspace, scoped to this employee: their conversations with the office and with the guardians of the children they teach, on the school’s record.

Threads with guardians and administrators, with attachments and replies.
Whether a teacher can open a thread — and with whom — is the school’s policy setting, not a per-teacher choice.
Anything inappropriate can be escalated to the school from inside the thread.
A teacher’s personal number never enters the conversation, which is the point.

Students

Students are the audience schools most often communicate with badly — a notice read aloud once, a deadline on a noticeboard. Their portal gives them the school’s notices in writing, and a supervised way to ask a teacher a question.

1

The school’s notices, in writing

Announcements aimed at students land in their own portal, newest first, with priority marked. An exam timetable notice is now something a student can re-read at home.

Search and filter across everything they have been sent.
Priority is visible, so an urgent notice does not look like a club reminder.
Notices aimed at the whole school arrive here too — students are not a separate mailing list.
2

Ask a teacher, on the record

Students get their own messaging workspace, limited to the teachers the school’s policy allows them to reach. Every exchange is held by the school and can be escalated.

Threads with subject and form teachers, with attachments for work-related questions.
Whether a student may start a thread at all is the school’s setting — off, and they can only reply to threads a teacher opens.
The school can see and moderate these conversations, which is what makes them safe to allow.

Parents & guardians

Guardians are the audience this module changes most. Instead of a letter in a bag and a teacher’s personal number, they get the school’s notices in the same portal as their child’s attendance and fees, and a direct line that the school can see.

1

School notices where the rest of the record is

A guardian reads the same notice they were emailed or texted, kept beside their ward’s results, attendance and invoices rather than lost in a personal inbox.

Everything the school has sent them, searchable and filterable by priority.
Notices aimed at parents and at the whole school both arrive here.
Read state feeds the office’s receipts, so the school knows the message landed.
2

A direct line the school can see

Threads with the form teacher and with the office, held on school accounts. The school sets whether guardians may open a conversation, and every message can be escalated by either side.

Conversations are attached to the ward, so context travels with the thread.
Attachments — a receipt, a medical note — without resorting to a personal phone.
The guardian can flag a message for the school’s attention, exactly as staff can.
When a matter is settled the school can close the thread; it stays readable to both sides.

How it connects to the rest of the platform

  • Audiences come from the base platform

    Grades, classes, student groups, guardians and access profiles are the school’s existing records. An announcement aimed at "JSS 2A" resolves from the live roll at send time, so a transfer or a new intake is reflected without anyone touching a list.

  • Every module’s notifications leave through here

    The dispatch pipeline, the templates and the delivery log are shared. A fee reminder, a clinic visit notice, a hostel leave-pass approval and a results release are all requests in the same queue, which is why one place shows a school everything it has sent.

  • Fee chasing is a communication jobrequires School Fees & Finance

    School Fees raises the overdue reminders and this module delivers them, to the guardian, on the channels the school configured — and shows the school which of them bounced.

  • Opt-outs are the recipient’s to set

    A person can opt out of a channel in the shared notification centre, and the dispatcher checks that before every send — so a guardian who has opted out of SMS is not texted, however the notice was composed.

  • Access control is the school’s own

    What a member of staff can send, read or moderate is governed by the same access profiles as the rest of the platform. Publishing a school-wide notice is a permission, not a job title.

Common questions

Can we send SMS as well as email?+

Yes. Each announcement chooses its own channels — in-app, email, SMS, or any combination — and the delivery log records the outcome per channel. SMS is charged per message by the provider, so it is usually reserved for genuinely urgent notices while email and in-app carry the rest.

Do parents and teachers need each other’s phone numbers?+

No, and that is much of the point. Conversations run between school accounts inside the portal, so a teacher never gives out a personal number and the school retains a complete record of what was said.

Can we stop parents from messaging teachers directly?+

Yes. The settings screen turns initiation on or off per role — parents, form teachers, subject teachers, students and administrators — so a school can allow parent-to-form-teacher threads while keeping subject teachers out of the loop, or route everything through the office.

What happens if a message is inappropriate?+

Anyone in the thread can flag it with a reason. The flag lands in the school’s moderation queue with the reported message attached, and administrators are notified in-app immediately. The school then resolves or dismisses it, and the outcome is recorded.

How do we know a notice was actually received?+

Two ways. Each announcement carries read receipts — how many recipients it reached and how many opened it — and the notification log shows the per-channel delivery outcome, including failures, with a retry for the channel that failed.

Can we schedule an announcement in advance?+

Yes. Set a send time and the notice is queued as a scheduled job; it publishes and dispatches itself at that moment. Until then it sits in the outbox marked as scheduled, and can still be edited or cancelled.

Is this a bulk-email marketing tool?+

No, and it does not pretend to be. There are reusable templates with variable substitution and a preview, and audience targeting by grade, class, group and role — but there is no campaign builder, no rich HTML editor and no open/click analytics beyond in-app read receipts.

Run your whole school on one connected platform

Start with the base package, switch on the modules you need, and give every parent, student and staff member a single place to log in.