Registrations, CRM and mail automation for an industry association
Registrations, CRM and bulk mail for an industry association: one place instead of a shared mailbox and semi-manual retyping.
Sign-ups were handled semi-manually in a shared mailbox.
Sign-ups for courses and events arrived as free text in a shared mailbox and were processed semi-manually over an n8n workflow. Contacts and companies were scattered, so nobody had a single place to look up who had signed up for what.
A domain core, a mailbox worker and a Czech back office.
We built a Python monorepo with a shared domain core, a FastAPI API, a worker that reads the mailbox through Microsoft Graph and routes messages into modules, and Alembic migrations. A Czech back office in Next.js runs on top of it for operators.
The sending runbook records a completed production run: 1,785 addresses queued, a full dry run with no error, a verified canary send and a live test over 33 messages, of which 30 arrived and 3 deliberately invalid addresses were correctly recorded as undelivered. The project documentation states that since 30 July 2026 this system is the only active route by which sign-ups from the shared mailbox enter.