Skip to content

A/B Testing + Schedule Sending Combined Feature Implementation#46

Open
kuzmany wants to merge 1063 commits intoschedule-sendingfrom
ab-testing
Open

A/B Testing + Schedule Sending Combined Feature Implementation#46
kuzmany wants to merge 1063 commits intoschedule-sendingfrom
ab-testing

Conversation

@kuzmany
Copy link
Owner

@kuzmany kuzmany commented Jul 9, 2025

Summary

This PR combines A/B testing functionality with the email schedule sending feature for Mautic 7.x, providing a comprehensive email testing and scheduling solution.

Key Features

A/B Testing Functionality

  • A/B Test Creation: Create A/B test variants for emails with different content
  • Winner Selection: Automatic and manual winner selection based on various criteria
  • Test Statistics: Comprehensive tracking of A/B test performance
  • Variant Management: Easy management of email variants and their settings

Email Schedule Sending

  • Email Schedule Sending: Schedule segment emails to be sent at specific times
  • Schedule Form: New ScheduleSendType form for setting publish dates and continuation settings
  • Continue Sending Option: Control whether emails continue sending to new contacts
  • Background Sending Status: Enhanced status badges showing scheduling states

Changes Made

A/B Testing Changes

  • ABTestController: New controller for managing A/B tests
  • SendWinnerEmailCommand: Command for processing A/B test winners
  • Email Entity: Enhanced with A/B testing capabilities
  • Repository Updates: Support for A/B test queries and statistics
  • UI Components: A/B test management interface

Schedule Sending Changes

  • ScheduleSendAction: New action in EmailController for scheduling modal
  • ScheduleSendType: Form type for scheduling options
  • Email Entity: Added continueSending field for ongoing send control
  • Repository Updates: Support for scheduled sending queries
  • Status Enhancements: UI improvements for scheduling states

Combined Features

  • Enhanced Email Entity: Support for both A/B testing and scheduling
  • Unified UI: Integrated interface for both features
  • Comprehensive Testing: Tests covering both A/B testing and scheduling scenarios
  • Performance Optimizations: Efficient handling of both features

UI/UX Improvements

  • Integrated Button Layout: A/B test and schedule buttons with proper priority ordering
  • Enhanced Status Badges: Show both A/B test and scheduling information
  • Unified Email List: Display both A/B test and scheduling states
  • Improved Forms: Better user experience for both features

Database Changes

  • A/B testing related fields in Email entity
  • continueSending field for schedule sending functionality
  • Enhanced indexes for performance

Test Coverage

A/B Testing Tests

  • A/B test creation and management
  • Winner selection functionality
  • Statistics tracking
  • Variant management

Schedule Sending Tests

  • Schedule email for future sending
  • Continue sending option functionality
  • Schedule cancellation
  • Background sending status

Combined Feature Tests

  • A/B testing with scheduled emails
  • Winner selection on scheduled emails
  • Performance with both features enabled

Breaking Changes

None - this is a feature addition that maintains backward compatibility.

Performance Considerations

  • Optimized queries for both A/B testing and scheduling
  • Efficient caching for email statistics
  • Proper indexing for performance

This PR provides a complete solution for both A/B testing and scheduled email sending, allowing users to create sophisticated email campaigns with proper testing and timing controls.

@kuzmany kuzmany changed the base branch from 7.x to schedule-sending July 9, 2025 15:11
patrykgruszka and others added 29 commits January 23, 2026 10:46
…ListTypeTest.php

Co-authored-by: John Linhart <jan@linhart.email>
…ListTypeTest.php

Co-authored-by: John Linhart <jan@linhart.email>
…m-error-aria-attributes

Add aria attributes to form error messages for better accessibility
Maut 12640 - Upgrading PHP to 8.1, resolving deprecations
matbcvo and others added 27 commits February 24, 2026 10:13
Fixed call to member function on null for the mautic:max-mind:purge command
Do not display company location in companies lookup.
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
…e-report-filter

Fix date filter comparison in Reports
Disabling tracking links from emails does not interfere with UTM-Parameters
Fixing form auto fill for Focus Items
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ils-and-pages-follow-up

Update the value of the optimistic lock version after clicking the apply button in the email/page builder
Implement A/B testing functionality for segment (broadcast) emails,
allowing users to create variant emails, configure test parameters
(audience size, winner criteria, delay), and automatically determine
and send the winning variant.

Key changes:
- New ABTestController, GenerateABTestType form, and A/B test UI panel
- AbTestResultService, AbTestSettingsService, VariantConverterService
- BroadcastSubscriber integration for A/B test email sending
- SendWinnerEmailCommand for automatic winner determination
- Email entity extensions for A/B test support (variant settings, status)
- Variant list UI with winner badges, preview/edit/delete actions
- User-friendly form labels and status messages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.