Skip to main content

Release

2023.02.001

Announced on

SpiceCRM 2023.02.001

SpiceCRM now features a group of modules to manage staff administration requirements such as skills, follow-up on employee vocational training and the monitoring of employee needs such as vacation, sick leave, hiring and more.

Human capital management

In version 2023.01.001 we introduced some employee management features. We redesigned the employee layout to administrate vocational education, career measurements and hence get a 360° view of the employee. Activities can be logged and access to employee information is restricted solely to the granted and authorized users.

SpiceCRM 2023.02.001 – Human capital management

The Human Capital Management package also contains configurations to manage the employee hiring process. For bigger companies it could be interesting to prepare job offers in the CRM, publish them to a landing page and gather the job applications. To facilitate the selection process it is now possible to prepare a questionnaire that can be utilized during the interview. It will also be possible to compare , in this way , the hiring criteria and this will in turn guide the decision regarding the best candidate for the job.

Segmentation of accounts by main activity

The NACE/SIC Codes loader makes it possible in a few clicks and some configuration to make use of international company activity classification in SpiceCRM. Both NACE and SIC standards are available in English and German. The classification shall help marketers to segment accounts by their main activity and achieve more efficiency in campaigns based on companies’ main activity.

SpiceCRM 2023.02.001 – Segmentation of accounts by main activity

Whitelisting for developers & testers

Some good news for those who have been running e-mail or sms campaigns: we introduced a whitelisting functionality to enable the use of test e-mail addresses or mobile phone numbers on test environments. Just add the authorized e-mail addresses / mobile phone numbers to the whitelist field meant for this purpose in the mailbox configuration. Only the selected recipients addresses / phone numbers will receive the mass e-mail/text message sent. This is a handy way to test a marketing campaign.

SpiceCRM 2023.02.001 – Whitelisting for developers & testers

Release Details 2023.02.001

CR1000975: Float fields rounding down entered number on specific decimal digit combinations [bug]

Entered value in fields of type float or currency would be rounded down depending on their length the the kind of digits entered after decimal. As an example entering 2082.22 would result in 2082.19. This was due to the use of Math.floor when converting the entered value to a number. We now only use parseFloat().

CR1000931: Removed api/include/language folder [change request]

Content of the folder has been deprecated since 2022.02.001. Folder is now removed.

CR1001056: Set Current Language [bug]

Added new function which sets the current language either from the syslangs table or from the user object preferences.

CR1000925: voipcalls table: additional fields [change request]

The fields date_entered and date_modified are now part of the table voipcalls. It makes it easier to look for specific calls registered in the table.

CR1001006: Email Addresses - Validation Improvement [feature request]

Added a new flag international email addresses to workbench/General Settings/Advanced Settings to enable/disable using international email addresses RFC 6530. Added domain check on email address on save and in the frontend field email addresses. Invalid emails will immediately get the flag invalid_email on save.

CR1000948: Email: set assigned user when empty [change request]

Whem an e-mail is imported to the CRM via drag&drop the assigned user of the e-mail shall be the current user

CR1000947: Mailbox: from address not set in Email record when sending e-mail with MSGraph mailbox [bug]

Interpretation of mailbox settings had to be reviewed

CR1000928: KnowledgeBooks: print a book [feature request]

Print a book using an output template is now possible

CR1001021: API - Find Bean By Fields [feature request]

Added new GET API /module/{beanName}/find to find a bean entry by the provided retrieve fields values. The request query params must include the param retrieveFields as an object with the field name and value as key value of the object.

CR1000974: new fieltype statusnetwork [change request]

added a new fieldtype for statusNetworks. This allows to set model status based on allowed status changes also in a view or list.

CR1000983: EWS Synchronisation: added parameter to force update []

In 2022.03.001 we added a function that would push CRM changes in an event to Exchange only if mapped fields were changed. In complexe customizations that method might not detect changes. This is why we added the configuration variable SpiceCRMExchange.alwayPushUpdateToEWS. When it is set and true the change detection will not be performed and the CRM calendar event will be pushed to Exchange each time the use pushes the save button.

CR1001022: Marketing Automation - Email Tracking Links [feature request]

Added the functionality to track marketing emails clicks and tracking pixels.

Post deployment action: Configs needed:

Workbench/Email Tracking:
tracking_pixel_url http://localhost/crm/api/email/o/
tracking_clicks_url http://localhost/crm/api/email/t/
blowfishkey 2fs5uhnjcnpxcpg9

Worbench/Mailboxes:
track mailbox check to activate the tracking pixel for openness status

CR1001026: ServiceTicketStages: save all the data of mapped fields [bug]

On service ticket save a record of serviceticketstage is created when any change in mapped fields was made. It used to save only the changes values. Now it saves all the values at the time the change of onyl 1 value. We add an entry on serviceticket creation so that all steps can be followed in the history panel.

Post deployment action: reload Service package

CR1000986: Administration Configurator Edit: added info icon [change request]

It is now possible to add a long description to the label in use so that some explanations can be displayed on mouseover.

CR1001047: MSGraph integration: fix retrieving e-mails from mailbox [bug]

Depending on the length of messages the API response contains a further link to retrieve more "pages". This link wasn't passed properly in our logic. Now corrected.

CR1000923: Event Subtype & Cleanup of the Event Module [change request]

Invention of the field "subtype" for EventCapacityTypes, to differentiate or group the Types.
In addition, an extensive revision of the modules is necessary, including some bug fixes.

CR1001023: fix set call or Meeting participant status when MSGraph and EWS are run in the same CRM instance [change request]

When you migrate from Exchange on Premise to Microsoft 365 you might need to run the calendar synchronization with EWS or MSGraph deopending on the user. Until a user's mailbox is migrated to 365, they will synchronize using EWS. When a user accepts an invitation in the CRM, their partipation status can be sent to 365 but not to EWS. The logic now catches properly if MSGraph synchronization for 365 can be triggered.

CR1000981: new indicator for inbound/outbound mail [change request]

the email status indicator in the activity stream item has been updated to visualize also if an email was outbound or inbound.

CR1000999: Page Builder - Section Attributes [feature request]

Added edit button on section hover to modify its attributes

CR1000984: EWS: admin comopnent in workbench []

We added a component in the workbench to administrate all EWS Integration settings. In order to be able to implement the configuration view we had to refactor some of the variable settings:
Old ['curl_options'][81] to verify_ssl
Old ['curl_options'][64] to verify_peer
Old ['PushSubscriptionRequest']['StatusFrequency'] to PushSubscriptionRequestStatusFrequency

CR1001012: Additional config parameters for fieldRelate [change request]

It is now possible to disbale the lookup stored recent items and searched items. Parameters: disablerecent and disablesearch can be set in the field confguration. Might be handy when you want to force the user to open the the full list of related items

Post deployment action: reload core package or process SQL:

REPLACE INTO `sysuiobjectrepository` (`id`, `object`, `module`, `path`, `component`, `deprecated`, `description`, `componentconfig`, `version`, `package`) VALUES ('ca70633c-d1a3-4de1-9dbb-f49b997a8c71', 'fieldRelate', 'cf986fbd-7ee6-4733-af7d-a2867126334c', NULL, 'fieldRelate', 0, NULL, ',"executeCopyRules":,"modulefilter":,"disableadd":,"disablerecent":,"disablesearch":,"displayicon":,"promptondelete":,"relatefilterfield":,"relatefilterrelationship":,"relatedfilterrequired":}', '2018.02.001', 'core');

CR1000995: Create SalesDoc in new tab and not modal [change request]

the behaviour for creating new salesdocs has been changed. This is no longer rendered in a modal but in a separate tab. As a salesdoc is more of a complex object that might also take some time to be created this makes more sense from a usability point of view to handle it this way and thus increase the user experience.

CR1000934: B2C Added Link Consumers - Online Profiles [feature request]

Added link between the Consumers module and the ContactsOnlineProfiles module. Added Online Profiles panel under consumers related tab.

CR1001013: Bug CI Manager [bug]

all the colours that are changed are now saved. Added a reset button to return to original values

CR1001032: SchedulerJobs - Logger Improvement [feature request]

added filtering and sorting options to the logger panel for the scheduler job/task logger panel.

Post deployment action: Filtering for dates is there, I hope that is what was changed

CR1001011: MSGraph fix accept invitation in CRM [bug]

Wrong class Handler name in use in Calls & Meetings

CR1000982: Calendar: added groupwareDisabled component config [change request]

It is now possible to set Calendar.groupwareDisabled in the Calendar compoment in order to prevent the user to display nonsynchronized events from his groupware calendar

CR1001030: Added some help icons in workflow manager to try to explain the meaning of the fields [change request]

The workflow manager offers much flexibility designing a worflow. We tried to improve its usability by adding help texts to some areas of the manager.

CR1001020: Help Text Button & Modal [feature request]

A new button was created "ObjectActionHelpTextButton". Its purpose is to render a long help text in a modal.

Use case: When the space inside the standard info icon is too small for the help text.

CR1001001: Angular v16 [Security]

Upgraded angular to version16 which has some security and performance improvements

CR1001044: Fix adminstrate report categories [bug]

It was no longer possible to save report categories in the workbench due to wrong dictionary definition for metadata table kreportcategories.

CR1000914: HCM Module JobApplicants [feature request]

CR1000914 is an extension of CR1000879

You will need to load the hcm package for testing

CR1000949: add CampaignLog to Email Template Compiler [change request]

added the bean CampaignLog to the handler for sending emails fro a campaigntask. With {CampaignLog.xxxx} all attributes and also links from the CampaignLog are accessible in the email template compiler.

CR1001050: Layout Improvements [feature request]

Create a system component SystemSplitContainer that renders a split content with expandable sides.
Enabled toggle expand for the home component and the assistant
Enabled toggle display the dashboard panel in the dashboards editor.

CR1000942: Role module manager usability improved []

It is now possible to select a default dashboard or a default dashboard set via dropdown instead of copy/pasting the correspondig id

CR1001036: Flexible Cancel Pending Requests [hotfix]

Issue: When using modellist.service in a component and calling getListData, the list didn't show on first load due to the backend call cancelPendingRequests.

Solution: A new property was added "cancelPendingRequests" which is per default true. It can be called in your component with modellist.cancelPendingRequests and set as you require. This way you are more flexible when developing new components.

CR1000964: fieldCategories: add double click on value to remove current value [change request]

When a value is already selected xou can delete it bei double clicking on the value. After double click the value is removed and the focus is set into the search field. Since focus is triggered, the dropdown should appear.

CR1000996: Template Editor View - Layout Refactoring [change request]

Improved the layout details view layout for the modules CompaignTasks, EmailTemplates, OutputTemplates and LandingPages to make editing templates easier.

CR1001043: SpiceBean: retrieve_by_string_field() and encoding [change request]

Default value for $encode parameter was changed from true to false.
That should ease the use of that method which has been retrieving data wih htmlentities on special chars like ", and '

CR1000991: Display no Data Illustration in empty relate Container [change request]

Display a no Data Illustration in relate container if no configured component set is found

CR1000994: stateful tabs [change request]

added tabdata to the navigationtab service so a tab can keep its own state and data. This enables e.g. in the admin tabs if tabs are opened and the browser is reloaded that the admin tabs keep their loaded adminactions. For developers this means that in a tab the property tabdata can be read and written and can store data for the tab on its state and data that is also cached in the browser session.

CR1000950: Close ticket and SLA overtimed [change request]

When you close a ticket and the SLA time is over a modal window pops up. You are asked to enter an explanation why the SLA was overtimed. We added an explanation text and a warning icon in the modal window display. The explanation itself is store in the ticket in the field deviation_reason.

CR1000987: EWS Settings: refactoring of some config variables [change request]

It is now possible to enter the Exchange settings (using EWS) via the workbench. We simplified the configuration and refactored the variables ['SpiceCRMExchange']['PushSubscriptionRequest']['StatusFrequency'] to ['SpiceCRMExchange']['PushSubscriptionRequestStatusFrequency'] and ['SpiceCRMExchange']['curl_options'] to ['SpiceCRMExchange']['verify_ssl'] & ['SpiceCRMExchange']['verify_peer'].
The logic considers the old names in case you forget adapt your settings after the SpiceCRM update.

CR1000961: Change tree value: remove current value on double click [change request]

In a tree (component fieldcategories) you can use the icon X to remove the value currently set. Now you can double click on the value to remove it and open the tree to select a new value.

CR1000969: CRM Calendar displays both events in CRM and as external in 365 [bug]

With 365 synchronized events shall not appear as 365 event in the CRM calendar when the users open their calendar.

CR1000963: Config transfer: added a button "select custom only" [feature request]

Hit the button to have only custom tables selected (= table name contains the word custom).

CR1000970: fieldcategories and escape key [bug]

The listener on escape key wasn't terminated and caused performance issues with other fields. Working for a while with records using this type of field would result in delayed typed characters in any other input field.

CR1001014: Cache accounts custom lists [bug]

custom lists created in Accounts are now saved and displayed without logging out

CR1000962: Sorting for Multienum fields [feature request]

created an option to have multienum values sorted alphabetically

CR1001028: VAT Check correction [bug]

VAT check in accounts is returning correct message

CR1000954: Richtext with simple text and break lines [change request]

When you change a field from text to richtext in a fieldset layout, the current data will still be displayed but without the breaklines. We added a conversion of the breaklines to html
tag so that texts remain readable.

CR1001051: add delay when selecting aggregates [change request]

added a delay when selecting aggregates so multiple items of one aggregate can be selected or deselected before a reload of a list happens. This increases usability as a user can click multiple items and then the list waits for 1second until no further changes happens and then reloads

CR1000998: Email Templates - Bug Fix Styles [bug]

Problem when sending emails the email styles tags were misinterpreted. Fix covers all the mailboxes

CR1001019: Name display from Userpreferences [change request]

the full_name fields is now displayed iwith format from user preferences

CR1000985: Load Language: Added autocorrection of label ID changes [change request]

Sometimes the ID allocated to a language label changes. Until now this would trigger an error on language package load. We added a function that will replace the old ID by the new one and also re-map the ID in any custom translation that would exist for the corresponding label.
Information about changes made in custom translations will be pushed to the new warnings section added to the response of a language package load.

CR1001035: Email Whitelist [feature request]

Possibility to restrict email sending to a whitelist when sending emails in a test environment.

CR1001002: Template Compiler - Include Comments [feature request]

Added the option to include comments for the template compiler to generate the template comments with the compiled content. Important for conditional comments for IE html compatibility.

CR1001031: change address fields [change request]

amended the logic of the address field so so empty segments with commas separated are removed in the displayed value.

CR1000980: NACE/SIC Codes Loader [change request]

added a loader component in the workbench that allows loading files for industry SIC/NACE codes and use them in accounts for the industry classification following industry standards. A text file needs to be pasted and the user can select the levels of depth to be imported. The files used are also in the repository in folder /api/modules/Accounts/siccodefiles. The imported files will generate a select tree that then can be assigned to the accounts sic_code fields.

CR1000935: Move ticket to another queue: search functionality for the queue [change request]

The change queue button in a service ticket triggers the opening of a modal window in which you can select a service queue. Until now a full list was displayed without any search capability. Now the usual list with search capability is displayed. Only 1 queue can be selected as it used to be.

CR1000936: Data Stream Refactoring [feature request]

Moved UploadStream class to DataStreams\wrappers\UploadStream
Created StreamFactory to handle getting the path prefix of a stream.
Created new table sysdatastreams to hold the system stream wrapper definitions. Moved the legacy cdn to a new stream CDNStream.
Created GoogleCloudStorageStream.

CR1001038: Keep value for bean action until after save [change request]

SpiceBean class has athe property _bean_action which makes it possible to know if we are in a creation or an update. The property was reset before calling the after_save logic hooks preventing us to know in such a hook which action was triggered. We moved the unset at the end of the save function().

CR1000890: Update VIEW Interface [bug]

fixed the new namespace used by the European Union for the VIES VAT ID Check so it it properly checked again.

CR1000989: Page Builder - RSS Feed Element [feature request]

Added a new RSS feed element to the page builder to enable parsing from an RSS feed url.

CR1000978: add systemUpdate to SpiceBean [change request]

added a new parameter systemUpdate to the SpiceBEAN Class. If set to true before saving this will trigger a forced update on the changed bean on the client if the socket service is active and bypass the session check. Intention is to be able to force updates from Objects to the frontend if that happens systematically (e.g. if one bean updates another one and should communicate this to the frontend)

CR1000946: Module Qualications removed [change request]

The module itself and its related layout configurations were removed from SpiceCRM.

Post deployment action: DROP TABLE qualifications;

CR1001004: SystemDeploymentCRs Upgrade ListView Type [feature request]

"upgrade view" in a "display as" drop-down list

CR1001052: update on Statistics to have separate call on StreamFactory [change request]

as part of the stream factoryChanges also the statistics have been updated adding specific call on the StreamHandler class to get stats. If the calss implements this can be handled special ways to optimize performance. Specifically with 3S buckets like on AWS or GCP this implements specific API calls to improve stats performance significantly

CR1000993: Cleanup Recordview Companycodes [change request]

Cleaned up the Record view of the company codes. Removing the activities tab and the header details line in the page header.

CR1000990: Procurement Module [feature request]

CR1001048: ListView - Remember View [change request]

Saved selected view type component to user preferences so that the system will remember the selection after re-login.

CR1001000: Fix send email with MSGraph mailbox & Workflow [bug]

When using a mailbox with MSGraph Handler e-mail status wouldn't be set to "sent" even if e-mail was sent successfully. The response is now properly interpreted and returned.

CR1001003: KReports: improved listview fieldset [change request]

The default reports listview can now be sorted by name and date modified. You can also see the base module selected for the report and the allocated category.

CR1000992: Cleanup Products View [change request]

the View Layout for products has been cleaned up. Into a 1 only view with the tabs. The details on the header has been removed as this is not really needed here. The tab with attachments is moved into the main tabs and the notes tab has been removed.

CR1001007: Boolean bullet colors configurable [change request]

It is now possible to specify a css class for the display in a fieldset

CR1000953: DBManager - Encoding Strings [change request]

Removed the call of DBUtils::fromHtml in the quoteInternal method to prevent decoding entities before save.
Removed the call of html_entity_decode in SpiceBeanHandler::mapBeanToArray to prevent decoding any html entities before returning a response.

CR1001010: Limit number of items in aggregates to 5 []

amend the Aggregates view. By default only 5 items are shown. If more items are available a more link with the number of more items will be shown and the aggregate panel can be expanded. This allows also to have aggregates with more items loaded and still be able to limit scrolling.

CR1000997: Reporter - Filter Label [feature request]

Changed the reports designer filter name to display an editable label of the field, solving any naming conflict in the reporter filter panel.

CR1001018: MSGraph: admin shall be able to manage subscription [change request]

Only user themselves have been able to turn on/off their 365 subscriptions. Now an admin user can do it for the users

CR1000920: SpiceInstaller: improved overview for System requirements []

Improved listing for requirements checks to make the difference between PHP version check, php extensions checks and directory access permission checks.

CR1001027: syststatusnetworks now has a custom counterpart [change request]

Added table systcustomstatusnetworks. Domain setup in this custom table will prevail over the core table, The domain status network definition is retrieved either from the custom table or from the core table. If you need to customize 1 button, you will have to copy the whole thing to custom and adapt the proper record.

CR1000988: MSGraph fix UTC datetime in event editing [bug]

Events are sent as UTC from CRM to 365. In the 365 calendar events appear with a date time corresponding to the user's timezone set in 365. But as in event editing mode the time is displayed as UTC. This makes it difficult for users to keep track of the proper date time they agreed to.
We added a fix to avoid that behaviour by sending the time zone set for the user in the CRM.

CR1000960: Empty Color Picker [bug]

CR1001049: System Slider Component - Layout Adjustment [change request]

Adjusted the layout of the system slider component to show the incomplete part of the slider in grey color.

CR1001039: SalesDocs: call a function to get a document number [change request]

The logic to get a document number is now packed in the function "getSalesDocNumber" in the SalesDoc class. This way you can customize it by extending the class and overwriting the function.

CR1001005: Validation rule with unset active flag is still active [bug]

When the flag active is set the validation rule is applicable. When the flag isn't set the validation rule shall be ignored. This behaviour has been corrected.

CR1001040: Dashlet configuration: added parameter resolvelinks to force the retrieve of related records [change request]

The default behaviour of the call for a list will prevent from loading related records. This is because of performance issues on big systems. In some occasions like displaying a meeting dashlet on a dashboard with the typical accept/decline/don't know buttons we need to ensure that the related records (the users selected as participants in our case) will be loaded. The link definition is set to true and passing the resolvelinks parameter will trigger the loading.
The dashlet configuration displays the correspondig checkbox.
Of course it possible to use the resolvelinks parameter in any other API call for a list.

Breaking changes

CR1000936

UploadStream refactor under api\custom if used:
Class SpiceCRM\includes\UploadStream moved to SpiceCRM\includes\DataStreams\wrappers\UploadStream

"upload://" dir prefix under api\custom if used:
Replace hard coded "upload://" with SpiceCRM\includes\DataStreams\StreamFactory::getPathPrefix('upload')

In order to use the legacy cdn create a Stream in the workbench with the following fields:
name: cdn
class_namespace: SpiceCRM\includes\DataStreams\wrappers\CDNStream
config:

Use StreamFactory::getPathPrefix("upload") instead of directly using the hard coded string "upload://" in file_put_contents.

Deprecation

CR1001064: Removed: menu item "Repair Database" in the workbench

As announced in release 2023.01.001 the menu item "Repair Database" was removed from the workbench.

Questions about this version? Write to us.

This is not a cookie banner.Read more