Skip to content
← All capabilities

Communications & engagement

DLT-compliant SMS and WhatsApp with a delivery-state machine and failover, circulars and notices with read-tracking, and surveys to close the loop - so messages land and you can prove it.

Register your schoolBook a demo

See it live

Watch the real flow run

Reach every parent - and prove it was delivered.

The payoff

Outcomes, not features

DLT-compliant SMS / WhatsApp with automatic failover
Delivery and read receipts on every notice
Circulars that reach the right parents in their language
Surveys and feedback to hear back from families

Start to finish

Inside communications & engagement

The real end-to-end flow - from the school's first action to the audited, reason-coded outcome.

  1. 1
    Compose against DLT-registered templatesSMS and WhatsApp go out on DLT-registered templates through real vendor adapters - WhatsApp Cloud, MSG91, Exotel voice and RCS - so messages are compliant and carry the right sender identity, not ad-hoc text.
  2. 2
    Every send resolves consent firstBefore a message dispatches, a pure reconciler flattens both preference stores most-restrictive-wins: a channel stop, a disabled preference, a DND category or a quiet window all deny the send. Promotional traffic additionally needs a granted lawful basis. Consent is enforced, not assumed.
  3. 3
    Deliver with failover and a live state machineA single dispatch seam tries each configured provider in turn and reports no_provider or all_failed honestly. Every message advances a strictly forward-only delivery state - queued to sent to delivered to read, or into a terminal failed - reconciled from provider delivery receipts.
  4. 4
    Prove it landed, then close the loopCirculars and notices carry read-tracking and delivery proof; browser and app push ride FCM, APNs and web-push; and surveys with skip logic gather feedback - so you can show a message was read, not just sent.

The building blocks

The modules that do the work

The 5 modules that make up communications & engagement.

Comms & delivery

DLT templates, delivery-state machine, SMS / WhatsApp failover.

Notices & engagement

Circulars, read-tracking, delivery proof.

Notifications

Browser and app push, SMS and email backbone.

Surveys & feedback

Ask families and staff; act on what you hear.

School website builder

Build and publish the school’s public website; pages, media and a custom domain.

Signature automations

What most systems don't do

Built-in mechanics you won't find elsewhere - running in the product, not drawn on a slide.

Provider failover with an honest outcome

dispatchWithFailover walks the resolved provider list for a channel and attempts each in order; if nothing is bound it returns no_provider, and once every candidate is exhausted it returns all_failed - never a silent drop.

A strictly forward-only delivery state machine

Provider delivery receipts advance a ranked state machine - queued(0) to sent to delivered to read(3), with failed as a terminal sink reachable from any non-terminal state - so a late or out-of-order receipt can never regress a message that already reached read.

Consent flattened most-restrictive-wins before dispatch

reconcileDeliverability decides deny or allow over a PII-free state: a channel stop, disabled preference, DND category or quiet window each blocks the send, and promotional messages require a granted lawful basis - a permissive value in one store can never override a restriction in the other.

Read receipts and a custom domain

Notice read-tracking is idempotent (a repeat mark is a no-op via ON CONFLICT DO NOTHING) so read counts stay honest, and the website builder publishes each tenant on its own subdomain slug or a single unique custom domain resolved on a public, session-less read plane.

Straight answers

Communications & engagement - common questions

What happens if a message provider is down?

The dispatch seam tries each configured provider for that channel in order. If none is bound it tells you no_provider up front, and only after every candidate has failed does it report all_failed - there is no silent loss, and the outcome is recorded per message.

Can I prove a circular was actually read, not just sent?

Yes. Notices carry read-tracking with a delivery proof, and the per-reader read mark is idempotent, so read counts reflect distinct readers rather than double-counting a re-open. WhatsApp interactive-button acknowledgements are captured for emergency broadcasts.

Do you support push notifications and a school website?

Browser and app push run on FCM, APNs and web-push (VAPID), each failing closed to a dev stub until a real credential is bound. The website builder gives every school its own pages, media and one custom domain published to a public read plane.