Send personalised email and SMS campaigns from your Microsoft 365 mailbox. Upload recipients, merge fields, preview, send, and audit — all from one admin interface.
Log in via Microsoft SSO and land on the admin dashboard. Every section — campaigns, templates, suppression lists, send logs — is accessible from the sidebar navigation.
Build reusable email and SMS templates with Jinja2 merge fields like {{ first_name }} and {{ company }}. Edit rich HTML content with TinyMCE, attach a theme for consistent branding, and manage opt-out links.
Create a campaign, choose your template and channel (email or SMS), then upload a CSV or XLSX recipient list. Columns are auto-detected and mapped to merge fields.
Preview rendered emails for the first 5 recipients before sending. See exactly what each person will receive — merge fields populated, theme applied, opt-out link in place.
Hit "Send Now" or schedule for later. Campaigns dispatch asynchronously via Celery with configurable rate limiting to protect against throttling. Track progress as messages go out.
Every message is logged with delivery status, timestamps, and external message IDs. Filter and search the full audit trail for compliance reporting.
Manage a do-not-contact list. Recipients can self-unsubscribe via unique opt-out links embedded in every marketing message. The suppression list is checked before every send.
OAuth authentication and Graph API for sending email from real mailboxes with delegated permissions.
Send SMS via the Real World SMS gateway. Same template and campaign workflow as email.
Sandboxed template engine with merge fields, whitelisted filters, and reusable HTML themes.
Isolated Docker stacks per customer. Each tenant has its own database, config, and credentials.
OAuth tokens and API keys encrypted with Fernet. Secrets never stored in plaintext.
Five permission groups — from view-only auditors to full administrators — with granular controls.
Configurable per-second throttling prevents API rate limit errors and protects recipient mailboxes.
Asynchronous campaign dispatch with automatic retries, dead-letter handling, and progress tracking.