Skip to content

Learner Communications

Overview

Bulk Communication covers the tools instructors use to send messages to enrolled learners at scale — course announcements, email campaigns, deadline reminders, and scheduled messages. This is primarily an email channel, though the edx-ace framework supports additional channels.

The modern bulk communication experience is delivered by frontend-app-communications, a dedicated MFE replacing the legacy email form in the instructor dashboard.

Current State (2026)

  • Bulk email MFE: frontend-app-communications provides a rich compose interface with learner targeting
  • Targeting: Instructors can send to all enrolled learners, specific cohorts, specific enrollment modes (e.g., verified only), or learners meeting completion criteria
  • Scheduling: Emails can be scheduled for future delivery
  • edx-ace: The Async Communication Engine provides channel abstraction (email, push, SMS) and templating
  • Backend: Bulk email backend in edx-platform uses Celery for async delivery; configured with SMTP or transactional email providers

Architecture

  • Frontend: frontend-app-communications sends compose/schedule requests to edx-platform APIs
  • Backend: edx-platform bulk_email/ module manages email tasks; edx-ace provides channel routing and templating
  • Celery delivery: Each email sent as an individual Celery task; throttled to avoid overwhelming email providers
  • Targeting logic: Learner queries run at send time against enrollment and cohort tables
  • Bounce handling: Opt-out/unsubscribe handled by edx-ace; learners can opt out of instructor emails

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/frontend-app-communicationsBulk communication MFEMediumModern compose UI
openedx/openedx-platformBulk email backend, Celery tasks, targetingHighCore delivery system
openedx/edx-aceAsync Communication EngineMediumChannel abstraction

Recent Changes

  • frontend-app-communications maturing as the primary email compose interface

History

Origin

  • Year introduced: ~2013–2014 (instructor email launched early in edX)
  • Initial implementation: Simple email form in instructor dashboard; Celery tasks for bulk delivery
  • Context: At MOOC scale, instructors needed to communicate with thousands of learners simultaneously; regular email clients were not practical

Key Milestones

YearMilestoneTeams / People Involved
~2013–2014Basic bulk email from instructor dashboardUnknown
~2017–2018edx-ace Async Communication Engine introducedUnknown
~2021–2022frontend-app-communications MFE developmentUnknown

People Who Shaped This Area

  • Engineering: Unknown — open question for interview
  • Product: Unknown — open question for interview
  • Design: Unknown — open question for interview

Open Questions

  • [ ] What was the original instructor email system design?
  • [ ] Why was edx-ace built as a separate library rather than using an off-the-shelf email framework?
  • [ ] What email providers are typically used in production Open edX deployments?
  • [ ] What are the targeting criteria that instructors most commonly use?
  • [ ] What drove the decision to build a dedicated communications MFE?

Schema Education — Internal Research