# Release Note vtenext 26.04

**Theme** Updated the font to *Inter* and upgraded the Bootstrap library to version 3.4.1.  
Updated the styles of some core components.

---

**French Language Pack**

The French language pack available during installation has been updated and moved from the beta modules to the optional modules.

---

**Translation of External Pages Based on Browser Language**

External pages used for appointment scheduling (*Book Me*) and for dynamic external forms (accessible via email) will be translated according to the language detected in the user’s browser.

---

 **Quick Actions in List View**  
  
In module list views, a preview button has been added and the edit button has been updated to open a half-page panel.  
You can switch back to the previous behavior using the properties:

- `layout.listview.preview`
- ``layout.listview.fast_edit``

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/PWeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/PWeimage.png)

---

**Webform**

It is now possible to create records in any module from a webform.  
It is also possible to enable duplicate checking to prevent the creation of records that already exist.

[![webform.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/webform.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/webform.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/5lSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/5lSimage.png)

---

  
**Hidden Fields in Data Import**  
  
In **Settings** &gt; **Data Import**, it is now possible to import values into hidden fields as well.

---

**CSV Export**

<section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-12" data-turn="assistant" data-turn-id="request-WEB:c22c3e7b-223c-436f-9da6-5e2c63b7bf91-9" dir="auto" id="bkmrk-additional-formattin">Additional formatting options have been added to address compatibility issues with external applications.

[![csv export.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/csv-export.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/csv-export.png)

  
In CSV export for any module, it is now possible to choose the format for numeric fields:

- Default (1000.5496): previous format (dot as decimal separator)
- Italian (1000,550): comma as decimal separator
- English (1,000.550): comma as thousand separator, dot as decimal separator
- User (1000.55): based on user settings

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/DGoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/DGoimage.png)

---

**Guest Search by Email**

In calendar events, it is now possible to add attendees by searching them via email address

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/Bckimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/Bckimage.png)

  
---

**Email Attachments**

It is now possible to attach files to an email directly from the Documents module.

[![e-mail.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/e-mail.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/e-mail.png)

</section><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-12" data-turn="assistant" data-turn-id="request-WEB:c22c3e7b-223c-436f-9da6-5e2c63b7bf91-9" dir="auto" id="bkmrk--9"></section>---

<section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-12" data-turn="assistant" data-turn-id="request-WEB:c22c3e7b-223c-436f-9da6-5e2c63b7bf91-9" dir="auto" id="bkmrk-groups-in-conversati">**Groups in Conversations**

It is now possible to select a group to send a conversation to all its members.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/PAXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/PAXimage.png)

---

**User Selection Avatars**

User avatar images have been added to user auto-complete fields.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/zf3image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/zf3image.png)

---

**Negative Numbers**

Support for negative values has been added to numeric and currency fields in Layout Editor, Module Creation, and Process Maker.

[![negative numbers.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/negative-numbers.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/negative-numbers.png)

---

**Out of Office in Conversations**

The out-of-office status configuration has been moved to user preferences under the “More” menu in the top-right corner.  
If a user sends a conversation to someone who is out of office, they will receive an automatic message.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/bukimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/bukimage.png)

---

**Layout Editor: Sorting Fields for Relationships**

In the relationship management page, it is now possible to define, for each related module, the field used to sort the list of items and the sorting direction (ascending/descending).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/CgDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/CgDimage.png)

---

**Field Name in Module Creation**

When creating modules, it is now possible to configure the field name, allowing a custom and more meaningful name instead of default values like vcf\_\*.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/Knqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/Knqimage.png)

---

**Synchronizations: Multiple Configurations for the Same External System**

It is now possible to configure multiple connectors for different instances of the same system (e.g. WooCommerce, HubSpot, etc.).

---

**Mail Converter: Automatic Message Filtering**

By enabling the property `settings.mailscanner.filter_auto_msg`, it is possible to detect whether an incoming email was sent by an automated system and prevent ticket creation from triggering a new outgoing email from vtenext

---

**Conditional Fields**It is now possible to define a rule that applies to all groups/roles except the selected one.

[![conditional fields.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/conditional-fields.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/conditional-fields.png)

---

**Trash**

New buttons have been added to delete specific records or all records of a module.

[![trash.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/trash.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/trash.png)

</section><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-12" data-turn="assistant" data-turn-id="request-WEB:c22c3e7b-223c-436f-9da6-5e2c63b7bf91-9" dir="auto" id="bkmrk--11">---

</section>**Processes: Send Newsletter Action**

Reply-To and Language configuration options have been added.

[![send NL.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/send-nl.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/send-nl.png)

---

<section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-12" data-turn="assistant" data-turn-id="request-WEB:c22c3e7b-223c-436f-9da6-5e2c63b7bf91-9" dir="auto" id="bkmrk-processes%3A-events-wi">**Processes: Events with Reminders**

Support for the “Notify” function has been added when creating or updating events from Process Maker.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/0yDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/0yDimage.png)

---

**Processes: Enable/Disable Newsletter Subscription**

A new SDK function has been added to process actions to enable or disable the “Receives Newsletter” field for Leads, Contacts, and Accounts.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/jWlimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/jWlimage.png)

---

**Processes: Import Actions**

A new “Import actions from…” button has been added to process action tasks, allowing users to duplicate one or more already configured actions into the current task.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/nQnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/nQnimage.png)

---

**Processes: Formula Function**

Process SDK functions for sum, subtraction, multiplication, and division have been unified into a single `vte_formula` function, using formula field syntax.

Examples:

```php
ciao "$sdk:vte_formula( $1-amount - (20 + 40) - $1-delta )"
// ciao "300.02"

```

```php
$sdk:vte_formula( if "$1-name" == "ciao" then $1-amount + $1-delta else 0 end )

```

---

**Processes: Process Helper**

To simplify configuration of Process Maker action tasks, the Process Helper will now be disabled by default. When enabled, the “**Linked to**” field will be automatically populated with the main entity.

---

**Processes: New UI**

If multiple processes requiring a dynamic form are linked to a record, it is now possible to scroll through them and choose which one to complete first.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/aZKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/aZKimage.png)

Simple dynamic forms are often created with a single “choice” field, which is used to obtain user confirmation in order to proceed with the workflow or to direct it to a specific branch.  
  
For simple dynamic forms with a single “choice” field (used to confirm or route a workflow), a new “**Quick choice configuration**” button has been added. It allows configuring quick action buttons directly within the requested action instead of using the “Fill in” button.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/mJkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/mJkimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/6jhimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/6jhimage.png)

The process list, accessible from the top menu, has been simplified and now replicates the same block-based UI used in record detail views.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/scaled-1680-/vcjimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-04/vcjimage.png)

---

## Developers

**SDK Class Extensions**

Several PHP classes have been made extensible and improved to support SDK development without modifying core files:

- WebformCapture (webform saving)
- Import\_Data\_Controller (CSV import management)
- ListViewController (list management)
- ExportUtils (CSV export)
- Mail Converter classes: MailScannerMailBox, MailScanner, MailRecord, MailRecordZend, MailScannerMailBoxZend, MailScannerInfo, MailScannerAction, MailScannerRule, MailScannerSpam
- All VteSync connector classes

More details available in the [documentation](https://usermanual.vtenext.com/books/developers/chapter/new-developers-features-in-vtenext-2604).

---

**Module Conversion**

It is now possible to create a record starting from another module (e.g. Quote → Generate Sales Order) via the new `ConvertModesUtils` class.

More details available in the [documentation](https://usermanual.vtenext.com/books/developers/page/record-conversion).

---

**Themes**

The “softed” and “next” themes have been removed, and “next22” is now the new default theme in Smarty/templates.  
Any custom templates replacing standard ones must be placed in `Smarty/templates_sdk`.

---

**Settings**

A new `SettingsPage` class has been introduced for managing settings pages.

---

**Code Review Skill**

A review skill is available under `tools/skill/review-sdk-26` to be used with AI agents in your IDE, helping adapt code to the new version.

More details available in the [documentation](https://usermanual.vtenext.com/books/developers/page/code-review-skill).

</section>