MailReach architecture
Templates, recipients, personalization, launch, scheduling, and SES delivery.
Email outreach is split between TemplatesService for reusable copy and EmailCampaignsService for campaign shells, recipient rows, interpolation, sending, scheduling, and relaunch.
Runtime flow
A campaign references a template, recipient rows reference contacts, and launch personalizes subject/body per contact before sending with AWS SES. Recipient rows become the source of truth for history and analytics.
Implementation map
Frontend
/email-campaigns, api.templates, api.emailCampaigns, generation polling, recipient picker, schedule UI.
Backend
TemplatesController/Service and EmailCampaignsController/Service.
Data
Template, EmailCampaign, EmailCampaignContact, Contact, and SystemSettings.
Outcomes
EmailCampaignContact stores personalized copy, sentTime, deliveryStatus, openStatus, replyStatus, and errorMessage.