Enable Notifications#
Note
The notifications feature was rolled out in Ulmo and has been enabled by default since the Verawood release. Several notification changes were also introduced in Verawood. See Open edX Verawood Developer & Operator Release Notes.
This document describes how to enable, disable, or configure notifications. To learn about the notifications feature, see Notifications & Preferences.
Before configuring notifications, confirm the following:
Email delivery is configured for the platform.
Celery workers are running for asynchronous notification and digest tasks.
Disable Notifications#
Platform notifications are enabled by default. Unless the notification feature is disabled, users see the notification tray in the LMS and Studio, and notification preferences on the Account Settings page. Notification emails are also enabled by default, but they are delivered only when a notification is generated for a user whose email preference for that notification type is enabled, and the Open edX instance is configured to send ACE email through an email provider.
Use these waffle flags to disable notifications:
Waffle flag |
Default |
Description |
|---|---|---|
|
|
Disables the notification feature and hides the notification tray and notification preferences. |
|
|
Disables notification emails without disabling the notification tray. |
The Web channel is always visible in notification preferences and controls
tray notifications. The Email channel is visible by default and can be
hidden by setting SHOW_EMAIL_CHANNEL to False and then rebuilding the
MFE image. Hiding the email channel does not disable email notifications.
Configure Notification Email Delivery#
Daily and weekly digest emails are scheduled through Celery when notifications are created. Do not configure cron jobs for daily or weekly notification digest emails.
Use these settings to configure notification email delivery:
Setting |
Default |
Description |
|---|---|---|
|
|
The sender address used for notification emails. Override this value for production deployments. |
|
|
Buffer window, in minutes, for immediate notification emails. The first immediate email is sent right away; additional immediate notifications in the buffer window are grouped into a digest email. |
|
|
Hour of day, in UTC, when daily digest emails are sent. |
|
|
Minute of the hour when daily digest emails are sent. |
|
|
Day of the week when weekly digest emails are sent. |
|
|
Hour of day, in UTC, when weekly digest emails are sent. |
|
|
Minute of the hour when weekly digest emails are sent. |
Configure Default Notification Preferences#
Operators can override the defaults used when notification preferences are created for users.
Notification preferences are organized by notification app and notification
type. Some notification types have their own defaults while others
use app-level defaults by setting use_app_defaults: True. These app-level
defaults are also used to bundle related notification types under one row on the
Account Settings page.
Overrides apply when new NotificationPreference rows are created. They do
not automatically update existing user preference rows.
Where to Configure These Settings#
NOTIFICATION_APPS_OVERRIDE and NOTIFICATION_TYPES_OVERRIDE are LMS
Django settings. For Tutor deployments, create a Tutor plugin file, for
example notification_preferences.py, and patch the LMS settings with the
openedx-lms-common-settings patch. For other deployments, add these values
to the LMS Django settings override used by the deployment.
For example:
from textwrap import dedent
from tutor import hooks
hooks.Filters.ENV_PATCHES.add_item((
"openedx-lms-common-settings",
dedent("""
NOTIFICATION_APPS_OVERRIDE = {
"discussion": {
"email": True,
"email_cadence": "Daily",
},
}
"""),
))
Setting |
Description |
|---|---|
|
Changes defaults for individual notification types. |
|
Changes app-level defaults used by notification types with
|
Supported override keys are:
Key |
Values |
Description |
|---|---|---|
|
|
Enables or disables tray notifications for the preference. |
|
|
Enables or disables email notifications for the preference. |
|
|
Sets the default email cadence. |
|
List containing |
Lists channels that learners cannot change. |
Unknown notification keys and unsupported override fields are ignored.
For notification types that use app-level defaults, prefer
NOTIFICATION_APPS_OVERRIDE so every notification type in the grouped
preference row uses the same defaults. Use NOTIFICATION_TYPES_OVERRIDE for
notification types that have their own preference rows.
Example configurations:
NOTIFICATION_APPS_OVERRIDE = {
# Applies to discussion notification types that use app-level defaults.
"discussion": {
"email": True,
"email_cadence": "Daily",
},
}
NOTIFICATION_TYPES_OVERRIDE = {
# Applies to a specific notification type.
"course_updates": {
"web": True,
"email": True,
"email_cadence": "Immediately",
},
}
Notification Apps and Types#
Operators need internal notification app and type keys when writing default preference overrides. Notification apps provide app-level defaults. Notification types either inherit those app defaults or define their own defaults.
Notification app key |
Tray default |
Email default |
Email cadence default |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Notification type key |
App key |
Uses app defaults |
Preference name |
Default |
|---|---|---|---|---|
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
Yes |
Activity notifications |
App default |
|
|
No |
Reported content |
Tray on, email daily |
|
|
No |
New discussion posts |
Tray off, email off |
|
|
No |
New question posts |
Tray off, email off |
|
|
No |
New posts from instructors |
Tray on, email daily |
|
|
No |
Course updates |
Tray on, email daily |
|
|
No |
New ORA submission for staff grading |
Tray on, email off |
|
|
No |
Essay assignment grade received |
Tray on, email daily |
|
|
No |
Essay assignment reminders |
Tray on, email daily |
For learner-facing explanations of these activities, see Notifications & Preferences and Staying Updated with Notifications.
Configure ORA Reminder Notifications#
ORA reminders notify learners who have submitted an ORA response but have not completed required peer or self review steps.
ORA reminder notifications are enabled by default. Set
ENABLE_ORA_REMINDERS to False to disable scheduled ORA reminders.
Configuration Settings#
The following ORA reminder settings have defaults and only need to be changed when a deployment requires different reminder timing, reminder limits, or sweep behavior.
Setting |
Default |
Description |
|---|---|---|
|
|
Hours after submission before the first reminder is sent. |
|
|
Hours between consecutive reminders after the first reminder. |
|
|
Maximum number of reminders sent per learner per ORA submission. |
|
|
How often, in seconds, the sweeper task schedules itself. |
|
|
Maximum number of reminder rows processed in each sweep cycle. |
|
|
Hours to wait before checking again when a peer review reminder is due but no peer submissions are available for the learner to review. |
Add ORA reminder settings to the same LMS Django settings override that is used for the notification settings in this document.
For example:
ORA_REMINDER_INITIAL_DELAY_HOURS = 48
ORA_REMINDER_INTERVAL_HOURS = 72
ORA_REMINDER_MAX_COUNT = 2
How ORA Reminders Work#
When a learner submits an ORA response that requires peer or self review, Open edX creates a reminder row for that learner and submission. A Celery sweeper task runs on a configurable interval and processes reminder rows whose next reminder time has passed.
The sweeper sends an ora_reminder notification when the learner still has a
required peer or self review step to complete. The reminder is not sent when
the learner has completed the required step, the relevant deadline has passed,
the course has ended, or the maximum reminder count has been reached.
For peer review steps, if no peer submissions are available for the learner to
review, the reminder is deferred by ORA_REMINDER_CHECK_AGAIN_HOURS. That
deferral does not count toward ORA_REMINDER_MAX_COUNT.