18 Altre impostazioni di vtenext

18 Altre impostazioni di vtenext

E’ possibile definire ulteriori impostazioni all’interno di vtenext:

18.2 Webforms

Attraverso lo strumento Webforms di vtenext è possibile creare un form web da inserire all’interno del proprio sito, per esempio il classico form “contattaci”. I dati inseriti nel webform saranno automaticamente inviati al CRM nel modulo Leads.

Per creare un nuovo webform, da Impostazioni > Webform cliccare sul pulsante

18.2 [1].png

18.2.1 Webform con campi GDPR

All’interno dei webform, dalla versione 18.12 in poi, sono stati abilitati i campi GDPR. Ad esempio è possibile richiedere il consenso Marketing, il Consenso terze parti, il Consenso Profilazione, etc e salvare all’interno della scheda del lead la scelta effettuata con IP e data-ora.

Di seguito i dettagli della configurazione:

i campi gdpr sono raggruppati in blocchi da tre (visione, data-ora, IP).

Pertanto, occorre settare i campi visione informativa come obbligatori, per visualizzare il campo nel webform come picklist (SI/NO) e costringere quindi l’utente ad una scelta. I campi data e IP dovranno essere campi nascosti (quindi settare il flag nascosto a si nella configurazione del webform).

Nel campo data come valore di default dovrà essere inserito

“$(general : (__VteMeta__) date_Y_m_d) $(general : (__VteMeta__) time”

Nel campo IP come valore di default dovrà essere inserito

“$(general : (__VteMeta__) clientip”.

Così facendo, si ottiene nel blocco del gdpr il settaggio del consenso + data-ora e IP della richiesta.

18.2.1 [1].PNG

Assegnato a

Assegnatario del Lead

 

URL di ritorno

Alla pressione del pulsante di conferma del webform, l’utente verrà reindirizzato all’indirizzo qui indicato (ad. Esempio la pagina di ringraziamento)

Una volta creato il webform, clicca sul pulsante “Visualizza Form” per visualizzare il codice html da includere all’interno della propria pagina web.

18.3 Customer Portal

E’ possibile configurare le funzioni del proprio portale clienti attraverso la voce Customer Portal.

Nelle Impostazioni di Base è possibile:

  1. scegliere quali voci (moduli) devono essere attivi lato portale
  2. definire l’ordinamento delle voci

Nelle Impostazioni Avanzate è invece possibile definire:
la visibilità dei dati attraverso l’opzione Visualizza tutti i record.

18.3 [1].png

Attraverso l’opzione Seleziona l’utente (può essere scelto anche un utente disattivo) è possibile selezionare un utente del crm, anche disattivo, con una configurazione specifica di voci per i campi standard. Il portale visualizzerà esattamente quelle voci nei menu a tendina disponibili. Quando un Ticket viene creato dal Portale Clienti, viene assegnato a questo utente. E’ possibile, comunque, assegnare il Ticket ad un altro utente CRM. L’utente assegnatario riceverà un’immediata email di notifica. Questa funzione risulta molto utile per la gestione dei Ticket attivi.

Attraverso l’opzione Seleziona il template email è possibile decidere quale template email deve utilizzare il sistema per comunicare i dati di accesso al portale.

18.3 [2].png

18.3.1 Come abilitare il Customer portal a un utente

Possono essere abilitati al vostro Customer portal solamente i contatti presenti nel vostro vte. All’interno della singola scheda contatto flaggare il box di controllo presente nel blocco UTENTE PORTALE ed inserire una data di inizio supporto e una di fine.

All’abilitazione del flag, il sistema manda in autonomia un messaggio all’indirizzo indicato nel campo email con le credenziali per accedere al vostro portale. Le date invece determinano l’effettivo periodo di accesso che permettete al vostro cliente.

image-1689086041206.png

18.3.2 Interfaccia del Customer Portal


Una volta inserite le proprie credenziali di accesso, il vostro cliente potrà innanzitutto inserire una nuova richiesta di assistenza e poi potrà accedere dalle voci del menù a sinistra, alle entità che avrete relazionato alla sua scheda contatto (solo dei moduli abilitati). Le richieste di assistenza prevedo di default un invio di una mail all’indirizzo del contatto, con il riepilogo e l’id identificativo del ticket. Ogni commento successivo verrà sempre notificato via email. Una volta gestita la richiesta del contatto, potrà (se soddisfatto del risultato) chiudere il ticket.


customer_portal_login.png


 

customer_portal_home.png

18.3.3 Impostazioni modulo GDPR

Per la gestione della privacy, tramite le funzionalità del modulo GDPR, possono essere personalizzate determinate configurazioni, i template proposti per la comunicazione tramite campagne GDPR e l’informativa privacy della vostra azienda.

18.3.3 [1].png

 

18.3.3 [2].png

18.4 Dettagli società

In Dettagli Società potete specificare i dati della vostra azienda.

18.4 [1].pngTali informazioni possono poi essere richiamate all’interno dei template PDFMaker o Email o Newsletter perfatture, preventivi, ordini, ecc. Assicuratevi che la dimensione del logo della vostra azienda rientri nello spazio disponibile per essi.

N.B.: La dimensione raccomandata è di 150x60 pixel. Il logo deve essere caricato in formato .png o .jpg.

18.5 Impostazioni Server SoftPhone

vtenext è integrabile con Asterisk, un’applicazione PBX telefonica open source che permette di veicolare le telefonate. Asterisk è un’implementazione libera di un software PBX che offre le stesse funzioni di altri sistemi proprietari con una spesa decisamente inferiore e una maggiore flessibilità.

Oggi è un punto di riferimento nel settore, la completezza dei suoi contenuti e la sua affidabilità lo rendono una piattaforma ideale per una vasta gamma di applicazioni: è utilizzato come elemento portante per realizzare mediatori RTG/IP (centralini in grado cioè di utilizzare sia le linee telefoniche tradizionali sia i canali IP), sistemi Centrex (PBX “Virtuali” e centralizzati), applicazioni per la gestione di Call Center ed altro ancora.

Caratteristiche e obiettivi:

  1. Effettuare telefonate cliccando sui numeri di telefono direttamente da vtenext.
  2. Ricevere notifiche all’interno di vtenext con le informazioni sul chiamante quando una telefonata arriva all’utente. Le notifiche appaiono nell’angolo in basso a destra dello schermo.
  3. Visualizzare lo storico delle chiamate nel modulo PBX Manager Module (modulo Gestione Chiamate)
  4. Associare le telefonate con il Contatto/ Azienda/ Lead nello Storico Attività.
  5. Impostare le estensioni utente attraverso la scheda Preferenze utente.
  6. Formato numeri di telefono: è possibile salvare il numero in vtenext in ogni formato, con o senza prefissi e anche con prefissi tipo SIP, PSTN se si usa il carattere: per separare tale prefisso dal numero stesso.

Note: Si raccomanda di non usare caratteri speciali o trattini nel campo telefono/cellulare.


Requisiti e configurazione:

Quando il server di Asterisk è configurato per funzionare con vtenext, dovete configurare le impostazioni di vtenext affinché si possa connettere ad Asterisk.

Per inserire le impostazioni del server Asterisk, da scegliere Impostazioni Server SoftPhone:

18.5 [1].png

All’interno delle Preferenze utente, punto 6. Configurazione Asterisk, è possibile associare l’estensione (interno) per l’utente:

18.5 [2].png

Receive Incoming Calls abilita il riconoscimento del chiamante per le chiamate in ingresso. Questa opzione permette, una volta risposto alla chiamata in ingresso, di visualizzare a video sulla schermata del CRM un pop-up, che compare in basso a destra, con indicazione del chiamante e il link per accedere all’anagrafica di dettaglio.

Se il numero del chiamante non è presente in vtenext, nel popup viene proposta la creazione di un lead, di un contatto o di un’azienda.

Attenzione! Impostazioni Server SoftPhone è disponibile soltanto nelle soluzioni on premise di vtenext.

Attenzione! Affinché il riconoscimento del chiamante sia attivo, è inoltre necessario attivare il relativo CRON sul server di installazione di vtenext. Si veda a tal proposito il capitolo CRONJOB – Processi da pianificare.

18.6 LDAP

E’ possibile configurare i dati del server LDAP in vtenext per la sincronizzazione delle password utente.

Per la configurazione da Impostazioni scegliere Server LDAP. Compilare quindi le informazioni del server LDAP come da indicazioni di figura:

18.6 [1].png

In fase di creazione di un utente, una volta configurati i dati del server LDAP, è possibile ricercare l’utente:

18.6 [2].png

Il collegamento con LDAP consente:

18.7 Valute

E’ possibile gestire diversi tipi di valute nel caso vi siano utenti che devono redigere offerte con una valuta diversa da quella proposta per default dal sistema (Euro).
Da Impostazioni > Valute è possibile visualizzare le valute configurate nel sistema e aggiungerne nuove.

18.7 [1].png

Per creare una nuova valuta sono richieste le seguenti informazioni:

Nome della Valuta

il nome della valuta che si vuole gestire, per esempio “USA, Dollars (USD)”.

Tasso Conversione

Il tasso di conversione deve essere sempre collegato alla valuta base di vtenext

Stato

Attivo/Inattivo

 

18.7 [2].png

Una volta configurate la valute, è possibile:

18.8 Calcolo delle tasse

E’ possibile impostare le voci di tassa da utilizzare su Preventivi, Ordini, Fatture e Ddt.

18.8 [1].png

Si possono gestire anche dei valori di tassa negativi, ad esempio per la gestione dell’Enasarco o della ritenuta d’acconto.
Il calcolo delle tasse in Preventivi, Ordini, Fatture e Ddt può essere calcolato per riga oppure per gruppo, a seconda dell’impostazione scelta dall’utente in fase di creazione del documento:

18.8 [2].PNG

18.9 Server Proxy

Se la vostra azienda sta usando un server proxy per accedere ad Internet, potrete usare il menù Impostazioni del Server Proxy, come mostrato nella figura.

18.9 [1].png

18.10 Internal REST Webservice Methods

These Web services allow you to do HTTP requests to the specified endpoints (VTE_URL/restapi/v1/vtews/METHOD_NAME).

The requests need POST method, basic authentication (you must set ‘Authentication basic’ into the header which is calculated through a function based on username* and password*) and their relative parameters.
Each one method will give a JSON response with a status and the data or in case of error an error code and its relative message.

Notes:
• The “id” parameter is always specified as ‘moduleid* x recordid’ (ex: 2x313) moduleid*: You can get the the moduleid from webservice ‘describe’ method (idPrefix)

Headers:
• Authorization: Basic base64_encode("username*:password*")
• Content-Type : application/json

username* (VTE) password* (User preferences’ Webservice Access Key)

Authorization Example:
‘Basic ZmVkZXJpY28ucGVybGluOjB5cm5MRjNhS2RhMDZ2c3E=‘


Requirements for Apache2:
• Activate apache rewrite module
• Set AllowOverride All into the virtualhost file to the vte path folder.
Example:

<Directory /var/www/html/VTE_FOLDER>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

Requirements for Nginx + PHP FPM

As Nginx does not handle htaccess file, some special rewrites are needed in order to handle WS requests.
Below an example of nginx conf file:

server {
	listen 80;

	root /var/www/vtenext/;
	
	autoindex off;
	
	index index.php index.html index.htm;

	# Make site accessible from http://localhost/
	
	server_name localhost;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to index.html
		try_files $uri $uri/ index.html;
	}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	location ~ [^/]\.php(/|$) {
		include snippets/fastcgi-php.conf;
		
		# With php cgi alone:
		#fastcgi_pass 127.0.0.1:9000;
		
		# With php fpm:
		fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	location ~ /\.ht {
		deny all;
	}
	
	# special folder handling, since .htaccess files are not supported
	
	# REST API
	
	location /restapi/v1 {
		rewrite ^(.+)/vtews/(.*)$ /restapi/v1/index.php/vtews/$2;
	}
	
	# STORAGE
	
	location /storage {
		deny all;
		
		location /storage/uploads_emails_ {
			allow all;
		}
		
		location /storage/images_uploaded/ {
			allow all;
		}
		
		location ~* /storage/logo/.+\.(jpg|jpeg|png|gif)$ {
			allow all;
		}
		
		rewrite ^/storage/(.*)$ /getStorage.php?file=$1;
	}
	
	# PROTECTED FOLDERS
	
	location /logs {
		deny all;
	}
	
	location /plugins/dataimporter {
		deny all;
	}
	
	location /cache/sys {
		deny all;
	}
	
	location /cache/pdfmaker {
		deny all;
	}
	
	location /cache/import {
		deny all;
	}
	
	location /cache/session {
		deny all;
	}
	
	location /cache/pdf {
		deny all;
	}
	
	location /dataimport {
		deny all;
	}
	
	location /modules/VteSync/VteSyncLib/storage {
		deny all;
	}
	
	location /modules/Messages/src/attachment_tnef/plugins/attachment_tnef/class/ {
		deny all;
	}
	
	# SMARTOPTIMIZER
	
	# disabled by default, enable it if needed
	#location ~* \.(gif|jpe?g|png|swf|css|js|html?|xml|txt|ico)$ {
	#	rewrite ^(.*)$ /smartoptimizer/?$1;
	#}
}

Web Service Methods:

Name Description Parameters Response
create Create a record of the specified module elementType (String)element (Encoded) Return all fields and values of the created record
Ex:Url: VTE_URL/restapi/v1/vtews/createParameters:
{"elementType":"Accounts", "element":"{\"accountname\":\"account1\", \"assigned_user_id\":\"19x1\"}"}
update Update the specified record id (String)columns (Encoded) Return all fields and values of the updated record
Ex:Url: VTE_URL/restapi/v1/vtews/updateParameters:
{"id":"3x310", "columns":"{\"accountname\":\"test fede postman\"}"}
revise Update the specified record. It’s different only for parameters, the result is the same element (Encoded) Return all fields and updated values
Ex:Url: VTE_URL//restapi/v1/vtews/reviseParameters: {"element":"{\"id\":\"3x27\",\"employees\":\"5\",\"industry\":\"Banking\"}"}
retrieve Illustrate the fields of the specified record and their relative values id (String) Return all fields and values of the specified record
Ex:Url: VTE_URL/restapi/v1/vtews/retrieveParameters:
{"id":"3x310"}
retrieveinventory Illustrate the fields of the specified inventory record, their relative values and the product block’s information id (String) Return all fields and values of the specified record and product’s block information
Ex:Url: VTE_URL//restapi/v1/vtews/retrieveinventoryParameters: {"id":"16x104"}
delete Delete the specified record id (String) Return the request status (successful or not)
Ex:Url: VTE_URL//restapi/v1/vtews/deleteParameters:
{"id":"3x306"}
query Execute a query and return the result’s rows query (String) Return all rows of the executed query
Ex:Url: VTE_URL//restapi/v1/vtews/queryParameters: {"query":"SELECT * FROM Accounts WHERE accountname like '%vte%';"}
listtypes Describe each one module which contains uitype of the specified format fieldTypeList (Encoded) Return module information of the specified fieldtypes
Ex:Url: VTE_URL//restapi/v1/vtews/listtypesParameters:{"fieldTypeList":"[\"integer\",\"file\"]"}
describe Describe the specified module and their relative fields elementType (String) Return all module information and its fields properties(no hidden fields)
Ex:Url: VTE_URL//restapi/v1/vtews/describeParameters: {"elementType":"Accounts"}
describeall The describeall method is different from describe one because it shows hidden fields too ElementType (Encoded) Return all module information and its fields properties(hidden fields too)
Ex:Url: VTE_URL//restapi/v1/vtews/describeallParameters: {"elementType":"Accounts"}
getlabels Return all labels and translated ones of the specified module,language username (String)language (String)module (String) Return labels and translated ones of the specified module, language
Ex:Url: VTE_URL//restapi/v1/vtews/getlabelsParameters: {"username":"admin", "language":"it_it", "module":"Accounts"}
getlangs Return all languages installed into the CRM   Return all CRM languages
loginpwd Return user webservice access key if username and password are valid username (String)password (String) Return user webservice access key

Ex:Url: VTE_URL//restapi/v1/vtews/loginpwdParameters: {"username":"admin","password":"123456789"}
getmenulist Return all modules information (visibility, tabid, name, sequence, ...)   Return modules information and properties
oldoquery Return records that contain the searched value into specified module’s fields module (String)search_fields (Encoded)search_value (String) Return some record basic information where searched value is contained into the specified module’s fields
Ex:Url: VTE_URL//restapi/v1/vtews/oldoqueryParameters: {"module":"Accounts", "search_fields":"[\"accountname\", \"website\"]", "search_value":"vtenext"}


Is possibile to register a new custom method with this SDK call:

SDK::setRestOperation($rest_name, $handler_path, $function_name, $parameters);

$rest_name: method name called by REST webservice
$handler_path: file path where the funtion is defined
$function_name: defined function name
$parameters: associative array with parameterName and parameterType

Example

SDK::setRestOperation('check_exists','modules/SDK/examples/RestApi/CustomRestApi.php','vtws_check_exists', array('id'=>'string'));