Mautic 5: Beyond Expectations, Beyond Limits

By Ruth Cheesley · PUBLISHED January 09, 2024 · UPDATED January 11, 2024
Note: After release we found a bug with two missing migrations which was fixed with 5.0.1, released on 10th January. Please report any issues you find in this forum category.

Today we are excited to announce the release of Mautic 5.0 General Availability. Docker images will be available in the coming days. In addition we have formally released our new user documentation, and developer documentation which are capable of versioning and, in the future, multilingual translations.

This release includes support for Symfony 5, PHP 8.1 and updates many of our very outdated dependencies ‘under the hood’ to ensure Mautic remains secure and fit for the future.

We’ve also removed and updated a vast amount of old, legacy code which makes our core more streamlined and modern.

Since Mautic 3.0 we’ve been diligently working on increasing the amount of our codebase which is covered by automated tests - these tests pick up on bugs and problems with code quality for developers to address before they get to you, the user. We’re delighted to share that we’re now at 58.6% coverage, up from 30% with Mautic 3.0 and 50.28% with Mautic 4.4 - a further demonstration of our commitment to delivering a more robust, reliable open source marketing automation platform.

Image
Mautic 5 Infographic showing the logo and an illustrated rocket with Mautic 5 Launch beneath, and text saying '7080 files changed, 4787 commits, 70+ contributors, Project started 8 April 2022, Alpha release June 30 2023, Beta release Oct 18 2023, Release Candidate 1 Nov 15 2023, Release Candidate 2 Dec 19 2023, Stable release Jan 8 2024

We have almost doubled the number of contributors to this major release compared to Mautic 4.0, which is testament to our growing, vibrant and welcoming community. Without you all, this would not have been possible - so a huge thank you to everybody who has contributed!

What has changed?

For Users

Security

The main goal for Mautic 5 was to replace all End of Life dependencies with versions that are still receiving security updates. This goal was achieved. We recommend upgrading to Mautic 5 as soon as possible, and right after upgrading to PHP version 8.1.

New features

  • Token Support in the email & landing page builder: The ability to insert tokens via the GrapesJS email and landing page builder front end was introduced to make it easier for people to use and insert tokens for fields in Mautic. (https://github.com/mautic/mautic/pull/11525)
     
  • New Feature: Point Groups: You can now have different types of points - known as Point Groups. Point groups give unlimited dimensions to your lead scoring. The new point groups structure not only helps you to learn more about your contacts, but also use this new info during the whole automation process. Point groups can be used in segments, campaigns as well! (https://github.com/mautic/mautic/pull/11891)
     
  • Email click heat map: Now a new feature, the email click heat map will show you exactly how your contacts click on your emails. Email heatmaps help to optimize your email communication and reveal black spots in your email. (https://github.com/mautic/mautic/pull/12696)

Enhancements to existing features

  • Remove cookies no longer used: We won't use some of the old cookies anymore, which are not needed and are deprecated. This makes your GDPR Privacy Policy a lot shorter! (https://github.com/mautic/mautic/pull/12440)
     
  • Removed email configuration via the installation interface: As Email setting can be set through the UI very easily, it is removed from the installer. This makes the installer just 2 steps instead of 3. (https://github.com/mautic/mautic/pull/12216)
     
  • Queue settings in the user interface: If you use a queue for managing page or email hits, you can now set up a queue directly from the user interface, which gives you more control without needing to edit configuration files. (https://github.com/mautic/mautic/pull/12648)
  • URL shortener configuration in the user interface: If you need to collect extra information on your traffic or need more control over redirects, you can now integrate URL shorteners really simple into Mautic 5. (https://github.com/mautic/mautic/pull/12128)

Things to do after updating

  • Check URL shorteners: The bit.ly shorting service has been removed from core, with extended support now available for developers to integrate shortening services. A third party alternative is available if you need to use bit.ly.
     
  • Check your Email transports: Email transports need to be checked to verify they remain functional both for sending and processing bounces, unsubscribes etc. - there is a migration in place, but it’s recommended to do your own testing. If you use an email service provider via API, you probably need to install a plugin to continue using it. Please refer to the developer section below for more detail. Currently supported ESPs include Amazon SES, Sparkpost and Omnivery. Developers can submit new plugins via the Marketplace.
     
  • Verify the local.php file is in the correct location: The local configuration file was moved from app/config/local.php to config/local.php. The reason is that all user-created files shouldn’t be inside the source code. There is a migration that will move the config file to the new location.
     
  • Update your cron jobs: The command bin/console mautic:emails:send for sending emails via cron jobs was removed and now Symfony Messenger is used instead. Use this command to start a consumer: bin/console messenger:consume email. Check the cron jobs documentation for further details.
     
  • Check plugins: If you used the built-in Citrix or Pipedrive plugins, you need to install the third-party plugins and configure appropriately.

Removed Features

  • The calendar feature was removed and there is no replacement at this time.
  • The Froala editor is turned off by default. Turn it on if you use the legacy email or page builder via global settings.
  • Themes from Mautic 1.x (mauve, coffee and nature) have been removed.

Changes with Plugins

  • The Pipedrive Plugin is removed from Mautic Core.You can usethe third party alternative instead.
  • The Citrix Plugin has been removed from Mautic Core. You can usethe third party alternative instead.
  • The LinkedIn plugin has been removed from Mautic Core as it did not work with the new LinkedIn API. There is no replacement at this time.

For Developers

The main focus of all Mautic 5 refactoring was to get out of EOL (End of Life) libraries and PHP versions. With Mautic 5 we are getting closer to stock Symfony apps. It will help PHP developers to feel more comfortable with Mautic code and speed up development.

  • Autowiring and autoconfiguration for PHP services: Developers finally don’t have to update config.php files when adding PHP services or changing dependencies of the existing services.
     
  • JavaScript libraries are being installed and versioned via NPM: instead of using hard-coded JS files, using NPM is making it easier to update in the future.
     
  • More Rector: Rules were added so once you start updating your Mautic plugins to Mautic 5, it will do some of the refactoring for you.
     
  • index_dev.php is dead: Long live the env.local file! The environment (dev, prod, test) and debug (on, off) options are now configurable in the env.local file rather than accessing via index_dev.php.
     
  • Templating via Twig: All the PHP templates were converted into Twig as the PHP templating engine was removed in Symfony 5.
     
  • Symfony Messenger: Emails as well as processing email opens and page hits can be done asynchronously with Symfony Messenger queueing system and worker. Everything works synchronously by default so no extra configuration is needed.
     
  • Symfony Mailer: The Swiftmailer library used in previous Mautic versions is End Of Life. We had to switch to the new replacement. Not all of the email transports that worked in Mautic 4 will work in Mautic 5, some will need a plugin to be installed. Read more
     
  • New email send/queue system: The way messages are sent and queued has fundamentally changed as Mautic moves from using Swiftmailer to Symfony Messenger and Symfony Mailer. This has tremendous gains in terms of speed and performance.
     
    • Currently the following email service providers are supported:
      • SMTP (out of the box)
      • Amazon SES (plugin - coming soon)
      • Sparkpost (plugin)
      • Omnivery (plugin)
         
    • Other email service providers can use the basic Symfony plugins, but these don’t support callback loops (bounces, unsubscribes etc) so a specific plugin for Mautic is needed. Developers can learn more in the documentation and submit plugins to the Marketplace.

Mautic 5 makes 44% less requests for the first load, uses 21% less memory and loads 42% faster than Mautic 4.4 when loading the dashboard in a browser.

Static analysis tool PHPSTAN reported issues worth 4.3 MB for Mautic 4. In Mautic 5 the team reduced this to 2.2 MB. That means that almost a half of known technical debt was resolved.

Mautic 5 changes were made in 7,080 files. 187,363 lines were added and 587,501 lines were removed. That means that Mautic 5 is around 400,000 lines leaner compared to Mautic 4.