📨
Marketing

Email Campaigns

Admin Settings

Send targeted email campaigns with templates and scheduling

Overview

Email marketing campaign system for sending bulk emails to subscribers and users. Supports email templates, audience segmentation, A/B testing, scheduling, and comprehensive analytics. Integrates with subscriber system and email tracking for full campaign lifecycle management.

Design Considerations

UX patterns and visual design notes for this feature:

  • Campaign builder should have drag-drop editor
  • Preview emails across devices before sending
  • Show estimated send time for large lists
  • Pause/resume functionality for long campaigns
  • Clear success/failure status per recipient

Key Benefits

What makes this feature stand out:

  • Visual email template builder
  • Audience segmentation and targeting
  • A/B testing for subject lines and content
  • Schedule campaigns for future sending
  • Comprehensive analytics (opens, clicks, conversions)
  • Integration with subscriber lists
  • Queue-based sending for reliability
Technical Note

EmailCampaign model defines campaign. EmailCampaignRecipient tracks per-recipient status. Use queue system (yii2-queue) for async sending. CampaignHelper::send() initiates campaign. Template variables support {{name}}, {{email}}, etc. Integrates with EmailTracking for analytics.

Helpers
CampaignHelperEmailHelperEmailTrackingHelper
Models
EmailCampaignEmailCampaignRecipientSubscriber
Database Tables
email_campaignemail_campaign_recipientsubscriberemail_tracking

Configuration

Config Relationship Legend
DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration

Config path: params['campaigns']

params['features']['campaigns'] => trueparams['campaigns']['defaultFrom']['email'] => 'noreply@example.com'params['campaigns']['defaultFrom']['name'] => 'Our Company'params['campaigns']['batchSize'] => 100params['campaigns']['throttleDelay'] => 1params['campaigns']['enableABTesting'] => true
Database Settings (system_setting table)
KeyTypeDescriptionRelation
campaign_from_emailstringDefault sender email
campaign_batch_sizenumberEmails per batch
Note: Email campaigns use background queue for sending. Configure queue component in config/console.php. Templates support variable substitution. Requires email tracking feature for analytics.