# Business Process Manager Manual

# BPMN Introduction

# 1.1 Why automate a business process? Advantages and Objectives

#### <span style="color: rgb(0, 51, 102);">**WHAT ARE THE ADVANTAGES?**</span>

The main motivations and benefits can be summarized as follows:

<span style="color: rgb(0, 51, 102);">**Saving time**</span>  
By delegating the execution of internal business processes to the system, people are given the opportunity to focus on other activities—sometimes freeing themselves from daily "headaches."

<span style="color: rgb(0, 51, 102);">**Minimizing costs and errors**</span>  
Human errors, misunderstandings, and oversights always result in additional costs. Minimizing them is a challenge every company must face.

<span style="color: rgb(0, 51, 102);">**Optimizing communication**</span>  
Endless flows of emails and phone calls between departments are not the most efficient way to organize and manage work, especially when completing a process requires the involvement of different teams at different stages.

In an automated process, each person is guided by system notifications that indicate what needs to be done and when. Moreover, all operations, requests, and changes are recorded and traceable, minimizing the risk of lost information.

<span style="color: rgb(0, 51, 102);">**Reinforcing awareness of roles and responsibilities**</span>  
For the workflow to be correctly managed through the software, every team member, in every department, must clearly understand their tasks and responsibilities. This requires a clear definition of hierarchies and interdepartmental relationships, and most importantly, a clear indication of who assigns tasks, provides input, and approves or rejects outputs.

<span style="color: rgb(0, 51, 102);">**Keeping everything under control**</span>  
Managing workflows in an automated way not only allows you to know the status of each activity at any given time but also to maintain an overview of the entire situation. Automating monitoring means fewer meetings and a significant time saving.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/ZNJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/ZNJimage.png)

#### <span style="color: rgb(0, 51, 102);">**WHAT ARE THE OBJECTIVES OF BPMN?**</span>

The main objectives can be summarized as follows:

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/image.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/image.png)The ability to identify so-called “bottlenecks,” which often cause damage by reducing overall productivity.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/nHmimage.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/nHmimage.png)The ability to monitor the operational flow of business procedures, helping to avoid stumbling over even the most complex scenarios.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/zyeimage.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/zyeimage.png)Improving the exchange of information to facilitate data management at a structural level.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/1Gnimage.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/1Gnimage.png)Having a unified “blueprint” of processes so that all business workflows can be executed and managed consistently.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/vmuimage.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/vmuimage.png)Effectively integrating people and activities by using tools that are accessible to all types of business roles—not just technical ones.

# 1.2 Process Manager Section: General Description and List of Features

##### **GENERAL DESCRIPTION**

This section allows you to modify, create, import, and export BPMN processes.  
It is composed of the following columns:

- **Name** → represents the name of the process
- **Description** → represents the description of the process
- **Sub-processes** → indicates the list of any sub-processes linked to the current process
- **CRM Module** → indicates the name of the *main* CRM module involved in the process, which forms the basis for the initial (starting) conditions of the process
- **Active** → indicates whether the process is active (yes) or inactive (no)
    
    [![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Z2kimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Z2kimage.png)

**Accessing the Process Manager Section with the “Next” Theme**

To access the Process Manager section with the “Next” theme enabled, follow these steps:

1\) Click on the profile icon, then select “Settings”

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/sufimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/sufimage.png)

2\) In the left-hand menu, click on the “Business Process Manager” section, then select “Process Manager”

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/uDrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/uDrimage.png)

**LIST OF FEATURES**

Below is the list of main features:

- Delete process
- Export BPMN process
- Export VTE BPMN process
- Import VTE BPMN into an existing process
- Create process
- Import a new process from scratch

**Delete Process**  
By clicking the button shown in the image, you can delete the selected process.

WARNING!: Deleting a process using the X button in the Process Manager section permanently deletes the process from all related tables in the DB.  
Therefore, it is important to proceed with caution when using this function, as once deleted, there will be no way to restore the process and all pending instances associated with the affected records.

[![eliminazione_processo.png](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/eliminazione-processo.png)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/eliminazione-processo.png)

**Export BPMN Process**  
By clicking the button shown in the image, you can export only the graphical structure of the process, excluding its configuration.

[![export_BPMN.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/export-bpmn.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/export-bpmn.PNG)

**Export VTE BPMN Process**  
By clicking the button shown in the image, you can export the entire process (structure + configuration).

<span style="color: #222222;"><span style="font-family: apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;"><span style="font-size: small;">[![export_VTE_BPMN.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/export-vte-bpmn.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/export-vte-bpmn.PNG)</span></span></span>

**Import VTE BPMN into an Existing Process**  
By clicking the button shown in the image, you can import a new version of the selected process.

[![import_VTE_BPMN.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/import-vte-bpmn.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/import-vte-bpmn.PNG)

**Create Process**

To create a process, follow these steps:

1\) Go to the Process Manager section (see the paragraph “Accessing the Process Manager Section with the Next Theme” or “Accessing the Process Manager Section with the Next22 Theme,” depending on the theme in use)

2\) Click the **NEW** button located at the top right

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/FMximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/FMximage.png)

3\) Enter a name, an optional description, and then click on **“CREATE NEW”**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/owwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/owwimage.png)

Once the previous steps are completed, the user will be directed to the screen for configuring the process flowchart (see chapter 1.4)

**Import a New Process from Scratch**

To import existing processes, after navigating to the “Process Manager” section, follow these steps:

1\) Click the **NEW** button located at the top right

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Azeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Azeimage.png)

2\) Enter a name, an optional description, and then click on **“Import”**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/d7zimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/d7zimage.png)

# 1.3 Flowchart Configuration and Left Menu

**FLOWCHART**

To view the flowchart of an existing process, click on its name in the "Name" column of the "Process Manager" section. (Figure 1)

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

Figure 1

Within this section, you can configure all the elements included in the diagram by clicking directly on each one. (Figure 2 and Figure 3)

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

Figure 2

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

Figure 3

N.B.: The configuration of individual elements will be covered in subsequent chapters.

To make changes to the process diagram, click the "Edit Diagram" button. (Figure 4)

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

Figure 5

The elements used to construct the process diagram can also be quickly selected through a shortcut menu that becomes available by clicking on a specific element already involved. (Figure 6)

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

Figure 6

**LEFT MENU**

This is a menu that can be used while editing the process diagram and includes:

- A quick selection of the main elements available for creating processes
- A set of useful functions for the easy and organized creation of process flows

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/rerimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/rerimage.png)

**Hand Tool**

A useful tool for moving the view easily and efficiently.

**Lasso Tool**

A useful tool for moving a group of tasks/elements at the same time, making the organization and structuring of the flow easier and faster.

**Create/Remove Space Tool**

A useful tool for moving all tasks/elements at once, facilitating the easy and fast structuring of the flow.

**Start Event**

Allows you to select and use the Start Event.

**End Event**

Allows you to create and use the End Event.

**Intermediate/Boundary Event Timer**

Allows you to create and use the Intermediate/Boundary Event.

**Gateway**

Allows you to create and use Gateways.

**Task**

Allows you to create and use Tasks.

**Sub Process**

Allows you to create and use Sub Processes.

**DataObjectReference**

This symbol allows for an action that is currently not yet implemented.

NOTE: As of version 24.08, it has been completely removed.

**DataStoreReference**

This symbol allows for an action that is currently not yet implemented.

NOTE: As of version 24.08, it has been completely removed.

**Pool/Participant**

Allows you to create areas in which parts of the process flow can be inserted. New tasks/elements cannot be created or moved outside these areas. It is also possible to textually indicate the actors involved.

NOTE: As of version 24.08, it has been completely removed.

# 1.4 Simbology

**SYMBOLS**

Below is the set of symbols used to create a diagram.

<table border="1" id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-start-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50.0381%;"></col><col style="width: 50.0381%;"></col></colgroup><tbody><tr><td>[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/OHtimage.png) ](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/OHtimage.png)[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/q7wimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/q7wimage.png)

</td><td>[START EVENT E TIMER START EVENT](https://usermanual.vtenext.com/books/business-process-manager-manual/page/21-start-event-e-timer-start-event)</td></tr><tr><td>[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/85Pimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/85Pimage.png)

</td><td>[END EVENT](https://usermanual.vtenext.com/books/business-process-manager-manual/page/22-end-event)</td></tr><tr><td>[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/q1jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/q1jimage.png)

</td><td>[INTERMEDIATE / BOUNDARY EVENT TIMER](https://usermanual.vtenext.com/books/business-process-manager-manual/page/23-intermediate-boundary-event-timer)</td></tr><tr><td>[![symbology_generale_5.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-generale-5.PNG) ](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-generale-5.PNG)[![symbology_generale_6.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-generale-6.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-generale-6.PNG)

</td><td>[EXCLUSIVE GATEWAY E PARALLEL GATEWAY](https://usermanual.vtenext.com/books/business-process-manager-manual/page/24-exclusive-e-parallel-gateway)</td></tr><tr><td>[![symbology_generale_7.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-generale-7.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-generale-7.PNG)[ ![symbology_icons_list_service_task.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-icons-list-service-task.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-icons-list-service-task.PNG)</td><td>[CONDITIONAL TASK E ACTION TASK](https://usermanual.vtenext.com/books/business-process-manager-manual/page/25-conditional-task-and-action-task)</td></tr><tr><td>[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/aZkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/aZkimage.png)

</td><td>[CONNECTORS](https://usermanual.vtenext.com/books/business-process-manager-manual/page/26-connectors-connectiong-object)</td></tr></tbody></table>

# 1.5 BPMN Actions

Below the main BPMN actions:

- [**CREATE ENTITY**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/31-create-entity)
- [**UPDATE ENTITY**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/32-update-entity)
- [**DELETE ENTITY**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/33-delete-entity)
- [**SEND NOTIFICATION**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/34-send-notification)
- [**SEND EMAIL**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/35-send-email)
- [**SEND NEWSLETTER**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/36-send-newsletter)
- [**CREATE PDF**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/37-create-pdf)
- [**RESET DYNAMIC FORM**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/38-reset-dynamic-form)
- [**CYCLE ROWS**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/39-cycle-rows)
- [**RESET CONDITIONAL FIELDS**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/310-reset-conditional-fields)
- [**LINK ENTITY e LINK STATIC ENTITY**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/311-link-entities-and-link-static-entities)
- [**TRANSFER RELATIONS**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/312-transfer-relations)
- **[INSERT TABLE ROWS AND PRODUCT ROW](https://usermanual.vtenext.com/books/business-process-manager-manual/page/313-insert-table-row-and-insert-product-row)**
- [**COPY PRODUCTS BLOCK**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/314-copy-the-products-block)
- [**CALL EXTERNAL WEB SERVICE**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/315-call-external-web-service)
- [**CYCLE RELATED RECORD**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/316-cycle-related-records)

# 1.6 Process Helper Section: Introduction and Usage Guide

##### **INTRODUCTION**

The Process Helper, as the name suggests, is a tool designed to assist those configuring processes by allowing them to create “structures” for requesting and storing data, known as “Dynamic Forms.”

It consists of two main sections:

[**HEADER FIELDS**](https://usermanual.vtenext.com/books/business-process-manager-manual/chapter/4-process-helper-header-field-configuration)

[**DYNAMIC FORM**](https://usermanual.vtenext.com/books/business-process-manager-manual/chapter/5-process-helper-dynamic-form-configuration)

##### **USAGE GUIDE**

Specifically, there are several ways to use this tool. Below are the main ones:

1\) Using Process Helpers (and their Dynamic Forms) to create custom forms for Internal/External/Business Portal users to request and save information

Examples:

**[USING PROCESS HELPER TO REQUEST DATA FROM INTERNAL USERS](https://usermanual.vtenext.com/books/business-process-manager-manual/page/61-example-of-using-process-helper-to-request-internal-user-data)**

[**USING PROCESS HELPER TO REQUEST DATA FROM EXTERNAL USERS**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/62-example-of-using-process-helper-to-request-external-user-data)

[**USING PROCESS HELPER TO REQUEST DATA FROM BUSINESS PORTAL USERS**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/63-example-of-using-process-helper-to-request-business-portal-user-data)

2\) Using Process Helpers to activate the “Process Graph” section, enabling you to:

- Monitor the progress of a single process instance along with the actors involved
- Perform direct maintenance on active process instances

Example:

[**USING PROCESS HELPER TO ACTIVATE THE PROCESS GRAPH**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/64-example-of-using-process-helper-to-activate-process-graph)

3\) Using Process Helpers (and their Dynamic Forms) to create virtual spaces for storing data or performing operations that are needed only within the process (and therefore do not need to be saved in CRM modules)

Example:

[**USING PROCESS HELPER FOR INTERNAL PROCESS USE**](https://usermanual.vtenext.com/books/business-process-manager-manual/page/65-example-of-process-helper-usage-for-internal-process-use)

# 2 Symbols, Fundamental Rules, and Comparison Operators

# 2.1 Start Event e Timer Start Event

**START EVENT**

It represents the unique point from which each individual process begins. This means that only one can be present in each process, as the flow starts from a single point.  
Note: It must always be followed by a control task, as this represents the task where the conditions are entered that, if met, will trigger the process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/DJuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/DJuimage.png)

**Timer Start Event**

**[![symbology_start_event_timer.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-start-event-timer.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-start-event-timer.PNG)**

A particular type of timer is the **"Timer Start Event"**, which is applied to the Start Event to allow a specific process to begin at a predefined time interval.  
It can be selected in diagram editing mode by first clicking on the Start Event, then on the wrench icon that appears among the selectable options, and finally choosing the **"Timer Start Event"** option.  
Note: This type of start event must be followed by an **action task**, as it only allows actions to be executed.

Other types of Start Events are currently **not implemented**.

**IMPORTANT NOTE:** As of version 24.08, they have been completely removed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/IHiimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/IHiimage.png)

# 2.2 End Event

**END EVENT**

It represents the endpoint of a process.  
Unlike the Start Event, it can be used more than once within a single process, since the flow may end at multiple points.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/OFaimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/OFaimage.png)

# 2.3 Intermediate / Boundary Event Timer

**INTERMEDIATE/BOUNDARY EVENT TIMER**

It represents an element widely used for managing the timing of task and process execution.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/FrNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/FrNimage.png)

It can be quickly selected from the menu on the left while in diagram editing mode.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/fgkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/fgkimage.png)

There are two groups of timers, which differ based on the actions to be performed and the tasks/elements involved:

1\) Intermediate Event Timer

2\) Boundary Event Timer

**1) INTERMEDIATE EVENT TIMER**

The first group consists of various types of "Intermediate Events" and is used between two tasks/elements.  
They can be selected in diagram editing mode by first clicking on the task or element from which the flow should then continue to the timer, and then clicking on the icon showing two circles, called **"Intermediate/Boundary Event Timer."**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/2W1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/2W1image.png)

At this point, you need to select the timer just mentioned, click on the wrench icon, and then choose one of the available options.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/gk0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/gk0image.png)

**Timer Intermediate Catch Event**

This is a type of timer used to wait for a specific period of time before moving on to the next task/element.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/5Hgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/5Hgimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/vBrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/vBrimage.png)

The other selectable types of Intermediate Events are currently not implemented.

**IMPORTANT NOTE:** As of version 24.08, they have been completely removed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/ibrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/ibrimage.png)

During the configuration phase, by clicking on the **Timer Intermediate Catch Event** symbol, a dedicated interface opens where you can enter the waiting time and the date to be used as a reference.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/rQjimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/rQjimage.png)

Inside the first picklist starting from the left, it is possible to indicate whether to wait for the indicated timing BEFORE or AFTER the reference date.

Instead, in the next picklist, three values ​​are made available:

\- **Now** -&gt; as the reference date it will take the date-time (timestamp) of the precise moment in which the process is positioned on the timer.

\- **Date** -&gt; allows you to insert a static date-time

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/oNLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/oNLimage.png)

**Other** -&gt; allows you to insert dynamic values, therefore taken from the date fields of the modules involved in the process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/DKDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/DKDimage.png)

**<span data-end="69" data-start="45">2) </span>BOUNDARY EVENT TIMER**

The second group consists of various types of **Boundary Events**, which are used on control tasks and are triggered when a task remains idle for a specific period of time.

They can be selected in diagram editing mode by first clicking on the task or element from which the flow should then continue to the timer, and then clicking on the icon showing two circles, called **"Intermediate/Boundary Event."**

At this point, you need to select the timer just mentioned and drag it onto one of the edges of the relevant control task.

[![symbology_boundary_event_timer_2.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-boundary-event-timer-2.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-boundary-event-timer-2.PNG) [![symbology_boundary_event_timer_4.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-boundary-event-timer-4.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-boundary-event-timer-4.PNG)

(Note: If you simply click on the icon, an “Intermediate Event” will be created and linked to the task with an arrow. If you want to use that timer as a Boundary Event, you just need to delete the arrow and place the timer directly on the relevant task.)

Once this is done, you need to select the timer, click on the wrench icon, and then choose one of the available options.

[![symbology_boundary_event_timer_5.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-boundary-event-timer-5.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-boundary-event-timer-5.PNG)

[![symbology_boundary_event_timer_3.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-boundary-event-timer-3.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-boundary-event-timer-3.PNG)

**Timer Boundary Event**

Allows the execution of the tasks/elements connected to the timer based on how long the process remains idle on the control task where the timer is placed.

**[![symbology_timer_boundary_event_3.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-timer-boundary-event-3.PNG)  
  ](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-timer-boundary-event-3.PNG)[![symbology_timer_boundary_event.PNG](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/scaled-1680-/symbology-timer-boundary-event.PNG)](https://usermanual.vtenext.com/uploads/images/gallery/2022-03/symbology-timer-boundary-event.PNG)**

The time interval is predefined during the timer’s configuration.  
They can only be used on control tasks.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/W0aimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/W0aimage.png)

The other types of selectable Boundary Events are not currently implemented.

**IMPORTANT NOTE:** As of version 24.08, they have been completely removed.

During configuration, clicking on the Timer Boundary Event icon opens the dedicated interface where you can enter the waiting times.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/F27image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/F27image.png)

As of version 25.02, it is possible to specify a reference date on which to base the waiting times.  
The configuration of this section is the same as for the intermediate timer, so in the first picklist from the left, you can indicate whether to wait the specified amount of time **BEFORE** or **AFTER** the reference date.

In the next picklist, three values are available:

\- **Now** → the reference date will be the date-time (timestamp) of the exact moment when the process reaches the timer.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/RMNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/RMNimage.png)

\- **Date** → allows you to enter a static date-time value.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/y7uimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/y7uimage.png)

\- **Other** -&gt; allows you to insert dynamic values, therefore taken from the date fields of the modules involved in the process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Th5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Th5image.png)

# 2.4 Exclusive e Parallel Gateway

**Exclusive Gateway**

Allows the process flow to split into multiple different branches.  
It must be preceded by a control task in which the parameters are defined to determine which branch of the Gateway will be followed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/0p7image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/0p7image.png)

To use it, in diagram editing mode, you need to click on the control task and then select the diamond-shaped symbol called “Gateway.”

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/w0fimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/w0fimage.png)

Here is an example of an applied Exclusive Gateway.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/ttjimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/ttjimage.png)

Like all other symbols, it can also be selected from the quick menu on the right.

**Parallel Gateway**

It performs the same function as the Exclusive Gateway, with the only difference being that all branches are executed in parallel. At the end of the branches, an Exclusive Gateway must be present to act as the closing Gateway for the parallel flow. Before the closing Gateway, as many control tasks must be configured as there are branches involved.

This type of structure allows you to choose whether to proceed with the flow upon completion of certain specific branches of the Gateway or wait for all existing branches to be completed.

**Note:**

\- Parallel Gateways cannot be used within other Parallel Gateways. - Multiple Parallel Gateways cannot share a single closing Exclusive Gateway.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/40Ximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/40Ximage.png)

To use it, while in diagram editing mode, you need to click on the task and then select the diamond-shaped symbol called “Gateway.”

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/IjTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/IjTimage.png)

Here is an example of an applied Parallel Gateway.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Hn8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Hn8image.png)

The types of Gateways listed below are not currently implemented.

**NOTE:** As of version 24.08, they have been completely removed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/kzZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/kzZimage.png)

# 2.5 Conditional Task and Action Task

**<span class="--l sentence_highlight">CONDITIONAL TASK</span>**

<span class="--l sentence_highlight">Represents the element used to perform creation and control actions within the flow of a process.</span><span class="--r sentence_highlight">  
</span>

[![symbology-task.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-task.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-task.png)

**<span class="--l sentence_highlight">ACTION TASK</span>**

<span class="--l sentence_highlight">To define the type of task, Vtenext provides symbols that can be used to indicate the action performed by each task.</span><span class="--r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">These symbols can be selected during the diagram editing mode by pressing on the task and then later on the wrench that appears among the various selectable options.</span>

[![symbology-icons-list.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list.png)

[![symbology-icons-list-2.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-2.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-2.png)

<span class="--l --r sentence_highlight">It is important to point out that these symbols do not go to affect the behavior of individual tasks, as their purpose is simply to show an initial visual reference that can facilitate the interpretation of individual tasks. </span><span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Thus</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">it</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">will</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">at</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">user's</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">discretion</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">select</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">symbol</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">most</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">appropriate</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">action</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">performed</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">by</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">any</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">given</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">task</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span></span>

<span class="--l sentence_highlight">Once selected, each symbol will be placed at the top left of the task and will be visible during process configuration.</span>

<span class="--l sentence_highlight">Below is an example for each selectable type:</span>

**<span class="--l --r sentence_highlight">Script Task</span>**

[![symbology-icons-list-script.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-script.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-script.png)

<span class="--l sentence_highlight">It is advisable to use it to indicate the creation and updating of tasks.</span>

**<span class="--l --r sentence_highlight">Send Task</span>**

[![symbology-icons-list-send-email.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-send-email.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-send-email.png)

<span class="--l sentence_highlight">It is advisable to use it to indicate the sending of emails and notifications.</span>

**<span class="--l --r sentence_highlight">Receive Task</span>**

[![symbology-icons-list-receive-email.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-receive-email.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-receive-email.png)

<span class="--l sentence_highlight">There is no particular recommended use.</span>

**<span class="--l --r sentence_highlight">User Task</span>**

[![symbology-icons-list-user-task.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-user-task.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-user-task.png)

<span class="--l sentence_highlight">It is advisable to use it to indicate a task in charge of the user.</span>

**<span class="--l --r sentence_highlight">Manual Task</span>**

[![symbology-icons-list-manual-task.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-manual-task.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-manual-task.png)

<span class="--l sentence_highlight">It is advisable to use it to indicate a task in charge of the user (process helper).</span>

**<span class="--l --r sentence_highlight">Business Rule Task</span>**

[![symbology-icons-list-business-rule-task.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/symbology-icons-list-business-rule-task.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/symbology-icons-list-business-rule-task.png)

<span class="--l sentence_highlight">There is no particular recommended use.</span>

**<span class="--l --r sentence_highlight">Service Task</span>**

[![UhLsymbology-icons-list-service-task.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/uhlsymbology-icons-list-service-task.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/uhlsymbology-icons-list-service-task.png)

<span class="--l sentence_highlight">It is advisable to use it to indicate the calling of external Webservices or SDKs.</span>

<span class="--l --r sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">On</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">other</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">hand</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">only</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">two</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">symbols</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">that</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">allow</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">given</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">action</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">take</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">place</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">and</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">thus</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">condition</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">behavior</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">given</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">task</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">are</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Call</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Activity</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span></span><span class="--l --r sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">nd</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Sub</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Process</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span></span>

[![symbology-icons-list-sub-process.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/kOusymbology-icons-list-sub-process.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/kOusymbology-icons-list-sub-process.png)

**<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Call</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Activity</span></span>**

<span class="--l sentence_highlight">This symbol allows you to perform an action that is not currently implemented.</span>

<span class="--l sentence_highlight">PLEASE NOTE: As of version 24.08 it has been completely removed.</span>

**<span class="--l sentence_highlight">Sub Process (collapsed)</span>**

<span class="--l sentence_highlight">This symbol allows you to call and use a sub process.</span>

# 2.6 CONNECTORS (CONNECTIONG OBJECT)

**<span class="--l sentence_highlight">CONNECTORS (CONNECTIONG OBJECT)</span>**

<span class="--l --r sentence_highlight">If the flow elements (events, activities or branches) in a process are “what actually happens,” they must be logically connected to each other. </span><span class="--l --r sentence_highlight">This is what connectors are for.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/5rrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/5rrimage.png)

Connectors must always have flow direction.

# 2.7 Basic rules

<span class="--l sentence_highlight">**1** - Upon process creation, the system automatically inserts a Start Event (see Chapter 2.1 for details), which is the element that represents the unique point from which each individual process begins.</span><span class="--r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">There can **only** be **one** in each individual process, since, the flow starts from a single point. </span><span class="--l --r sentence_highlight">(Figure 1 and 2)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/JQKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/JQKimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">1</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/NMcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/NMcimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 2

<span class="--l --r lmt_write_context_menu_highlight lmt_write_context_menu_interacted_sentence_highlight"><span class="--l --r hover:bg-blue-50 hover:dark:bg-gray-600 lmt__write_highlight_sentence py-[3px]">**2** - Only a **Conditional Task** can be attached to the Start Event (see Chapter 2.1 for details).</span></span> <span class="--l --r lmt_write_context_menu_highlight lmt_write_context_menu_interacted_sentence_highlight"><span class="--l --r hover:bg-blue-50 hover:dark:bg-gray-600 lmt__write_highlight_sentence py-[3px]">A Conditional Task is a control task in which the triggering conditions of the process can be defined.</span></span> <span class="--l --r lmt_write_context_menu_highlight lmt_write_context_menu_interacted_sentence_highlight"><span class="--l --r hover:bg-blue-50 hover:dark:bg-gray-600 lmt__write_highlight_sentence py-[3px]">(<span class="--l --r"><span class="--l --r border-b-2 border-green-100 dark:border-green-500 dark:text-green-300 lmt__write_highlight relative text-green-600"><span class="--l --r hover:dark:text-blue-300 hover:text-blue-500 lmt__words_highlight">Figures</span></span> <span class="--l --r hover:dark:text-blue-300 hover:text-blue-500 lmt__words_highlight">3</span> <span class="--l --r hover:dark:text-blue-300 hover:text-blue-500 lmt__words_highlight">and</span> <span class="--l --r hover:dark:text-blue-300 hover:text-blue-500 lmt__words_highlight">4</span><span class="--l --r border-b-2 border-green-100 dark:border-green-500 dark:text-green-300 lmt__write_highlight relative text-green-600">).</span></span></span></span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/z2Mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/z2Mimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/NMcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/NMcimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 4

<span class="--l --r sentence_highlight">The same logic applies to the Timer Start Event, the only difference being that **only a task of any type except Conditional Task** can be attached. </span><span class="--l --r sentence_highlight">(Figure 5 and 6)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Yssimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Yssimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 5

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/2wfimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/2wfimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 6

<span class="--l --r sentence_highlight">**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">3</span>** <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">-</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Before</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">an</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Exclusive</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Gateway</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">there</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">must</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">always</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> **<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Conditional</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Task</span>** <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">that</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">allows</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">you</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">define</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">sets</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">conditions</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">on</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">basis</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">which</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">process</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">will</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">split</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">into</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">multiple</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">branches</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span> </span><span class="--l --r sentence_highlight">(Figure 7 and 8)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/W1Aimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/W1Aimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 7

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Y4Zimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Y4Zimage.png)

<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> 8

# 2.8 Comparison Operators: Description and Use in Conditional Tasks.

<span class="--l sentence_highlight">The system provides several comparison operators that can be used within Conditional Tasks, which are the types of tasks that allow you to perform checks on the fields of the dynamic forms/forms involved within the process.</span>

<span class="--l --r sentence_highlight">WARNING! </span><span class="--l sentence_highlight">-&gt; the system is “Case Sensitive,” so the same values with different upper or lower case are treated as if they were different.</span><span class="--r sentence_highlight">  
</span>

<span class="--l sentence_highlight">Example: “VTENEXT” and “vtenext” are seen by the system as different values.</span>

<span class="--l --r sentence_highlight">- “**equals**” -&gt; allows checking whether the contents of a field are equal to a static value specified within the condition. </span><span class="--l --r sentence_highlight">(Figure 1)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/X8Simage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/X8Simage.png)

<span class="--l sentence_highlight">Figure 1</span>

<span class="--l --r sentence_highlight">PLEASE NOTE: the system does not allow you to compare multiple values at the same time on the same row, so in case you need to perform a multipl</span><span class="--l --r sentence_highlight">e check you will have to create separate conditions (Figure 2 and 3)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/inZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/inZimage.png)

<span class="--l --r sentence_highlight"><span class="--l sentence_highlight">Figure 2</span></span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/A4Cimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/A4Cimage.png)

<span class="--l sentence_highlight">Figure 3</span>

<span class="--l sentence_highlight"><span class="--l --r sentence_highlight">- “**different**”-&gt;allows to check whether the contents of a field are NOT equal to a static value specified within the condition. </span>(Figure 4)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/K2Zimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/K2Zimage.png)

<span class="--l sentence_highlight">Figure 4</span>

<span class="--l --r sentence_highlight">- “**contains**” -&gt; allows checking whether the static value specified within the condition is present within a field, regardless of where it is located. </span><span class="--l sentence_highlight">(Figure 5)</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">Taking the example given in Figure 5 as a reference, in case we have a company named “demo\_vtenext”, the condition will be verified, since, this tringa contains “vte”.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/WZYimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/WZYimage.png)

<span class="--l sentence_highlight">Figure 5</span>

<span class="--l sentence_highlight">In contrast to the “equal” operator, the system allows multiple values to be compared simultaneously on the same row (Figure 6)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/5meimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/5meimage.png)

<span class="--l sentence_highlight">Figure 6</span>

<span class="--l --r sentence_highlight">- “**does not contain**” -&gt; allows checking whether the static value specified within the condition is NOT present within a field, regardless of where it is located. </span><span class="--l --r sentence_highlight">(Figure 7)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/TV1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/TV1image.png)

<span class="--l sentence_highlight">Figure 7</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">As with the “contains” operator, multiple values can be compared at the same time on the same row (which should be entered separated with a comma).</span>

<span class="--l --r sentence_highlight">- “**starts for**” -&gt; allows you to check whether the contents of a field begin with the static value specified within the condition. </span><span class="--l --r sentence_highlight">(Figure 8)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/lImimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/lImimage.png)

<span class="--l sentence_highlight">Figure 8</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">PLEASE NOTE: the system does not allow you to compare multiple values at the same time on the same row, so in case you need to perform a multiple check you will have to create separate conditions (take Figure 2 and 3 as reference)</span>

<span class="--l --r sentence_highlight">- “**ends with**” -&gt;allows you to check whether the contents of a field ends with the static value specifie</span><span class="--l --r sentence_highlight">d within the condition. </span><span class="--l sentence_highlight">(Figure 9)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/w9Limage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/w9Limage.png)

<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">9</span></span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">PLEASE NOTE: the system does not allow you to compare multiple values at the same time on the same row, so in case you need to perform a multiple check you will have to create separate conditions (take Figure 2 and 3 as reference)</span>

<span class="--l sentence_highlight">- “**has changed to**” -&gt; allows you to check whether the contents of the field has precisely changed to the value specified within the condition (Figure 10)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/H5jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/H5jimage.png)

<span class="--l sentence_highlight">Figure 10</span>

<span class="--l --r sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">For</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">all</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">those</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">types</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">fields</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">that</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">might</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">have</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">an</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">undefined</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">value</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">(</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">text</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">number</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">date</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">related</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">etc</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">)</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">by</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">combining</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">has</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">changed</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">operator</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">with</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">different</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">operator</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">it</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">is</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">possible</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">configure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">condition</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">capture</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">change</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">in</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">content</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">field</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">consistent</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">value</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">that</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">you</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">are</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">not</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">aware</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span> </span><span class="--l sentence_highlight">(Figure 11)</span><span class="--r sentence_highlight">  
</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/fFLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/fFLimage.png)

<span class="--l sentence_highlight">Figure 11</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">The example shown in Figure 11 translates into the following sentence, “Expected closing date has changed to a value I cannot define but, at the same time, that value is different from empty, so it will necessarily be a consistent value.”</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">- “**has changed from**” -&gt; allows you to check whether the contents of the field has changed from one value to another, both of which are specified within the condition (Figure 12)</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">The first slot should specify the value that the field had before the change, while the second slot should specify the new value that was entered.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/gsKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/gsKimage.png)

<span class="--l sentence_highlight">Figure 12</span>

<span class="--l --r sentence_highlight">- “**greater than**” -&gt; allows you to check whether the content of a number/currency field present is greater than an entered static value specified within the condition. </span><span class="--l --r sentence_highlight">(Figure 13)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/lrcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/lrcimage.png)

<span class="--l sentence_highlight">Figure 13</span>

<span class="--l --r sentence_highlight">- “**greater than or equal**” -&gt; allows checking whether the content of a number/currency field present is greater than or equal to an entered static value specified within the condition. </span><span class="--l sentence_highlight">(Figure 14)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Tcqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Tcqimage.png)

<span class="--l sentence_highlight">Figure 14</span>

<span class="--l --r sentence_highlight">- “**less than**” -&gt; allows you to check whether the content of a number/currency field present is less than an entered static value specified within the condition. </span><span class="--l --r sentence_highlight">(Figure 15)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/LKPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/LKPimage.png)

<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">15</span></span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">- “**less than or equal**” -&gt; allows checking whether the content of a number/currency field present is less than or equal to an entered static value specified within the condition. </span><span class="--l sentence_highlight">(Figure 16)</span><span class="--r sentence_highlight">  
</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/0uEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/0uEimage.png)

<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">16</span></span>

# 2.9 Comparison operators: Rules of use in initial condition tasks

<span class="--l --r sentence_highlight">Some comparison operators should be used carefully within the “Initial Condition” Tasks, i.e., those Conditional Tasks directly associated with the Start Event within which conditions are defined that allow the process to be triggered or not. </span><span class="--l --r sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">(</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Figures</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">1</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">and</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">2</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">)</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span></span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/GJ9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/GJ9image.png)

Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/ABaimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/ABaimage.png)

<span class="--l sentence_highlight">Figure 2 (click on the image for a higher graphic resolution)</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">Specifically, in the case where the “**edit**” phase is involved in the condition (thus selecting one of the following: “upon editing” </span><span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">upon</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">creation</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">and</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">modification</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">whenever</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">condition</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">turns</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">out</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">true</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">)</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">comparison</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">operators</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">equal</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">different</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">contains</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">does</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">not</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">contain</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">starts</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">with</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">ends</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">with</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">greater</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">than</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">greater</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">than</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">or</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">equal</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">less</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">than</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">less</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">than</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">or</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">equal</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">cannot</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">used</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">individually</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">because</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">there</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">is</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">a</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">risk</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">creating</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">loops</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">i</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">e</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">unwanted</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">and</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">uncontrolled</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">departure</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">multiple</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">instances</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">of</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">same</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">process</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span></span><span class="--r sentence_highlight">  
</span>

<span class="--l sentence_highlight">This is because, the comparison operators just mentioned simply look at whether the condition is verified or not, without taking into consideration in which specific save that condition first occurred.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">To better understand how they work, Figure 3 shows an example of an Initial Condition Task that is NOT properly configured.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/dmMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/dmMimage.png)

<span class="--l sentence_highlight">Figure 3 (click on image for higher graphic resolution).</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">The condition “Type” = “Potential” simply tests whether that field possesses that specific value.</span><span class="--r sentence_highlight">  
</span>

<span class="--l sentence_highlight">By then setting this condition individually and involving editing (in this case by selecting “upon creation and editing”), the process will not only be triggered on the save where the “Type” is set to “Potential” but also on subsequent saves as long as the “Type” field retains that specific value.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">Precisely to overcome this issue, the system provides the “**has changed to**” and “**has changed from**” comparison operators that allow the process to trigger only in the save in which the setting of that specific value occurred.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">Thus, by configuring the process as shown in Figure 4, the process will only trigger on the save in which the value in “Potential” is set.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/XYiimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/XYiimage.png)

Figure 4 (click on image for higher graphic resolution)

# 2.10 Configuration Section “When to run the check” in the Initial Condition Task.

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">Within the “Initial Condition” Tasks, i.e., those Conditional Tasks directly associated with the Start Event within which the conditions that allow the process to be triggered or not are defined, the “When to Run Control” section is presented with the following values:</span>

<span class=" --l --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">- “**at creation**” -&gt; the process will trigger only after the creation of a record (instance of a form)</span>

<span class=" --l --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">- “**upon creation and modification**” -&gt; the process will trigger after the creation or modification of a record (instance of a form), so in fact in all situations currently handled in the processes.</span><span class=" --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">PLEASE NOTE: deletion of a record is a situation not handled in processes</span>

<span class=" --l --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">- “**upon modification**” -&gt; the process will be triggered only after the modification of a record (instance of a module)</span>

<span class=" --l --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">- “**whenever condition is true**” -&gt; the process will be triggered upon occurrence of the conditions (always after saving) entered in the “Conditions” section.</span><span class=" --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">  
</span>

<span class=" --l --r alignedSentenceHighlight-module--alignedSentenceHighlight--e599c alignedSentenceHighlight-module--partialHighlightAnimationWeb--324f1 bg-[#E1F0F5] text-[#25282D] sentence_highlight">Conditions can also be entered in the “Conditions” section for other values, so this item turns out to be for all intents and purposes analogous to the “upon creation and modification” item, this is because both creation and modification are involved.</span>

<span class="--l sentence_highlight">- “**only the first time the process is triggered**” -&gt; the process will trigger are the first time the condition entered in the “Conditions” section occurs.</span><span class="--r sentence_highlight">  
</span>

<span class="--l sentence_highlight">Thereafter, the process can never trigger on that specific record (instance of a module) again, even if the conditions configured within it have occurred.</span>

<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">-</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">at</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">subprocess</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">launch</span>**<span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">-</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">&gt;</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">is</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">used</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">exclusively</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">for</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">subprocess</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">configuration</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">and</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">allows</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">subprocess</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">to</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">triggered</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">moment</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">callback</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">task</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">configured</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">in</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">parent</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">process</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">is</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">executed</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span></span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">- “**in relation with**” -&gt; allows the process to be triggered the moment a relation is established between two records (instance of a module) of two modules having an N - N relation</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/v5Dimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/v5Dimage.png)

Figure 1 (click on image for higher graphic resolution)

# 2.11 Configuration Section “When to run the check” in Conditional Tasks

<span class="--l sentence_highlight">Within classic Conditional Tasks, i.e., those Tasks used to perform checks within the process, the “When to check” section is presented with the following values:</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">- “**upon change**” -&gt; the process will wait for a change in the record (instance of a form) involved before checking the conditions configured within the Conditional Task, even if they should already be checked.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">- “**whenever condition is true**” -&gt; the process will immediately verify the conditions configured within the Conditional Task, then continue with the flow in case they should already be verified.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">To better understand how it works, Figure 1 shows a process that, when an opportunity is created, performs a check on the Sales Stage and is divided into two different branches. </span><span class="--l --r sentence_highlight">(Figure 1)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/iB6image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/iB6image.png)

<span class="--l sentence_highlight">Figure 1</span>

<span class="--r sentence_highlight">  
</span>

<span class="--l sentence_highlight"><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">In</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">event</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">that</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Conditional</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Task</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Checking</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Sales</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Stage</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">was</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">set</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">upon</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">modification</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">even</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">though</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">opportunity</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">being</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">created</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">will</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">have</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Sales</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Stage</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">=</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Open</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">or</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">“</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">To</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">be</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">Analyzed</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">,</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">”</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">process</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">will</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">not</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">consider</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">the</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">conditions</span> <span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">verified</span><span class="--l --r hover:bg-blue-100 hover:dark:bg-blue-600">.</span></span><span class="--r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">This is because a post-creation save of the opportunity will be waited for before verifying the conditions configured within it. </span><span class="--l --r sentence_highlight">(Figure 2)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/JSVimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/JSVimage.png)

<span class="--l sentence_highlight">Figure 2</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">On the other hand, in the case where the Conditional Task “Checking Sales Stage” had been set “whenever condition is true,” if the opportunity being created will have the “Sales Stage” = “Open” or “To be Analyzed,” the system will perform a check in the immediate proceeding then in the first or second branch in case there are verified conditions. </span><span class="--l --r sentence_highlight">(Figure 3)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/gYCimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/gYCimage.png)

Figure 3

# 2.12 Managing Visibility Permissions in Processes

As with any other standard/custom module, to configure the visibility of the Processes module you must access the dedicated "Sharing Access" section located in Settings -&gt; User Permissions -&gt; Sharing Access. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/hM7image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/hM7image.png)

Figure 1

"**Private**" -&gt; only the following users will be able to view the process:  
\- the user who triggered the process, that is, the user who made the change on the module record associated with the process by verifying the initial conditions defined.  
Even if, in a specific phase of the flow, the process will be assigned to a different user, the user who triggered the process will still be able to see the process from start to finish with the respective graph.

EXAMPLE:

Considering the process shown in Figure 2 having in the EndEvent a Process Helper with assignee corresponding to the user "UserY" (Figure 3), in the case in which the process is triggered by "UserX", the latter will always be able to see the process even if in the EndEvent it is assigned to "UserY".

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/K6limage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/K6limage.png)

Figure 2

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qsFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qsFimage.png)

Figure 3

-all users with administrator permissions, that is, with the "Administrator" flag checked in their user preferences

-the user assigned to the Process Helper (and therefore the process) at that specific moment

-the user who performed an activity that allowed the process to continue with its flow, such as modifying a field on the form for which the process was waiting (via a Task)

EXAMPLE:

Considering the process shown in Figure 4, in the case in which the process is triggered by "UserX" and stops on the Task "Waiting for company modification", if the modification to the company is always performed by "UserX" and therefore "UserY" will not have any interaction with the process, in fact "UserY" will never be able to see the process.  
If, on the other hand, the modification to the company is performed by "UserY", from that moment on he will be able to start seeing the process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/FMQimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/FMQimage.png)

Figure 4

"**Public: Read Only**" -&gt; all users in the system will be able to view active or terminated processes.  
ATTENTION! -&gt; this permission refers to the Processes module and not to the Dynamic Forms of the Process Helpers, so the latter will continue to refer to the Assigned to field of the Process helper and therefore be compilable only by the users or groups defined within it.

"**Public: Read, Create/Modify**" -&gt; all users in the system will be able to view, create or modify active or terminated processes.  
ATTENTION! -&gt; this permission refers to the Processes module and not to the Dynamic Forms of the Process Helpers, so the latter will continue to refer to the Assigned to field of the Process helper and therefore be compilable only by the users or groups defined within it.

"**Public: Read, Create/Modify, Delete**" -&gt; all users in the system will be able to view, create or modify and finally delete active or terminated processes.  
ATTENTION! -&gt; this permission refers to the Processes module and not to the Dynamic Forms of the Process Helpers, therefore the latter will continue to refer to the Assigned to field of the Process helper and therefore can be filled in only by the users or groups defined within it.

# 2.13 Process Manager: Versioning Management

Within each individual process configured in the system, there is a button called "Save Version" in the top left. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/scaled-1680-/4I5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/4I5image.png)

Figure 1

This allows you to force a new process version to be saved, ensuring its historicization in a dedicated DB table.  
In simple terms, it simulates the "Export BPMN Process VTE" button, allowing you to save a copy of the current process configuration in a table other than the main table linked to the Process Manager section.  
Furthermore, the value of the related "Version" field is also updated. (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/scaled-1680-/17Himage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/17Himage.png)

Figure 2

This type of operation is essential to ensure the ability to restore a previous version of the process in the event of configuration errors or other situations.

WARNING!: Deleting a process using the X button in the Process Manager section permanently deletes the process from all related tables in the database, including the aforementioned table.  
Therefore, it is important to proceed with caution when using this function, as once the deletion is performed, there will be no way to restore the process and all pending instances associated with the records involved.

If you want to save a new version of a process with pending instances (in our case, some leads with the Lead Re-Assignment process active), the system will display the popup shown in Figure 3.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/scaled-1680-/9xJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-09/9xJimage.png)

Figure 3

Furthermore, for completeness, all pending changes to Conditional Fields and Layout Editors for the modules in the system will also be displayed (even for modules not involved in the process, as the system performs a general check).

By clicking the FREEZE button, the system will automatically save the version of all pending changes indicated above and will NOT update the version of pending process instances on the identified records (in our case, maintaining version 1.0).  
This feature is useful when you want to apply the new process version only to process instances starting in the future, or rather, from the time of the version update onward.

By clicking the USE LAST button, the system will update the version of pending process instances on the identified records (in our case, setting version 1.1).

# 3 BPMN Actions

# 3.1 Create entity

This action allows you to create records for entities within the system (standard or custom modules).

For each individual field, you can set a static or dynamic value (i.e., one derived from the entities involved in the process itself) (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/pJlimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/pJlimage.png)

Figure 1

To select a dynamic value, the system provides a "Select option" picklist, from which you can access the entity fields of the modules involved in the process (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/De5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/De5image.png)

Figure 2

NOTE: For "Picklist" and "User" type fields, to use the "Select option" field, you must first select the "Other" item from the picklist available on the left (Figure 3).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/B6vimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/B6vimage.png)

Figure 3

NOTE: The system automatically applies a filter based on the source field from which the "Select options" picklist is being accessed; consequently, it will only display fields with a data type compatible with the source field.

For example, if you wanted to insert the content of the text-type "Surname" field from the Leads module into the "Linked to" field of the Customer Support module, the system would not make that field available, as it only allows the selection of columns from "Related to" type table fields. (Figure 4)

Figure 4

Furthermore, the "Create entity" action also allows us to trigger a redirect to the newly created entity or to an entity involved in the process. (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/0xfimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/0xfimage.png)

Figure 5

Clicking the "New entity created" button redirects the user to the new record created during this specific action.  
Conversely, selecting the ID of one of the other entities involved in the process redirects the user to the record for that specific module.

**Creating Calendar Events: "Notify" function**

As of version 26.04, it is possible to configure and enable the sending of automatic reminders via the dedicated section. (Figure 6)

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

Figure 6

# 3.2 Update entity

<span class="--l sentence_highlight">This action allows updating an entity (instance of a module) directly involved in the process or otherwise an entity related to them.</span><span class="--r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">Static or dynamic values (thus taken from the entities involved in the process itself) can be reported for each individual field.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/vqPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/vqPimage.png)

<span class="--l sentence_highlight">Figure 1</span>

<span class="--l --r sentence_highlight">To select a dynamic value, the system provides the “Select Option” picklist from which the entity fields of the modules involved within the process can be accessed (Figure 2)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/T7Jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/T7Jimage.png)

<span class="--l sentence_highlight">Figure 2</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">CAUTION: For the “Picklist” and “User” type fields, in order to use the “Select Option” field you must first select the “Other” picklist item available on the left (Figure 3)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/R7Nimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/R7Nimage.png)

<span class="--l sentence_highlight">Figure 3</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">PLEASE NOTE: the system automatically performs a filter based on the source field from which the “Select Options” picklist is being consulted, consequently it will only show fields whose type can be accepted by the source field.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">If, for example, within the “Connected to” field of the Customer Care form I wanted to enter the contents of the “Last Name” text type field of the Lead form, the system will not make that field available, this is because it will only allow selection of the columns of the “Related to” type table field. </span><span class="--l --r sentence_highlight">(Figure 4)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/0Olimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/0Olimage.png)

<span class="--l sentence_highlight">Figure 4</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l --r sentence_highlight">As of version 24.08, it is also possible to update fields of type “Related to” created within dynamic process helper forms (Figure 5)</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/OlRimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/OlRimage.png)

Figure 5

# 3.3 Delete entity

<span class="--l sentence_highlight">This action allows you to delete an entity (module instance) involved within the process.</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">PLEASE NOTE: The record deleted by this action is not completely deleted from the Data Base but is placed in the “Trash” section.</span>

<span class="--l --r sentence_highlight">To prevent the user from encountering an error message (being on a deleted record), the redirect function is usually used to redirect the user to a new (newly created) or existing instance.</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/RXgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/RXgimage.png)

# 3.4 Send Notification

<span class="--l --r sentence_highlight">This action allows internal notifications to be sent to system users viewable in the “Notifications” section marked by an icon depicting a bell in the top right menu.</span>

[![screenshot-2024-10-29-143219.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/screenshot-2024-10-29-143219.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/screenshot-2024-10-29-143219.png)

<span class="--l sentence_highlight">Figure 1</span>

<span class="--l --r sentence_highlight">  
</span>

<span class="--l sentence_highlight">MAIN FIELDS</span>

<span class="--l sentence_highlight">- **Description** -&gt; represents the body of the notification; specific text can be set with static and/or dynamic data belonging to the entities involved in the process.</span>

<span class="--l sentence_highlight">- **Created by** -&gt; represents the user who will turn out to be the creator of the notification (sender)</span>

<span class="--l sentence_highlight">- **Assigned to** -&gt; represents the user who will turn out to be the recipient of the notification</span>

<span class="--l --r sentence_highlight">- **Attached to** -&gt; represents the entity (instance of a module) to which the notification will be attached</span>

[![Screenshot 2025-05-30 151043.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/screenshot-2025-05-30-151043.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/screenshot-2025-05-30-151043.png)

Figure 2 (click on the image for a higher graphic resolution)

Depending on the user’s preferences, notifications can be sent as real internal notifications in the mode described above or as classic emails (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/LzLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/LzLimage.png)

Figure 3

If the "Email" mode has been set, the following additional fields must be filled in (Figure 4)

\- **Subject** -&gt; represents the object that will be sent to the mail

\- **Sender mail** -&gt; represents the sender’s mail

\- **Sender name** -&gt; represents the alias relative to the sender

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Kg0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Kg0image.png)

Figure 4

# 3.5 Send Email

This action allows you to send automatic emails with the possibility of attaching documents and linking the mail to an entity (standard or custom) in such a way that it remains historicized.

In the body of the email, it is possible to report on the classic static and/or dynamic values other general functions such as the current date/time, the link to the desired entity (internal for users or external for portal-side customers) (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/3mzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/3mzimage.png)

Figure 1 (click on the image for a higher graphic resolution)

MAIN FIELDS

\- **SMTP Serve** -&gt; from version 23.08 you can specify how to use the outgoing mail server account to be used as sender. (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/0V6image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/0V6image.png)

Figure 2

\- Default -&gt; in the case that in the module Messages of the user indicated there is a configured account, the system will use the server associated with it, in the case that no account is configured the system will use the server present in   
Settings -&gt; Mail Server.

\- Custom -&gt; you can configure an outbound mail account directly within the email sending action. (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/bTTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/bTTimage.png)

Figure 3

\- Global -&gt; the system will use only the server configured in Settings -&gt; Mail Server.

In addition to the three modes described above, you can select one of the accounts configured in the Messages module for the currently active users on your system.

-**From** -&gt; represents the sender of the mail

-**To** -&gt; represents the recipient of the mail

-**CC** -&gt; represents copied addresses

-**CCN** -&gt; represents the addresses in hidden copy

-**Reply to** -&gt; represents the address to which a possible answer to the automatic mail would be sent

-**Subject** -&gt; represents the subject of the mail

-**Link email to** -&gt; it is possible to indicate the entity to which to link the automatic mail.   
The item "Automatic (default)" allows to associate the mail with the entity on which the process has been triggered

-**Attach documents from** -&gt; you can select the entity from which to take the documents linked to it and attach them to the mail.

By clicking on "All" the system will attach ALL documents related to the entity. (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/lLaimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/lLaimage.png)

Figure 4

Ticking the "Filtered" the system will attach documents that meet the conditions inserted in the section "Conditions" (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/1arimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/1arimage.png)

Figure 5 (click on the image for a higher graphic resolution)

# 3.6 Send Newsletter

This action allows you to send a newsletter directly from the process, linked to a static or dynamic campaign defined in the "Campaign" field.

KEY FIELDS

\- **Campaign** -&gt; defines the campaign associated with the newsletter to be sent.  
Depending on the scenario, you can select one of the following options:  
\- Create new every time -&gt; the system creates a new campaign each time the process runs.  
\- Create and then reuse the same campaign -&gt; the system creates a campaign only the first time the process runs, then reuses that same campaign for subsequent runs.  
\- Existing -&gt; allows you to select an existing campaign.  
\- From process -&gt; allows you to select a record from the Campaigns module involved in the process.

\- **Sender Name** -&gt; the alias for the newsletter sender.

\- **Sender Address** -&gt; the email address of the newsletter sender.

\- **Recipients** -&gt; allows you to select static records or records from entities directly involved in the processes.  
Note: Records from the Accounts, Contacts, Targets, and Leads modules can be selected.

\- **Subject** -&gt; the subject line of the newsletter.

\- Email Template -&gt; the email template used as the newsletter body.

\- Body -&gt; Using the editor, you can modify the body by inserting static/dynamic text or HTML/CSS code.

As of version 26.04, the following configurable fields have been added:

\- **Language** -&gt; allows you to specify a reference language.

\- **Reply To** -&gt; allows you to enter an email address to which any replies to the newsletter sender will be directed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Rkgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Rkgimage.png)

Figure 1

# 3.7 Create PDF

This action allows you to create a PDF document using a template defined in the "PDFmaker" section.

MAIN FIELDS

\- **Entity PDF document** -&gt; allows to select an entity on which to generate the PDF.  
N.B: it is not possible to select an entity (instance of a module) if there is no PDF Template related to it

\- **Title PDF** -&gt; indicates the title of the PDF

\- **Relate PDF to** -&gt; represents the id of the entity involved in the process to which you want to link the PDF

\- **Language PDF template** -&gt; represents the language of the PDF Template (Italian or English)

\- **Assigned to** -&gt; represents the assigned user of the PDF

\- **PDF Template** -&gt; allows to select one of the templates available for the selected entity.

\- **Documents folder** -&gt; allows to select the folder where you want to save the PDF

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/OS2image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/OS2image.png)

Figure 1

# 3.8 Reset Dynamic form

As of version 25.02.2, it has been renamed "Reset dynamic form."

This action relates to the use of the Process Helper and allows you to clear the values ​​entered into the dynamic form's fields during the filling-out process.  
It is primarily used to enable the dynamic form to be filled out again.  
By default, any default values ​​established prior to the actual completion of the dynamic form will be restored. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/i0Vimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/i0Vimage.png)

Figure 1

However, to completely clear the contents of the fields in the dynamic form—ignoring any default values ​​entered prior to actually filling it out—you must check the “Clear field” box. (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/39oimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/39oimage.png)

Figure 2

USAGE EXAMPLE

To better understand how it works, an example is provided below showing the use of a dynamic form reset action to handle the potential re-entry of the "Service Date" field in a dynamic form.

The field in question has today's date as its default value. (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/o8bimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/o8bimage.png)

Figure 3

When filling out the dynamic form, the user can modify the field content by manually entering the actual intervention date if it differs from today's date.

If the dynamic form needs to be refilled for any reason, configuring a "reset dynamic form" action (BEFORE configuring the process helper) without selecting the "Clear field" option will cause the system to remove any intervention date entered by the user and revert to today's date.

Conversely, configuring a "reset dynamic form" action (BEFORE configuring the process helper) while selecting the "Clear field" option will cause the system to remove both any user-entered intervention date and the default date (today's date), effectively presenting the user with an empty field.

# 3.9 Cycle Rows

This action allows you to cycle and then dynamically manage the rows of a table field or a product block.

NOTE: If there is no product block or table field in the main entity involved in the process and its related modules, the action will not be visible in the list of actions selectable via the "New Action" button.

For details on how to use the fields of the product block or the cycled table field within processes (e.g. value "Current") we recommend you refer to chapter 10.1 of the process manual.

For each cycled row, one of the following operations can be carried out:

**Send email**

Allows you to send an email for each row that meets the conditions set in the "field conditions" section. (Figure 1)  
To consider all the rows, just leave that section unfilled.

[![cicla-righe-invia-email.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/cicla-righe-invia-email.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/cicla-righe-invia-email.png)

Figure 1

**Create entity**

Allows you to create an entity of any module (standard or custom) for each row that meets the conditions set in the "Field conditions" section. (Figure 2)  
To consider all the rows, just leave that section unfilled.

[![cicla-righe-crea-entita.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/cicla-righe-crea-entita.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/cicla-righe-crea-entita.png)

Figure 2

**Update entity**

Allows you to update an entity involved in the process for each row that meets the conditions set in the "Field conditions" section. (Figure 3)  
To consider all the rows, just leave that section unfilled.

[![cicla-righe-aggiorna-entita.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/cicla-righe-aggiorna-entita.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/cicla-righe-aggiorna-entita.png)

Figure 3

**Send notification**

Allows you to send a notification for each row that meets the conditions set in the "Field conditions" section. (Figure 4)  
To consider all the rows, just leave that section unfilled.

[![cicla-righe-invia-notifica.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/qpucicla-righe-invia-notifica.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/qpucicla-righe-invia-notifica.png)

Figure 4

**Insert table row**

It allows to insert a row in a table field present in the entities involved in processes or in the form of process helpers for each row that meets the conditions set in the "Field conditions" section. (Figures 5, 6 and 7)  
To consider all the rows, just leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/NLWimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/NLWimage.png)  
Figure 5

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Bbpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Bbpimage.png)  
Figure 6

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/1OAimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/1OAimage.png)

Figure 7

**Insert product row**

Insert a row in a product block present in the entities involved in the processes for each row that meets the conditions set in the "Field conditions" section. (Figures 8, 9 and 10)  
To consider all the rows, just leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/Lraimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/Lraimage.png)  
Figure 8

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/WE5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/WE5image.png)  
Figure 9

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/CnSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/CnSimage.png)  
Figure 10

**Delete product row**

Allows you to delete a row in a product block present in the entities involved in the processes for each row that meets the conditions set in the "Field conditions" section. (Figure 11)  
To consider all the rows, just leave that section unfilled.  
NB: This option will only be present if you are cycling the rows of a block products.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/xeximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/xeximage.png)Figure 11

**Delete table row**

It allows to delete a row in a table field present in the entities involved in processes or in the forms of process helpers for each row that meets the conditions set in the "Conditions on the field" section. To consider all the rows, just leave that section unfilled. (Figure 12)  
NB: This option will only be present if you are cycling the rows of a table field.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/xwpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/xwpimage.png)

Figure 12

**Function SDK**

It allows to execute an SDK function of type Action for each row that meets the conditions set in the "Field conditions" section. (Figure 13 and 14)

N.B: this feature is only available from version 25.02 onwards.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/ShZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/ShZimage.png)  
Figure 13

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/AMZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/AMZimage.png)  
Figure 14

# 3.10 Reset Conditional Fields

This action refers to the use of process-side conditional fields.   
In fact, it is possible to set conditional fields on the selected entity (involved in the process) or based on the Dynamic Forms present in the process.  
In the case of conditional fields on the entity, these prevail over administrator-set conditional fields.  
The latter are disabled until the end of the process or an action task "Reset conditional fields". (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/G3Mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/G3Mimage.png)Figure 1

# 3.11 Link Entities and Link Static Entities

**LINK ENTITIES**

This action allows to relate between them 2 dynamic entities that present a relation N - N.  
The 2 entities do not present a field related to each other, but the relation to N. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/oDfimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/oDfimage.png)Figure 1

**LINK STATIC ENTITIES**

This action makes it possible to relate one or more static entities among those proposed to a dynamic process entity.  
It is useful for example to relate entities common to more than one case of the flow itself, e.g. Report the same document (privacy statement, checklist, etc.) (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/LWrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/LWrimage.png)  
Figure 2

# 3.12 Transfer Relations

This action allows to transfer/copy related entities from one entity to another in the process.  
In the case of relationship 1 - N records will be transferred, while in the case of relationship N - N records will be copied.  
This action is useful in entity conversion flows where the original entity is converted to another and therefore all entities related to the old one can be transferred/copied into the new one. (Figure 1)  
Ex. In a process of conversion from lead to contact/company all the entities that were linked to the old lead can be transferred/copied to the new contact/company.  
Finally you can delete the lead without losing therefore all the actions that were connected to it.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/GFmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/GFmimage.png)  
Figure 1

# 3.13 Insert Table Row and Insert Product Row

**INSERT TABLE ROW**

This action allows you to insert rows in a table field (Figure 1 and 2)

NOTE: if there is no table field in the main entity involved in the process and its related module, the action will not be visible among the list of actions selectable via the "New Action" button.

The values entered can be static and/or dynamic (taken from the entities involved in the process).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/RQyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/RQyimage.png)  
Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/lPEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/lPEimage.png)

Figure 2

**INSERT PRODUCT ROW**

This action allows you to insert rows in a product block (Figure 3 and 4)

NOTE: if there is no product block in the main entity involved in the process and its related module, the action will not be visible among the list of actions selectable via the "New action" button.

The values entered can be static and/or dynamic (taken from the entities involved in the process).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/B92image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/B92image.png)  
Figure 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/tvYimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/tvYimage.png)

Figure 4

# 3.14 Copy the Products Block

This action allows you to copy the product block between entities involved in the process. (Figure 1)  
N.B: both entities must have a product block.

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

 Figure 1

All the fields present in standard will be copied automatically, instead custom fields will only be copied if there is a specific mapping within the "Field Mapping" section that can be configured directly from the products block of the Layout Editor of the module involved. (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/6kSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/6kSimage.png)  
Figure 2

# 3.15 Call External Web Service

Allows you to call an external REST-type Web Service previously configured in Settings -&gt; Business Process Manager -&gt; REST Webservice. (Figure 1 and 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/E12image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/E12image.png)Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/gM8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/gM8image.png)  
Figure 2

\- **Name** → Allows you to define a name for the WS we are configuring, useful for:  
1\) making its selection easier and more intuitive on the process side  
2\) making it easier to recognize in the list of WS for possible modification on the interface side

\- **Description** → Allows you to define a description for the WS we are configuring, useful for entering detailed specifications regarding its operation

\- **Active** → If set, allows its use on the process side

\- **Type** → Allows you to define the type of WS to call; currently, only "REST" is available.

\- **Method** → Allows you to define the HTTP method to use for the request. You can select one of the following values: "GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"

\- **Address** → Allows you to define the endpoint of the WS we are configuring, such as [https://mywebsite.example.com/api/](https://mywebsite.example.com/api/)

\- **Authentication** → Allows you to define the authentication method used to invoke the WS, specifically:

1\) Basic: Allows you to define a username and corresponding static password with which the WS will perform authentication

2\) Bearer (OAuth2): Allows you to perform two-factor authentication

\- Client ID: Represents the ID used to access the application

\- Client Secret Authentication: Represents the secret key used for proper authentication

\- Private Key Authentication (PEM or JWK): Allows you to upload a PEM or JWK file representing the private key used for proper authentication

\- Scope: Allows you to define the scope, i.e., which operations are permitted by the system (read-only, write-only, or read/write)

\- Token URL: Allows you to define the URL to use as the token

\- **Headers** → Allows you to define the header parameters required by the WS we are configuring

Typically, the need for These parameters depend on the structure of the WS and are therefore defined in its dedicated documentation.

\- **Parameters** → Allows you to define the input parameters required by the WS we are configuring.  
Typically, the need for these parameters depends on the structure of the WS and is therefore defined in its dedicated documentation.

\- **Raw body** → Allows you to pass a single string in JSON format containing all the input parameters required by the WS we are configuring.

Usually, the need to map this section depends on the structure of the WS and is therefore defined within its dedicated documentation.

\- **Return Fields** → Allows you to save N parameters returned as output from the WS.

Usually, the need for these fields depends on the WS structure and is therefore defined in its dedicated documentation.

In the case of complex responses (object with multiple attributes) it is possible to perform a multi-level extraction (indicating the returned field name and attribute, e.g. object.attribute, object.list.0.attribute).

Let's consider the following JSON as an example:  
{  
"object1":{  
"attribute1" : "value1",  
"attribute2" : "value2",  
"attribute3" : "value3",  
},  
"object2" : "value4"  
}

To directly obtain the value of the "attribute2" parameter as a response, you will need to perform the configuration shown in Figure 3.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/bg8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/bg8image.png)

Figure 3

\- **Test Web Service** button → Allows you to run a test call, returning a popup with the Return Code, Response Message, Status, and the expected Output from the WS.

Therefore, once the WS has been configured in Settings -&gt; Business Process Manager -&gt; REST Web Service, it will be possible to call this WS within processes (Figures 4, 5, and 6).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/mANimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/mANimage.png)  
Figure 4

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/HBIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/HBIimage.png)  
Figure 5

To better explain how to configure this action within a process, an example of configuring a WS call is shown below.

The goal of the process is to generate, upon activation of a collaborator on Vtenext, a user on an external system associated with it.  
The WS requires input of JSON with the following structure:  
{  
"firstname": "Mario",  
"lastname": "Smith",  
"type": "Internal Employee",  
"email": "mariorossi@test.com",  
"status": "Active"  
}

If successful, the response code = 201 will be returned, along with a JSON output containing several variables, including the ID of the created user. Below is an example of the JSON:

{  
"firstname":"Mario",  
"lastname":"Smith",  
"type":"Internal Employee",  
"email":"mariorossi@test.com",  
"status":"Active",  
"id":"532",  
"createdAt":"2025-07-03T13:05:11.752Z"  
}

First, in Settings -&gt; Business Process Manager -&gt; REST Web Service, we perform the initial configuration. of the WS (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Ykqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Ykqimage.png)

Figure 6

Next, we create a process having the flowchart shown in Figure 6:

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Bweimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Bweimage.png)

In the "WS Call" ServiceTask, we configure the external WS call action. (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Dcyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Dcyimage.png)Figure 7

The system automatically returns all the elements configured in Settings -&gt; Business Process Manager -&gt; REST Webservice.  
In addition, you can define additional Headers, Parameters, and Return Fields, allowing you to pass dynamic values from the records involved in the process.

WARNING! → In some cases, the Header parameters inherited from the configuration performed in Settings -&gt; Business Process Manager -&gt; REST Webservice will be set to blank by default (Figure 8).

[![GBSimage.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/gbsimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/gbsimage.png)

Figure 8

Therefore, for the WS call to work correctly, you must select one of the "Default" options available in the "Select Options" picklist at the top right of each field. (Figure 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/MaOimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/MaOimage.png)

Figure 9

In the Raw Body, we modify the original JSON by dynamically inserting the content of the fields in the Collaborator form associated with the process.

In the "Historicize WS Response" ScriptTask, we activate a process helper and create four text fields in its dynamic form (Figure 9).

In fact, the default WS call returns the variables "Response Code," "Response Message," and "Successful Outcome?" (1 if the call was successful, 0 if it was unsuccessful).

Finally, we create the "id" field, in which we will store the expected output from the WS in question, i.e., the external ID of the created user.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/cxhimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/cxhimage.png)

Figure 10

To map the content, within the "Select Options" picklist, the system provides a dedicated section for WS calls with their corresponding metaID (Figure 11).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/rX6image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/rX6image.png)

Figure 11

In the "WS Call Check" task, we check the contents of the "Response Code" and "Successful Result?" fields and route the process into two different branches (Figure 12).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/QHGimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/QHGimage.png)

Figure 12

The final "OK" and "KO" ScriptTasks shown in the process flowchart can be configured as desired, for example, to log the WS output (i.e., the ID of the user created in the external system) in a dedicated field in the employee's profile, or to send an email/notification to the IT department in the event of a failed call.

# 3.16 Cycle Related Records

This action allows you to use records (instances of a module) that have a 1- N or N - N relationship with the starting module.

In order to use the data of the records cycled within the action, the system provides (in the "Select option" picklist) a dedicated section (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/aB4image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/aB4image.png)

Figure 1

By clicking on the specific section, the system allows you to quickly select one of the fields present in the related module being examined (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/A2himage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/A2himage.png)

Figure 2

NOTE: the system automatically performs a filter based on the starting field from which you are consulting the "Select options" picklist, consequently it will only show the fields whose typology can be accepted by the starting field.  
If, for example, inside the "Member of" field of the Company module you wanted to insert the content of the text type "Address" field, the system will not make this field available, this is because it will only allow you to select the "Related to" type fields.

Once you have selected the field of the related module you are cycling, a further picklist will be presented to the right of the "Select options" field, from which you will be able to select one of the available items (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/1jZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/1jZimage.png)

Figure 3

\- "**Sum**" -&gt; only for fields of type Number, Currency and Percentage, allows you to obtain the sum of ALL records of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.  
To learn more about managing the partial sum of the records of the related module concerned (connected to the starting module), see chapter 9.1 of the process manual.  
PLEASE NOTE: this item will still be available for other types of fields but, logically, it will not produce any results.

\- "**Minimum**" -&gt; only for fields of type Number, Currency and Percentage, allows you to obtain the lowest value among ALL records of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.  
PLEASE NOTE: this item will still be available for other types of fields but, logically, it will not produce any results.

-"**Maximum**" -&gt; only for fields of type Number, Currency and Percentage, allows you to obtain the highest value among ALL records of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.  
NOTE: this item will still be available for other types of fields but, logically, will not produce any results.

-"**Average**" -&gt; only for Number, Currency and Percentage fields, allows you to obtain the average value of ALL records of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.  
PLEASE NOTE: this item will still be available for other types of fields but, logically, it will not produce any results.

-"**Last**" -&gt; allows you to obtain the value of the last record of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.

-"**Current**" -&gt; allows you to obtain the current value, i.e. the value of the record of the related module concerned (connected to the starting module) that is being cycled at that precise moment  
ATTENTION! -&gt; This item is the only one that respects the conditions entered in the "Conditions" section.

-"**Sequence**" -&gt; allows you to obtain the value of a specific record (if present) of the related module concerned (connected to the starting module).  
ATTENTION! -&gt; This item ignores the conditions entered in the "Conditions" section.  
To indicate the exact number of the record, you will have to fill in the field that will be presented on the right and finally click on the dedicated button (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/zepimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/zepimage.png)

Figure 5 (click on the image for a higher graphic resolution)

For each cycled record, you can perform one of the following operations:

**Send email**

Allows you to send an email for each record that meets the conditions set in the "field conditions" section. (Figure 6)  
To consider all the records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/hSdimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/hSdimage.png)

Figure 6

**Create entity**

Allows you to create an entity of any form (standard or custom) for each record that meets the conditions set in the “Field conditions” section. (Figure 7)  
To consider all records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Zygimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Zygimage.png)

Figure 7

**Update entity**

Allows you to update an entity involved in the process for each record that meets the conditions set in the “Conditions” section. (Figure 8)  
To consider all records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/zzkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/zzkimage.png)

Figure 8

**Send notification**

Allows you to send a notification for each record that meets the conditions set in the “Field conditions” section. (Figure 9)  
To consider all records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/oucimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/oucimage.png)

Figure 9

**Insert table row**

Allows you to insert a row in a table field present in the entities involved in the processes or in the process helper forms for each record that meets the conditions set in the “Field conditions” section. (Figures 10 and 11)  
To consider all the records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/1Climage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/1Climage.png)

Figure 10

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/gYWimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/gYWimage.png)

Figure 11

**Create PDF**

Allows you to create a PDF for each record that meets the conditions set in the “Field Conditions” section. (Figure 12)  
To consider all records, simply leave that section unfilled.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/M9Timage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/M9Timage.png)

Figure 12

**SDK Functions**

Allows you to launch an SDK function of the Action type for each record that meets the conditions set in the “Field Conditions” section. (Figure 13 and 14)

N.B.: this feature is only available from version 25.02 onwards.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/777image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/777image.png)

Figure 13

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/slbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/slbimage.png)

Figure 14

# 3.17 Import Actions from...

This feature allows you to duplicate an action that has already been configured, either within the same Action Task or in another task within the same process.

It is a highly useful and practical tool when you need to create an action similar to an existing one, as it avoids the need to reconfigure its entire content from scratch.

To duplicate an action, click the "Import actions from..." button located at the top right of each Action Task. (Figure 1)

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

Figure 1 (click the image for higher resolution)

The system will display the list of all actions configured within the process, and you will be able to select those to be duplicated—including multiple actions simultaneously, if necessary. (Figure 2)

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

Figure 2 (click the image for higher resolution)

Upon saving, the newly selected actions will be generated, and the tag \[imported\] will be added to the Description. (Figure 3)

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

Figure 3 (click the image for higher resolution)

At this point, you can make the necessary changes to the content of the newly duplicated action by entering edit mode for that action.

# 4 Process Helper: Header Field Configuration

# 4.1 Assigned to

It represents the assignee of the process helper, so in our case the user who will be shown and asked to fill in the dynamic form (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/RP9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/RP9image.png)

Figure 1

Based on the value set in the initial picklist, it is possible to insert different types of assignees (static or dynamic), namely:

\- **User** → allows you to select a static user existing in the CRM (see Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/6kKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/6kKimage.png)

Figure 2

\- **Group** → allows you to select an existing static group in the CRM (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Cppimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Cppimage.png)

Figure 3

\- **Other** → allows you to select a user or dynamic group by fishing from the modules involved in the process (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/OIgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/OIgimage.png)

Figure 4

\- **Advanced** → Allows you to define a different assignee (static or dynamic) when certain conditions occur.

To proceed with the configuration, click the button with the 3 horizontal dots (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/oqcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/oqcimage.png)

Figure 5

Next, by clicking on “Add rule” (Figure 6) and then on “New group” (Figure 7), you can indicate the various conditions on the fields of the modules involved in the process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/SVwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/SVwimage.png)

Figure 6

After clicking the “Save” button (Figure 8) you can indicate the assignee who will be selected when the previously entered condition occurs (Figure 9).  
Once saved, to insert a new rule you will have to click the “Add rule” button again, instead you will have to click on “Save” to proceed with the configuration of the process helper.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/pEqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/pEqimage.png)  
Figure 8

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Zuvimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Zuvimage.png)

Figure 9

\- **Email** → allows you to define an address (static or dynamic) to which an email will be sent containing a link to a landing page from which it will be possible to fill out the dynamic form (Figure 10)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/iV9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/iV9image.png)

Figure 10

Once this item is selected, additional fields will appear within the process helper to collect the minimum information needed to send the email (Figure 11)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qclimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qclimage.png)

Figure 11

Specifically:  
\- **Mail subject** → allows you to define the subject of the email to be sent to the assignee

\- **Mail sender** → allows you to define the sender of the email to be sent to the assignee  
NOTE: it must be the address of the account configured in Settings → Other settings → Mail Server

\- **Mail message** → allows you to define the body of the email to be sent to the assignee (to which the link to access the landing page and fill out the dynamic form will be added)

\- **The link will be valid until** → allows you to define a maximum validity time of the link to access the landing page and fill out the dynamic form

\- **Request confirmation by email** → allows you to send a further email after filling out the dynamic form in order to show the summary of the data entered and possibly give the possibility to modify them (Figure 12)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/00Himage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/00Himage.png)Figure 12

\- **Business Portal** → allows you to define the ID of a Contact or Company that must be associated with a Business Portal user (Figure 13).

[![Screenshot 2025-06-10 180546.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/screenshot-2025-06-10-180546.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/screenshot-2025-06-10-180546.png)

Figura 13

# 4.2 Related to

It represents the specific record to which the process helper will be attached and on which the dynamic form will be displayed (Figure 1).  
P.S.: As it is a relationship field, only the IDs of the relevant records can be entered into it.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Un8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Un8image.png)

Figure 1

As of version 26.04, the content of this field is automatically populated with the crmid of the main entity involved in the process.

# 4.3 Status

It represents the status of the process, the value “In progress” is automatically proposed (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/VTJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/VTJimage.png)

Figure 1

NOTE: from the moment a process helper is activated within a process, from that moment on the management of the state becomes “manual”, therefore it will be managed until the end through the use of other process helpers.

Specifically, within each single configured EndEvent, it will be necessary to activate a process helper to force the state to “Terminated” in order to correctly close the process (Figure 2).

Otherwise, the process will still end its flow but the “Status” will remain “In progress” creating potential inconveniences for the assigned users.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/f5Mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/f5Mimage.png)Figure 2

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/TYdimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/TYdimage.png)  
Figure 3

# 4.4 Process name

It represents the Name of the process (which by default will always be the one defined in the “Name” field of the process).  
By inserting a value in this field it will be possible to temporarily modify the name of the process in order to insert a title more appropriate to what is requested from the user in this specific step of the flow, in order to give a further indication to the assignee of the process helper (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qljimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qljimage.png)  
Figure 1

# 4.5 Requested action

It represents a free text field that will be shown to the user assigned to the process helper.  
It will be possible to insert precise indications on the activities that must be carried out by the user (Figure 1 and 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/47qimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/47qimage.png)Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/exTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/exTimage.png)Figure 2

# 4.6 Show in related entity flag

Allows you to generate a preview mask that can be viewed directly from the detail of the record connected to the process helper (Figure 1 and 2)  
To proceed with the compilation of the dynamic form, you will have to click on the “Compile” button.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/fomimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/fomimage.png)  
Figure 1 (click on the image for a higher graphic resolution)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/h1Dimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/h1Dimage.png)  
Figure 2 (click on the image for a higher graphic resolution)

# 4.7 2-Factor authentication flag

Allows you to request 2-factor access to confirm and save the data entered in the dynamic form of the process helper (Figure 1, 2 and 3).  
In order to use it, the user assigned to the process helper must have 2-factor authentication activated in their user preferences.  
For further information on the activation procedure and the related usage possibilities, see chapter 2.7.2 of the Vtenext general manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/uGfimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/uGfimage.png)Figure 1 (click on the image for a higher graphic resolution)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/04pimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/04pimage.png)  
Figure 2 (click on the image for a higher graphic resolution)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/jfnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/jfnimage.png)  
Figure 3 (click on the image for a higher graphic resolution)

# 4.8 Show documents of the related entity flag

Allows you to view all the records in the "Documents" module related to the entity (instance of a module) connected to the Process helper, then inserted in the "Linked to" field. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/IETimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/IETimage.png)

Figure 1 (click on the image for a higher graphic resolution)

This feature is more effective in dynamic forms where the "Show in linked entity" flag has been checked, as the documents will be shown in an additional section within the popup. (Figure 2)

NOTE: even if there are spaces inside the additional section to perform filters on the various columns, in practice this is a feature that is not currently supported, so to search for a specific document it is recommended to manually scroll through any N pages present.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/oxeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/oxeimage.png)

Figure 2 (click on the image for a higher graphic resolution)

Instead, in dynamic forms where the "Show in the linked entity" flag has NOT been checked, to view the documents you will have to access the record detail of the Processes module (Figure 3 and 4).  
Alternatively, you can look at the documents directly from the record linked to the process helper.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/BV5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/BV5image.png)Figure 3 (click on the image for a higher graphic resolution)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/XFSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/XFSimage.png)  
Figure 4 (click on the image for a higher graphic resolution)

# 5 Process Helper: Dynamic Form Configuration

# 5.1 Block and field management

It allows the creation of real customized forms aimed at receiving and historicizing the data entered (in this case) by CRM or external users (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/U4Zimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/U4Zimage.png)

Figure 1

The configuration interface is identical to the Layout Editor section used for configuring modules (chapter 17.7 of the Vtenext general manual).

**“ADD BLOCK” BUTTON**

Using the “Add block” button, it will be possible to create a block, or the “base” within which individual fields or tables can be created (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/WVhimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/WVhimage.png)

Figure 2

Once a block has been created, a series of buttons will be made available to the right of the block name for creating/moving/deleting individual fields within it (Figure 3).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/QVoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/QVoimage.png)

Figure 3

Specifically:

\- **Edit** button → allows you to change the block name (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/WJoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/WJoimage.png)

Figure 4

\- **Trash** button → allows you to delete the block (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/99yimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/99yimage.png)

Figure 5

\- **Add field** button → allows you to create a field of one of the different types available (Figure 6), for further information see the section “Custom field types” of chapter 17.7 of the general Vtenext manual

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/xiyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/xiyimage.png)

Figure 6

\- **Add relation field** button → allows you to quickly create a field of the “Related to” type (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/eDWimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/eDWimage.png)

Figure 7

-**Add Table Field** Button → allows you to quickly create a table field (Figure 8 and 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/fGVimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/fGVimage.png)

Figure 8

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/xmDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/xmDimage.png)

Figure 9

-**Move Fields** button → allows you to move individual fields from one block to another of the same dynamic form (Figure 10)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/hLsimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/hLsimage.png)  
Figure 10

# 5.2 Managing Properties of Individual Fields

To manage the properties of individual fields in the dynamic form, you will need to click on the “Edit” button to the right of the field name (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/OiIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/OiIimage.png)  
Figure 1

Specifically, you can manage the following properties: - Default Permissions → by filling in the “Permissions” picklist you can select one of the following items: “Read / Write”, “Read Only”, “Hidden” (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/LYoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/LYoimage.png)  
Figure 2

To set mandatory permissions instead, you will have to select the “Mandatory” flag (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/1nBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/1nBimage.png)

Figure 3

\- Default Value → by filling in the “Default Value” field it will be possible to indicate a static or dynamic default value (by choosing from the “Select Option picklist”) (Figure 4)

![](https://usermanual.vtenext.com/uploads/images/gallery/2024-09/embedded-image-ecekk5zw.png)  
  
Figure 4

\- Values ​​mode → this is an exclusive feature for “Picklist” type fields.  
It allows you to choose whether to specify static values ​​as components of the picklist (by selecting the “Specify values” item, Figure 5) or whether to inherit the values ​​of an existing picklist on one of the modules involved in the process or present in the CRM (by selecting the “Inherit from a field” item, Figure 6).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/LCHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/LCHimage.png)  
Figure 5

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/yDFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/yDFimage.png)

Figure 6

NOTE: within the processes it is possible to separate the process into different branches that are traversed by the flow based on the conditions that occur within it.  
For this reason, when configuring this functionality, it is good to pay particular attention to the sources from which we are going to obtain the values ​​to inherit.  
In fact, in the case in which the values ​​of a field are inherited by fishing it from an instance involved in the process, it must be ensured that that instance is actually always involved in the entire path that then leads to the process helper, otherwise there is a risk that the system will not return anything because, in that specific branch traversed by the process, the instance of that module does not exist.  
For example, if the process is divided into 2 different branches, in which in the first there is a create entity action on the companies module and in the second instead the process helper that we are configuring, if we go to fish the values ​​to inherit by pointing to the company created by the create entity action we will not obtain any value, this is because in the path that leads to the process helper that company is not created.  
So in this case we will have to point to the variables linked to the generic modules present in the CRM (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/hkLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/hkLimage.png)  
Figure 7

# 5.3 Import Block from Dynamic Form

If the necessary blocks and fields already exist within another dynamic form, using the “Import from dynamic form...” button it will be possible to insert a copy of the block of a dynamic form present within the process into the dynamic form (including the fields present within it, Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qQGimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qQGimage.png)  
Figure 1

NOTE: All fields will be created with the following properties:  
-Default Permissions → Read Only  
-Default Value → variable that points to the content of the dynamic form field from which the copy was made

# 5.4 Import Block from Module

In the event that the necessary blocks and fields already exist within a module (standard or custom), using the “Import from module...” button it will be possible to insert a copy of the block of a module involved in the process into the dynamic form (including the fields present within it, Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/lhRimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/lhRimage.png)

Figure 1

NOTE: All fields will be created with the following properties:  
-Default Permissions → Read Only  
-Default Value → variable that points to the content of the field of the form instance from which the copy was made

# 5.5 Advanced Section

This section allows you to set advanced rules to manage the permissions for the fields of the dynamic forms involved in the process.

To access them, click the "Advanced" button available within any Action Task (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Frzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Frzimage.png)  
Figure 1

**CONDITIONAL FIELDS (ON FORM)**

Allows you to set up conditional field rules applicable to the instances of the forms involved in the process (Figure 2).  
These rules will be valid only during the duration of the process, in fact once it is finished they will be automatically deactivated.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/p53image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/p53image.png)  
Figure 2

To proceed with the creation of a rule, you will have to click the “New Rule” button.  
The system will ask you to enter a text description by filling in the “Rule” field.  
You will then have to select the instance involved in the process, indicate any Roles or Groups to which to limit the application of the rule, enter a condition (which must occur for the rule to be activated) and finally enter the permissions on the fields involved (Figure 3).

For further information on the configuration of conditional fields, consult section 17.4 of the Vtenext general manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/emRimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/emRimage.png)

Figure 3

NOTE: compared to the standard conditional fields, an additional column called “Value” is available from the process, which allows you to force the insertion of static or dynamic data within the selected fields (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/4a8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/4a8image.png)

Figure 4

**CONDITIONAL FIELDS ON DYNAMIC FORM (NOT SUPPORTED IN PORTAL MODE)**

Allows you to set conditional field rules applicable to the fields of a specific dynamic form present within the process (Figure 5).  
These rules will be valid only during the duration of the process, in fact once it is finished they will be automatically deactivated.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/FDNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/FDNimage.png)

Figure 5

To proceed with the creation of a rule, you will have to click the “New Rule” button.  
The system will ask you to enter a text description by filling in the “Rule” field.  
You will then have to indicate any Roles or Groups to which you want to limit the application of the rule, insert a condition (which must occur for the rule to be activated) and finally insert the permissions on the fields involved.

For further information on the configuration of conditional fields, consult section 17.4 of the Vtenext general manual.

To better understand how it works, below is an example of a Process Helper aimed at requesting the approval of an internal flow by filling in a single field called “Action” (Figure 6).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/IEQimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/IEQimage.png)

Figure 6

This is a picklist type field with the following 3 static values: “empty”, “APPROVATE” and “DO NOT APPROVE” and with mandatory permissions as Default (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/YEnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/YEnimage.png)

Figure 7

There is an additional field called “Reason for non-approval” that should be shown and filled in only if the user chooses the “DO NOT APPROVE” option.  
For this reason, the following conditional field rule on dynamic form has been created that allows you to hide the aforementioned field if the “Action” field has a value other than “DO NOT APPROVE”.

Therefore, in the “Advanced” → “Conditional fields on dynamic form” section, a rule called  
“If Action other than DO NOT APPROVE hide Reason for non-approval field” has been inserted (Figure 8).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/SQwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/SQwimage.png)

Figure 8

In the “Condition” section, the “Action” condition other than “DO NOT APPROVE” has been inserted (Figure 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/gweimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/gweimage.png)

Figure 9

In the “Fields to manage” section, only the “Managed” column was selected in the “Reason for non-approval” field (Figure 10)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Dh6image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Dh6image.png)

Figure 10

**ADVANCED PERMISSIONS**

Allows you to set complete visibility permissions on the instances of the modules involved in the process by specifying a user or a group (static or dynamic).

N.B: They will be valid even after the end of the process.

To proceed with the insertion of an advanced permission you will have to select an instance involved in the process, a user or group (static or dynamic) to apply it to and finally one of the available permissions (“Read/Write” and “Read Only”) (Figure 11).

Once you click the “Add Rule” button, the advanced permission will be saved and confirmed.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/ktMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/ktMimage.png)

Figure 11

# 6 Process Helper: Examples of Use

# 6.1 Example of using Process Helper to request internal user data

As anticipated in the introductory chapter, one of the most common uses of the process helper concerns the creation of customized forms that can be presented to internal users of the CRM in order to request and save information.

The blocks and fields that make up these forms are called "dynamic forms".

PREMISE: In order for a user to be able to view and fill out a dynamic form, he/she must have enabled the appropriate permissions on the profile side (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/2pOimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/2pOimage.png)

Figure 1

In order to configure a process helper, you must first configure an Action Task (create a link with a dedicated section) following the dedicated procedure (Figure 1).

NOTE: it is advisable to use the User Task symbol, as we are indicating an activity that will be charged to the user.

[![embedded-image-ffscqhqm.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/embedded-image-ffscqhqm.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/embedded-image-ffscqhqm.png)

Figure 2

After the User Task, in this specific case it is essential to create a Task within which to perform some checks to allow the process to stop and present the dynamic form (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Ij5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Ij5image.png)

Figure 3

Once inside the User Task (in our example “Process Helper”) in configuration mode, we will find the section called “Process Helper” with all the related fields (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/6RPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/6RPimage.png)

Figure 4

Once the main fields have been configured (Assigned to, Linked to, Action requested) we will create the necessary blocks and fields in the dynamic form in order to save the information that will be entered by the user (for more information on their configuration, see the chapter ...).

To better understand how it works, below is an example of a process helper aimed at requesting approval of an internal flow by filling in a single field called "Action" (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qBpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qBpimage.png)

Figure 5

This is a picklist type field with the following 3 static values: “empty”, “APPROVATE” and “DO NOT APPROVE” and with mandatory permissions as Default (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/v5himage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/v5himage.png)

Figure 6

In the associated Control Task (called “Process Helper Control”) a condition is indicated that allows the process not to continue with its flow until a value other than blank has been entered (which instead represents the default value of the picklist) (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Czqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Czqimage.png)

Figure 7

The two conditions inserted in separate groups allow the flow to be routed in two different paths based on the item selected by the user.

On the operational side, the process helper presents itself with a preview mask as shown in Figure 7, this is because the “Show in the linked entity” flag has been activated.

Figure 8

Starting with version 26.04, the preview display interface has been modified to correctly handle multiple dynamic forms active simultaneously on the same record.  
By default, they are displayed in "Slider" mode. (Figure 9)

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

Figure 9

By pressing the dedicated button, they can be viewed in "scrolling" mode. (Figure 10)

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

Figure 10

Clicking the Fill button displays a popup with the content of the dynamic form.  
The user simply has to fill in the “Action” field and finally click on the “Save” button (Figure 8)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/xMNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/xMNimage.png)

Figure 11

# 6.2 Example of using Process Helper to request external user data

As anticipated in the introductory chapter, one of the most common uses of the process helper concerns the creation of customized masks that can be presented to external users in order to request and save information.

The blocks and fields that make up these masks are called “dynamic forms”.

In order to configure a process helper, you must first configure an Action Task (create a link with a dedicated section) following the dedicated procedure (Figure 1).

NOTE: it is advisable to use the User Task symbol, as we are indicating an activity that will be carried out by the user.

[![embedded-image-tuhrfktx.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/embedded-image-tuhrfktx.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/embedded-image-tuhrfktx.png)

Figure 1

After the User Task, in this specific case it is essential to create a Task within which to perform some checks to allow the process to stop and present the dynamic form (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/rp3image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/rp3image.png)

Figure 2

Once inside the User Task (in our example “Process Helper”) in configuration mode, we will find the section called “Process Helper” with all the related fields (see Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/K4Aimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/K4Aimage.png)

Figure 3

Once the main fields have been configured (Assigned to, Linked to, Action requested) we will create the necessary blocks and fields in the dynamic form in order to save the information that will be entered by the user.

To better understand how it works, below is an example of a process helper aimed at requesting approval of a flow step by filling in a single field called “Action” (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/FJbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/FJbimage.png)

Figure 4

This is a picklist type field with the following 3 static values: “empty”, “APPROVATE” and “DO NOT APPROVE” and with mandatory permissions as Default (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/fbHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/fbHimage.png)

Figure 5

In the associated Control Task (called “Process Helper Control”) a condition is indicated that allows the process not to continue with its flow until a value other than blank has been entered (which instead represents the default value of the picklist) (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Accimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Accimage.png)

Figure 6

The two conditions inserted in separate groups allow the flow to be routed in two different paths based on the item selected by the user.

On the operational side, an email is sent to the address entered in the “Assigned to” field that has a button called “CLICK HERE” (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Hv2image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Hv2image.png)

Figure 7

Clicking the button opens a landing page with the content of the dynamic form.  
The user simply has to fill in the “Action” field and finally click on the “SEND” button (Figure 8)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Cy8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Cy8image.png)

Figure 8

Once saved, a warning message will be displayed on the landing page to indicate that the operation was performed correctly (Figure 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/2kNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/2kNimage.png)

Figure 9

# 6.3 Example of using Process Helper to request Business Portal user data

As anticipated in the introductory chapter, one of the most common uses of the process helper concerns the creation of customized forms that can be presented to Business Portal users in order to request and save information.

For details on the conditions and requirements to be able to activate the management of processes on the Customer Portal side, we recommend consulting chapter 18.3 of the general Vtenext manual.

The blocks and fields that make up these forms are called "dynamic forms".

In order to configure a process helper, you must first configure an Action Task (create a link with a dedicated section) following the dedicated procedure (Figure 1).

NOTE: it is advisable to use the User Task symbol, as we are indicating an activity that will be charged to the user.

[![embedded-image-igargp3j.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/scaled-1680-/embedded-image-igargp3j.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-05/embedded-image-igargp3j.png)

Figure 1  
  
After the User Task, in this specific case it is essential to create a Task within which to perform checks to allow the process to stop and present the dynamic form (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/1GMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/1GMimage.png)

Figure 2

Once inside the User Task (in our example “Process Helper”) in configuration mode, we will find the section called “Process Helper” with all the related fields (see Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/PARimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/PARimage.png)

Figure 3

Once the main fields have been configured (Assigned to, Linked to, Action requested) we will create the necessary blocks and fields in the dynamic form in order to save the information that will be entered by the user.

To better understand how it works, below is an example of a process helper aimed at requesting approval of a flow step by filling in a single field called “Action” (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/jA1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/jA1image.png)

Figure 4

This is a picklist type field with the following 3 static values: “empty”, “APPROVATE” and “DO NOT APPROVE” and with mandatory permissions as Default (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/GrNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/GrNimage.png)

Figure 5

In the associated Control Task (called “Process Helper Control”) a condition is indicated that allows the process not to continue with its flow until a value other than blank has been entered (which instead represents the default value of the picklist) (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/wRgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/wRgimage.png)

Figure 6

The two conditions inserted in separate groups allow the flow to be routed in two different paths based on the item selected by the user.

On the operational side, an email is sent to the address entered in the “Email” field of the Contact or Company entered in the “Assigned to” field of the Process helper that has a button called “CLICK HERE” (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/W4Oimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/W4Oimage.png)

Figure 7

Clicking the button opens the Business Portal and displays the process completion interface in the "Required Actions" section (Figure 8).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/YZoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/YZoimage.png)

Figure 8

The user will simply have to click on the “Fill” button (Figure 9), fill in the “Action” field and finally click on the “Save” button (Figure 10)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/ZnYimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/ZnYimage.png)

Figure 9

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/AkFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/AkFimage.png)Figure 10

# 6.4 Example of using Process Helper to activate Process Graph

Configuring a process helper within a process allows you to activate the section called “Process Graph” available in the “PROCESS GRAPH” tab of the details of each individual record (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/3Ikimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/3Ikimage.png)

Figure 1

From this screen you can view the path taken from start to finish and the users (called “Participants”) involved in the various Tasks/Action Tasks of the process (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/i2Jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/i2Jimage.png)

Figure 2

Also, since version 24.08, the individual Tasks/Action Tasks of the process that have already been executed are highlighted in yellow (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/RDPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/RDPimage.png)

Figure 3

Instead, the point where the process is located at that specific moment is highlighted in blue (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/RVtimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/RVtimage.png)

Figure 4

By clicking on each individual Task/Action Task it is possible to view the specific logs relating to those who performed the specific task and the relative time frame (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/0Rkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/0Rkimage.png)

Figure 5

From version 24.08, if a dynamic Form is configured in a Process helper, clicking on the related Action Task and then on “Details” will allow you to view its content (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/goSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/goSimage.png)

Figure 6

With a user with Administrator permissions, it is possible to perform direct maintenance on a single process instance by being able to move the point of execution of the flow forward (to avoid the execution of some Tasks/Action Tasks) or backward (to re-execute some Tasks/Action Tasks).

To proceed with these operations, you must click on “Force position” (Figure 7), then on the Task/Action Task on which you want to position the process (Figure 8), then on “OK” in the confirmation popup (Figure 9), then on “Continue execution” (Figure 10) and finally on “OK” in the confirmation popup (Figure 11).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/OTnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/OTnimage.png)  
Figure 7

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Xmeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Xmeimage.png)

Figure 8

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/oYCimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/oYCimage.png)  
Figure 9

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/jYpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/jYpimage.png)  
Figure 10

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/NBKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/NBKimage.png)  
Figure 11

In the re-executed Tasks/Action Tasks it is reported whether the execution was performed through a position force or not (Figure 12)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/NgCimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/NgCimage.png)

Figure 12

It is recommended to configure the aforementioned Process helper inside an Action Task inserted immediately after the Initial Condition Task to ensure that the graph is activated a few moments after the actual start of the process (Figure 13).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/NGoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/NGoimage.png)

Figure 13

To activate the Process helper, simply fill in the mandatory fields, namely the “Assigned to” and “Linked to” fields (Figure 14).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/omsimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/omsimage.png)

Figure 14

NOTE: to avoid encountering errors, it is recommended to insert in the Linked to field the ID of the instance of the main module involved in the process, i.e. the record on which the process was triggered, otherwise you risk inserting the ID of an instance that does not exist at that specific point in the flow.

# 6.5 Example of Process Helper usage for internal process use

As anticipated in the introductory chapter, one of the uses of the process helper concerns the creation of virtual spaces in which to store data or carry out operations necessary exclusively within the process (and which therefore would be useless to historicize in the CRM modules).

To proceed with the configuration of the process helper, you must first configure an Action Task (create link with dedicated section) following the dedicated procedure (Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/8eCimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/8eCimage.png)

Figure 1

NOTE: It is NOT mandatory to create a subsequent Task, since the checks that would be performed within it would not be aimed at stopping the process to present the dynamic form but rather to perform a simple check on the data present in the fields of the dynamic form (which we remind you were not entered directly by any user).

Once inside the Action Task (in our example “Dynamic support form”) in configuration mode, we will find the section called “Process Helper” with all the related fields (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/SEnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/SEnimage.png)

Figure 3

Once the main fields have been configured (Assigned to, Linked to, Action requested) we will create the necessary blocks and fields in the dynamic form based on the data we want to use or the calculations we want to perform.

To better understand how it works, below is an example of a process helper designed to calculate the difference in days between two dates and store the result in a field called "Calculation result", this to verify whether the two values ​​taken into consideration are equal or different (and consequently perform different actions) (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/kcPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/kcPimage.png)

Figure 4

This is a “Number” type field in which the SDK “Diff Date” function is inserted as a Default value, which allows you to perform the difference between two dates.

NOTE: By default, the system returns the result in seconds, but if you want to obtain the result in days, you must pass the word “days” as the third parameter, as done in this example (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/N1Dimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/N1Dimage.png)

Figure 5

In the associated Control Task (called “Dynamic Support Form Control”) two different groups of conditions are indicated that allow the process to take different paths based on the calculation result (Figure 6).

Specifically, it is checked whether the content of the “Calculation Result” field is equal to or different from 0, this is because if the two compared values ​​are equal the calculated difference will be equal to 0, otherwise it will be different from 0.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/VIuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/VIuimage.png)

Figure 6

# 7 Configuring a Basic Process

# 7.1 Configuring a Basic Process - Quote Approval

**FLOW DESCRIPTION**

When creating a quote with Quote Stage = “Created”, the process will be triggered and will present the members of the “Management” group with a process helper in popup mode, requesting their completion.

In case of confirmation, an internal notification will be sent to the assignee of the quote (which corresponds to the sales representative who is managing the quote).

Instead, in case of rejection, a notification email will be sent to the assignee of the quote (which corresponds to the sales representative who is managing the quote) containing any internal notes/comments useful for reviewing the quote.

If the popup is not completed by any user within two days, the system will send a reminder email to the members of the group.

In the event of an SMTP error in sending the non-approval email, the system will notify the members of the “IT Department” group by sending an internal notification.

**ELEMENTS REQUIRED IN THE PROCESS**

To do this process we will need the elements listed below:

-Condition Task

-Action Task

-Timer Boundary Event

-Gateway

-End Event

If their operation is not clear we recommend first consulting chapter 2 of the process manual.

**FLOW CHART CONFIGURATION**

We use the elements mentioned above to set up a diagram like the one shown in Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/1Rwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/1Rwimage.png)

Figure 1

CONFIGURATION OF INDIVIDUAL ELEMENTS OF THE FLOW

Let's proceed with the configuration of the individual elements that make up the process flow.

Let's start with the Condition Task "Create estimate".

In the "When to run the check" section, select the "At creation" option to start the process only when the estimate is created with Estimate Stage = "Created" (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/cHcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/cHcimage.png)

Figure 2

In the UserTask “PH approval request” we configure a process helper in order to request the user for the information necessary for the approval of the estimate.

**“Process Helper” block configuration:**

-in the “Assigned to” field we statically insert the “Direction” group

-in the “Linked to” field we insert the estimate ID

-in the “Process Name” field we indicate the name that will be assigned to the process in this specific step, then we insert the static part “PH approval request” followed by the value of the “Estimate Number” variable

-in the “Requested Action” field we insert a brief description of the activity to be performed

-we check the “Show in the linked entity” checkbox to activate the process helper popup mode

The result will be the one shown in Figure 3.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/4Mvimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/4Mvimage.png)

Figure 3

Dynamic form configuration:

In the dynamic form we create a single Block called “Quote Information” (see Figure 4) with the following fields:

1 “Action” (picklist field) with the following values: “empty”, “APPROVATE” and “DO NOT APPROVE” (see Figure 5)

2 “Internal Notes” (text area field)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/eSeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/eSeimage.png)  
Figure 4

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/j1Aimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/j1Aimage.png)

Figure 5

**Dynamic Form Reset Action Configuration**

Let's create a "Dynamic Form Reset" action to reset the values ​​of the fields in the form in the event that the process helper is forced to re-compile (see Figure 6).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/07Limage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/07Limage.png)

Figure 6

In the Condition Task “PH Control approval request” we are going to perform a check on the “Action” field of the process helper form to direct the process in the branch related to the value entered by the user (see Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/8whimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/8whimage.png)

Figure 7

In the lower right edge of the task we place a Timer Boundary Event (Figure 8) and proceed with its configuration by inserting a 2-day time interval (Figure 9)

For further information, consult chapter 2.3 of the process manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/Mcuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/Mcuimage.png)  
Figure 8

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/qxJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/qxJimage.png)Figure 9

We are going to connect the SendTask “Send reminder notification to Management” to the Timer Boundary Event in order to send an internal notification to the members of the “Management” group in the event that the process remains stuck on the Condition Task “PH control approval request” for more than 2 days (Figure 10)

For further information, see section 3.4 of the process manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/F75image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/F75image.png)

Figure 10

In the next gateway we associate each group of conditions (inserted in the Condition Task “PH Control approval request”) with the corresponding branch to follow (see Figure 11)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/PSIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/PSIimage.png)

Figure 11

**Configuration of the elements following the “APPROVE” branch**

In the SendTask “Send internal notification to quote assignee” we configure the sending of an internal notification to the quote assignee (which corresponds to the sales representative who is managing the quote) to notify him of the approval of the quote (Figure 12).

For further information, see section 3.4 of the process manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/UiKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/UiKimage.png)

Figure 12

The endEvent must also be configured, because we have involved a process helper in the process, so it is necessary to activate a process helper inside it to set the process status to “Terminated” (see Figure 13)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/50Iimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/50Iimage.png)

Figure 13

**Configuration of the elements following the “DO NOT APPROVE” branch**

In the SendTask “Send email to quote assignee” we configure the sending of an email to the quote assignee (which corresponds to the sales representative who is managing the quote) to notify him of the non-approval of the quote (Figure 14).

For further information, see section 3.5 of the process manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/874image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/874image.png)

Figure 14

In the "Support PH for collecting email sending results" ScriptTask, we activate a process helper to use its dynamic form to log the email sending result (Figure 15).

Specifically, for each "Send email" action configured within the process, the system provides the following two variables (Figures 16 and 17):

\- "Successful outcome?" → 1 is returned if there is NO SMTP error; otherwise, 0 is returned.

\- "Error message" → the description of the SMTP error encountered is returned.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/ictimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/ictimage.png)  
Figure 15

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/3Ybimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/3Ybimage.png)

Figure 16

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/WmRimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/WmRimage.png)

Figure 17

In the Condition Task “Check email sending result” we are going to perform a check on the “Positive outcome?” field of the process helper form to direct the process in the branch related to the email sending result (see Figure 18)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/IG1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/IG1image.png)

Figure 18

In the next gateway we associate each group of conditions (inserted in the Condition Task “Check email sending result”) with the corresponding branch to follow (see Figure 19)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/uveimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/uveimage.png)

Figure 19

Configuration of the elements following the “Ok” branch

The endEvent must also be configured, because we have involved a process helper in the process, so it is necessary to activate a process helper inside it to set the process status to “Terminated” (see Figure 20)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/UiPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/UiPimage.png)

Figure 20

Configuration of the elements following the “Ko” branch

In the SendTask “Send internal notification to IT department” we configure the sending of an internal notification to the “IT Department” group to report the anomaly found in sending the email (Figure 21)

For further information, see section 3.4 of the process manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/jZqimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/jZqimage.png)

Figure 21

The endEvent must also be configured, because we have involved a process helper in the process, so it is necessary to activate a process helper inside it to set the process status to “Terminated” (see Figure 22)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/UiPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/UiPimage.png)

Figure 22

# 7.2 Activation of a Basic Process - Approval of Quotation

Now let's proceed with the vision of the process in action.

We then create a new quote by entering the requested information (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/eRlimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/eRlimage.png)

Figure 1

After saving, the process will start by presenting a preview mask to each member of the “Direction” group (Figure 2).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/hguimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/hguimage.png)

Figure 2

However, the task described above will only be visible by entering the estimate's details, so in this case it is possible to fill in the process helper through the "Processes" section accessible from the top right menu. (see Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/EJlimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/EJlimage.png)

Figure 3

In fact, it contains all the pending processes assigned directly to the user or to any groups to which he or she belongs, so all you have to do is look for the line with the following information (see Figure 4):

-process name: “PH approval request QUO94”

-linked to: “New hour package for Alpha Beta” (i.e. the Subject of the estimate)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/o6Kimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/o6Kimage.png)

Figure 4

After that, simply click on the pencil to the left of the process name to be able to fill out the process helper (which will be displayed as if we were editing a module).

Once on the process helper form, the user will find themselves in front of the screen shown in Figure 5.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/jpsimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/jpsimage.png)

Figure 5

If you want to simulate the approval of a quote, click on the value “APPROVARE” and save the process helper.

The system will automatically send an internal notification to the quote assignee (Figure 6).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/sruimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/sruimage.png)

Figure 6

If you want to simulate a lack of approval of the estimate, click on the value “NOT APPROVE” and save the process helper.

The system will send an email to the assignee of the estimate (Figure 7).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/gvnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/gvnimage.png)

Figura 7

# 8 Advanced Process Configuration

# 8.1 Configuring an Advanced Process - Managing Installation Renewals

**FLOW DESCRIPTION**

When creating a new installation, the process will be triggered and will wait until the “Next renewal expiration date” is reached.

Once the established time condition has been verified, the process will present a process helper in pop-up mode and will request its completion by the installation assignee.

If the renewal is confirmed, a new renewal will be created, the “Next renewal expiration date” of the installation will be updated and finally the timer will return to wait until the “Next renewal expiration date” just entered is reached.

Otherwise, the process will end after updating the installation with the renewal refusal reason entered by the user.

**RENEWALS MODULE:**

In order to better historicize all the renewals performed, we create a “Renewals” module with an N to 1 relationship with the “Installations” module and composed of the fields shown in Figure 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/oXEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/oXEimage.png)

Figure 1

**INSTALLATIONS MODULE REQUIREMENTS**:

In the “Installations” module, we create the following fields:  
-”Next renewal expiration date” (date field)  
-”Reason for refusal of renewal” (text area field)

**ELEMENTS REQUIRED IN THE PROCESS**

To do this process, we will need the elements listed below:

-Condition Task

-Action Task

-Timer Intermediate Catch Event

-Gateway

-End Event

If their operation is not clear, we recommend first consulting chapter 2 of the process manual.

**FLOW DIAGRAM CONFIGURATION**

We use the elements mentioned above to set up a diagram like the one shown in Figure 2

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/scaled-1680-/IAoimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-06/IAoimage.png)

Figure 2

**CONFIGURATION OF INDIVIDUAL ELEMENTS OF THE FLOW**

Let's proceed with the configuration of the individual elements that make up the process flow.

Let's start with the Condition Task "Create new installation".  
In the "When to run the check" section, select the "At creation" option to start the process only when the installation is created.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/image.png)  
Figure 3  
  
In the “Process Graph” ScriptTask we configure a process helper that we will use to be able to display the process graph in the “Process Graph” tab of the connected entity (see Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ATEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ATEimage.png)Figure 4  
  
In the Timer intermediate catch event we set the following configuration:  
Wait 0 “Before” “Other” → variable “Next installation renewal date” (see Figure 5).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/YOSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/YOSimage.png)  
Figure 5  
  
In the ScriptTask “Update installation status to Out of Service” we configure an Update Entity action to set the installation status to “Out of Service” (see Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/P8Mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/P8Mimage.png)  
Figure 6

In the UserTask “PH renewal management” we configure a process helper in order to request the user for the information necessary for managing the renewal.

**“Process Helper” block configuration:**

-in the “Assigned to” field we insert the assignee of the installation

-in the “Linked to” field we insert the installation ID

-in the “Process Name” field we indicate the name that will be assigned to the process in this specific step, then we insert the static part “Renewal Management” followed by the value of the “Installation Name” variable

-in the “Requested Action” field we insert a brief description of the activity to be performed

-we check the “Show in the linked entity” checkbox to activate the process helper popup mode

The result will be the one shown in Figure 7.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/PTOimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/PTOimage.png)  
Figure 7

**Dynamic form configuration:**

In the dynamic form we create the following blocks:

A) “Installation Information” block (see Figure 8) with the following fields:  
1 “Installation Name” (text field)  
2 “Company” (picklist field)  
3 “Date to service” (date field)  
4 “Status” (picklist field)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Ymtimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Ymtimage.png)  
Figure 8

B) “Renewal Information” block (see Figure 9) with the following fields:  
1 “Renewals” table field (see Figure 10) with the following columns:  
1.1 “Renewal Name” (text field)  
1.2 “Start Date” (date field)  
1.3 “End Date” (date field)  
1.4 “Additional Notes” (text area field)  
N.B: We set the read-only permissions in both the table field and the individual columns since only past renewals will be reported in it  
2 “Action” (picklist field) with the following values: empty, “Renew” and “Do not renew” (see Figure 11)-“Number of Months for Renewal” (number field)  
3 “Additional Notes” (text area field)  
4 “Reason for Renewal Refusal” (text area field)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/GSWimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/GSWimage.png)  
Figure 9

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/2ofimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/2ofimage.png)

Figure 10

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/3Pmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/3Pmimage.png)

Figure 11

**Dynamic Form Reset Action Configuration**

Let's create a "Dynamic Form Reset" action so that at the next renewal the process helper can be filled again as the values ​​of the fields in the form will be reset (see Figure 12).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/7Fwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/7Fwimage.png)Figure 12

Conditional fields configuration on dynamic form

Let's set up a series of rules to manage the visibility permissions of the form fields in order to provide the user with a clearer and more efficient filling experience.

So let's create the following rules:  
-if Action equals Do not renew hide Number of months Renewal, Additional notes and put mandatory Reason for refusal of renewal (see Figures 13 and 14)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/jNmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/jNmimage.png)Figure 13

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/muyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/muyimage.png)  
Figure 14  
  
-if Past Renewals table field has 0 rows hide it (see Figures 15 and 16)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ixSimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ixSimage.png)  
Figure 15

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/1tzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/1tzimage.png)  
Figure 16  
  
-if Action equals Renew, set the Number of months of renewal as mandatory and hide the Reason for refusal of renewal (see Figures 17 and 18)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Obzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Obzimage.png)  
Figure 17

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/NGMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/NGMimage.png)Figure 18  
  
-if Action equals empty hide Number of months Renewal, Additional Notes and Reason for Renewal Refusal (see Figures 19 and 20)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/OsXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/OsXimage.png)  
Figure 19

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/yxmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/yxmimage.png)  
Figure 20

In the ScriptTask “Cycle renewals and insert into dynamic form” we configure an action to cycle related records and insert into the table field “Past Renewals” to give the user visibility of all past renewals (see Figure 21).   
Then in each column of the table field we insert the “current” value of the corresponding fields of the Renewals form (see Figure 22).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/xI1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/xI1image.png)  
Figure 21

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/XUTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/XUTimage.png)

Figure 22

In the Condition Task “PH renewal management control” we are going to perform a check on the “Action” field of the process helper form to direct the process in the branch related to the value entered by the user (see Figure 23)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/CEPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/CEPimage.png)Figure 23  
  
In the next gateway we associate each group of conditions (inserted in the previous task) with the corresponding branch to follow (see Figure 24)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/YFHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/YFHimage.png)  
Figure 24

**Configuring the elements following the “Do not renew” branch**

In the “Update renewal refusal reason” ScriptTask we configure an update entity action to update the “Renewal refusal reason” field of the installation with the content of the “Renewal refusal reason” field of the process helper form (see Figure 25).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/8uZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/8uZimage.png)  
Figure 25

The endEvent must also be configured, because we have involved a process helper in the process, so it is necessary to activate a process helper inside it to set the process status to “Terminated” (see Figure 26)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/vtvimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/vtvimage.png)  
Figure 26

**Configuring the elements following the “Renew” branch**

In the “Update installation data” ScriptTask we configure an update entity action to update the value of the following fields (see Figure 27):

-“Next renewal expiration date”: Now + variable of the “Number of months Renewal” process helper form  
-”Status”: “In Service”

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/p9Aimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/p9Aimage.png)Figure 27  
  
In the ScriptTask “Cycle previous renewals and deactivate them” we configure an action “Cycle related records and update entities” to update all renewals linked to the installation by setting their status to “Inactive” (see Figures 28 and 29)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/6iBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/6iBimage.png)Figure 28

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/vWgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/vWgimage.png)  
Figure 29  
  
In the “Create renewal and link it to the installation” ScriptTask we configure a create entity action to create a renewal form record and link it to the installation (see Figure 30).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/cx6image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/cx6image.png)Figure 30

In the ScriptTask “Update renewal name” we configure an update entity action on the renewal to update the “Renewal Name” field by inserting the contents of the field itself and then the contents of the “Renewal Number” variable.  
In this way, each renewal that will be created will have a first part composed of the word “Renewal” and a second part composed of a progressive dynamic number (Renewal Name). (See Figure 31)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Kdbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Kdbimage.png)  
Figure 31

# 8.2 Activating an Advanced Process - Managing Installation Renewals

Now let's proceed with the vision of the process in action.

We then create a new installation by entering the required information (see Figure 1).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/KFKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/KFKimage.png)

Figure 1

After saving, the process will start by positioning itself on the timer to wait for the “Next renewal expiration date” to be reached (26-02-2022).  
In fact, by observing the process graph, we can see that the timer in the diagram is surrounded by a blue outline. (see Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Q10image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Q10image.png)

Figure 2

Once the expiration date is reached, the process will automatically set the status to “Out of Service” and present a task to the installation assignee to fill out the popup to manage the next renewal.  
The popup can then be filled out by clicking on the “Fill Out” button to the right of the task (see Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/x7Nimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/x7Nimage.png)

Figure 3

However, the task described above will only be visible by entering the installation registry, for this reason it is possible in this case to compile the process helper through the "Processes" section reachable from the menu at the top right. (see Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/YwXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/YwXimage.png)

Figure 4

In fact, it shows all the pending processes assigned directly to the user or to any groups to which he belongs, so just look for the line with the following information (see Figure 5):

-process name: “Server Installation Renewal Management 1”

-connected to: “Server Installation 1”

After that, just click on the pencil to the left of the process name to be able to fill in the process helper that will be displayed as if we were editing a module.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Dkbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Dkbimage.png)

Figure 5

Once on the process helper form, the user will find themselves in front of the screen shown in Figure 6.  
Based on the value of the Action field, the previously created conditional fields will be activated, which will manage the permissions of the form fields involved in the rules.

N.B: Since no renewals have been made yet, the Past Renewals table has always been hidden through the conditional fields.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/mEpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/mEpimage.png)

Figure 6

If you want to simulate a renewal of the installation, click on the “Renew” value, in this way the system will show us the fields “Number of months Renewal” and “Additional notes” (see Figure 7).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/AWXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/AWXimage.png)

Figure 7

Once the 2 fields mentioned above are filled in, we save and the process will generate a renewal that will be automatically related to the installation (see Figure 8).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/fzAimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/fzAimage.png)Figure 8  
  
From the first renewal onwards the process helper will display the Past Renewals table field as shown in Figure 9

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/0ogimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/0ogimage.png)Figure 9

Simulating instead of not wanting to renew, we click on the value "Do not renew", the system will ask us to enter a reason for refusing the renewal (see Figure 10).  
Upon saving, the "Reason for refusing renewal" field of the installation will be populated.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/SIuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/SIuimage.png)Figure 10

# 9 Insights on Action Cycle Related Records in Processes

# 9.1 Partial sum of related records involved in a cycle

To perform the partial sum of the records of a specific module having a 1-N or N-N relationship with the starting module, it is not possible to use the "Sum" item, since the system will always take into account **ALL** related records.

Therefore, to obtain the desired result, you will have to configure a related record cycle action and for each row "Update entity", in this way we will save the total within a field of the starting module or a dynamic form (from version 24.08 onwards).  
Once you have inserted the condition in the "Field conditions" section to involve only the interested records in the cycle, in the update entity action you will have to use the SDK fieldAction Standard function "vte\_sum()" (for further information see chapter 12.1) to add (at each cycle) the value of the current record to the content that is already present in the field in which you are saving the result.

ATTENTION! -&gt; in the event that a process is configured that is triggered recurringly, to obtain the correct result you must set an entity update action that empties the content of the field in which you want to save the result.

EXAMPLE OF USE

To better understand how it works, below is an example of a related record cycle action on the Installations module (starting from the Company module) with which we want to calculate the sum of the "Number of annual maintenance" field only of the installations having the value "In Service" in the "Status" column and save the result in the "Total maintenance on active installations" field of the company (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/qORimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/qORimage.png)

Figure 1

Inside the process we configure an action to cycle related records (Installations) and for each row update entities of the "Companies" module (Figure 2 and 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/aINimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/aINimage.png)Figure 2

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/l8Rimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/l8Rimage.png)

Figure 3

In the "Field Conditions" section, we enter "Status" = "In Service" (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/iRnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/iRnimage.png)

Figure 4

Inside the "Tot maintenance on active installations" field we go to recall the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/vzlimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/vzlimage.png)

Figure 5

As the first parameter we insert the variable that identifies the content of the field "Tot maintenance on active installations" (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/XNiimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/XNiimage.png)

Figure 6

As a second parameter we insert the variable that identifies the current value of the "Number of annual maintenance" field of the installations involved in the cycle (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/XP5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/XP5image.png)

  
  
Figure 7

# 10 Insights into Using Table Fields in Processes

# 10.1 Insights into Using Table Fields in Processes

In order to be able to exploit its content within the processes, the system provides (in the "Select option" picklist) a dedicated section for each table field involved in the modules or dynamic forms associated with the process (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/VWtimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/VWtimage.png)

Figure 1

By clicking on a specific section, the system allows you to quickly select one of the columns present in the table field being examined (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/wCgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/wCgimage.png)

Figure 2

NOTE: the system automatically performs a filter based on the starting field from which you are consulting the "Select options" picklist, consequently it will only show the columns of the table field whose typology can be accepted by the starting field.  
If, for example, inside the "Member of" field of the Company module you wanted to insert the content of the text type column "Address", the system will not make this column available, this is because it will only allow you to select the columns of the table field of the "Related to" type.  
If there are no columns of this type, the system will not make the entire section of the table field available (Figure 3)3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/tzBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/tzBimage.png)

Figure 3

Alternatively, you can access the table field columns by selecting the section for the form where the table field is located and scrolling through the various available fields (Figure 4 and 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/xYMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/xYMimage.png)

Figure 4

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Ro2image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Ro2image.png)

Figure 5

Once the column of the table field of interest has been selected, an additional picklist will be presented to the right of the "Select options" field, from which it will be possible to select one of the available items (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/4HIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/4HIimage.png)

Figure 6

\- "**Sum**"-&gt; only for columns of the type Number, Currency and Percentage, allows you to obtain the sum of all the rows present in the table field concerned.  
NOTE: this item will still be available for the other types of columns but, logically, will not produce any results.

\- "**Minimum**"-&gt; only for columns of the type Number, Currency and Percentage, allows you to obtain the lowest value among all the rows present in the table field concerned.  
NOTE: this item will still be available for the other types of columns but, logically, will not produce any results.

-"**Maximum**"-&gt; only for columns of the Number, Currency and Percentage type, allows you to obtain the highest value among all the rows in the table field concerned.  
NOTE: this item will still be available for other column types but, logically, it will not produce any results.

-"**Average**"-&gt; only for columns of the Number, Currency and Percentage type, allows you to obtain the average value among all the rows in the table field concerned.  
NOTE: this item will still be available for other column types but, logically, it will not produce any results.

-"**Last**"-&gt; allows you to obtain the value of the last row in the table field concerned.

-"**Sequence**"-&gt; allows you to obtain the value of a specific row (if present) of the table field.  
To indicate the exact number of the row, you will have to fill in the field that will be presented on the right and finally click on the dedicated button (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/tDeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/tDeimage.png)

Figure 7

In the case where we want to take into consideration only a part of the rows present in the table field, we will necessarily have to use a row cycle action (for more information on how it works, see chapter 10.2 of the process manual)

This is because, if we do not perform a cycle on the table field, the system will always take into consideration **ALL** the rows present in the table field.

In fact, within a row cycle action, it will be possible to indicate conditions that will allow only the rows that satisfy them to be involved.  
These conditions must be indicated in the "Field Conditions" section (Figure 8)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/5XNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/5XNimage.png)

Figure 8

To use only the columns of the rows that are being cycled and that respect the conditions set, within the "Select" picklist available to the right of the "Select options" field it will be possible to select an additional item called "Current" (Figure 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/NX2image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/NX2image.png)

Figure 9

To better understand how it works, below is an example of a row cycling action on the "Locations" table field of the Company module (Figure 10) from which we want to create a record of the "Locations" custom module for each row having the value "IT" in the State column.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/pqyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/pqyimage.png)

Figure 10

Inside the process we configure a cycle rows action and for each row it creates entities of the custom module "Locations" (Figure 11)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/59wimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/59wimage.png)

Figure 11

In the "Field Conditions" section we enter State = "IT" while in the "Module" section we select the "Location" item (Figure 12)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/2Kzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/2Kzimage.png)

Figure 12

In the fields relating to the address of the Headquarters module, we insert the contents of the various columns, always selecting the "Current" item from the "Select" picklist available to the right of the "Select options" field (Figure 13)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/d6mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/d6mimage.png)

Figure 13

Resuming Figure 10, as a final result we will obtain the creation of two total records of the Locations module, the first record corresponding to the first row and the second record corresponding to the third row.

# 10.2 Partial sum of the rows of a table field involved in a loop

As anticipated in chapter 10.1, to perform the partial sum of the rows of a table field involved in a cycle, it is not possible to use the "Sum" item, since the system will always take into account **ALL** the rows present within the table field.

In fact, the "Sum" item is a variable available even if a cycle is not performed.  
Its existence is aimed at easily obtaining the sum of all the rows of a table field without necessarily having to configure a row cycle action.

So, to get the desired result, you will have to configure a row cycle action and for each row "Update entity", in this way we will save the total inside a field of a module or a dynamic form (from version 24.08 onwards).  
Once you have inserted the condition in the "Field conditions" section to involve only the interested rows in the cycle, in the entity update action you will have to use the SDK fieldAction Standard function "vte\_sum()" (for more information see chapter 12.1) to add (at each cycle) the value of the current row to the content that is already present in the field in which you are saving the result.

ATTENTION! -&gt; in the case in which you configure a process that is triggered recurringly, to get the correct result you must set an entity update action that empties the content of the field in which you want to save the result.

EXAMPLE OF USE

To better understand how it works, below is an example of a row cycling action on the "Participants" table field (Figure 1) of the Leads module from which we want to calculate the sum of the "Number" column only of the rows having the value "Reseller" in the "Type" column and save the result in the "Total Resellers" field (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/b3cimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/b3cimage.png)

Figura 1

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/FmRimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/FmRimage.png)

Figure 2

Inside the process we configure a cycle action rows and for each row update entities of the "Leads" module (Figure 3 and 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Wj4image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Wj4image.png)

Figure 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/D4Qimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/D4Qimage.png)

Figure 4

In the "Field Conditions" section, we enter "Type" = "Reseller" (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/iUpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/iUpimage.png)

Figure 5

Inside the "Total Resellers" field we call up the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 6)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/D2Uimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/D2Uimage.png)

Figure 6

As the first parameter we insert the variable that identifies the content of the "Total Resellers" field (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/zHnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/zHnimage.png)

Figure 7

As a second parameter we insert the variable that identifies the current value of the "Number" column of the rows of the table field involved in the cycle (Figure 8)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/PBwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/PBwimage.png)

Figure 8

Resuming Figures 1 and 2, as a final result we will obtain the sum of the "Number" column of the first and third row of the table field, which in our case corresponds to the value 8 (Figure 9)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/js9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/js9image.png)  
Figure 9

# 11 Process SDK: Installation and Configuration

Within processes, it is possible to call PHP functions in order to perform operations or use data not available in the BPMN engine standard.  
In particular, there are 3 different types of functions that can be registered and called at different points in the configuration of a process: Field Action, Task Action and Task Condition.

# 11.1 SDK Field Action

This type of function is normally used to enhance the fields of a record, dynamic form, etc. with values ​​calculated using the following method:

***SDK::setProcessMakerFieldAction($func, $src, $label, $parameters='');*** *$func : function name*  
*$src : file path containing the function*  
*$label : function label*  
*$parameters (optional) : static parameters (e.g. fixed field reference)*

*To unregister the file use:*

***SDK::unsetProcessMakerFieldAction($func);***  
*$func: function name*

These functions can be called from the appropriate “SDK Functions” sections available in the “Option Selection” drop-down menu located at the top right of each individual field.

N.B: All registered custom functions will always be inserted in the “SDK Functions” section, the “Date Functions” section is used exclusively to contain the php functions available as standard that concern the date fields.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Lciimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Lciimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/FjXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/FjXimage.png)

  
  
A concrete example of an SDK function of this type is the “sum()” function that returns the sum of the parameters (static or dynamic) passed.  
It is possible to store the result in a field of a dynamic form of a Process helper by inserting the function as a default value, or insert it directly into a field of a form using the standard actions of create or update entity.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/mGCimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/mGCimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/hWyimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/hWyimage.png)

**Example**

I am recording a function to calculate the percentage that will need the input parameters percentage and total.

```PHP
SDK::setProcessMakerFieldAction('vte_calculate_percentage','modules/SDK/src/ProcessMaker/Utils.php','Calculate percentage (percentage,total)');
```

In the implemented function I will then indicate the 2 parameters and return the result of the operation.

```php
function vte_calculate_percentage($percentage, $total) {
    global $engine, $current_process_actionid;
  
	$value = ($percentage / 100) * $total;
	return $value;
}
```

**N.B.** Inside the registered functions, the global variables $engine and $current\_process\_actionid are available.  
These respectively contain the object containing all the information relating to the process being executed and the id of the current action (e.g. Create entity, Update entity, ...)

# 11.2 SDK Action

It is a type of function that is used to create custom BPMN actions.

You can register new actions with the following method:

***SDK::setProcessMakerAction($func, $src, $label);***  
*$func : name of the function*  
*$src : path to the file containing the function*  
*$label : label of the function*

To unregister the file use:

***SDK::unsetProcessMakerAction($func);***  
*$func : name of the function*

Once registered, it is available for use in the "Action" section where all the other BPMN actions are present.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/a2wimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/a2wimage.png)

Furthermore, once we have chosen the function to call, if we manage input parameters in the function we have the possibility of passing them directly from the interface:

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/RuGimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/RuGimage.png)

**Example**

In the following example I record a function to add a guest to an event.

```PHP
SDK::setProcessMakerAction('vte_add_event_invitee', 'modules/SDK/src/ProcessMaker/Utils.php', 'Add invitee to event (event, user/contact)');
```

This function requires two parameters: the event id and the invitee id, which can be a user or a contact. For clarity, I also indicate the parameters in the function label in the registration command.

In the function that I will develop, the $event and $invitee parameters must be added, which will be populated with the values ​​passed by the action configuration interface.  
The first two parameters are fixed and are:  
$engine, the object containing all the information relating to the process that is being performed  
$actionid, the id of the current action

```php
function vte_add_event_invitee($engine, $actionid, $event, $invitee) {
    $engine->log('vte_add_event_invitee', "event:$event invitee:$invitee");
    
    if (strpos($event,'x') !== false) list(,$event) = explode('x',$event);
    if (strpos($invitee,'x') !== false) list(,$invitee) = explode('x',$invitee);
    
    $parent_module = getSalesEntityType($invitee);
    if ($parent_module == 'Contacts') {
        $_REQUEST['inviteesid_con'] = $invitee;
    } else {
        $_REQUEST['inviteesid'] = $invitee;
    }
    $focus = CRMEntity::getInstance('Events');
    $focus->retrieve_entity_info_no_html($event,'Events');
    $focus->mode = 'edit';
    $focus->save('Events');
}
```

If necessary, it will be possible to foresee within the function the return of a value that can then be recalled and saved within a field of a dynamic form or a module through the "Result" variable in the dedicated section available in the "Select option" picklist.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/JrZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/JrZimage.png)

# 11.3 SDK Task Condition

It is a type of function that is used to perform custom checks in process control tasks (conditional tasks).

To register them, use the method:

***SDK::setProcessMakerTaskCondition($func, $src, $label)***  
*$func : name of the function*  
*$src : path to the file containing the function*  
*$label : label of the function*

To unregister the file, use:

***SDK::unsetProcessMakerTaskCondition($func);***  
*$func : name of the function*

If you call on the “initial condition” task (task in which the process start rules are defined), it is possible to make the start of the process specific based on the returned result.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/UJximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/UJximage.png)If you call instead simple control tasks they allow you to make the process take different paths based on the returned result.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/4vEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/4vEimage.png)

Functions of this type will always be available in the form of variables that can be used to perform checks.  
A concrete example of an SDK function of this type is the “get\_running\_process\_current\_user” function that allows you to check whether the name of the current user is the same or different from the user defined in the condition.  
If used in the initial condition, it allows you to start the process only if the current user is the same as a specific user.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/qc9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/qc9image.png)

**Example**

I register a function to check if the company's billing address is the same as the shipping address.

```php
SDK::setProcessMakerTaskCondition('vte_compare_account_bill_ship_street', 'modules/SDK/src/ProcessMaker/Utils.php', 'Indirizzi di spedizione e fatturazione uguali [e/n]');
```

The implemented function contains the following parameters.  
*$module: module of the entity on which the condition is executed*  
*$id: identifier of the entity in ws format (e.g. 3x55126)*  
*$data: array with the values ​​of the fields of the record*

The function must return a string to be used for the interface-side comparison.

```php
function vte_compare_account_bill_ship_street($module, $id, $data) {
	list($wsModId,$id) = explode('x',$id);	// do it every time
	
	if ($data['bill_street'] == $data['ship_street']) {
		return 'e';
	} else {
		return 'n';
	}
}
```

At this point I can set up a process that starts when a company is created when the billing address is different from the shipping address.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/fwtimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/fwtimage.png)

# 11.4 Process SDK Registration Procedure

The procedure described below is the same for the 3 types of process sdk functions.

Suppose we need to create and register a “FIELD ACTION” type SDK function that allows you to perform the division between multiple values.  
Once written, **it must be inserted into the Utils.php file available in the modules/SDK/src/ProcessMaker path**.  
**It must then be registered through the following command to be inserted into the script.php file available in the plugins/script path**:

SDK::setProcessMakerFieldAction('function name','path','function label');

'function name' → name of the function  
'path' → path where the function to be registered is located  
'function label' → name with which the function will be displayed to the user in the processes section.

We then insert the command in the script.php file and compile it with the data from the SDK:

SDK::setProcessMakerFieldAction('division','modules/SDK/src/ProcessMaker/Utils.php','division(value1,value2,...)');

N.B: Each typology has its own dedicated command, so if we had to load an “ACTION” type SDK we should use the following command:  
SDK::setProcessMakerAction('function name','path','function label');

If instead we had to load an “TASK CONDITION” type SDK we should use the following command:  
SDK::setProcessMakerTaskCondition('function name','path','function label');

Once these steps are completed, just launch the script.php file and the function will be correctly registered.

# 12 Standard Process SDK: Description and Usage

# 12.1 SDK fieldAction: Sum

This SDK function allows you to perform the sum between 2 or more values ​​that must be passed as parameters.  
Being a fieldAction type function, it can be called within the individual fields of modules or dynamic forms.

EXAMPLE OF USE

To better understand how it works, below is an example of using the vte\_sum() function to perform the sum between the values ​​of two fields called "Estimated Development Hours" and "Estimated Training Hours" and save the result in the "Total Estimated Hours" field (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/1Animage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/1Animage.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Total Estimated Hours" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ghPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ghPimage.png)

Figure 2

Finally we pass as parameters (separated by commas) the contents of the two fields to be added (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/t2gimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/t2gimage.png)

Figure 3

# 12.2 SDK fieldAction: Difference

This SDK function allows you to perform the difference between 2 or more values ​​that must be passed as parameters.  
Being a fieldAction type function, it can be called within the individual fields of modules or dynamic forms.

EXAMPLE OF USE

To better understand how it works, below is an example of using the vte\_diff() function to perform the difference between the values ​​of two fields called "Expected hours" and "Used hours" and save the result in the "Remaining hours" field (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/plwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/plwimage.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Remaining Hours" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/xpLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/xpLimage.png)

Figure 2

Finally we pass as parameters (separated by commas) the contents of the two fields to be subtracted (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/27simage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/27simage.png)

Figure 3

# 12.3 SDK fieldAction: Multiplication

This SDK function allows you to perform the multiplication between 2 or more values ​​that must be passed as parameters.  
Being a fieldAction type function, it can be called within the individual fields of modules or dynamic forms.

EXAMPLE OF USE

To better understand how it works, below is an example of using the vte\_mul() function to perform the multiplication between the contents of the two fields called "Fixed cost per km: (€)" and "Number of km traveled" and save the result in the "Total cost: (€)" field (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/LB1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/LB1image.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Total Cost: (€)" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/OO7image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/OO7image.png)

Figure 2

Finally we pass as parameters (separated by commas) the two values ​​to be multiplied (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/GtJimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/GtJimage.png)

Figure 3

# 12.4 SDK fieldAction: Division

This SDK function allows you to perform the division between 2 or more values ​​that must be passed as parameters.  
Being a fieldAction type function, it can be called within the individual fields of modules or dynamic forms.

EXAMPLE OF USE

To better understand how it works, below is an example of using the vte\_div() function to perform the division between the "Estimated Development Hours" field and a fixed value of 8 (which represents the working hours in a day) and save the result in the "Estimated Development Days" field (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/XwQimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/XwQimage.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Estimated Development Days" field.  
Specifically, we go to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/C4Simage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/C4Simage.png)

Figure 2

Finally we pass as parameters (separated by commas) the two values ​​to divide (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/bxOimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/bxOimage.png)

Figure 3

# 12.5 SDK fieldAction: vte_json_column_fields

This SDK function allows you to generate a JSON code containing the labels and values ​​of the 2 or more fields passed as parameters.

As the first parameter, you must pass the crmid of the record from which you want to extract the information, instead as subsequent parameters you must pass the "fieldname" of the fields to be included, or the names in which those fields are registered in the Database.

NOTE: even if in the description of the function it is indicated to pass the parameters following the id by inserting square brackets, the latter must not be inserted.

It is mainly used to format a subset of data in order to perform REST-type Web Service calls (always configurable by process through the dedicated standard action "Call External Web Service").

For more information on configuring API calls from the process, please refer to chapter 3.15 of the process manual.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function vte\_json\_column\_fields() to generate a JSON code containing the following fields and values ​​of an instance of the Customer Service module involved in the process:

Title  
Status

Inside the dynamic form of a process helper, we proceed with the creation of a text area field called "Body JSON Format" in which the result of the function will be saved.  
Then we call the interested SDK function through the "Option Selection" picklist and access the "SDK Functions" section (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/bpYimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/bpYimage.png)

Figure 1

Finally we pass the parameters required by the function, all separated by commas.  
Specifically, as the first parameter we insert the crmid of the record from which we want to extract the information, so in our case the ticket id. (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/1tgimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/1tgimage.png)

Figure 2

Instead, as subsequent parameters, we insert the "fieldnames" of the fields to be involved, that is, the names with which those fields are registered in the Database.  
In our specific case, they will be "ticket\_title", "ticketstatus" and "ticketpriorities". (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/SVbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/SVbimage.png)

Figure 3

To easily obtain them, simply select the relevant field from the "Option Selection" picklist and delete the reference to the instance involved in the process, i.e. the metaid (Figure 4).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/SBUimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/SBUimage.png)

Figure 4

The generated JSON code will be as shown in Figure 5

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-09/scaled-1680-/q8Oimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-09/q8Oimage.png)  
  
Figure 5

# 12.6 SDK fieldAction: vte_json_string

This SDK function allows you to convert a string into JSON format by managing compatibility with special characters, so as to format them correctly and avoid conflicts with it.

It is mainly used to format strings in order to perform REST Web Service calls (always configurable by process via the dedicated standard action "Call External Web Service") without encountering syntax errors on the JSON.

Specifically, if the string contains special characters used in JSON syntax such as double quotes ("), slash (/) and backslash (\\), the function will automatically insert additional backslashes to prevent the JSON from generating an error.

As the only parameter, therefore, we pass the content of any field (as long as it is a string) or a simple static value.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function vte\_json\_string() to format the "Description" field containing the following string:

And \\ at that point / I told him: "Goodbye!" (Figure 1)

[![Screenshot 2025-07-10 171621.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/screenshot-2025-07-10-171621.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/screenshot-2025-07-10-171621.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Description" field.  
Specifically, we go to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/rQvimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/rQvimage.png)

Figure 2 (click on the image for a higher graphic resolution)

Finally we pass as the only parameter the content of the field to be formatted (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/6Knimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/6Knimage.png)

Figure 3

The result generated by the function will be as shown in Figure 4

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/DYpimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/DYpimage.png)

Figure 4

# 12.7 SDK fieldAction: vte_json_field_string

It is a function similar to vte\_json\_string(), in fact it allows you to convert a string in JSON format in the same way by managing compatibility with special characters, so as to format them correctly and avoid conflicts with it.

It is also mainly used to format strings in order to perform REST type Web Service calls (always configurable by process via the dedicated standard action "Call External Web Service") without encountering syntax errors on the JSON.

Specifically, if the string contains special characters used in JSON syntax such as double quotes ("), slash (/) and backslash (\\), the function will automatically insert additional backslashes to prevent the JSON from generating an error.

For more information on configuring API calls from the process, please see chapter 3.15 of the process manual.

The real difference lies in the parameters that can be entered in input.  
The first parameter is the crmid of the record from which you want to extract the information, while the second parameter is the "fieldname" of the field to be included, i.e. the name in which that field is registered in the database.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function vte\_json\_field\_string() to format the "City (Invoicing)" field of an instance of the Company module involved in the process containing the following string in JSON code:

"Verona" (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Lapimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Lapimage.png)

Figure 1

The result will then be saved inside the "Description" field.

Inside an Action Task we proceed with the configuration of an Update Entity action involving the "Description" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/XQ1image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/XQ1image.png)

Figure 2 (click on the image for a higher graphic resolution)

Finally we pass the parameters required by the function, all separated by commas.  
Specifically, as the first parameter we insert the crmid of the record from which we want to extract the information, so in our case the company id. (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/scaled-1680-/CM0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/CM0image.png)

Figure 3

Instead, as a second parameter, we insert the "fieldname" of the field to be involved, or the name with which that field is registered in the Data Base.  
In our specific case it will be "bill\_city". (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ynMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ynMimage.png)

Figure 4

To easily obtain it, simply select the relevant field from the "Option Selection" picklist and delete the reference to the instance involved in the process, i.e. the metaid (Figure 5).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Tgkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Tgkimage.png)

Figure 5

The result generated by the function will be as shown in Figure 6

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/scaled-1680-/ysaimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/ysaimage.png)  
  
Figure 6

# 12.8 SDK fieldAction: vte_json_record

This SDK function allows you to generate a JSON code containing the labels and values ​​of all the fields of a module instance (record) passed as input.

The only parameter to be passed is the crmid of the record from which you want to extract the information to be inserted into the JSON code.

It is mainly used to easily generate a JSON code in order to perform REST type Web Service calls (always configurable from the process via the dedicated standard action "Call External Web Service").

For further information on configuring API calls from the process, please consult chapter 3.15 of the process manual.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function vte\_json\_record() to generate a JSON code containing all the fields and values ​​of an instance of the Companies module involved in the process.

Within an Action Task, we proceed with the configuration of an Update entity action involving the "Description" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "SDK Functions" section (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ywZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ywZimage.png)

Figure 1 (click on the image for a higher graphic resolution)

Finally we pass as the only parameter the crmid of the record from which we want to extract the information, in this case of the Company (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/U7timage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/U7timage.png)

Figure 2

The result generated by the function will be as shown in Figure 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/scaled-1680-/4lPimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/4lPimage.png)

Figure 3 (click on the image for a higher graphic resolution)

# 12.9 SDK fieldAction: Format Date

This SDK function allows you to convert any date passed as input into a specific format.

As the first parameter, you must pass the value of a field of a module or dynamic form containing the date you want to format, instead as the second parameter you must pass the format according to the following syntax:

day / month / year (complete) -&gt; d-m-Y  
Example: 25-10-2024

month / day / year (complete) -&gt; m-d-Y  
Example: 10-25-2024

year (complete) / month / day -&gt; Y-m-d  
Example: 2024-10-25

year (complete) / day / month -&gt; Y-d-m  
Example: 2024-25-10

day / month / year (partial) -&gt; d-m-y  
Example: 25-10-24

month / day / year(partial) -&gt; m-d-y  
Example: 10-25-24

year(partial) / month / day -&gt; y-m-d  
Example: 24-10-25

year(partial) / day / month -&gt; y-d-m  
Example: 24-25-10

day / month / year(complete) hours / minutes / seconds -&gt; d-m-Y H:i:s  
Example: 25-10-2024 16:32:20

month / day / year(complete) hours / minutes / seconds -&gt; m-d-Y H:i:s  
Example: 10-25-2024 16:32:20

year(complete) / month / day hours / minutes / seconds -&gt; Y-m-d H:i:s  
Example: 2024-10-25 16:32:20

year(full) / day / month hours / minutes / seconds -&gt; Y-d-m H:i:s  
Example: 2024-25-10 16:32:20

hours / minutes / seconds -&gt; H:i:s  
Example: 16:32:20

day only -&gt; d  
Example: 25

month only -&gt; m  
Example: 10

year(full) -&gt; Y  
Example: 2024

year(partial) -&gt; y  
Example: 24

hours only -&gt; H  
Example: 16

minutes only -&gt; i  
Example: 32

seconds only -&gt; s  
Example: 20

N.B: a partial result will not be manageable within date or datetime fields, this is because they only accept values ​​with at least one day, month and year.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function formatDate() to format the value of the "Creation Period" field of an instance of the Companies module and save it within a field of a process helper.

Within the dynamic form we proceed with the creation of a date field called "Creation Date" in which the result of the function will be saved.  
Then we call the interested SDK function through the "Option Selection" picklist and access the "Date Functions" section (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/BAximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/BAximage.png)

Figure 1

Finally we pass the parameters required by the function, all separated by commas.  
Specifically, as the first parameter we insert the value of the "Creation Period" field (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Y4limage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Y4limage.png)

Figure 2

Instead, as a second parameter, we pass the format with which the function must return the date, so in our case d-m-Y (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/MYQimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/MYQimage.png)

Figure 3

The result will be as shown in figure 4

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Cdsimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Cdsimage.png)

Figure 4

# 12.10 SDK fieldAction: Now Date

This SDK function allows you to obtain and save today's date within any text, text area, date and datetime field.

By default (so without passing any parameter), the result will always be returned in the "d-m-Y" format, to obtain the date in a different format, the format will be passed as the only parameter of the function, to view the syntax of each available case in detail, consult the chapter ... of the process manual.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function date\_now() to save today's date within a field of a process helper.

Inside the dynamic form we proceed with the creation of a date field called "Today's date" in which the result of the function will be saved.

Then we call the interested SDK function through the "Option Selection" picklist and access the "Date functions" section (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/NTMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/NTMimage.png)

Figure 1

Finally, if necessary, we pass the format with which the date must be returned (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/o8kimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/o8kimage.png)

Figure 2

The result will be as shown in figure 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/c5eimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/c5eimage.png)  
Figure 3

# 12.11 SDK fieldAction: Diff Date

This SDK function allows you to perform the difference between two dates passed as input parameters.

As the first two parameters, separated by a comma, you will need to pass the values ​​of the two date type fields to be involved in the difference, but keep in mind that the function performs the following calculation:

parameter2 - parameter1

The second date parameter is not mandatory, so if you only pass a date value (parameter1), the calculation will be performed automatically taking today's date-time as the second parameter (parameter2).

By default (so without passing a third parameter), the function will always return the result of the calculation in seconds.  
Instead, to obtain the result in days, you will need to pass the fixed string "days".

ATTENTION! by default the function will always return only positive results, to enable the return of negative results you will need to apply a change to the php code.

EXAMPLE

To better understand how it works, here is an example of using the SDK function diffDate() to calculate the difference between the values ​​of two fields called "Start Date" and "End Date" and save the result (in days) in the "Time Range" field (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/scaled-1680-/T5Fimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/T5Fimage.png)

Figure 1

Within an Action Task we proceed with the configuration of an Update Entity action involving the "Time Range" field.  
Specifically, we are going to call the interested SDK function through the "Option Selection" picklist and accessing the "Date Functions" section (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Jb7image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Jb7image.png)

Figure 2 (click on the image for a higher graphic resolution)

N.B: in the label of the selectable function in the picklist "Select option.." the possibility of passing an additional parameter called "sla" is indicated, which by default is set to false, in fact it is only a typo, therefore it is an unmanageable parameter.

As the first and second parameters (separated by commas) we pass the values ​​of the "Start Date" and "End Date" fields in the order just mentioned (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/PYDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/PYDimage.png)

Figure 3

Finally as a third parameter we pass the fixed string "days" (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/N1vimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/N1vimage.png)

Figure 4

The result will be as shown in figure 5

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/pgcimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/pgcimage.png)

Figure 5

# 12.12 SDK fieldAction: Set lead converted

This SDK function allows the system to perform a series of automations that allow the correct and complete conversion of the lead.

In fact, this function can be used exclusively within the standard lead conversion process available in the "Process manager" section with the wording "Lead conversion". (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/8zbimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/8zbimage.png)

Figure 1 (click on the image for a larger graphic resolution)

The following operations are performed by the function:

1\) References to the lead in the vte\_email\_directory table are deleted

2\) If the lead is set among the favorites of some user, the function replaces it with the company or contact involved in the process depending on the value selected in the "Transfer elements linked to" field.  
N.B: if the "empty" value is selected, the lead will not be replaced.

3\) If the lead is present among the static newsletters of some campaign, the function replaces it with the company or contact involved in the process depending on the value selected in the "Transfer elements linked to" field.  
N.B: if the "empty" value is selected, the lead will not be replaced.

4\) The value of the "converted" column of the vte\_leaddetails table is set to "1".  
This allows you to completely hide the visibility of the lead on the interface side (as if it had been deleted).

5\) The vte\_leadconvrel table is populated to track the Conversion Date, lead crmid, company crmid, contact crmid and opportunity crmid.

The first parameter is the crmid of the lead being converted.

The second parameter is the crmid of the company (created or existing).

The third parameter is the crmid of the contact (if created).

The fourth parameter is the crmid of the opportunity (if created).

The fifth parameter is the id of the user who triggered the process.

To prevent the system from executing points 4) and 5) and therefore the lead from being hidden on the interface side, a sixth parameter must be added in which to insert the static value "false". (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/cTZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/cTZimage.png)  
Figure 2 (click on the image for a higher graphic resolution)

# Nuova pagina12.13 SDK fieldAction: vte_formula

This SDK function allows you to replicate the functionality of formula fields.

Consequently, you can use all algebraic operators within the formulas: plus (+), minus (-), divided by (/), and multiplied by (\*).

EXAMPLE 1

To better understand how it works, an example of using the `vte\_formula()` SDK function is provided below. This example calculates the content of the "Delta Budget Invoiced Open Order Value" field by applying the following formula:  
"Budget" - ( "Current Year Invoiced" + "Open Order Value" ) (Figure 1)

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

Figure 1

Within an Action Task, we proceed to configure an "Update Entity" action involving the field "Delta Budget Invoiced Open Order Value."  
Specifically, we call the relevant SDK function via the "Option Selection" picklist by accessing the "Date Functions" section (Figure 2).

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

Figure 2

The result will be like the one shown in Figure 3.

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

Figure 3

It is also possible to configure If/Else controls using the following structure:

**if** condition **then** true\_case **else** false\_case **end** (in this case, &gt;, &lt;, and == operators can be used; the != operator is not permitted).

EXAMPLE 2

To better understand how it works, an example is provided below showing the use of the SDK function `vte\_formula()` to insert the value "Mr." into the "Salutation Formula" field if the "Gender" field is set to "Male," or the value "Ms." otherwise. (Figure 4)

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

Figure 4

Within an Action Task, we proceed to configure an "Update Entity" action involving the "Salutation Formula" field.  
Specifically, we select the relevant SDK function via the "Option Selection" picklist by accessing the "Date Functions" section (Figure 5).

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

Selecting Gender = Male when adding a contact will result in the display shown in Figure 6.

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

Figure 6

It is also possible to perform operations using date-type fields; specifically, there are two operators:

**time\_diffdays**: returns the difference in days between two dates

**time\_diff**: returns the difference in seconds between two dates.

**Note**: If only a single parameter is entered for the time\_diff and time\_diffdays functions, the value returned in the formula field is the difference between the current date and the date provided as the parameter.

# 13 Standard Action Process SDK: Description and Usage

# 13.1 SDK Action: Set entity reference

This SDK function allows you to force a certain record within an entity (of the same module) involved in the process.

It is mainly used to be able to perform any type of standard action even on records that have been inserted within "Related to" fields of a dynamic form.

As the first parameter, the metaid (the id that uniquely identifies the instance of a module within a process) of the instance on which you want to force the record must be passed.

Instead, as the second parameter, the crmid of the record to be forced must be passed.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function Set entity reference() to manage the existing company within the standard BPMN lead conversion process.

In the dynamic form of the process helper (configured in the User Task "Request details"), the user is given the option to create a new company or select an existing one.  
Specifically, the existing company's CRMID is stored in a "Related to" field within the dynamic form (Figure 1)

  
[![Screenshot 2024-10-16 121523.png](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/scaled-1680-/screenshot-2024-10-16-121523.png)](https://usermanual.vtenext.com/uploads/images/gallery/2024-10/screenshot-2024-10-16-121523.png)

Figure 1 (click on the image for a larger graphic resolution)

This type of field does not establish a real relationship, therefore it is not seen as a complete instance of the Companies module.  
In fact, it does not have any metaid (i.e. the id that uniquely identifies the instance of a module within a process).  
For this reason, the actions that can be performed on the record contained in the relationship field are limited.  
On the contrary, the entity instantiated by the Create entity action (configured in the Action Task "Create account") has its own metaid (i.e. 61), this is because it has been fully involved in the process (Figure 2)

[![Account.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/account.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/account.png)

Figure 2

In the case of the lead conversion process, it is not possible to involve the company contained within the relationship field within the standard action "Transfer relationships".

To solve this problem, it is possible to use the SDK Set entity reference() function to force the existing company record (present in the relationship field) within the instance of the Company module involved through the Create entity action (therefore of the company created directly in the process).

In this way, all the necessary actions can be performed without limitations.

Therefore, within the Action Task "Use existing account", an action of type "SDK Functions" was configured in which the SDK Set entity reference() was called.

The metaid of the created company instance was passed as the first parameter, i.e. 61 (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/90mimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/90mimage.png)

Figure 3 (click on the image for a higher graphic resolution)

The second parameter was passed the content of the relation field containing the existing company (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/jNiimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/jNiimage.png)

Figure 4 (click on the image for a higher graphic resolution)

In this way, for both cases (created or existing company), in the Action Task "Transfer relations to account" it was sufficient to configure a single Transfer relations action. (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/HTwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/HTwimage.png)Figure 5 (click on the image for a higher graphic resolution)

# 13.2 SDK Action: Add comment to ticket

This SDK function allows you to generate a comment that will be inserted in the "Comments" section of the Customer Support module.

As the first parameter, you will need to pass the crmid of the ticket on which you want to add the comment.

As the second parameter, you will need to pass the text of the comment to be inserted.

As the third parameter, you will need to enter the id of the user or contact who will be the author of the comment.

If, as the third parameter, you pass the id of a crm user, as the fourth parameter you will need to pass the fixed item "user".  
Instead, if, as the third parameter, you pass the id of a record of the Contacts module, as the fourth parameter you will need to pass the fixed item "customer".

As the fifth parameter, the fixed value "true" must be passed if you also want to send the automatic notification email containing the comment text and a direct link to quickly access the ticket details (as already happens by default to portal users when a CRM user writes a comment).  
Otherwise, the fixed value "false" must be passed.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK function Add comment to ticket() to automatically insert a comment containing the following text:

"Dear customer, we will take charge of your request as soon as possible."

Inside an Action Task we proceed with the configuration of an action of the "SDK Functions" type in which we call the SDK Add comment to ticket().

As the first parameter we pass the crmid of the ticket on which we want to add the comment, in our case $44-crmid (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/xOBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/xOBimage.png)

Figure 1 (click on the image for a higher graphic resolution)

As a second parameter we pass the text of the comment to be inserted, that is "Dear customer, we will take charge of your request as soon as possible." (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/KgHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/KgHimage.png)

Figure 2 (click on the image for a higher graphic resolution)

As a third parameter we pass the fixed userid of the administrator user, in this way he will always appear as the author of the comment (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/pAzimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/pAzimage.png)

Figure 3 (click on the image for a higher graphic resolution)

As a fourth parameter we pass the fixed value "user" (Figure 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/qCFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/qCFimage.png)

Figure 4 (click on the image for a higher graphic resolution)

As a fifth parameter we pass the fixed value "true" to send the automatic alert email to the contact with active portal user connected to the ticket (Figure 5)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/f0eimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/f0eimage.png)

Figure 5 (click on the image for a higher graphic resolution)

The final result will be as shown in Figure 6

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/m7Fimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/m7Fimage.png)

Figure 6 (click on the image for a higher graphic resolution)

The automatic email sent to the contact with active portal user linked to the ticket will be as shown in Figure 7

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Msmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Msmimage.png)Figure 7 (click on the image for a higher graphic resolution)

# 13.3 SDK Action: Update ModLight row

This SDK function allows you to perform an update of the existing rows of a table field present on a specific module.

The row ID must be passed as the first parameter, i.e. the key parameter that allows you to uniquely identify a specific existing row in the table field.

The second parameter must be passed as the Database name of the column of the table field that you want to update.

The last parameter must be passed as the value that you want to insert into the column defined as the second parameter.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK Update ModLight row() function to automatically update the value of the "Processed" column to "yes" for all existing rows of the "Operations" table field present in the Job Order module. (Figure 1)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/kGOimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/kGOimage.png)

Figure 1

Inside an Action Task we proceed with the configuration of a cycle rows type action on the "Operations" table field and for each "SDK Functions" row in which we call the SDK Update ModLight row(). (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Ioximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Ioximage.png)

Figure 2

As the first parameter we insert the current value of the "ID" variable of the "Operations" table field (on which we are executing the cycle), so in our case "$28-ml3::crmid:curr". (Figure 3)

NOTE: this is a piece of data that is not present among the columns of the table but is automatically proposed as a variable within the process

As the second parameter we insert the name of the Database of the "Processed" column, so in our case "f8". (Figure 3)

As the last parameter we insert the value "si" which in this case, since the "Processed" column is of the checkbox type, in the Database corresponds to the value "1". (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/NHmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/NHmimage.png)

Figure 3

# 13.4 SDK Action: Update DynaForm table row

This SDK function allows you to update existing rows of a table field present on a dynamic form of a process helper.

The metaid must be passed as the first parameter, i.e. the ID that uniquely identifies a specific dynamic form within the process.  
NOTE: the number must be passed without the DF prefix, so for example if the ID is DF9 you must enter only 9.

The second parameter must be passed as the Database name of the table field present on the dynamic form of the process helper.

The table sequence must be passed as the third parameter, i.e. the key parameter that is used to identify the rows to be updated.

As the fourth parameter, the name of the column of the table field that you want to update must be passed to the Database.

As the last parameter, the value that you want to insert into the column defined as the fourth parameter must be passed.

EXAMPLE OF USE

To better understand how it works, below is an example of using the SDK Update DynaForm table row() function to automatically update to "yes" the value of the "Processed" column for all rows of the "Operations" table field present on a dynamic form. (Figure 1)

Figure 1

Within an Action Task, we proceed with the configuration of a row cycle type action on the "Operations" table field and for each "SDK Functions" row in which we call the SDK Update DynaForm table row(). (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/UwHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/UwHimage.png)

Figure 2

As the first parameter we insert the metaid, that is the ID that uniquely identifies a specific dynamic form within the process without the DF prefix, so in our case 3. (Figure 3)

As the second parameter we insert the Database name of the table field present on the dynamic form of the process helper, so in our case "vcf\_8". (Figure 3)

As the third parameter we insert the current value of the "Sequence" variable, so in our case "$DF3-vcf\_8::index:curr". (Figure 3)

As the fourth parameter we insert the Database name of the "Processed" column, so in our case "vcf\_10". (Figure 3)

As the last parameter we insert the value "si" which in this case, since the "Processed" column is of the checkbox type, the Database corresponds to the value "1". (Figure 3)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/8cLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/8cLimage.png)  
Figure 3

# 13.5 SDK Action: Set Receiving Newsletter

This SDK function allows you to enable or disable newsletter receipt for the email address associated with a Lead, Contact, or Company by controlling the "Receive Newsletter" checkbox field.

The first parameter must be the `crmid` of the record for which you wish to update the "Receive Newsletter" field value.

The second parameter must be the fixed value "lock" if you want to set the "Receive Newsletter" field to "no"; conversely, to set it to "yes," pass the fixed value "unlock."

USAGE EXAMPLE

To better understand how it works, the following is an example of using the "Set receiving newsletter" SDK function to disable newsletter receipt for a Lead.

As the first parameter, we pass the `crmid` of the lead for which we want to update the "Receive Newsletter" field value—in our case, `$1-crmid` (Figure 1).

As the second parameter, we pass the fixed value "lock" (Figure 1).

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

Figure 1

# 14 Standard Task Condition Process SDK: Description and Usage

# 14.1 SDK Task Condition: Current User: User Name

This SDK function allows you to perform a check on the user who triggered the process, i.e. the user who performed the save.

Specifically, it allows you to check if this user corresponds to a statically specified user within the function (Figure 1)

For more information on the operating logic of these types of SDKs, see chapter 11.3 of the processes manual.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Gnnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Gnnimage.png)

Figure 1 (click on the image for a higher graphic resolution)

# 14.2 SDK Task Condition: Project Task usage %

This SDK function allows you to perform a comparison between a static value (passed to the function) and a percentage value calculated based on the content of the "Service Delivery" field of the Operations module.

If the "Package" item has been selected in the operation, the percentage value will be calculated based on the "Hours Used" and "Package Hours" fields.

Instead, if the "Project" item has been selected in the operation, the percentage value will be calculated based on the "Hours Used" and "Forecasted Hours" fields.

For more information on the operating logic of these types of SDKs, see chapter 11.3 of the process manual.

To better understand how they work, Figure 1 shows the configuration of a process that is triggered when the percentage of hours used in an operation with "Service Delivery" = "Package" is greater than 70%.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/vrhimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/vrhimage.png)  
Figure 1 (click on the image for a higher graphic resolution)

# 15 Sub-processes

# 15.1 Sub-processes: Configuration and Usage Modes

Subprocesses are particular types of processes that can be called within other processes defined as “parent”.

To proceed with their configuration, you must create a process by inserting the entry “when the subprocess is launched” in the initial condition (Figure 1)

In the “Entity” field it will not be possible to select any module, as the instance defined in the “parent” process will be inherited.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/qROimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/qROimage.png)

Figure 1

In order to configure the rest of the Tasks/Action Tasks defined in the flowchart (and therefore be able to use all the data of the "parent" process), you must first call the subprocess within the "parent" process using the following procedure:

1\) Define a Task within the flowchart of the parent process (Figure 2)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Qw5image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Qw5image.png)

Figure 2

2\) Select the "Sub process (collapsed)" item from the available options by clicking on the wrench symbol (Figure 3 and 4)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/twKimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/twKimage.png)  
Figure 3

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/oFeimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/oFeimage.png)

Figure 4

NOTE: if you configure a subprocess in a version PREVIOUS to 24.08, after each "Sub process (collapsed)" Task configured in the "parent" process, you must insert a subsequent Task that allows the "parent" process to interrupt its flow until the called subprocess has finished its execution (Figure 5)  
Instead, from version 24.08 onwards the system will automatically manage the interruption and resumption of the flow of the "parent" process.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ldZimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ldZimage.png)

Figure 5

3\) Access the Task in configuration mode and select the subprocess to involve (Figure 6)

NOTE: even if in versions prior to 24.08 the "parent" processes will also be visible in this screen, if selected they will not produce any result, this is because only the subprocesses can be selected.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/HIYimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/HIYimage.png)

Figure 6

At this point, within the subprocess it will be possible to exploit all the data of the instances of the modules involved in the "parent" process (Figure 7)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/yRnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/yRnimage.png)

Figure 7

Due to a structural technical limitation of the system, it is NOT possible to call the same subprocess multiple times within a "parent" process.  
However, it is possible to circumvent this limitation by composing a flowchart that allows the process to go back and re-execute the "Sub process (collapsed)" type Task in which the involved subprocess is called (Figure 8).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ul0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ul0image.png)  
Figure 8

# 15.2 Example: Opportunity Management Process Configuration

**Main Process: Opportunity Management Process**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/aFuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/aFuimage.png)

The SubProcess task is used to call other processes (subprocesses) and therefore simplify the logic of the main process.

In the case proposed below there are **2 SubProcesses**:

**1st Send a summary email** to the assignee and create reminder events assigned to the same user.

**2nd Create a pre-filled Quote** (only if the previous conditions are true) and send it via email also updating the status of the Opportunity.

![](https://usermanual.vtenext.com/uploads/images/gallery/2019-04-Apr/scaled-840-0/image-1555665256990.png)

**The screenshot shows the configured process.**

[![FKnimage.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/fknimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/fknimage.png)The following process is activated when a new Opportunity is created and follows the flow for a possible reassignment and sales stage update.

To activate it, check the box “**active**” once the diagram and configuration are complete

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Zo3image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Zo3image.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Zq3image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Zq3image.png)

Here on the side, the first task has been filled in, which represents the initial condition to start the process. Therefore, the linked entity “**Opportunity**” is selected and on When to run the check “at creation”.

A Group of conditions is then specified to actually start the process, in this case that the Sales Stage is different from those indicated (“In Prospect”, “Qualification”, “In Estimate”)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/oLwimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/oLwimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/W5Oimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/W5Oimage.png)

This task represents the call to another process (subprocess), which inside it executes its own execution flow. Therefore, it is necessary to choose which one to call from the proposed list. Inside it there will be a Task for sending emails to inform the opening of a new Opportunity and the creation of 2 reminders, one 5 days before the deadline, the other 3.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/qgMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/qgMimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Elkimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Elkimage.png)

This task represents a check on the status of the opportunity (Sales Stage). The possible cases of the values ​​to be managed are therefore defined. In this case, it is verified whether the value of this field has changed in one of these:

\- In Perspective  
\- To be Analyzed  
\- Perception Analysis  
\- Proposal / Price Estimate  
\- Negotiation / Review  
\- Proposed value  
\- Decision-making power

OR

\- Closed WON  
\- Closed LOST

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/9JMimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/9JMimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ScHimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ScHimage.png)

This task represents an Exclusive Gateway, which defines the possible flows based on the previously set conditions. In this case, if the Sales Stage is one of those described previously (In Prospect, To be Analyzed, Perception Analysis, Price Proposal/Estimate, Negotiation/Revision, Value Proposed, Decision-making Power), it continues to the next task called “Request for change of assignee”. Otherwise, if it is equal to “**Closed WON**” or “**Closed LOST**”, the execution continues towards the “**Send Summary Email**” Task.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/KqXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/KqXimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/A4simage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/A4simage.png)

This task uses the so-called “**ProcessHelper**” which interfaces with the user and requires, as already defined, manual intervention. The “**Show popup in the linked entity**” box is flagged to make a window (dynamic form) appear with a set of read-only data as a summary and a user field from which it is possible to select the new assignee and a Button type field to change the value of the “**Confirm” picklist**. **You must then confirm to proceed**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/2qLimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/2qLimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/V4Himage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/V4Himage.png)

This Task verifies the ProcessHelper data. As already mentioned, a dynamic form displays summary fields and a confirmation picklist (YES/NO) for the new re-assignment.

Therefore, the confirmation field of the Dynamic Form is checked to verify that it has been set to “**YES OR “NO**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/g0iimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/g0iimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/M9qimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/M9qimage.png)

At this point, Exclusive Gateway, we assign the previously configured roads based on the response given in the Dynamic Form. If the user has confirmed (YES) proceeds with the reassignment of the Opportunity, otherwise (NO) we proceed directly to the Status control of the latter (Sales Stage).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/zwuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/zwuimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/IF9image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/IF9image.png)

This task performs an update action. The previous user selected via the dynamic form is now set among the attributes of the opportunity in question. Therefore, a **NEW ACTION** is added - Update entity.

Select the Opportunity entity and modify the Assigned to field by taking the reference of the field present in the Dynamic Form, in our case "**New Assignee**".

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/jcEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/jcEimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/QjXimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/QjXimage.png)

This task represents the sending of an information email to the new assignee of the Opportunity. This will then receive a small summary of the data relating to the latter.

The main fields sender, recipient, subject and body, necessary for sending the email, are then filled in.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Eykimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Eykimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/KX0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/KX0image.png)

This task represents a second check on the opportunity status (Sales Stage).

The possible cases of the values ​​to be managed are then defined. In this case, it is checked whether the sales stage is equal to “Proposal Quote/Price” or not.

If equal to this, it continues with the call to the “Pre-filled Quote” Sub-Process, otherwise it continues directly to the “Send Summary Email” Task.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/F4Pimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/F4Pimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/E8Qimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/E8Qimage.png)

This task represents a further Exclusive Gateway, which defines the possible flows based on the previously set conditions. In this case, if the Sales Stage is “Estimate/Price Proposal”, it continues to the next task as mentioned, that is, to the call of the “Pre-filled Estimate” sub-process. Otherwise, it continues with sending emails.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/VLIimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/VLIimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/pllimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/pllimage.png)

This task is a call to another sub-process, which will create a quote and when it is in the “Reviewed” state, will send the summary email and update the Sales Stage of the Opportunity.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/gf0image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/gf0image.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/V3limage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/V3limage.png)

This task performs a control action on the Sales Stage of the Opportunity, to verify the complete and entire execution of the Sub-Process. If this is equal to “**Negotiation/Review**”, the flow continues with the next Task of sending the Final Summary email.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/aLFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/aLFimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Dsuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Dsuimage.png)

This task represents the last action, that is, a summary email to inform the assignee about the data relating to the Opportunity.

Therefore, click on **NEW ACTION** - Email Sending and insert the necessary fields. After this Task, you reach the end of the process, therefore towards the End Event.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/YJmimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/YJmimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/jsBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/jsBimage.png)

As mentioned, the process ends its execution at this node, i.e. the End Event. The “**Opportunity**” entity is connected and the status is set to “**Terminated**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/hO4image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/hO4image.png)

#### <span class="s1">**Sub-Process:** </span><span class="s2">**Opportunity Expiration**</span>

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/BOTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/BOTimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/gekimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/gekimage.png)

The Task represented is the initial Task for the launch of the Sub-Process. In fact, no entity is selected and in “**When to execute the check**” “**at the launch of the sub-process**” is selected.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/2Drimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/2Drimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/IUdimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/IUdimage.png)

In this Task, the email sending is configured for the Opportunity assignee. **A NEW ACTION** is then configured - **Email sending**.

The main information is entered (sender, recipient, subject, body, ...).

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/EWTimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/EWTimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/NKuimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/NKuimage.png)

In the task described here on the side we see the creation of a reminder, or a calendar Event in view of the expected Deadline. In fact, this is planned 5 days from the “**Expected Closing Date**” entered in the Opportunity. Therefore, the various fields are filled in as desired and 5 days are subtracted from the indicated date.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/8pQimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/8pQimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/dXBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/dXBimage.png)

In this task we have the creation of a second reminder, that is, a Calendar Event in view of the Actual Deadline. This, unlike the first, is planned 3 days from the “**Actual Closing Date**” entered in the Opportunity.

Therefore, the various fields are filled in as desired and 3 days are subtracted from the indicated date.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/x68image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/x68image.png)

#### **Sub-Process: Pre-filled Quote**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/LjEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/LjEimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Xf8image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Xf8image.png)

As in the previous Subprocess, also in this case we find the initial Task for the start. In fact, no entity is selected and on “**When to execute the check**” we select “**at the start of the subprocess**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/isNimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/isNimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/B12image.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/B12image.png)

In this Task, a **NEW ACTION - Create Entity** is configured, selecting the “**Quotes**” module, so as to create a pre-filled one.

The title of the action is entered, the various fields also relating the Opportunity in question and setting the expiry date in 30 days.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/HQjimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/HQjimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/URximage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/URximage.png)

At this point the Subprocess blocks the execution flow on the Task described below.

In fact, it waits for the Preventive Stage of the previously created entity (in the “created” state) to pass to “**Revised**”. Only when this condition is true will the process continue.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/HlDimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/HlDimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/8FGimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/8FGimage.png)

Once the value “**Revised**” is set as the Preventive Stage, the process continues and sends the details of this via email to the address of the related entity (Company or Contact) and to the assignee in copy.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/wCrimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/wCrimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/iqEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/iqEimage.png)

Once the Quote has been created, checked that the Status has changed to “**Revised**” and the email has been sent, we update the Sales Stage of the Opportunity to “**Negotiation/Revision**”.

**At this point the execution of the Sub-process ends.**

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/4mBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/4mBimage.png)

# 15.3 Example: Potential Management Process Activation

**PROCESS ACTIVATION**

At this point we have finished configuring the process and its sub-processes. Therefore, let's proceed with checking that they are working correctly.

**We then enter the creation of a New Opportunity**. In this case, we set the Sales Stage to "**Open**".

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/zgiimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/zgiimage.png)

Once the Opportunity is saved, the assignee will receive an email summarizing the data.

In addition, there will already be 2 related events, namely the deadlines, one 5 days from the Expected Closing Date and the other 3 days from the Actual End Date.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/PbEimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/PbEimage.png)

At this point the process has stopped and waits for the Sales Stage to change value to one of those previously configured.

In this case we set the value “**Quote Proposal/Price**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/98oimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/98oimage.png)

Once saved, a popup will appear to the assignee of the Opportunity with a summary of the read-only data and the possibility of reassigning it to another user.

Once the desired user has been selected, select the value “**YES**” from the picklist (you can click the “**CONFIRM/CANCEL ASSIGNMENT**” button to change the value of the same picklist to YES/NO) and proceed by clicking on **SAVE**.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/cHhimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/cHhimage.png)

Once confirmed (selected the value “**YES**” in the popup, the assignee of the Opportunity is updated and will receive an email with the data and confirmation of acceptance.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ZAdimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ZAdimage.png)

From the reports we can already see that the email has been related and the estimate has been created, as the Sales Stage was “Proposal/Estimate Price”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/rhFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/rhFimage.png)

By analyzing the report we can see the details of the created Estimate.

At this point, we can go into detail, modify the data, insert products and change the Estimate stage to “**Revised**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ayFimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ayFimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/c4Jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/c4Jimage.png)

The process continues the flow and sends the email to the assignee containing the data of the Quote itself. In addition, the Sales Stage of the Opportunity is set to “**Negotiation/Review**”.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/ueBimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/ueBimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/DBVimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/DBVimage.png)

At this point, the assignee receives a final summary email with all the data of the Opportunity.

From the “**Process Graph**” tab we can see that the process has finished the execution flow.

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/Phnimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/Phnimage.png)

[![image.png](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/scaled-1680-/h1Jimage.png)](https://usermanual.vtenext.com/uploads/images/gallery/2025-07/h1Jimage.png)

# AI Actions

These actions allow you to integrate new **AI tools** into your processes and automate their use.

# Call LLM

Allows you to make a request to a previously configured LLM in Settings &gt; AI Tools &gt; LLM.

Once you select one of the available LLM templates, all the elements configured in Settings &gt; AI Tools &gt; LLM will be loaded and can be customized.

[![Screenshot 2026-07-08 alle 15.47.34.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-15-47-34.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-15-47-34.png)Figure 1

Additionally, you can define additional Headers, Parameters, and Return Fields, allowing you to pass dynamic values ​​from the records involved in the process.

By default, the field containing the template's response content is already configured (Figure 2), which can be recalled for application in subsequent phases of the process (Figure 3).

[![Screenshot 2026-07-08 alle 15.39.03.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-15-39-03.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-15-39-03.png)  
Figure 2

[![Screenshot 2026-07-08 alle 15.50.32.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-15-50-32.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-15-50-32.png)Figure 3

# Call MCP tool

Allows you to make a request to a previously configured MCP server tool in Settings &gt; AI Tools &gt; MCP Client.

This action allows you to obtain a response from an MCP tool in a deterministic manner, unlike what an agent could do.  
The user could therefore implement their own "agent" within a process by making calls to LLM and MCP tools interact.

Once one of the available MCP clients and the desired tool is selected, the Input Parameters expected by the tool and the Return Fields will be loaded, which can be modified based on the tool's response.

[![Screenshot 2026-07-08 alle 16.21.49.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-16-21-49.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-16-21-49.png)Figure 1 - Example of a call to a web search tool

<p class="callout warning">Typically, tools return the result in a format suitable for interpretation by an LLM model, so the response must be verified for inclusion in a process flow.</p>

e.g. response from the `web_search_exa` tool to the question *"What is the PEC email address of the VTENEXT company?"*

```markdown
Title: Contatti - vtenext CRM + BPM
URL: https://www.vtenext.com/it/contatti/
Published: 2021-01-28T21:00:22.000Z
Author: N/A
Highlights:
info@vtenext.com Viale Sarca, 336/F 20126 Milano (MI) Tel (+39) 02 3790 1352 P.I. 09869110966 Registration Number MI – 2118732

---

Title: Fatturato Vtenext Srl (MI) – Scarica Bilanci e Visure Camerali Ufficiali
URL: https://www.companyreports.it/vtenext-srl-09869110966
Published: N/A
Author: N/A
Highlights:
**Indirizzo**

Viale Sarca, 336/F - [Milano (](https://www.companyreports.it/comune/milano "Vedi le aziende del comune di Milano")[MI](https://www.companyreports.it/provincia/milano "Vedi le aziende della provincia di Milano"))
...
**

**
...
## **Visura Camerale di Vtenext Srl**

La visura camerale di **Vtenext Srl** fornisce una panoramica completa dell’assetto legale e societario dell’impresa: sede legale, capitale sociale, oggetto sociale, elenco soci, cariche in corso e indirizzo PEC. La visura è disponibile in formato ordinario o storico ed è scaricabile in tempo reale da **CompanyReports.it**.

### **Bilanci e Documenti Aziendali di Vtenext Srl**
...
PEC
*
...
* Email PEC
* Codice di fatturazione
...
```json
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "CompanyReports",
"url": "https://www.companyreports.it",
"logo": "https://www.companyreports.it/dist/img/companyreports-logo-new.webp",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "sales",
"email": "info@adcapital.it"
}
}
...
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Vtenext Srl",
"legalName": "Vtenext Srl",
"image": "https://www.companyreports.it/og-image-Fatturato%20Vtenext%20Srl%20%28MI%29%20%E2%80%93%20Scarica%20Bilanci%20e%20Visure%20Camerali%20Ufficiali.jpg",
"vatID": "09869110966",
"taxID": "09869110966",
"foundingLocation": "MI",
"foundingDate": "2017-04-04",
"isicV4": "6201",
"knowsAbout": "Produzione di software non connesso all'edizione",
"address": {
"@type": "PostalAddress",
"postalCode": "",
"addressLocality": "Milano, Italy",
"addressCountry": "IT",
"addressRegion": "MI",
"streetAddress": "Viale Sarca, 336/F"
},
"keywords": "Vtenext Srl fatturato, utile Vtenext Srl, perdita Vtenext Srl, risultato Vtenext Srl , andamento Vtenext Srl, partita iva Vtenext Srl , bilancio Vtenext Srl , visura Vtenext Srl, 09869110966, Partita Iva 09869110966, Codice Fiscale 09869110966, DUNS Vtenext Srl, D-U-N-S Vtenext Srl, Report Aziende per fatturato"

---

Title: VTENEXT S.R.L. SOCIETA' BENEFIT 03641400233 - Visurissima.it - Le informazioni a portata di click
URL: https://www.visurissima.it/aziende/VTENEXT-SRL-SOCIETA-BENEFIT_03641400233.html
Published: N/A
Author: N/A
Highlights:
Indirizzo completo
...
VIA ALZANA 2/C, 37040 ARCOLE (VR)
...
crmvillage@pec.it
...
Scopri Email Scopri

---

[...]
```

# Call agent

Allows you to make a request to a previously configured agent in Settings &gt; AI Tools &gt; Agents.

Once you select one of the available agents, all the elements configured in Settings &gt; AI Tools &gt; Agents will be loaded and can be customized.

The agent can perform tasks automatically based on the activated tools and the knowledge it has access to via RAG and LLM.

The **System prompt** can be modified, while operating instructions must be entered in the **User message** field.  
The content of the response is already configured by default in the Returned fields for use in subsequent stages of the process.

Below is an example in which the agent is asked to search for the solution to a request received via a Customer Support ticket using the `user_manual` tool and to write it in a comment.

[![Screenshot 2026-07-08 alle 17.05.47.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-17-05-47.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-17-05-47.png)Figure 1

<p class="callout info">The user-written prompt is supplemented with additional information to provide context for the request, such as the entities involved in the process (name, module, and crmid). This allows the agent to understand which CRM entity is being referenced.  
Process variables can also be used to further clarify the request:  
e.g., Add a comment to ticket $15-crmid suggesting a solution...</p>

# Call process tool

Allows you to execute a tool process.

Once the desired tool is selected, the required input parameters will be loaded, which can be configured using process variables as usual.

This action is not limited to subprocesses and can be called multiple times within the same process and even from multiple different processes.

Below is an example of a tool call to add a comment to a ticket. The parameters are those defined in the tool process, which in this case are the ticket ID and the text.

[![Screenshot 2026-07-08 alle 17.47.33.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-08-alle-17-47-33.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-08-alle-17-47-33.png)

# Examples

Below are some example applications of how these new tools can be integrated into processes.

---

### Web scraping

This is a process that, when a company is created, calls an agent to search for company information online and update it in the company records.

The agent must have activated a web search tool (e.g., `web_search_exa`) and the VTENEXT MCP client tools to access the module structure and update the record.

 [![Screenshot 2026-07-09 alle 09.25.36.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-09-25-36.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-09-25-36.png)[![Screenshot 2026-07-09 alle 09.22.05.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-09-22-05.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-09-22-05.png)

The process starts when a company is created and performs the **Call Agent** action.

[![Screenshot 2026-07-09 alle 11.25.29.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-25-29.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-25-29.png)

In the **User message**, I ask to search for the information online and update the company fields. I also ask them to create a contact for the CEO.

[![Screenshot 2026-07-09 alle 11.29.40.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-29-40.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-29-40.png)

If you have set the **Background** execution mode in the process action after saving, the system will notify that the record is still updating and once finished the browser page will automatically refresh.

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

From the History tab you will see the updated fields:

[![Screenshot 2026-07-09 alle 09.40.55.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-09-40-55.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-09-40-55.png)

---

### Customer service closed

In this case, we implement a process that automatically responds to technical support tickets during office hours, informing the customer of the closure and attempting to provide a solution to the problem.

#### Tool add\_comment

First, we create a process tool to add a comment to a ticket that takes the ticket id and comment parameters as input.

[![Screenshot 2026-07-09 alle 11.38.02.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-38-02.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-38-02.png)[![Screenshot 2026-07-09 alle 11.38.47.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-38-47.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-38-47.png)

In the second step of the process, we perform an LLM call to rework the comment text by applying a certain style.

**User message**:

```markdown
Rewrite the comment in a technical and professional manner:
$TOOLIN-comment

Never use headings or Markdown code.
```

<p class="callout info">In this case, it is sufficient to use an LLM instead of an agent since it is not necessary to use tools but only to exploit the linguistic capacity of the model.</p>

Finally, we use the **Add comment SDK function**, mapping all the required fields. In this case, I specify Kitt's user ID in the `ownerid` parameter, and with `ai` set to `true`, I force a note to be added to the comment's footer, indicating that the text was generated using AI.

[![Screenshot 2026-07-09 alle 11.45.01.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-45-01.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-45-01.png)

The `add_comment` tool must then be activated in the agent we will use in the next steps, together with the `user_manual` tool and/or any documents in the RAG section for the knowledge needed to provide a solution.

[![Screenshot 2026-07-09 alle 13.45.25.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-13-45-25.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-13-45-25.png)

#### Ticket process implementation

We can then implement a new process or integrate the new AI logic into an existing one. In this case, I leverage an existing process that sets the SLA based on priority when a ticket is created.

[![Screenshot 2026-07-09 alle 11.49.36.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-49-36.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-49-36.png)

In the **AI: check time** task, I make a call to the agent with the following prompt:

```markdown
The company is open Monday through Friday from 9:00 AM to 1:00 PM and from 2:00 PM to 6:00 PM on weekdays only.
If the ticket was created during business hours, return the string "open"; otherwise, return "closed."
Return exactly that string without adding any additional text or titles.
```

and I set up the dynamic form with a field populated with the answer:

[![Screenshot 2026-07-09 alle 11.52.50.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-52-50.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-52-50.png)

I configure the condition on the dynamic form field and the next gateway so that if the agent returns closed the process goes into the **AI: automatic response** task.

[![Screenshot 2026-07-09 alle 11.54.18.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-54-18.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-54-18.png)

In the last task of the process, I first call the `add_comment` tool to inform the customer of the closure and finally call the agent to propose the solution.

[![Screenshot 2026-07-09 alle 11.57.02.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-57-02.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-57-02.png)

[![Screenshot 2026-07-09 alle 11.59.43.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-11-59-43.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-11-59-43.png)

<p class="callout info">The comment indicated here will then be reworked by the LLM model in the tool process.</p>

agent prompt:

```markdown
Add a comment with the add_comment tool, suggesting a solution to their problem by searching in user_manual.
Never use headings or markdown code in the text; return only plain text.
```

#### Test

Let's test the process by creating a ticket during off-hours with the Title **Login failed** and Description *"Good morning, I can't log in to vte this morning. Can you check urgently?"*

Comments similar to these will be added:

[![Screenshot 2026-07-09 alle 13.39.38.png](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/scaled-1680-/screenshot-2026-07-09-alle-13-39-38.png)](https://usermanual.vtenext.com/uploads/images/gallery/2026-07/screenshot-2026-07-09-alle-13-39-38.png)