Release Note vtenext 26.*
Per installare vtenext alla versione 26.* è necessario utilizzare php >= 8.3. Vedi i requisiti necessari nell'apposita sezione.
L'adeguamento a php 8 ha comportato una revisione di gran parte del codice quindi rimandiamo gli sviluppatori a prendere visione delle nuove sezioni introdotte nella pagina a loro dedicata.
- Guida di aggiornamento versione
- Release Note vtenext 26.04
- Release Note vtenext 26.07
- Release Note vtenext 26.10
Guida di aggiornamento versione
Come effettuare l'aggiornamento alla versione 26.* partendo da versioni precedenti (≤ 25.02.2)
Aggiornamento tramite interfaccia Web
Prerequisiti
Prima di avviare la procedura di aggiornamento, verificare che siano soddisfatti i seguenti requisiti:
- vtenext deve essere aggiornato almeno alla versione 25.02.2. Solo a partire da questa versione è possibile procedere con l'aggiornamento alla release 26.*.
- Deve essere presente una licenza valida e attiva.
- Deve essere disponibile un utente amministratore attivo con autenticazione locale (autenticazione tramite password locale senza autenticazione a due fattori).
Procedura di aggiornamento
Nella versione 25.02.2, se è abilitato il controllo automatico degli aggiornamenti, l'utente amministratore riceverà una notifica della disponibilità della nuova versione, che segnalerà la necessità di aggiornare la versione di PHP.
A questo punto sono disponibili due possibili modalità per proseguire con l'aggiornamento.
- Migrazione su un nuovo server
La soluzione consigliata consiste nello spostare l'intera installazione su un nuovo server con:
- Ubuntu Server 24.04 (raccomandato);
- PHP 8.3;
- tutti i pacchetti richiesti dalla documentazione di installazione.
Dopo la migrazione verificare che:
- il file config.inc.php contenga i corretti parametri di connessione al database;
- tutti i cron job siano stati configurati e attivati correttamente sul nuovo server.
- Aggiornamento del server esistente. In alternativa è possibile aggiornare direttamente il sistema operativo del server attuale installando una versione compatibile con PHP 8.3. Prima di procedere è fortemente consigliato creare uno snapshot (o un backup completo) della macchina, così da poter ripristinare rapidamente l'ambiente in caso di problemi.
Una volta completata la migrazione o l'aggiornamento del server, vtenext entrerà automaticamente in modalità "Update Only".
In questa modalità l'applicazione consentirà esclusivamente il completamento della procedura di aggiornamento e non sarà possibile utilizzare normalmente il CRM fino al termine dell'upgrade.
Dopo aver effettuato l'accesso con un utente amministratore, il sistema mostrerà una pagina semplificata dedicata esclusivamente all'aggiornamento.
Se i cron job di vtenext non sono attivi o non sono stati eseguiti di recente, la pagina di aggiornamento potrebbe non mostrare la disponibilità della nuova versione. In questo caso fare clic sul pulsante "Check now" e attendere alcuni minuti. Se l'aggiornamento continua a non essere disponibile, eseguire manualmente il cron dalla directory di installazione di vtenext:./cron/RunCron.sh
In alcuni casi potrebbe essere necessario eseguire il comando due volte, fino a quando l'output non mostrerà un messaggio simile a "[INFO] Found new version available (...), checking for compatibility...", a conferma che il sistema ha rilevato la nuova versione e ne sta verificando la compatibilità prima di consentire l'aggiornamento.
Dopo aver fatto clic sul pulsante "Inizia aggiornamento", il sistema mostrerà un'ultima schermata di conferma.
Una volta confermato, l'aggiornamento verrà eseguito in background. Se i cron job sono attivi, la procedura proseguirà automaticamente. In caso contrario, sarà necessario eseguire manualmente il comando
./cron/RunCron.sh dalla directory di installazione di vtenext fino al completamento dell'intero processo di aggiornamento.
Quando inizia l'aggiornamento l'utente vedrà questa schermata:
Durante l'aggiornamento è consigliabile aggiornare la pagina del browser ogni 5-10 minuti per verificare l'eventuale presenza di errori o anomalie. Al termine della procedura, il sistema reindirizzerà automaticamente alla pagina di login. A questo punto sarà possibile autenticarsi e iniziare a utilizzare la nuova versione di vtenext.
Aggiornamento dal terminale
Prerequisiti
Prima di procedere con l'aggiornamento, assicurarsi che siano soddisfatte le seguenti condizioni:
- vtenext deve essere aggiornato alla versione 25.02.2. Solo a partire da questa versione è possibile procedere con il passaggio successivo dell'aggiornamento.
- Deve essere presente una licenza valida e attiva.
La seguente procedura è dis
Aggiornamento con vteUpdater
Poiché questa versione di vtenext supporta esclusivamente PHP 8.3 o superiore, sono disponibili due modalità di aggiornamento:
-
Spostare l'intera installazione su un nuovo server con PHP 8.3 (è consigliato Ubuntu Server 24.04), completo di tutti i pacchetti necessari (fare riferimento alla pagina Requisiti di Installazione). In questo caso, verificare che i parametri di connessione presenti nel file config.inc.php siano corretti nel nuovo server.
-
Aggiornare il sistema operativo del server attuale a una versione che includa PHP 8.3. In questo caso è fortemente consigliato eseguire uno snapshot del sistema prima di avviare la procedura di aggiornamento.
Dopo questo, è possibile avviare la procedura di aggiornamento:
- Accedere tramite SSH al server che ospita vtenext e posizionarsi nella relativa directory.
- Se vengono rilevati errori, verrà mostrato un log che consentirà di valutarli e scegliere se ripristinare il sistema utilizzando i backup creati in precedenza oppure proseguire e completare l'aggiornamento.
Proseguendo l'aggiornamento in presenza di errori, la fase di post-update verrà saltata e dovrà essere eseguita manualmente con il comando:
./vteUpdater.sh --only-delete
Questa fase viene eseguita automaticamente se non vengono rilevati errori.
Questa fase elimina i file obsoleti e applica gli script al termine dell'aggiornamento. - Eseguire
./vteUpdater.sh(rendendolo eseguibile, se necessario) e seguire le istruzioni.
L'output dovrebbe essere simile al seguente:
root@testhost:/var/www/html/vte3001upd# ./vteUpdater.sh VTE Automatic Updater -- version 1.72 [INFO] Checking for upgrades of this script... [INFO] Found VTE at revision 3001 [INFO] Checking for latest available version... You can update to revision ????, . Do you want to proceed? (Y/N) : y Please type your username : ********** Password: ***************** [INFO] Validating credentials... [INFO] Downloading package... [INFO] Packages downloaded succesfully [INFO] Updating VTE to revision ???? mysql: [Warning] Using a password on the command line interface can be insecure. mysql: [Warning] Using a password on the command line interface can be insecure. [INFO] Database size is 140 MB, (biggest table is sdk_language, 15 MB) The user and group for the web server have been detected as www-data:www-data. Is this correct? (Y/N) : y [INFO] Starting file comparison... File comparison: [########################################] 100% [INFO] No differences found [INFO] Waiting 2 minutes for cron processes to finish... [INFO] Creating backup of VTE files... Do you want to backup the database? (Y/N) : y [INFO] Creating backup of database... [INFO] Starting update... [INFO] Files copied. Executing schema update... [INFO] Removing obsolete files... [WARNING] The file ./config.template.php might have some custom code, left untouched [INFO] Removed 6289 files and 1126 directories [INFO] Executing post-delete scripts... [INFO] Update notes: [INFO] The obsolete module Dashboard has been eliminated, as well as the method SDK::setDashboard [INFO] If you were still using Dashboards, please migrate them to Charts or custom Iframe [INFO] [INFO] Classes Vtiger_Net_Client and Vtiger_Feed_Parser have been eliminated. [INFO] Please review the custom code if they were still used [INFO] [... redacted ...] [INFO] [INFO] Update successful!Se si verificano errori, è possibile consultare il log per valutarne la gravità e scegliere se ripristinare il sistema utilizzando i backup creati in precedenza oppure proseguire e completare l'aggiornamento.
Se vengono rilevati errori e si decide di proseguire, la fase di post-update verrà saltata e dovrà essere eseguita manualmente con il comando:
./vteUpdater.sh --only-deleteQuesta fase viene eseguita automaticamente se non vengono rilevati errori.
Questa fase elimina i file obsoleti e applica gli script una volta completato con successo l'aggiornamento.
-
Nel caso siano presenti modifiche personalizzate al codice, queste dovranno essere riportate manualmente nella nuova versione e verificate per assicurarsi che siano compatibili con PHP 8.3. Fare riferimento al manuale per gli sviluppatori per conoscere le modifiche introdotte.
È inoltre disponibile una review skill utilizzabile con gli agenti AI all'interno del proprio IDE, che aiuta ad adattare il codice alla nuova versione.
Maggiori dettagli sono disponibili nella documentazione.
Release Note vtenext 26.04
Tema
Aggiornamento del font a Inter e delle libreria bootstrap alla versione 3.4.1.
Aggiornamento degli stili di alcuni componenti base.
Pacchetto di lingua Francese
Il pacchetto di lingua francese disponibile in installazione è stato aggiornato e spostato dai moduli beta a quelli opzionali.
Traduzione pagine esterne secondo la lingua del browser
Le pagine esterne utilizzate per fissare appuntamenti (Book me) e per le form dinamiche esterne (accessibili via email) saranno tradotte in base alla lingua rilevata nel browser.
Tasti rapidi in lista
Nelle liste dei moduli è stato aggiunto il tasto di anteprima e modificato il tasto di modifica per aprire un pannello a metà pagina. Si può scegliere se tornare alla modalità precedente tramite le prop layout.listview.preview e layout.listview.fast_edit.
Webform
Ora è possibile creare qualsiasi modulo da un webform.
Inoltre è possibile attivare il controllo duplicati per evitare la creazione di un record già presente.
Campi nascosti in importazione dati
In Impostazioni > Importazione dati ora è possibile importare valori anche in campi nascosti.
Esportazione CSV
Sono state aggiunte delle opzioni di formattazione per risolvere dei problemi di compatibilità con applicazioni esterne.
Nell'esportazione CSV di qualsiasi modulo è possibile scegliere il formato per i campi numerici:
- Default (1000.5496) : come era prima (punto come separatore dei decimali)
- Italiano (1000,550) : virgola come separatore decimale
- Inglese (1,000.550) : virgola separatore migliaia, punto separatore decimali
- Utente (1000.55): come da impostazioni utente
Ricerca invitati per email
Negli eventi di calendario è possibile aggiungere invitati cercandoli per indirizzo email.
Allegati Email
Possibilità di allegare file ad una email direttamente dai documenti.
Gruppi in conversazioni
E' possibile selezionare un gruppo per inviare una conversazione a tutti i suoi membri.
Avatar in selezione utenti
Nei campi di auto-completamento degli utenti è stata aggiunta l'immagine avatar.
Numeri negativi
Supporto per valori negativi ai campi numerici e valuta in Layout Editor, Creazione Moduli e Process Maker.
Fuori ufficio in conversazioni
La configurazione dello stato fuori ufficio è stata spostata all'interno delle preferenze utente nel menù Altro in alto a destra.
Se un utente scrive una conversazione ad un altro utente fuori ufficio riceverà un messaggio automatico.
Layout editor: ordinamento campi per le relazioni
Nella pagina di gestione delle relazioni è possibile definire per ogni modulo collegato il campo per cui ordinare la lista di elementi e la modalità Ascendente/Discendente.
Nome Campo in Creazione moduli
Nella creazione dei moduli ora è possibile configurare anche il nome del campo in modo da assegnare un nome personalizzato e più esaustivo dei vcf_*.
Sincronizzazioni: possibilità di configurare diverse sincronizzazioni per lo stesso Sistema esterno
Ora per lo stesso sistema (es. WooCommerce, HubSpot, ecc.) è possibile configurare più connettori a istanze diverse.
Mail Converter: filtro messaggi automatici
Attivando la prop settings.mailscanner.filter_auto_msg è possibile riconoscere se un messaggio ricevuto è stato inviato da un sistema automatico ed evitare che la creazione del ticket generi una nuova mail in uscita da vtenext.
Campi Condizionali
Ora è possibile definire una regola che si applica a tutti i gruppi/ruoli ad eccezione di quello selezionato.
Cestino
Nuovi pulsanti per eliminare record specifici o tutti i record di un modulo.
Processi: azione Invia newsletter
Aggiunte le configurazioni Reply To e Lingua.
Processi: eventi con promemoria
Supporto alla funzione Avvisa in creazione/modifica di eventi da Process Maker.
Processi: abilitare/disabilitare la ricezione di newsletter
Tra le funzioni SDK delle azioni di processo è disponibile una nuova funzione per disabilitare e abilitare il campo Riceve newsletter nei Lead, Contatti e Aziende.
Processi: importa azioni
Nella task di azione dei processo è stato aggiunto il tasto Importa azioni da... che permette di duplicare una o più azioni già configurate nel processo ed attivarle nella task corrente.
Processi: funzione formula
Nei processi le varie funzioni SDK di somma, differenza, moltiplicazione e divisione sono state unificate in un'unica funzione vte_formula che sfrutta la sintassi dei campi formula.
es.
ciao "$sdk:vte_formula( $1-amount - (20 + 40) - $1-delta )"
// ciao "300.02"
$sdk:vte_formula( if "$1-name" == "ciao" then $1-amount + $1-delta else 0 end )
Processi: Process Helper
Per semplificare la configurazione delle task di azione nel Process Maker, il Process Helper sarà di default disattivato e all'attivazione il campo Collegato a verrà popolato automaticamente con l'entità principale.
Processi: nuova UI
Se nel dettaglio di un record ci sono più processi collegati che necessitano la compilazione di una form dinamica ora sarà possibile scorrerli tutti e scegliere quale compilare per prima.
Spesso si creano delle form dinamiche semplici con un unico campo "scelta" che serve per ottenere la conferma da parte di un utente per proseguire con il flusso o per direzionarlo su una specifica diramazione.
Nell'interfaccia del Process Helper è stato aggiunto un nuovo tasto Configura scelta rapida che permette di configurare dei tasti rapidi che saranno disponibili direttamente nell'azione richiesta al posto del tasto Compila.
La lista dei processi, accessibile dal tasto nel menù in alto, è stata semplificata riproducendo la stessa interfaccia a blocchi presente nel dettaglio dei record.
Sviluppatori
Estensione classi SDK
Sono state rese estendibili e migliorate varie classi php per favorire gli sviluppi SDK senza modifiche ai file core:
WebformCaptureper ricevere il salvataggio di un webformImport_Data_Controllerper la gestione dell'importazione file CSVListViewControllerper la gestione delle liste-
ExportUtilsper l'esportazione CSV - Tutte le classi per la gestione del Mail Converter:
MailScannerMailBoxMailScannerMailRecordMailRecordZendMailScannerMailBoxZendMailScannerInfoMailScannerActionMailScannerRuleMailScannerSpam - Tutte le classi dei connettori di sincronizzazione (VteSync).
Conversione tra moduli
Possibilità di creare un record partendo da un altro (es. Preventivo > Genera Ordine di Vendita) tramite la nuova classe ConvertModesUtils
Maggiori dettagli qui.
Temi
I temi softed e next sono stati rimossi e next22 è diventato il nuovo tema base in Smarty/templates
Eventuali template custom che devono sostituire quelli standard vanno inseriti in Smarty/templates_sdk
Impostazioni
Introdotta la nuova classe SettingsPage per la gestione delle pagine nelle impostazioni.
Skill per revisione del codice
In tools/skill/review-sdk-26 è disponibile una skill da utilizzare con agenti AI integrati nel vostro IDE che vi può aiutare nell'adattamento del codice alla nuova versione.
Maggiori dettagli qui.
Release Note vtenext 26.07
Processi
Azione cicla record
Nuova funzione "Cicla record" consente di ciclare su tutti i record di un determinato modulo. E' possibile definire criteri di filtro e di ordinamento, così da limitare l'operazione ai soli record di interesse ed elaborarli nell'ordine desiderato.
Modalità di esecuzione
Per tutte le azioni del processo, è possibile specificare la Modalità di Esecuzione:
- Standard: il processo di esecuzione attende che l’azione venga completata prima di procedere con quella successiva.
- Background: il processo si interrompe e l’azione viene eseguita in background tramite worker o cron.
Nuove opzioni nelle condizioni
Sono state aggiunte le opzioni "in" e "not in" nelle condizioni sui campi picklist per verificare più valori contemporaneamente.
Nell'opzione "è cambiato in" è stata aggiunta la voce "Valore qualsiasi" per verificare se un campo picklist è stato modificato assumendo un qualsiasi valore.
Nuovo pannello per i log del grafico del processo
Migliorata l’interfaccia utente del grafico del processo nella visualizzazione del dettaglio del record.
Processi di tipo Tool
È possibile creare nuovi processi di tipo Tool che possono essere richiamati più volte all’interno dello stesso processo oppure da processi differenti, comportandosi come delle vere e proprie funzioni.
Possono inoltre essere pubblicati come strumenti (Tool) su un server MCP.
Strumenti AI
Documentazione OpenAPI
Le API REST sono ora compatibili con il formato OpenAPI 3.0.
È stato inoltre aggiunto un pulsante nella sezione Impostazioni > REST Webservices che permette di visualizzare la documentazione Swagger e testare direttamente le API all’interno del CRM, con la possibilità di scegliere l’utente con cui eseguire le chiamate.
Documentazione tecnica disponibile qui.
Strumenti AI
LLM
E' possibile configurare un modello LLM in accordo con il formato OpenAI.
MCP Server
È possibile configurare i server MCP esposti da VTENEXT.
Per ciascun server è possibile selezionare quali tool pubblicare, scegliendo tra:
-
API REST;
-
tool personalizzati (Custom Tools);
-
Processi.
Documentazione tecnica disponibile qui.
MCP Client
È possibile configurare i server MCP di cui si desidera utilizzare i tool.
Sono supportati esclusivamente i server esposti tramite HTTP.
Di default sono disponibili:
-
un server VTENEXT MCP;
-
un server Exa MCP per effettuare ricerche sul web.
Agent
È possibile configurare gli agenti AI da utilizzare all’interno del proprio assistente e nei processi.
Un agente può utilizzare:
- LLM;
- tool MCP;
- RAG;
per completare automaticamente le attività assegnate.
Assistant
Il nuovo assistente si chiama Kitt, ma è possibile modificarne il nome e la foto dalle preferenze utente.
L’assistente può interrogare:
- un LLM;
- un Agent;
- un Webservice REST personalizzato.
È possibile porre domande all’assistente tramite conversazioni oppure utilizzando il nuovo pannello laterale.
È inoltre possibile utilizzare azioni rapide preconfigurate per:
-
riepilogare;
-
elaborare testi;
-
tradurre.
Queste azioni rapide possono inoltre essere pubblicate come tool MCP.
Agent Logs
È stata aggiunta una voce in Impostazioni > Log di sistema per gestire i log degli agenti.
Azioni AI in ProcessMaker
È possibile configurare le azioni dei processi ed eseguire:
Chiama LLM
Effettuare una richiesta a un LLM e utilizzare la risposta all'interno del processo.
Chiama MCP tool
Eseguire un tool MCP.
Chiama Agente
Effettuare una richiesta a un Agent per completare automaticamente le attività e utilizzare la risposta all’interno del processo.
Chiama Process Tool
Eseguire un Processo di tipo Tool.
Ulteriori Miglioramenti
Worker
Il worker è il nuovo servizio che consente di eseguire immediatamente operazioni in background (senza bloccare l’interfaccia utente) e senza dover demandare l’operazione a un cron job, evitando quindi di dover attendere il tempo minimo di 1 minuto.
Il worker riceve una richiesta di esecuzione tramite PHP e successivamente invia la risposta direttamente al browser tramite eventi SSE (Server-Sent Events).
Attualmente è stato implementato per eseguire le seguenti operazioni:
-
notifiche (ModNotifications);
-
azioni dei processi con modalità di esecuzione Background;
-
tutte le richieste relative ai nuovi AI Tools.
Documentazione tecnica è disponibile qui.
Scadenza nelle Access Key
Nelle Preferenze Utente > Webservices > Configurazione API REST è possibile specificare una data di scadenza per le nuove Access Key. Una volta raggiunta la data di scadenza, l'Access Key verrà eliminata automaticamente.
L'elenco dei modelli e-mail (Email Template) nelle newsletter è ora ricercabile.
Aggiunta la ricerca nella griglia dei modelli e-mail (Email Template) all'interno delle newsletter.
Migliorata la gestione dei report schedulati
Nella configurazione dei report schedulati sono state aggiunte due nuove opzioni:
-
Escludi giorni festivi/weekend: consente di non inviare il report nei giorni festivi o nei fine settimana. I giorni festivi vengono determinati in base al campo "Holiday Countries" presente nel profilo dell'utente Amministratore.
-
Escludi report vuoti: consente di evitare l'invio del report quando non sono presenti dati che soddisfano i criteri di estrazione.
Modifica titolo Widget
Possibilità di modificare il titolo dei widget della home page
Release Note vtenext 26.10
Webservice REST > Origini permesse
Da Impostazioni > Webservice REST è possibile indicare i domini permessi per chiamare le REST API da browser da dominio esterno.
Drag & drop nei filtri dei moduli
Ora è possibile modificare l’ordine delle colonne nei filtri dei moduli mediande drag & drop.
Processi di tipo Tool
Rimosso il vincolo di dover inserire almeno un parametro di tipo entità alla creazione di un processo tool.
Nella lista in Impostazioni > Process manager, nella colonna SOTTOPROCESSI / TOOL, ora sono indicati anche eventuali tool utilizzati all'interno del processo.
Miglioramento UI variabili di processo
I menù di selezione delle variabili nei processi sono stati aggiornati permettendo la ricerca.
Log Server MCP
È stata aggiunta una voce in Impostazioni > Log di sistema per gestire i log delle chiamate verso i Server MCP di vte.
Maggiori dettagli di log per le operazioni AI
Gli aggiornamenti eseguiti tramite AI, anche quando sono richiesti esplicitamente dall’utente, sono sempre identificati nel tab Storico dei record come contenuti prodotti con il supporto dell’intelligenza artificiale.
In Impostazioni > Log di sistema > Agenti AI viene indicata la scelta eseguita dall'utente di approvazione/disapprovazione di esecuzione dei tool.
2026-07-31 09:08:32 [INFO] HITL threadId:800 userid:1 approve tool call: Array
(
[0] => Array
(
[tool_call_id] => 56d634ea-256b-44ab-89a9-1d86c51290c0
[type] => approve
)
)
Revisione azioni di processo AI
Nelle azioni di processo Chiama LLM e Chiama agente sono state rimosse alcune configurazioni mantenendole solamente nella configurazione generale in Impostazioni > Strumenti AI.
Inoltre è possibile ereditare delle proprietà dalla configurazione standard di un modello o di un agente indicando la voce Default.
Anteprima HITL (Human in the loop)
Utilizzando l'assistente Kitt viene richiesta l'approvazione per utilizzare alcuni tool (es. tool processo e tool che eseguono operazioni di scrittura).
Da questa versione è possibile vedere l'anteprima di cosa andrà a fare il tool.
Processi: migliorati i log di timer
Nel grafico processo cliccando sui timer viene indicata anche la data di esecuzione prevista.
Processi: migliorati i log di tool processo
Nel grafico processo cliccando sulla task iniziale di un processo tool vengono indicati i parametri ed i valori effettivi passati in quella specifica esecuzione.
Maggiori dettagli durante l'esecuzione in background
Se ci sono delle attività di processo in esecuzione in background per un certo record (vedi Worker) verranno mostrati i dettagli dell'operazione in corso.
Miglioramento UI LLM
Migliorata l'interfaccia di configurazione LLM con la possibilità di scegliere tra la lista dei provider supportati e i relativi modelli.
Autenticazione orchestratore
E' stato aggiunto un token per l'accesso all'orchestratore agentico di vte. Se l'orchestratore non si trova nel path standard plugins/agent il token va applicato manualmente nel file config.yaml.
Nuovo operatore di confronto nei Campi Condizionali
Aggiunto l'operatore non include.