Bildungsplattformen haben besondere E-Mail-Anforderungen: mehrere Stakeholder, altersgerechter Inhalt und die Einhaltung von Datenschutzvorgaben für Schüler:innen. So entwirfst du effektive EdTech-E-Mail-Systeme.
Die EdTech-E-Mail-Landschaft
EdTech-Plattformen kommunizieren mit:
- —Schüler:innen (verschiedene Altersgruppen)
- —Eltern/Erziehungsberechtigten (bei Minderjährigen)
- —Lehrkräften und Lehrenden
- —Administrator:innen
Jede Zielgruppe braucht unterschiedlichen Inhalt, Ton und Versandzeitpunkte.
Benachrichtigungsmuster für Schüler:innen
Erinnerungen an Aufgaben
interface AssignmentReminder {
student: {
name: string;
email: string;
gradeLevel: number;
};
assignment: {
title: string;
course: string;
dueDate: Date;
estimatedTime: string;
};
}
// Age-appropriate messaging
function getAssignmentTemplate(gradeLevel: number): string {
if (gradeLevel <= 5) {
return 'assignment-reminder-elementary';
} else if (gradeLevel <= 8) {
return 'assignment-reminder-middle';
}
return 'assignment-reminder-high';
}
### Grade and feedback notifications
```typescript
interface GradeNotification {
student: Student;
assignment: {
title: string;
course: string;
grade: string;
points: number;
maxPoints: number;
feedback?: string;
};
instructor: {
name: string;
};
}
await sendEmail({
to: student.email,
subject: `Grade posted: ${assignment.title}`,
template: 'grade-posted',
data: {
student,
assignment,
viewUrl: `${baseUrl}/assignments/${assignment.id}`
}
});
Kommunikation mit Eltern/Erziehungsberechtigten
Fortschrittsberichte
interface ParentProgressReport {
parent: {
name: string;
email: string;
};
student: {
name: string;
gradeLevel: number;
};
period: string;
courses: Array<{
name: string;
grade: string;
attendance: string;
teacherNotes?: string;
}>;
}
// Weekly parent digest
async function sendParentWeeklyDigest(parent: Parent, student: Student) {
const weekData = await getStudentWeekSummary(student.id);
await sendEmail({
to: parent.email,
subject: `${student.firstName}'s weekly progress`,
template: 'parent-weekly-digest',
data: {
parent,
student,
assignments: weekData.completedAssignments,
upcoming: weekData.upcomingDeadlines,
grades: weekData.recentGrades,
attendance: weekData.attendanceSummary
}
});
}
Einverständnis- und Genehmigungsanfragen
// Field trip permission
await sendEmail({
to: parent.email,
subject: `Permission needed: ${event.name}`,
template: 'permission-request',
data: {
student: student.name,
event: {
name: event.name,
date: event.date,
location: event.location,
description: event.description
},
deadline: event.permissionDeadline,
approveUrl: `${baseUrl}/permissions/${permission.id}/approve`,
denyUrl: `${baseUrl}/permissions/${permission.id}/deny`
}
});
Benachrichtigungen für Lehrkräfte
Klassenaktivitätsmeldungen
interface InstructorAlert {
instructor: Instructor;
alert: {
type: 'submission' | 'question' | 'absence' | 'grade_dispute';
student: string;
course: string;
details: string;
};
}
// Batch submissions notification
async function notifyNewSubmissions(instructor: Instructor) {
const submissions = await getPendingSubmissions(instructor.id, {
since: subHours(new Date(), 24)
});
if (submissions.length === 0) return;
await sendEmail({
to: instructor.email,
subject: `${submissions.length} new submissions to grade`,
template: 'submissions-digest',
data: {
instructor,
submissions: groupBy(submissions, 'course'),
gradingUrl: `${baseUrl}/grading`
}
});
}
Einhaltung von COPPA und FERPA
Altersabhängige Kommunikation
async function sendStudentEmail(student: Student, email: EmailData) {
// Check if student is a minor
if (student.age < 13) {
// COPPA: Send to parent instead
const parent = await getParentContact(student.id);
if (!parent) {
throw new Error('No parent contact for minor student');
}
await sendEmail({
to: parent.email,
subject: `For ${student.firstName}: ${email.subject}`,
template: 'parent-forwarded',
data: {
parent,
student,
originalEmail: email
}
});
} else if (student.age < 18) {
// Minor but can receive email
// CC parent if preference set
const ccParent = await shouldCCParent(student.id);
await sendEmail({
to: student.email,
cc: ccParent ? await getParentEmail(student.id) : undefined,
...email
});
} else {
// Adult student
await sendEmail({
to: student.email,
...email
});
}
}
Datenminimierung
// Only include necessary student data
interface SafeStudentData {
firstName: string; // No last name in emails
courseId: string; // Reference, not full details
// Never include: full name, student ID, grades in subject lines
}
E-Mails im Kurslebenszyklus
Anmeldebestätigung
await sendEmail({
to: student.email,
subject: `Enrolled: ${course.name}`,
template: 'enrollment-confirmation',
data: {
student,
course: {
name: course.name,
instructor: course.instructor.name,
startDate: course.startDate,
schedule: course.schedule
},
nextSteps: [
'Access your course materials',
'Introduce yourself in the discussion forum',
'Review the syllabus'
],
courseUrl: `${baseUrl}/courses/${course.id}`
}
});
Kursabschluss
await sendEmail({
to: student.email,
subject: `Congratulations! You completed ${course.name}`,
template: 'course-completion',
data: {
student,
course,
finalGrade: enrollment.finalGrade,
certificate: enrollment.certificateUrl,
nextCourses: await getRecommendedCourses(student.id, course.id)
}
});
Benachrichtigungseinstellungen
interface EdTechNotificationPrefs {
// Student preferences
assignmentReminders: boolean;
gradeNotifications: boolean;
courseAnnouncements: boolean;
discussionReplies: boolean;
// Parent preferences
weeklyDigest: boolean;
gradeAlerts: boolean;
attendanceAlerts: boolean;
// Timing
reminderTiming: '1day' | '3days' | '1week';
digestDay: 'friday' | 'sunday';
}
Best Practices
- —Altersgerechter Inhalt - Passe Ton und Komplexität an die Klassenstufe an
- —Privacy first - Niemals sensible Daten in Betreffzeilen
- —Parent visibility - Halte Erziehungsberechtigte bei Minderjährigen informiert
- —Handlungsorientierte Erinnerungen - Füge direkte Links zu Aufgaben hinzu
- —Fortschritt feiern - Positive Verstärkung fördert Engagement
- —Zeitpläne respektieren - Sende nicht während der Schulzeit oder spät in der Nacht
EdTech-E-Mail sollte den Lernweg unterstützen und gleichzeitig die Anforderungen an den Schutz der Privatsphäre von Schüler:innen sowie die Einbindung der Eltern respektieren.