18 Altre impostazioni di vtenext
- 18 Altre impostazioni di vtenext
- 18.2 Webforms
- 18.2.1 Webform con campi GDPR
- 18.3 Customer Portal
- 18.3.1 Come abilitare il Customer portal a un utente
- 18.3.2 Interfaccia del Customer Portal
- 18.3.3 Impostazioni modulo GDPR
- 18.4 Dettagli società
- 18.5 Impostazioni Server SoftPhone
- 18.6 LDAP
- 18.7 Valute
- 18.8 Calcolo delle tasse
- 18.9 Server Proxy
- 18.10 Internal REST Webservice Methods
18 Altre impostazioni di vtenext
E’ possibile definire ulteriori impostazioni all’interno di vtenext:
- Webforms
- Webform con campi GDPR
- Customer Portal
- Come abilitare il Customer portal a un utente
- Interfaccia del Customer Portal
- Impostazioni modulo GDPR
- Dettagli Società
- Server SoftPhone
- LDAP
- Valute
- Calcolo delle Tasse
- Server Proxy
- Internal REST Webservice Methods
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 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.
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:
- scegliere quali voci (moduli) devono essere attivi lato portale
- definire l’ordinamento delle voci
Nelle Impostazioni Avanzate è invece possibile definire:
la visibilità dei dati attraverso l’opzione Visualizza tutti i record.
- Si: il cliente visualizza sia i dati relazionati alla propria anagrafica contatto (ticket,documenti, ecc), sia i dati relazionati all’anagrafica azienda a cui è collegato
- No: il cliente visualizza solo i dati relazionati alla propria anagrafica contatto e non quelli relazionati all’azienda a cui è collegato.
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.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.
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.
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.4 Dettagli società
In Dettagli Società potete specificare i dati della vostra azienda.
Tali 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:
- Effettuare telefonate cliccando sui numeri di telefono direttamente da vtenext.
- 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.
- Visualizzare lo storico delle chiamate nel modulo PBX Manager Module (modulo Gestione Chiamate)
- Associare le telefonate con il Contatto/ Azienda/ Lead nello Storico Attività.
- Impostare le estensioni utente attraverso la scheda Preferenze utente.
- 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:
- vtenext installato sul sistema
- Asterisk installato sul sistema.
- Il server contenente Asterisk e quello contenente vtenext devono potersi vedere in rete.
- È necessario avere un’estensione utente di Asterisk valida e un telefono voip configurato con tale estensione.
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:
All’interno delle Preferenze utente, punto 6. Configurazione Asterisk, è possibile associare l’estensione (interno) per l’utente:
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:
In fase di creazione di un utente, una volta configurati i dati del server LDAP, è possibile ricercare l’utente:
Il collegamento con LDAP consente:
- la precompilazione di alcune informazioni dell’utente (nome, cognome, email)
- la sincronizzazione delle password di accesso dell’utente
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.
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 |
Una volta configurate la valute, è possibile:
- creare preventivi, ordini di vendita, fatture, ddt, ordini di acquisto con le nuove valute.
- associare a ogni utente, tramite scheda Preferenze, la valuta di default. Questa impostazione consentirà all’utente di visualizzare tutti i campi di tipo valuta (ad esempio il campo Fatturato in anagrafica Azienda) nella valuta scelta di default, secondo il tasso di conversione indicato nelle impostazioni.
18.8 Calcolo delle tasse
E’ possibile impostare le voci di tassa da utilizzare su Preventivi, Ordini, Fatture e Ddt.
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.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.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)
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'));