Canvas and Kastr: the boundary between LMS messaging and school-to-home communication
Canvas and Schoology both have parent-facing features, both put a communication tab in front of teachers, and neither can reach a family that has not opted in. This page is the ownership boundary a communications director and a CTO can agree on in one meeting, plus the specific reason observer enrolments do not constitute a roster.
| Message | Owner | Why |
|---|---|---|
| Assignment posted, due date changed | LMS | Enrolled users, in context, where the work lives |
| Feedback on submitted work | LMS | Belongs to the submission |
| Course announcement to a class | LMS | Audience is exactly the course enrolment |
| Teacher note to one family | Either | LMS if the family is an active observer; messaging if reach matters |
| Attendance outreach | Messaging | The families you most need to reach are the least likely to be observers |
| Building announcement | Messaging | Audience is a school, not a course |
| Closure or delay | Messaging | Must arrive on a phone, tonight, regardless of accounts |
| Emergency | Messaging | Bypasses quiet hours and channel preferences by design |
| Survey or permission slip | Messaging | Must reach guardians, not enrolled students |
Only one row is genuinely contested, and the resolution is coverage: a teacher note through the LMS reaches a family that set up observer access, which in most districts is a minority of families and not a representative one. If the note matters, send it where it will arrive.
How observer access actually happens
Canvas expresses parent access through the observer role, and there are three ways an observer enrolment comes into being. Each has a coverage problem.
- Pairing codes. The student generates a code and gives it to a parent, who creates an account and enters it. This works well for engaged families and requires the student to be a willing participant — which, for a high-schooler whose grades are the subject of the conversation, is not a given.
- SIS import with an associated user identifier. The district imports observer enrolments directly, which is the only route that produces meaningful coverage. It requires the parent to have an account provisioned, which is a decision most districts have not made, and it still yields an email-only channel.
- Self-registration. A parent signs up and pairs. The most common route and the leakiest.
Schoology's parent accounts work similarly and share the same structural property: the guardian relationship in an LMS is something a person opts into, not something derived from the roster your registrar maintains.
The arithmetic that settles it. Whatever your observer adoption is — count it, it takes ten minutes — that is your maximum reach for anything sent through the LMS. A district at 45% observer coverage sending a closure notice through Canvas has told fewer than half its families, and the missing half correlates with the families who have the least slack in their week.
Why an LMS export is not a roster
The follow-up question is whether the Canvas SIS Import files could double as a Kastr roster. They cannot, and the reason is what they contain.
Canvas users.csv carries a user identifier, login, name, email and status. enrollments.csv carries a course, a section, a user, a role and a status. That is a competent shape for a learning platform and it maps recognisably onto the OneRoster model — the field map is here if you want to compare them column by column.
What it does not carry: guardian phone numbers, phone types, per-channel consent, correspondence preference, educational-rights flags, contact restrictions, guardian language preference, or contact rank. Those live in your SIS, they are the fields a communications platform is built around, and no LMS holds them because no LMS needs them.
If your district already maintains Canvas SIS imports, the useful conclusion is not that you can reuse the files. It is that you already have an export pipeline from the SIS, which is most of the work of standing up a roster sync — you are adding a second consumer to a job that already runs.
What Kastr deliberately does not do here
To keep the boundary honest from our side:
- Kastr does not read Canvas or Schoology. No grades, no assignments, no submissions, no gradebook events. There is no connector and no plan for one.
- Kastr sends nothing triggered by academic events. No missing-assignment alerts, no grade-drop notifications, no low-average nudges. Auto-notice rules can be configured in the interface and no engine fires them; that is the accurate statement of what exists today.
- Kastr has no attachments. No files, no photos, no video. If a teacher needs to send a document to a family, that is an LMS job or an email with a link, and it is a real gap when compared with a mature competitor.
- Kastr has no push notifications. The family experience is a web view reached by magic link. There is no mobile app with a badge.
Those are scope decisions and gaps in roughly equal measure. Attachments and push are things we should have; reading your gradebook is not.
What Kastr does that an LMS structurally cannot
The capabilities that follow from being roster-derived rather than opt-in:
- Voice and SMS. A guardian with no email address and no account still has a phone number in your SIS. When an SMS fails terminally the system can fail over to a voice call to the same person, with the two attempts linked so the delivery report reflects what happened.
- Quiet hours with a deliberate override. Ordinary messages queue between 21:00 and 07:00. Emergency-flagged messages ignore quiet hours and per-family channel preferences, and the ability to flag a message as emergency is a capability granted to named people rather than a checkbox on every composer.
- Per-guardian translation with a preview. Translation runs through DeepL, whose target set is around thirty languages, and the composer renders the draft in the languages you select before you send. There is no district glossary and no "see original" footer — both are asked for, neither exists.
- Guardians de-duplicated across siblings. Selecting a student expands to their guardians, and a parent with three children in one broadcast receives one message.
None of that is a criticism of Canvas. It is a different job, and an LMS that tried to do it would be worse at the job it currently does well.
Questions people actually ask
Can Kastr get parent contact details from Canvas observers?
No. Observer enrolments carry an email address at best and exist only for guardians who opted in through a pairing code, an SIS import or self-registration. There are no phone numbers, no consent state, no language preference and no rights flags. Those live in your SIS, which is where the roster should come from.
Does Kastr replace Canvas announcements?
No, and it should not. A course announcement to an enrolled class belongs in the LMS, where the audience is exactly the enrolment and the context is the work. Kastr covers the message classes an LMS cannot reach reliably: closures, emergencies, attendance outreach and building-wide announcements over SMS and voice.
Can I reuse our Canvas SIS Import files as the Kastr roster feed?
Not directly — they carry no guardian phone numbers, consent state, rights flags or contact rank. What is reusable is the pipeline: if you already export from the SIS to build those imports, adding a second consumer is a small job rather than a new project.
Does Kastr send messages triggered by Canvas grades or missing assignments?
No. Kastr reads nothing from Canvas or Schoology and sends nothing triggered by academic events. Auto-notice rules can be configured in the interface but no engine fires them yet, so every message that goes out today was composed by a person.
Is Schoology different from Canvas in any way that matters here?
Not structurally. Schoology's parent accounts are opt-in in the same way observer enrolments are, and its exports carry the same set of fields and the same missing ones. The boundary and the reasoning on this page apply to both.
One price. Every feature. Locked for three years.
$3.50 per student per year under 5,000 students. No tiers, no add-on modules, no per-message fees. Published on the site because you should not have to book a call to learn a price.