entirius-django-communicator
A Django module for channel-agnostic communication in Entirius, the open-source modular ecommerce platform. It drafts messages from versioned templates, puts them through review, sends them under a per-channel policy and reads the replies.
What it does
- Renders messages from templates with versions, as static text or as an AI draft.
- Holds drafts for review: accept, rewrite, edit or skip before anything is sent.
- Sends under a per-channel policy:
dry_run,sandboxorlivemode, send windows, holidays and a daily cap. - Schedules follow-up sequences and stops them on a reply or an opt-out.
- Polls IMAP mailboxes and turns inbound mail into replies, bounces, opt-outs and suppressions.
- Exposes an admin API (JWT, Pydantic schemas, OpenAPI) for the CMS.
Installation
uv add entirius-django-communicator
pip install entirius-django-communicator
Optional extra: entirius-django-communicator[notifications] (AI toolbox failures raise a notification
through entirius-django-notifications).
INSTALLED_APPS = [
# ...
"django_utils",
"django_regional",
"django_email",
"django_communicator",
]
# main/urls.py
urlpatterns.append(path("", include("django_communicator.urls")))
The module needs Redis (COMMUNICATOR_REDIS_URL or REDIS_URL), a celery-once backend and Celery workers
consuming the queues communicator_default, communicator_send and communicator_inbound. The
COMMUNICATOR_* settings, the beat entries and the bootstrap order: docs/install.md —
https://github.com/entirius/entirius-django-communicator/blob/develop/docs/install.md
Quick start
# main/urls.py
from django.urls import include, path
urlpatterns.append(path("", include("django_communicator.urls")))
The admin API is then mounted under api/communicator/v2/admin/<channel_idx>/. Settings, queues, beat and
bootstrap order: docs/install.md. Other modules create messages through
django_communicator.services.communicate_service.communicate; its contract is in
https://github.com/entirius/entirius-django-communicator/blob/develop/docs/concept.md
Requirements
- Python 3.11 or newer, Django 4.2 or newer.
- PostgreSQL and Redis.
- Celery workers consuming
communicator_default,communicator_sendandcommunicator_inbound, and Celery beat. - An AI toolbox service (the
AI_TOOLBOX_*settings ofentirius-django-utils) for AI drafts and rewrites. - Entirius packages pulled in:
entirius-django-utils,entirius-django-regional,entirius-django-email,entirius-py-idx-normalizator.
Documentation
- Module docs: https://github.com/entirius/entirius-django-communicator/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-communicator/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos); the leads module drafts its outreach through it.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-leads, https://github.com/entirius/entirius-django-notifications, https://github.com/entirius/entirius-django-email
Development
make install # sync dependencies (uv, incl. extras)
make check # lint + format check (ruff)
make test # test suite (pytest; PostgreSQL through DATABASE_URL)
Development and agent instructions: https://github.com/entirius/entirius-django-communicator/blob/develop/AGENTS.md
License
Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-communicator/blob/develop/LICENSE.
Metadata
Release files for entirius-django-communicator 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| entirius_django_communicator-0.4.0.tar.gz | 233.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entirius_django_communicator-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 378.7 kB
Release files / entirius_django_communicator-0.4.0.tar.gz
| Download URL | entirius_django_communicator-0.4.0.tar.gz |
|---|---|
| Size | 233.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
56800cc1ba04fc49a63bf2c36ae55c949433e31357a99353b7645095ff496f48
|
|
BLAKE2b-256 checksum How to use checksums |
370a365d10edf9991d7b829466f66db1577d00b8cd6ba6aaa6800687c526ec6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / entirius_django_communicator-0.4.0-py3-none-any.whl
| Download URL | entirius_django_communicator-0.4.0-py3-none-any.whl |
|---|---|
| Size | 145.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
857582a41069f9d4297244a1e2d27193286d095df0649a9455c606f06b3c9985
|
|
BLAKE2b-256 checksum How to use checksums |
5745845001fade1d24ec371decc847a3d9a4c4b84b7f4e0b7b826fa3aca3d473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|