Version 2.17.10
December 31, 2024
Changed
- The webhook controller no longer logs unknown events as warnings.
Version 2.17.9
December 16, 2024
Fixed
- Fixed the calculation of the pending recipient count for scheduled sendouts (#505).
Version 2.17.8
November 29, 2024
Fixed
- Fixed a bug in which duplicating campaigns was not resetting the new campaign’s stats.
Version 2.17.7
October 31, 2024
Changed
- The “from names and emails” setting now accepts environment variables (#503).
Version 2.17.6
October 8, 2024
Fixed
- Fixed the calculation of pending recipients to not include drafts.
Version 2.17.5
September 30, 2024
Changed
- Improved French and German translations (#499).
Version 2.17.3
August 12, 2024
Changed
- Contact avatars are no longer fetched from Gravatar. Instead, a user profile photo is used, if one exists, falling back to an SVG with a coloured gradient and initial.
Version 2.17.2
August 2, 2024
Changed
- IP addresses are now logged in failed webhook requests from Postmark.
Version 2.17.1
July 15, 2024
Changed
- Improved the number formatting of counts on element index pages.
Version 2.17.0
July 4, 2024
Added
- Added the ability to create campaign types without public URLs.
Changed
- Updated status colours to match those used in the control panel UI.
Version 2.15.3
May 6, 2024
Fixed
- Fixed a bug in which contact subscriptions were failing when the referrer URL was longer than 255 characters (#473).
Version 2.15.2
May 2, 2024
Fixed
- Fixed a bug in which calling
getMailingLists()
on a contact element could throw an exception (#469).
Version 2.15.1
April 16, 2024
Changed
- Changed the order of fetched mailing lists to be more deterministic.
Fixed
- Fixed the syntax used in one-click unsubscribe headers.
Version 2.15.0
April 15, 2024
Added
- Added one-click unsubscribe headers to sent emails (#467).
- Added a new one-click unsubscribe controller action.
- Added an
addOneClickUnsubscribeHeaders
config setting that determines whether one-click unsubscribe headers should be added to emails, defaulting totrue
.
Version 2.14.0
April 8, 2024
Added
- Added the ability to bulk subscribe/unsubscribe an existing contact from a mailing list using a front-end form (#237).
- Added tracking of the unsubscribe source originating from a front-end request.
Fixed
- Fixed a bug in which the total recipient count in running sendouts was being incorrectly displayed.
- Fixed a typo in the
All
interaction type in English.
Version 2.13.2
April 1, 2024
Fixed
- Fixed the buttons to create new campaign types and mailing list types appearing when allow admin changes was disabled or the user did not have the necessary permissions.
- Fixed an error that could appear when clicking on a sent sendout as an impersonated user in Craft Cloud.
Version 2.13.1
March 26, 2024
Fixed
- Fixed a bug in which newly created contacts were not being indexed for searching if an email address was the only field added (#463).
Version 2.13.0
March 25, 2024
Added
- Added batching to import queue jobs.
- Added batching to sync queue jobs.
Changed
- Campaign now requires Craft CMS 4.4.0 or later.
- The sendout job batch size is now set to
100
by default, unless it was previously modified by themaxBatchSize
config setting. - The sendout job batch delay is now set to
0
by default, unless it was previously modified by thebatchJobDelay
config setting. - Renamed the
maxBatchSize
config setting tosendoutJobBatchSize
. - Renamed the
batchJobDelay
config setting tosendoutJobBatchDelay
.
Fixed
- Fixed a bug in which the expected recipients count could fail in sendouts with very large numbers of contacts.
- Fixed a bug in which sendout actions were unavailable on the sendout index page.
Deprecated
- Deprecated the
maxBatchSize
config setting. UsesendoutJobBatchSize
instead. - Deprecated the
batchJobDelay
config setting. UsesendoutJobBatchDelay
instead. - Deprecated the
memoryLimit
config setting. - Deprecated the
memoryThreshold
config setting. - Deprecated the
timeLimit
config setting. - Deprecated the
timeThreshold
config setting. - Deprecated the
Campaign::maxPowerLieutenant()
method. UseApp:maxPowerCaptain()
instead. - Deprecated the
SendoutElement::getPendingRecipients()
method. UseCampaign::$plugin->sendouts->getPendingRecipients()
instead. - Deprecated the
SendoutElement::getPendingRecipientCount()
method. UseCampaign::$plugin->sendouts->getPendingRecipients()
instead.
Version 2.12.2
March 5, 2024
Changed
- A custom log target is now only registered if a dispatcher exists.
Security
- Improved escaping of table values in the plugins settings.
- Removed the ability to use
contact
andmailingList
variables in sendout subjects.
Version 2.12.0
January 3, 2024
Added
- Added a
syncJobPriority
config setting that determines what priority to give sync jobs.
Fixed
- Fixed a bug in which the element count was not appearing for campaigns and mailing lists when there were no results.
- Fixed a bug that could cause an error when viewing contacts in an incomplete segment (#441).
- Fixed a bug in which the import job TTR setting was not being respected (#445).
- Fixed a bug in which the sendout job max retry attempts setting was not being respected.
- Fixed a bug in which filtering contacts by last activity was not working (#446).
Version 2.11.0
November 28, 2023
Added
- Added the ability to bulk subscribe and unsubscribe contacts to and from mailing lists in the contact index page (#418).
- Added the ability to configure a custom queue component via
config/app.php
to use when running queue jobs. - Added an
importJobPriority
config setting that determines what priority to give import jobs.
Fixed
- Fixed a bug in which a default contact was not being shown in test contacts on the campaign edit page (#437).
- Fixed a bug in which saving a contact could throw an exception if the contact record existed but the contact was not active.
Version 2.10.0
November 16, 2023
Added
- Added a new “validate webhook request” field setting.
- Added a webhook controller action for MailerSend and signature key verification with a new
mailersendWebhookSigningSecret
setting (#415). - Added validation to the SendGrid webhook controller action with a new
sendgridWebhookVerificationKey
setting. - Added the
importJobTtr
andsyncJobTtr
config settings (#432).
Changed
- Updated the SendGrid webhook event names.
- Adding or removing test contacts no longer shows an unsaved changes notification (#437).
Version 2.9.3
October 31, 2023
Fixed
- Fixed a bug in which an exception could be thrown on the sendouts screen (#429).
Version 2.9.1
October 17, 2023
Changed
- Disabled validation when saving elements in specific cases.
- Unsubscribed, complained and bounced counts are now included when syncing campaign reports.
Version 2.9.0
October 9, 2023
Added
- Added an info message and a new campaign type button to the campaign index page when no campaign types exist.
- Added an info message and a new mailing list type button to the mailing list index page when no mailing list types exist.
- Added the
sendoutJobPriority
config setting (#422).
Changed
- Sendouts are now sent to contacts in a deterministic order (#423).
Fixed
Version 2.8.7
September 25, 2023
Fixed
- Fixed relation field values not saving in Craft 4.5.4 and above (#414).
Version 2.8.6
September 20, 2023
Changed
- Improvements to the French translation.
Fixed
- Fixed a bug in which Campaign, Contact and Mailing List element types were not being registered by the Feed Me plugin (#412).
Version 2.8.5
August 21, 2023
Added
- Added the
has a value
andis empty
options to legacy segment conditions (#407).
Version 2.8.4
August 15, 2023
Fixed
- Fixed a bug in which clicking an unsubscribe link in singular sendouts was causing an error, since singular sendouts are not sent to mailing lists (#405).
Version 2.8.3
July 17, 2023
Changed
- Logged messages now include the event that was passed into a webhook when a failure is encountered (#398).
Fixed
Version 2.8.2
June 12, 2023
Fixed
- Fixed a bug in which Campaign dashboard widgets were throwing exceptions when a date range was set (#396).
Version 2.8.1
June 8, 2023
Fixed
- Fixed a bug in which Feed Me imports were not working when the queue was being run via console requests (#395).
Version 2.7.2
May 26, 2023
Changed
- Errors when syncing users to contacts are now logged.
Fixed
- Fixed a bug in which custom field values were not being imported when importing contacts via CSV files (#390).
Version 2.7.0
May 13, 2023
Added
- Added the ability to import contacts into a mailing list with a status of unsubscribed (#384).
Changed
- Anchor hashtags are now forced to the end of URLs when appending query string parameters (#383).
- Changed the user permission for managing contacts to only show a note about the primary site if multiple sites exist.
Version 2.6.2
May 12, 2023
Fixed
- Fixed a bug in which non-admin users were not allowed to edit contacts even with the correct permissions granted (#378).
Version 2.6.1
April 28, 2023
Added
- Added the ability to import options fields (multi-select, checkboxes, etc.) into contact fields (#380).
Version 2.6.0
April 4, 2023
Added
- Added messaging that explains why charts are not appearing in reports.
Changed
- Campaign reports are no longer synced when the
enableAnonymousTracking
setting is enabled (#371). - Contact activity is hidden when the
enableAnonymousTracking
setting is enabled (#371). - Renamed the “Manage Reports” permission to “View Reports”.
- Users can now only edit contacts when they have edit permission for the primary site.
Fixed
Version 2.5.5
February 24, 2023
Fixed
- Fixed a bug that was preventing charts from appearing in report pages.
Version 2.5.4
February 23, 2023
Added
- Added compatibility with LitEmoji v4 which is required by Craft 4.4.0.
Fixed
- Fixed the check for PHP memory usage in sendout jobs.
Version 2.5.3
February 3, 2023
Changed
- The front-end subscribe and unsubscribe forms now accept an optional
siteId
parameter (#363).
Version 2.5.2
January 24, 2023
Fixed
- Fixed unauthorised access to some settings pages in environments where administrative changes are disallowed.
Version 2.5.1
January 17, 2023
Changed
- The translatable symbol no longer appears next to element title fields.
Version 2.5.0
January 17, 2023
Added
- Added the ability to hide the title field in campaigns and have titles generated dynamically (#355).
- Added the ability to hide the title field in sendouts and have titles generated from the subject (#356).
Changed
- The sendout title and subject fields are now autopopulated from the campaign title if they are empty (#356).
Version 2.4.2
January 13, 2023
Fixed
- Fixed a bug in which some stats in the mailing list dashboard widget were not being counted.
Version 2.4.1
January 13, 2023
Fixed
- Fixed a bug in which the utilities page was throwing an exception (#357).
Version 2.4.0
January 12, 2023
Added
- Added the “Campaign Stats” dashboard widget (#107).
- Added the “Mailing List Stats” dashboard widget (#107).
- Added “Click Rate” as an available column in the campaign element index page.
- Added “Open Rate” to campaign reports and as an available column in the campaign element index page (#354).
- Added “Click Rate” as an available column in the campaign element index page.
- Added the
campaign/reports/sync
console command that syncs campaign reports.
Fixed
- Fixed when the view action is available on campaign index pages.
Version 2.3.2
January 2, 2023
Changed
- Changed the sendout “Pause” button to read “Pause and Edit” (#352).
Fixed
- Fixed the “View all” link in the contacts tab of the mailing list edit page for Craft 4.3.0 and above.
Version 2.3.1
December 10, 2022
Changed
- The access utility permission was removed, in favour of Craft's own utility permission.
Fixed
Version 2.3.0
December 5, 2022
Added
- Added a new
ContactElement::getIsSubscribedTo()
method.
Changed
- Rendered HTML templates now explicitly exclude any control panel asset bundles (#347).
Fixed
- Fixed a bug in which draft contacts were incorrectly being counted as expected recipients.
- Fixed a bug in which custom fields were not being validated in front-end contact subscribe forms (#348).
Version 2.2.3
November 25, 2022
Version 2.2.1
November 7, 2022
Changed
- Improved the performance of report pages (#340).
- Changed the webhook controller action responses to ensure that correct status codes are sent (❤️@brandonkelly).
- Test requests from Mailgun now return a success response.
Fixed
- Fixed a bug in which the Mailgun webhook controller action was not processing requests correctly (#341).
- Fixed a bug in which the webhook controller actions could fail for singular sendouts.
- Fixed a bug in which some information was missing from reports.
Version 2.2.0
October 28, 2022
Added
- Added the ability to use
{% html %}
,{% css %}
and{% js %}
tags in campaign templates.
Fixed
- Fixed a bug in which Yii block comments could be unintentionally left over in rendered campaign templates (#337).
Version 2.1.17
October 28, 2022
Fixed
- Fixed a bug in which the unsubscribe webhook action could throw an exception (#339).
Version 2.1.16
October 27, 2022
Fixed
- Fixed all remaining uninitialized typed properties, as a precaution.
Version 2.1.15
October 27, 2022
Fixed
- Fixed a missed uninitialized typed property that was causing verification links to fail (#338).
Version 2.1.14
October 25, 2022
Fixed
- Fixed a bug in which typed properties were being accessed before initialization, caused by a breaking change in Yii 2.0.46.
Version 2.1.13
October 25, 2022
Fixed
- Fixed a bug in which typed properties were being accessed before initialization.
Version 2.1.12
October 21, 2022
Fixed
- Fixed a bug in which an exception was thrown when viewing recurring sendouts (#336).
Version 2.1.10
October 17, 2022
Fixed
- Fixed a bug in which saving sendout settings was throwing an exception when one or more of the fields were left blank (#334).
Version 2.1.9
October 12, 2022
Fixed
- Fixed a bug in which blocked contacts were being considered as pending contacts, meaning that sendouts could hang during sending (#324).
Version 2.1.8
October 10, 2022
Fixed
- Fixed a caching issue when applying project config changes to campaign types and mailing list types (#332).
Version 2.1.6
September 16, 2022
Fixed
- Fixed a bug in which sending test emails of campaigns only worked for campaigns in the default site (#327).
Version 2.1.5
August 28, 2022
Fixed
- Fixed an error that could be thrown if the
set_time_limit()
function was undefined (#322).
Version 2.1.4
August 7, 2022
Fixed
- Fixed a bug that prevented the mailer transport defined in the Campaign email settings from overriding the Craft email settings (#319).
Version 2.1.3
August 2, 2022
Fixed
- Fixed an error that occurred when creating contacts in the control panel.
Version 2.1.2
July 25, 2022
Fixed
- Fixed a bug when subscribing users via front-end forms.
Version 2.1.1
July 22, 2022
Added
- Added a
fieldValues
parameter to theFormsService::createAndSubscribeContact
method.
Version 2.1.0
July 22, 2022
Added
- Added a
createAndSubscribeContact
method toFormsService
for easier integration from other plugins and modules.
Version 2.0.6
July 18, 2022
Fixed
- Fixed a bug in which an exception could be thrown if the user agent was unavailable when detecting device type.
Version 2.0.5
July 5, 2022
Changed
- Tweaked plugin icon to fit better in control panel.
Fixed
- Fixed subscription status translations.
Version 2.0.4
June 24, 2022
Changed
- Removed the pruning of deleted fields according to the precedent set in craftcms/cms#11054.
Fixed
- Fixed an issue with viewing sendouts that have been sent in Craft 4.0.4 and above (#316).
Version 2.0.3
June 21, 2022
Fixed
- Fixed an issue with the contact index page when database tables contained a prefix.
Version 2.0.2
June 21, 2022
Fixed
- Fixed the unique email validation when saving contacts.
Version 2.0.1
June 3, 2022
Changed
- Improved the UI of sendout previews.
- Made the
matomo/device-detector
package requirement more flexible.
Version 2.0.0
May 4, 2022
Support for reCAPTCHA version 2 has been removed, use version 3 instead. The
subscribeVerificationSuccessTemplate
setting has been removed, use thesubscribeSuccessTemplate
setting instead.
Added
- Added compatibility with Craft 4.
- Added a new “Singular” sendout type to the Pro edition, for sending campaigns to individual contacts (#263).
- Added a condition builder field to the sendout schedule for automated and recurring sendout types (#305).
- Added the field layout designer to campaign types, mailing list types and contact layouts (#163, #198, #269).
- Added autosaving drafts to campaigns, contacts, mailing lists, segments and sendouts.
- Added revisions to campaigns (#301).
- Added a “Duplicate” action to campaigns, mailing lists, segments and sendouts (#292).
- Added condition settings to the campaigns, contacts and mailing lists relation fields.
- Added user group permissions for campaign types and mailing list types.
- Added the ability to view disabled campaigns using a token URL.
- Added a contact condition builder to regular segment types, that should be used going forward since
legacy
andtemplate
segment types will be removed in Campaign 3. - Added a “Campaign Activity” condition rule for segmenting by contacts who have opened or clicked a link in any or a specific campaign (#244).
- Added a “Default Notification Contacts” field to sendout settings.
- Added an “Export to CSV” button to all datatables in reports (#245).
- Added the
enableAnonymousTracking
setting, which prevents tracking of opens and clicks (#115). - Added the
campaign/reports/anonymize
console controller that anonymizes all previously collected personal data. - Added a list of failed contacts to sendouts that have failures (#311).
- Added a link to view all contacts from the mailing list edit page (#282).
Changed
- All
forms
controller actions now return a400
HTTP status for JSON responses when unsuccessful. - Improved the UI and security of links to external sites.
- Exports now include all contacts in the selected mailing lists, as well as columns for mailing list, subscription status and subscribed date (#302).
- Verification emails are now sent in HTML and plaintext format (#303).
- Renamed
regular
segment types tolegacy
segment types, which are being maintained because they provide functionality that the contact condition builder does not yet provide, but which will be removed in Campaign 3. - Renamed the
maxSendFailsAllowed
config setting tomaxSendFailuresAllowed
. - Replaced the
Log To File
helper package with a custom Monolog log target. - Replaced all instances of
AdminTable
withVueAdminTable
. - Removed the
SettingsService
class. Use theSettingsHelper
class instead.
Removed
- Removed support for reCAPTCHA version 2, leaving support for version 3 only.
- Removed the
subscribeVerificationSuccessTemplate
setting from the mailing list type settings page. Use thesubscribeSuccessTemplate
setting instead.