Skip to main content

Framework for Messaging

Project description

PyPI Travis Codecov Documentation Supported Python versions License

The automated communication engine, A.C.E. for short, is a Django app for messaging learners on the edX platform. This app can be installed in any edX project, but has only been tested with edx-platform. Email delivery (via Sailthru and Django Email) are the currently supported delivery channels. In the future we may add support for other delivery channels such as push notifications.


The full documentation is at


The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

Even though they were written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

PR description template should be automatically applied if you are sending PR from github interface; otherwise you can find it at

Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you can find it at

Reporting Security Issues

Please do not report security issues in public. Please email

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log


[1.5.0] - 2022-02-15

  • Added support for Django40
  • Removed support for Django22, 30 and 31

[1.4.1] - 2021-12-06

  • Adds in the ability to override frequency caps for Braze emails. Can be accessed via Message options using the key override_frequency_capping. All emails containing the transactional Message option will also override frequency caps.

[1.4.0] - 2021-11-08

  • Deprecate the action_links property
  • Add a get_action_links method and template tag to allow passing arguments to action links

[1.3.1] - 2021-08-17

  • Adjust name handles_delivery_for_message to overrides_delivery_for_message

[1.3.0] - 2021-08-16

  • New channel method handles_delivery_for_message for allowing a default channel to claim a message, even if it would normally be delivered to the configured transactional channel.
  • Braze: Will handle any message defined in ACE_CHANNEL_BRAZE_CAMPAIGNS (using the above new feature) to steal campaign messages from the transactional channel as needed.

[1.2.0] - 2021-07-16

  • Added support for django 3.2

[1.1.1] - 2021-07-09

  • Removed upper constraint from Django

[1.1.0] - 2021-03-26

  • Braze: Add ACE_CHANNEL_BRAZE_FROM_EMAIL setting to override the normal from address
  • Sailthru: Remove Braze rollout waffle flag

[1.0.1] - 2021-03-15

  • Braze: Add an unsubscribe action link
  • Braze: Don’t ask Braze to inline css, as ACE templates already have inline css

[1.0.0] - 2021-03-11

  • BREAKING: Recipient objects now take lms_user_id instead of username
  • New braze_email backend, needing the following new configuration:
    • ACE_CHANNEL_BRAZE_CAMPAIGNS (an optional dictionary of ACE message names to Braze campaign identifiers)

[0.1.18] - 2020-11-19

  • Updated he travis-badge in README.rst to point to

[0.1.17] - 2020-10-19

  • Use IntEnum to avoid silent failure in value comparisons

[0.1.16] - 2020-10-17

  • Fixed Enum usage for Python 3.8 to avoid TypeError when comparing values

[0.1.15] - 2020-03-11

  • Added support for Python 3.8
  • Removed support for Django 2.0 and 2.1

[0.1.14] - 2020-03-11

  • Fix trivial warning from deprecated use of attr library.

[0.1.13] - 2019-12-06

  • Django22 Support.

[0.1.12] - 2019-10-16

  • Reply_to field added in emails.

[0.1.10] - 2018-11-01

  • Django lazy text translations are handled properly.

[0.1.9] - 2018-07-13

  • Updated delivery logging

[0.1.0] - 2017-08-08


  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edx-ace-1.5.0.tar.gz (50.5 kB view hashes)

Uploaded source

Built Distribution

edx_ace-1.5.0-py2.py3-none-any.whl (58.2 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page