php bin/console schedulers:run
Released 13th January 2026
Minimum version update - Yarn v4.10.3
PR: 818 - Fix #818 - Fix Various Attachment Styling Issues
PR: 817 - Fix #817 - Update Squire Composer package
PR: 815 - Fix #797 - Default Email Template Editor incorrect
PR: 819 - Fix #707 - Date filter in list views with today/yesterday/etc options
PR: 820 - Fix #708 #637 - Date field default value not working
PR: 826 - Fix #799 - New file fields 'uploads' directory gets deleted during upgrade
PR: 827 - Fix #827 - Fix Campaigns when no access to Email Marketing
PR: 828 - Fix #828 - Update Listview Loading so mass update values take effect
We would love to have your feedback and input to help make SuiteCRM 8 great for everyone.
Special thanks to the following members for their contributions and participation in this release!
If you have found an issue you think we should know about, or have suggestion/feedback, please Submit An Issue.
If you want to get involved and submit a fix, fork the repo and when ready please Submit A PR - More detail for developers can be found here.
Please visit the official website to find the appropriate upgrade package.
To report any security issues please follow our Security Policy
Released 6 November 2025
Documentation has been added/updated for:
Display confirmation on async validator documentation added
Setup schedulers widget documentation added
Default values description added for configuration options
CVE: CVE-2025-64488: SQL Injection Vulnerability | GitHub Advisory | Reporter: allannjuguna
CVE: CVE-2025-64489: Privilege Escalation Vulnerability | GitHub Advisory | Reporter: prakhar0x01
CVE: CVE-2025-64490: Improper Access Control | GitHub Advisory | Reporter: prakhar0x01
CVE: CVE-2025-64491: XSS Vulnerability | GitHub Advisory | Reporter: Nicolas Decayeux (Patrowl)
CVE: CVE-2025-64492: SQL Injection Vulnerability | GitHub Advisory | Reporter: Robert Torosyan
CVE: CVE-2025-64493: SQL Injection Vulnerability | GitHub Advisory | Reporter: Paul (dibits.de)
PR: 728 - Fix #728 - Fix attachment alignment on Mobile
PR: 727 - Fix #727 - Fix New Users not shown wizard
PR: 725 - Fix #720 - error when executing the scheduler with a campaign to be triggered
PR: 732 - Fix #600 - untranslated messages in timeline and charts
PR: 733 - Fix #724 - Non admins unable to see filter save button
PR: 735 - Fix #735 - Update Schedulers Listview to Suite 8 view
PR: 736 - Fix #736 - Fix https redirect proxy issue
PR: 743 - Fix #743 - Fix selection on listview
PR: 744 - Fix #744 - Fix email line action showing incorrectly on some modules
PR: 745 - Fix #745 - Add support for confirmation modals on async validation
PR: 710 - Fix 709 - Fix issue with space characters being deleted
PR: 754 - Fix #754 - Add default order by on listview
PR: 750 - Fix #750 - Fix Relate Field issues on filter
PR: 757 - Fix #739 - Add Trackers Enabled Retrieve Api Mapper
PR: 758 - Fix #758 - Fix User preferences being reset on security group update
PR: 761 - Fix #761 - Update async validator data
PR: 753 - Fix #652 - datetime formatting on dst, Add Meridian to Popup Datetime
PR: 762 - Fix #746 - Remove failed two factor label after successful code
PR: 763 - Fix #741 Hardcoded labels in the Email Marketing Diagnostics / Charts
PR: 764 - Fix #719 - Allowed cron user won’t be automatically generated for config.php during 8.9 installation
PR: 766 - Fix #751 - When adding a role (with restricted permissions) to a user, no modules are visible anymore
PR: 768 - Fix #768 - Fix Campaign Chart counter not showing correct clicks and opt out.
PR: 645 - Fix #645 - Fix variable name typo in NavbarHandler.php
PR: 561 - Fix #560 - removed equality check between fieldKey and name in return condition of addFieldDepedency() to allow addition of the field itself as a dependency
PR: 770 - Fix #722 - File attachment display should wrap into multiple lines
PR: 772 - Fix #772 - campaign trackers admin config on fresh install
PR: 771 - Fix #771 - Use date component in datetime filter mode
PR: 748 - Fix #748 - Replace return 0 with Symfony Command Constants
PR: 773 - Fix #773 - Fix attachment re-upload
PR: 778 - Fix #778 - Fix incorrect label on Campaign Charts
PR: 777 - Fix #777 - Fix Sidebar Widget Rendering
PR: 776 - Fix #776 - Fix issue of email compose not showing correctly
PR: 782 - Fix #781 - Fix intermittent with save button not appearing
PR: 780 - Fix #779 - Fix issue with date due in tasks not displaying
PR: 785 - Fix #785 - Fix attachment popover showing incorrectly on resize
PR: 786 - Fix #786 - Fix composite fields display on filter
PR: 784 - Fix #784 - Update in_queue_date to use current DateTime format
PR: 10709 - Fix #10708 - Converting Quote to Invoice ignores field defaults
PR: 10713 - Fix #10713 - Fix edit link (pencil) in Global Search
PR: 10714 - Fix #10714 - Fix multienum fields in dashlet filters
PR: 10716 - Fix #10716 - Fix Inline Edit for decimal fields
PR: 10725 - Fix #10725 - Set Email Warning Notification to false
PR: 10571 - Fix #10570 - Email Signature Compose View Issues
PR: 10727 - Fix #10726 - Search Pagination and Module Filter
PR: 10733 - Fix #10732 - Can’t list view inbound email inboxes after soft-deleting a user with an active email inbox
PR: 10736 - Fix #10736 - Fix Workflow modify record date issue
PR: 10734 - Fix #10724 - Email Subject not importing correctly
We would love to have your feedback and input to help make SuiteCRM 8 great for everyone.
Special thanks to the following members for their contributions and participation in this release!
Special thanks to everyone who reported the security issues addressed in this release!
If you have found an issue you think we should know about, or have suggestion/feedback, please Submit An Issue.
If you want to get involved and submit a fix, fork the repo and when ready please Submit A PR - More detail for developers can be found here.
Please visit the official website to find the appropriate upgrade package.
To report any security issues please follow our Security Policy
Released 17 September 2025
When upgrading or migrating to SuiteCRM 8.9 from a previous version, Email Marketing Records will be updated as follows:
Records with status inactive will be changed to draft (the equivalent status in SuiteCRM 8).
A new field type will be set to Legacy to distinguish migrated records from those created in SuiteCRM 8.
Two new fields will be added:
Status — set to Sent
Queueing Status — set to Finished
A new entrypoint for running schedulers is available as a Symfony command. You can execute it via CLI or set it up as a cron job:
php bin/console schedulers:run
To see more information about Schedulers, and setting up the new configuration see here.
ℹ️ This new entrypoint replaces the legacy cron and needs to be enabled in order to run new symfony side schedulers.
With all the new changes in SuiteCRM 8.9 comes a lot of more documentation!
Documentation has been added for:
Features:
Setup:
File Storage:
Field Options:
Field types:
Extensions:
Campaigns and Email Marketing have been redesigned in SuiteCRM 8!
This release introduces the first phase of the redesign, with more features to come in future releases.
You can see more information about Campaigns here.

The Email Compose modal has been redesigned in SuiteCRM 8!
This release introduces a brand new and redesigned compose modal that aims to provide a better user experience, including:
A configurable compose modal that can be collapsed and can remain open while navigating the app.
To, CC, and BCC fields that support searching and selecting from SuiteCRM Accounts, Contacts, Leads, Users, or individual email addresses using the new Multi-Flex-Relate field.
Attachments implemented using the new storage system.
Ability to insert an Email Template which, when sending, will parse the variables based on the selected Related To record.
The Body field now uses the lightweight Squire editor, offering consistent, rich text editing tailored for emails.
Email address links in Suite 8 views open a new compose modal pre-addressed to that contact.
Even more is planned for the compose modal, the following releases will bring more features such as: saving drafts and attaching existing documents.

SuiteCRM 8.9 introduces two new field types for handling file uploads: file and attachment.
File type
Designed for uploading files to a field. This field type is ideal for scenarios where only one file needs to be associated with a record, such as uploading a profile picture, a single contract, or a receipt. The uploaded file is stored using the new media storage system, supporting various backends like local storage, AWS S3, or Azure Blob Storage.
For more information see File Field Type documentation.
Attachment type
Built for attaching multiple items to a record. Unlike the file field, the attachment field, by default, always allows users to associate several files at once. Additionally, in future releases we plan to add support not only for file uploads but also linking existing documents from the Documents module, and potentially other types of attachments. This will make it suitable for use cases like attaching supporting documents, reference materials, or related files to a record.
For more information see Attachment Field Type documentation.
ℹ️ Documents and Notes do not yet use the new fields or the new storage system. The migration of these modules to SuiteCRM 8 version will be provided in a future release.

This release does not yet include a migration path for old files stored in the legacy upload directory. A migration path will be provided in a future release.
These field types leverage the media uploader system, which allows files to be stored in various backends: local storage, AWS S3 or Azure Blob Storage.
A new concept of "storage types" has been introduced to define different storage backends and locations for different use cases. Each storage type can be linked to a different storage system, e.g. it is possible to have private_documents pointing to Azure blobs while private_images points to AWS S3. This should give system admins flexibility in how and where files are stored.
Currently, there are 5 storage types:
private_documents — stored in uploads/documents
public_documents — stored in public/media-upload/documents
private_images — stored in uploads/images
public_images — stored in public/media-upload/images
archived_documents — stored in uploads/archived
To see more information about configuring external storage services, see File Storage Configuration documentation.
Multi-Relate fields have been added to SuiteCRM 8.
You can now relate multiple associated records at once (see below). For more information see Multi Relate documentation.
ℹ️ For the moment this field is not available in the Studio. A future release will include Studio support.

SuiteCRM 8.9 introduces 3 new schedulers:
Queue Email Marketing — Queues Email Marketing Records that are scheduled to be sent.
Send Campaign Emails — Sends the queued emails for Email Marketing Records.
Clean Up Temporary Files — Cleans up temporary files.
Prune Database scheduler — Prune Database scheduler has been moved to symfony side and now also removes media objects from the new storage system.
You can now select a Default Outbound Email Account. This will be used as the pre-selected Outbound Account when composing a Campaign or Email.
For newly created users, the first personal outbound created will automatically be set as their default. This can be updated via the "Actions" dropdown on the record.
PR: 662 - Fix #540 - Two tooltips are displayed for listview icons to log call, schedule meeting, create task, compose email
PR: 634 - Fix #625 - Opportunities list freeze when change Decimal Symbol and 1000s separator
PR: 635 - Fix #584 - Difficult to assign user to role when pagination is over top of buttons
PR: 636 - Fix #575 - Proceed button on installation page only submits user action when clicked outside of text
PR: 417 - Fix #274, #503 - Call list shows Related to field incorrectly if containing letters with accents
PR: 698 - Fix #678 - Enable checkbox filter retrieval in quick filters
Fields:
Four new field types have been introduced:
File
Attachment
Multi-Relate
Multi-Flex-Relate
Only available on edit mode
The new HTML editor is now based on the Squire Editor.
Backend driven default value initialization - You can use initDefaultProcess to initialize field default values by calling the backend.
Backend driven Save Validators - Use asyncValidators in field definitions for custom asynchronous validation.
Relate and Multi-Relate fields:
Relate fields now support confirmation modals.
Relate fields can now search on empty with the flag filterOnEmpty on the vardef. This will search for results without inputting any values.
Header and subheader fields can be added to relate fields.
Preset criteria can be added to relate fields for searching.
Criteria for relate fields can be added via the vardefs.
Field labels can now be hidden on record view by adding 'labelDisplay' ⇒ none via the vardefs.
Toggle fields visibility via field actions using 'toggle-fields-visibility'.
Dynamic labels can be added to field labels.
Fields now support "footnotes" this can be added to the field via the definition. This supports "activeOn" Fields to hide/show conditionally.
You can now add a default mapper for fields using the VardefConfigMapperInterface.
Record:
You can now redirect to another module after deletion by adding the redirectModule inside the action params.
After creating a record from a parent record you can add the option to not redirect back to the parent record after creation with the redirect ⇒ false flag.
The back button on record view can now be hidden.
Navigation options can be configured for the back button.
Grids and Widgets:
Widgets can be filtered by mode or using the activeOnFields setting.
Added a new banner grid sidebar widget.
Added a new grid top widget.
Statistic Sidebar widgets can now be collapsible with the allowCollapse key.
Statistic Sidebar widgets can now be hidden with 'display' ⇒ true on the row configuration.
Modals:
Added a new Record Modal.
Added a new field grid modal.
You can now add descriptions on modals.
Modals can now be minimizable using the 'minimizable' ⇒ true via the definition.
Dynamic labels can also be used on modals.
Modals can have multiple confirmation messages using confirmationMessages.
Subpanels:
Unwanted subpanels can now be hidden by adding 'hidden' ⇒ true to the definition of the subpanel.
Buttons:
Dynamic classes, icons and labels can be used on buttons.
Icons:
Icons can now be added on frontend validation by adding the icon flag to the returning label configuration.
We would love to have your feedback and input to help make SuiteCRM 8 great for everyone.
Special thanks to the following members for their contributions and participation in this release!
If you have found an issue you think we should know about, or have suggestion/feedback, please Submit An Issue.
If you want to get involved and submit a fix, fork the repo and when ready please Submit A PR - More detail for developers can be found here.
Please visit the official website to find the appropriate upgrade package.
To report any security issues please follow our Security Policy
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.