Skip to main content

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.

PyPI Python License: MPL-2.0

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, sandbox or live mode, 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_send and communicator_inbound, and Celery beat.
  • An AI toolbox service (the AI_TOOLBOX_* settings of entirius-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

Part of Entirius

This module runs inside the Entirius backend service (Volkanos); the leads module drafts its outreach through it.

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)

Source distribution for entirius-django-communicator 0.4.0
File Size Uploaded
entirius_django_communicator-0.4.0.tar.gz 233.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-communicator 0.4.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page