18 Other vtenext Settings

18 Other vtenext Settings

You can define further settings within vtenext:

18.1 Template email

As for the newsletter module, the admin user will be able to access the email template editor. An email template can be used for messages or newsletters and can be saved in either a public or private folder. Variables can also be added within the template.

image.png

18.2 Webforms

Through the vtenext Webforms tool it is possible to create a web form to embed in your website, for example the classic “Contact Us” form. The data entered in the webform will be automatically sent to the CRM into the selected destination module. Basically, you can create a Webform for almost all modules available in the CRM, including all custom modules created from Settings > Module Builder. The only modules excluded from this feature are those that contain the product block, such as Quotes, Sales Orders, Invoices, Purchase Orders, and DDTs.

WARNING: if you create a Webform for a module that contains mandatory related fields, those fields will prevent the form from submitting data. Therefore, those fields must be set as optional to allow the form to work properly.
For example, in the Contacts module the related field Account Name might be mandatory. This field must be set as “not mandatory” from Settings > Module Manager > Accounts > Layout Editor to ensure the form works correctly. If you still need that field to be mandatory, you can manage this through User Profile permissions instead.

image.png
Warning that allows you to see whether there are mandatory related fields to be checked

image.pngMain Webforms creation page

image.png
Creating a Webform – note the ability to choose from the various modules available in the CRM

It is also possible to enable the “Find Duplicates” function for the entries submitted through the related Webform. This function is directly linked to the saved mappings available in the duplicate management of the relevant module. For further information on this topic, see Chapter “3.5.5 Save Mapping.”

image.png
Find Duplicates during Webform submission

To create a new webform, from Settings > Webforms, click on the button  image.png

18.2 [1].png

Once you have created the form by selecting all the desired fields and determining which ones are mandatory, you can click on VIEW FORM at the top right to access a window that reveals the HTML code to copy and paste onto the desired website page (or landing page). This HTML code is not formatted and will need to be managed with CSS files by your webmaster.

ATTENTION: Any changes made to the web form fields in the CRM require that the HTML code be re-uploaded to the site.

HOW TO RECEIVE NOTIFICATIONS UPON RECEIVING NEW LEADS.

During the form creation process, it is necessary to choose the LEAD SOURCE field and determine the desired default source (e.g., WebSite). This field should be set as hidden. This way, you can create a filter in the lead module that filters leads coming from the WebSite source and set up the notification bell on that filter.

At this point, every time someone fills out the form on the site, a new lead will be automatically created and the CRM will notify you with a notification.

18.2.1 Webform with GDPR fields

GDPR fields have been enabled inside the webforms from version 18.12 onwards. For example, you can request Marketing Consent, Third-Party Consent, Profiling Consent, etc., and save the choice made with IP and date-time in the lead data sheet.

Here are the configuration details:
The GDPR fields are grouped in blocks of three (view, date-time, IP).
It is therefore necessary to set the information view fields as mandatory, to display the field in the webform as a picklist (YES/NO) and then force the user to make a choice. The date and IP fields must be hidden fields (so set the hidden flag to yes in the webform configuration).
The following must be entered as default value in the date field:

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

The following must be entered as default value in the IP field

$(general : (__VteMeta__) clientip”.

By doing so, the setting of the consent + date-time and IP of the request is obtained in the GDPR block.

18.2.1 [1].PNG

Assigned to

Lead Recipient

Return Url

When the webform confirmation button is pressed, the user will be redirected to the address indicated here (for example, the thank you page)

Once the webform has been created, click on the "Show Form" button to display the HTML code to be included inside your web page.

18.3 Customer Portal - Business Portal

It's possible to configure the functions of your customer portal through the 'Customer Portal' section within the settings.

In updated versions of vtenext (i.e., when transitioning from an old release to the current one), you will be able to choose via a dropdown menu which version of the portal to make available for your customers.

image-1702294773155.png

However, for new installations there won't be a choice, and you can only use the new Portal (Version 2).

CUSTOMER PORTAL VERSION 1

In Basic Settings, you can:

1. choose which items (modules) should be active on the portal side;
2. define the order of the items;

In Advanced Settings, you can further define:
the visibility of data through the option to View all records.

18.3 [1].png

Through the Select user option (a disabled user can also be chosen), it is possible to select a CRM user, also disabled, with a specific configuration of entries for the standard fields. The portal will display precisely those items in the available drop-down menus. When a Ticket is created by the Client Portal, it is assigned to this user. It is possible, however, to assign the Ticket to another CRM user. The assignee will receive an immediate email notification. This function is very useful for the management of active Tickets.

18.3 [2].png

Through the Select the email template option you can decide which email template the system should use to communicate portal access information.

CUSTOMER PORTAL VERSION 2 (some functions are paid)

The new version of the Customer Portal provides an entirely new experience for the accessing customer. It allows configuring interface views through the creation of dedicated Profiles, directly assigning them to individual Contacts from the CUSTOMER PORTAL INFORMATION section.

image.png

Now let's see how from the Customer Portal Settings, it's possible to create new Profiles (this feature requires a fee). By selecting Version 2 of the Portal (where this option is applicable), the new profiles configuration or management page will appear.

image.png

By default, only the profile named DEFAULT is available, allowing users to start with a basic configuration. Many modules are deactivated by default in this profile. To activate all the desired modules, it is necessary to upgrade to the Business Portal version (sold separately). Let’s see how to create a custom profile.

By clicking on NEW PROFILE on the right side, you will access the creation page as shown in the following image:

image.png

The page resembles the one for creating standard user profiles, so you should essentially follow the same process – choose a name, a description, and select which profile to start from for the new configuration. Finally, click on NEXT at the bottom right.

Click this button to be redirected to the support ticket list.

image.png

On this page, you can configure several functions, which we'll summarize in the following table:

Owner

You can select the CRM user to whom all records created from the portal will be directly assigned;





Notifications

It offers the possibility to select email templates, which can be customized through creation or modification using the dedicated EMAIL TEMPLATE section in SETTINGS, for exchanging information with the portal user. The options are:

 

  • Template used for the portal registration email;
  • Template used for the successful password change email;
  • Template used for the password recovery email;
  • Template used to notify the customer about the creation of a ticket;
  • Template used to notify the customer about the ticket response;
  • SMTP account for sending credentials (Default/Global)*;
  • Sender mail;
  • Sender name

Default/Global*
Default:
If the user has a configured account in the Messages module, the system will use the server associated with it. If no account is configured, the system will use the server specified under Settings -> Mail Server.

Global: The system will exclusively use the server configured under Settings -> Mail Server.

Home

It allows configuring buttons for quick actions on the portal home page.

By clicking on ADD BUTTON on the right, you can enable a window from which to set:

 

  • Button Title
  • Button Description
  • Button color
  • Icon representing the button's function
  • Action that allows choosing to link a module or trigger the creation of a record in a specific module

image.png


Button Creation Screen

image.png


Button List Viewing Screen

 

The order of the buttons can be changed through drag-and-drop.

Conditionals

It is possible to set up conditional fields for the Customer Portal, so that they work exactly like in the vte interface. When they are activated, the conditions will function properly on the portal as well. There are three ways to configure them:

  • Import from another portal profile
  • Import from roles and groups
  • Create a new rule directly on the portal (Add button)

image.png


image.png

By clicking on Import from another portal profile, a popup will open, allowing you to select other existing profiles. Once you've selected the desired profile, you can click Import at the bottom right of the window to complete the process.

image.png

By clicking on Import from roles and groups, a popup will open, allowing you to select predefined rules for the CRM directly in the Conditional Fields section. For more details on this topic, refer to Chapter 17.4 Conditional Fields.

image.png

By clicking on Add, you can create a new rule for the portal's conditional fields, exclusive to the portal itself (it will not reflect in the CRM). The configuration follows the standard process explained in Chapter 17.4. In the example shown in the image below, you can see a rule where the company's profile becomes entirely read-only when the Status field takes the value Blocked.

image.png

Global Privileges

It offers the possibility to configure all privileges for each individual user profile, determining what they can or cannot do or see through the customer portal. You can apply these settings to all modules of vtenext.

WARNING: One particularity to note is that it is not possible to CREATE company records from the Business Portal. Therefore, even if the profile allows enabling the CREATE/EDIT flag, this function is actually disabled.

FIELDS NOT DISPLAYED IN LIST: a field that is set as not visible to the portal user through profile configuration cannot be added to the list fields. In fact, even if it can be selected during the configuration of the portal list view (for example, for Customer Support Tickets), when saving, that field is automatically removed (due to the profile configuration).

Note on Custom Modules Created via Interface

When creating a custom module, in order for it to be added to the list of those supported by the Business Portal—and thus appear in the portal profile management—it must have at least one relationship linking it to either the Contacts module or the Companies module.
This requirement has been added because permissions in the Business Portal are based on this type of relationship; if such a relationship is not present, the module will not be visible in the portal profile permissions.


Unlocking a portal user

Just like CRM users, a portal user gets locked after five failed login attempts for security reasons. It is possible to unlock them through the settings in vtenext, by navigating to the Check Business Portal login section. On this page, you can view all blocked users and add them back to the whitelist, exactly as you would with a standard user.

image.png


18.3.1 Enabling the customer portal for a user

Only contacts present in vtenext can be enabled for the Customer Portal. Within the individual contact record, it's necessary to check the checkbox in the PORTAL USER section and input a start support date and an end date.

Upon enabling the checkbox, the system autonomously sends a message to the email address provided in the contact's email field, containing the credentials to access the Customer Portal. The specified dates determine the actual access period.

image.pngAdditionally, it will be necessary to choose the Profile that the specific Portal User will have for their usage and viewing. The Profile determines how each portal user sees their data and how they can interact with the available modules.

image.png


18.3.2 Customer Portal Interface

INTERFACE VERSION 1

Once they have entered their login details, your customer can first enter a new request for assistance and then access the entities that you have related to his contact card (only enabled modules) from the menu items on the left. Support requests by default provide for an email to be sent to the contact's email address, with the summary and ID of the ticket. Any subsequent comments will always be notified by email. Once you have dealt with the contact request, you can close the ticket (if satisfied with the result).

Customer_Portal_Login.png

Customer_Portal_Detail.png

INTERFACE VERSION 2

Based on the configurations made in Chapter 18.3 and 18.3.1, the Customer Portal can appear differently for each user who uses it. This is determined by the profile assigned to that specific user. The portal language will be automatically selected based on the default language set in the browser.

ATTENTION: the v2 portal is responsive.

Sign in - Customer Portal.png

This image represents the Login page for the Customer Portal.

Home - Customer Portal.png

Upon the first access, the Customer Portal prompts you to change the password, so you can immediately set a different one from the system-generated default password.

Home - Customer Portal (1).png

Here's how the portal interface looks once you've logged in:

Ticket details - Customer Portal.png

Here's the interface for viewing an existing ticket. Notice the 'RETURN TO LIST' button on the left, which allows you to go back to the list view of all the customer's reports. The comments section has been placed at the top for easy access, while the area for uploading new Documents is located on the right, with the option to drag and drop them. Using the 'OK RESOLVED' button, the portal user can autonomously close the ticket. This type of display is repeated for other modules as well, with different field types

Ticket details - Customer Portal (1).png

Here's how the Comments section looks. In the center, you have the back-and-forth communication between the Portal User and Customer Support. In the top-right corner, the small blue background number (3) represents the number of Comments

In this screen, you can see the list of all the tickets in the Portal. With this view, you can search based on any of the displayed fields, matching multiple columns together, or perform a general search using the box in the top-right corner. This display pattern is repeated for other modules, with field types changing accordingly

18.3.3 GDPR module settings

For privacy management, you can customise certain configurations, the templates proposed for communication through GDPR campaigns and the privacy policy of your company through the different features of the GDPR module.

image.png

18.3.3 [2].png

WEBSERVICE

Webservice endpoint

 

Webservice username

 

Default language


Default logo


Sender name


Sender email


Number of waiting months for confirm


TEMPLATE

Support request Template


Access Template


Confirm update template


Contact updated template


PRIVACY POLICY

Description

 

18.4 Account Details

In Company Details you can specify the details of your company.

image.png

This information can then be retrieved within the PDF Maker templates or Email or Newsletter for invoices, quotes, orders, etc. Make sure that the size of your company logo fits in the space available for it.

N.B.: The recommended size is 150x60 pixels. The logo must be uploaded in .png or .jpg format.

18.4.1 Logos and Backgrounds

In Settings, you will also find the section for 'Logos,' which allows us to change both the logos for the Access and Login pages, including their backgrounds, as well as the logo within the CRM, located at the top left.

As soon as you access this area, you will be able to:

image-1692885355681.png

Change the Login Page Logo, recommended dimensions are 200 x 77 pixels.

image-1692885330968.png

Change the Logo (LIGHT THEME) within the CRM when the left menu is in collapsed mode, recommended dimensions are 32 x 32 pixels.

image-1692885385920.png

Change the Logo (DARK THEME) within the CRM when the left menu is in collapsed mode, recommended dimensions are 32 x 32 pixels.

image-1692885428667.png

Change the Logo (LIGHT THEME) within the CRM when the left menu is in expanded mode, recommended dimensions are 129 x 50 pixels.

image-1692885531210.png

Change the Login Page Logo for the Customer Portal, recommended dimensions are 200 x 77 pixels.

image-1692885565191.png

Change the Logo within the Customer Portal, when the left menu is in collapsed mode, recommended dimensions are
32 x 32 pixels.

image-1692885599156.png

Change the Logo within the Customer Portal, when the left menu is in expanded mode, recommended dimensions are
129 x 50 pixels.

18.4.1 Logos and Backgrounds_final picture.png

Furthermore, you can choose a background image for the Login Page, either from the system-provided options or uploaded directly by the admin user. Recommended size is 1920 x 1200 pixels. Changing the order of the image sequence can be done simply by dragging and dropping.

 

For the Login Page backgrounds, you can choose the background selection mode, which can be:

image-1692885975572.png

 

 

 

 

 

 

 

 

18.5 Server SoftPhone Settings

vtenext can be integrated with Asterisk, an open source telephone PBX application that allows you to route phone calls. Asterisk is a free implementation of PBX software that offers the same features as other proprietary systems at a much lower cost and with greater flexibility.
Today it is a benchmark within the sector; the full range of its contents and its reliability make it an ideal platform for a wide range of applications: it is used as a supporting element to create RTG/IP switchboards (PBXs able to use both traditional telephone lines and IP channels), Centrex systems (Virtual and centralised PBXs), Call Centre management applications and more.

Features and objectives:

  1. Make phone calls by clicking on phone numbers directly from vtenext.
  2. Receive notifications within vtenext with caller information when a call comes to the user. Notifications appear in the lower right corner of the screen.
  3. View call history in the PBX Manager Module (Call Manager Module)
  4. Associate the phone calls with the Contact/Account/Lead in the Activity History.
  5. Set user extensions through the User Preferences data sheet.
  6. Phone numbers format: you can save the number in vtenext in any format, with or without prefixes and also with SIP and PSTN if you use the character, to separate this prefix from the number itself.

Note: We do not recommend using special characters or hyphens in the phone/cell phone field.


Requirements and configuration:

When the Asterisk server is configured to function with vtenext, you must configure the vtenext settings to connect to Asterisk.

To enter Asterisk server settings, choose SoftPhone Server Settings:

image.png

Within User Preferences, point 6. Asterisk Configuration, you can associate the extension (internal) for the user:

image.pngReceive Incoming Calls enables caller recognition for incoming calls. Once the incoming call has been answered, this option makes it possible to display a pop-up on the CRM screen, which appears at the bottom right with the caller's name and the link to access the details.
If the caller's number is not present in vtenext, the popup proposes the creation of a lead, a contact or an account.

Warning! SoftPhone Server Settings is only available in “on-premise” vtenext solutions.

Warning! In order for caller recognition to be active, it is also necessary to activate the relevant CRON on the vtenext installation server. See CRONJOB – Processes to be planned chapter.

18.6 LDAP

WARNING: This feature has been added to the Single Sign-On configuration (refer to Chapter 18.11).

You can configure the LDAP server data in vtenext to synchronise user passwords. Note that when the LDAP authentication method is used, the password is entirely managed by LDAP, and therefore the standard password field of the vtenext user is hidden because it is not used.

For configuration from Settings, choose LDAP Server. Then fill in the LDAP server information as shown in the figure:

18.6 [1].png

When creating a user, you can search for the user once you have configured the LDAP server data:
The connection with LDAP allows:

18.6 [2].png

18.7 Currencies

It is possible to manage different types of currencies in the event there are users who have to draw up offers in a currency different from the one proposed by default by the system (Euro).
From Settings > Currencies you can view the currencies configured in the system and add new ones.

image.png

The following information is required to create a new currency:

Currency Name

The name of the currency you want to manage, for example "USA, Dollars (USD)"

Conversion Rate

The conversion rate must always be linked to the base currency of vtenext

Status

Active/Inactive

image.png

Once you have configured the currency, you can:

18.8 Tax Calculation

You can set the tax items to be used on Quotes, Orders, Invoices and Delivery Notes.

image.png

Negative tax values can also be managed, for example for the management of ENASARCO or withholding tax.

The calculation of taxes in Quotes, Orders, Invoices and Delivery Notes can be calculated per line or per group, depending on the setting chosen by the user when creating the document:

image.png


18.9 Proxy Server

If your company is using a proxy server to access the Internet, you can use the Proxy Server Settings menu, as shown in the figure.

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;
	}

    # Business Portal

    location /portal/v2 {
        rewrite ^\/portal\/v2\/(?!public)(.*)$ /portal/v2/public/$1;
    }
	
	# 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'));

18.11 Single Sign-On

Single Sign-On (SSO) is an authentication mechanism that allows users to access multiple applications or services with a single set of login credentials (e.g., one username and password). Instead of authenticating separately for each service, the user logs in once and can then seamlessly access all applications that are part of the same ecosystem or trusted domain. This functionality is available starting from vtenext 24.08.2

By navigating to Settings > Single Sign-On Configuration, you can view a series of preconfigured external providers (currently, no new providers can be added via the interface). These providers allow access to vtenext through the authentication configured for each of them.

image.png

Single Sign-On Configuration Screen

vtenext provides the following Single Sign-On (SSO) providers:

LDAP

Configure the server to access via LDAP (LDAP configuration has been moved here)


image.png

OAuth 2.0

Login via OAuth 2.0


image.png

OpenID Connect

Login via OpenID Connect


image.png

SAML Login via SAML 2.0 Protocol
Microsoft Azure - OIDC

Login via an Azure App with OpenID Connect


image.png

For information on how to create the app in Azure, please refer to the specific guide

Microsoft Azure - SAML

Login via an Azure App with SAML

For information on how to create the app in Azure, please refer to the specific guide

Google - OIDC

Login via Google with OpenID Connect


image.png

For all users, except the ADMIN user (this does not refer to users created after the admin and set as administrators, but only the superuser), it will be possible to select which type of authentication to use. In the dropdown list, only the configured and active authentications can be selected:

User preferences with the option to choose the Single Sign-On.

How the Login Screen Changes

image.png

We can notice that the login screen no longer includes the password field, as it will call the external authentication system that was previously configured (e.g., Google or Facebook). Once the login is completed in the external system, the user will return to vtenext already authenticated, or the password field will be activated to manually enter the password and log in.

image.png

Single Sign-On also on Wilson

Naturally, as soon as Single Sign-On is activated for a user, it also reflects on Wilson. The password field, in this case, is always disabled, and the system will always redirect to the chosen app for authentication, then return authenticated to Wilson.

image.png