The Interactions Section provides the necessary components to build custom flows. Here you will find tools to generate, integrate, and respond effectively to interactions in order to design flows that meet the needs of the end user.

Below are described the different categories of components available in the Interactions Section, including their functionalities and how they can be used to optimize the creation of flows in Globant Enterprise AI.
In the Generative category, you will find the assistants that use generative AI: Assistant and RAG Assistant.

Configures an assistant, such as Data Analyst Assistant, API Assistant, Chat with Data Assistant, among others, that have been previously defined in the selected project in the Globant Enterprise AI Backoffice.

Once the assistant is selected, the Prompt field will display the message defining the assigned task. This message is read-only and cannot be edited. To see the complete prompt, click on the configuration icon.
This node always requires an input variable, such as lastUserInput, which receives the information provided by the user.
The output variable, on the other hand, can be configured. By default, the assistant's response is stored in lastUserInput, but if you disable the Use as response option at the top of the node, you can set a different output variable. In addition, it is possible to save the response in JSON format.
The node also allows you to include the conversation history and context variables to further customize the interaction.
It integrates an assistant of RAG type that has been previously defined in the selected project in the Globant Enterprise AI Backoffice.

After selecting the RAG assistant, you can define a document or tags that will act as a source for the responses.
Variables are handled in the same way as in the Assistant node. That is, it always requires an input variable, and it is possible to configure a different output variable that can be in JSON format.
You can also set the minimum confidence level for responses, include the conversation history and context variables, and choose to display the sources of information used.
In addition, you can configure the actions to take when an answer is not found in the documents provided.
This section includes logical components that allow you to control the flow of the conversation and manipulate variables or conditions within the flow.

Collects user input and stores it in a variable for use in subsequent nodes.

Evaluates logical conditions written in Velocity Template Language (VTL) to decide which path the flow will take.

When this component is added to the flow, it is divided into branches, which by default are one for If and another for Else.
The If branch node is by default of Expression type, while the Else branch is of Go to type.
It is possible to add more If conditions by clicking on Add condition. By doing so, a branch with a node of Expression type is added, just like the first one. These Expression nodes allow evaluating different conditional expressions.
Each branch is driven by the result of the evaluated condition. Depending on the value of a variable, this allows the flow to be directed to different assistants or actions. If the condition is not met, the flow continues through the Else branch.
Each branch is driven by the result of the evaluated condition. Depending on the value of a variable, this allows the flow to be directed to different assistants or actions. If the condition is not met, the flow continues through the Else branch.
To configure the condition, select a variable and apply a relational operator to perform the comparison. The supported relational operators are:
- Equal
- Not equal
- Less than
- Less than or equal to
- Greater than
- Greater than or equal to
Note: The variable must be assigned before performing the comparison. This can be done in the Variable component or any other component that allows assigning a value to a variable, such as Assistant or RAG Assistant.
This node is used to manipulate variables, allowing you to set, modify or query values to be used in the flow.

To define a variable, click on the down arrow inside the node and select the + Add new variable option. Next, enter the name of the variable and press Enter. By default, the Clear option will be enabled, but you can disable it if you want to keep the current value of the variable.
To set the value of this variable, click on the edit icon to the right of the node. This will open a menu on the left with several options. One of the available options is Get from request extra data, which assigns the value of an extra property of the request data to the variable, or Set to response extra data, which assigns the value of the variable to a property of the response data.
In the Value window, you can dynamically set the value of the variable using Velocity Template Language (VTL). Here you can enter expressions such as $today to assign the current date to the variable. This allows you to generate and manipulate data dynamically within the flow.
More information: Variable Component Advanced Usage.
The Language node allows you to change the language of the interaction according to the user's needs or the context of the flow.

Resets the conversation history, which is useful for starting a new interaction without previous responses influencing the new flow.

In addition, there is a Reset Context option, which is disabled by default. If you enable this option, it will not only reset the conversation history, but also reset all context variables associated with the flow. This means that any data or values previously stored in the flow variables will also be reset.
Allows you to insert JavaScript code that runs on the server side, providing flexibility to implement specific functionalities not covered by standard system components. This is useful when you need a custom solution for a particular bot or case before a new component is developed.

When you insert this component, you'll see an area where you can add a description and an "Edit Code" button. Clicking on this button opens a code editor with a dark-themed workspace where you can write and save your JavaScript code.
This component allows you to access context variables using the context object, and gives you the ability to define and use custom functions within the script. In addition, you can add debug logs using the console object to facilitate code development and validation.
For detailed examples and more information on how to use this component, see Script Component Usage Examples.
Connects different flows or nodes, facilitating end user navigation and redirection to different parts of the flow as needed.

When inserting a Go To in the flow, you can select the flow to which you want to redirect the user by clicking on the drop-down bar. This list shows all the available flows you can choose from.
In addition, the Pick from canvas option allows you to visually select a node directly from the canvas, creating a direct connection between the nodes.
The Go icon next to the Go To node allows you to navigate directly to the node to which it is connected, making it easy to review and modify connections.
Through the Integrations section, you can integrate the flow with other external services or systems.

The API component allows you to provide responses to users using data from a server.

In this node, you can define both Parameters and Responses, depending on the configuration of your API.
The Parameters option allows you to add parameters that will be sent together with the API request, such as required identifiers or filters. From Responses, you can configure how the data received from the API will be handled and processed within your flow.
To configure your API within the node, you need to enter the API URL. To do so, click on the Edit icon located to the right of the node, and then click on the Expand icon next to the URL field, represented by a box with an up arrow. This is where you can paste the API address.
Once the URL is set, you can select the method of the request from the drop-down menu below Method. Options include GET, POST, PUT, and DELETE, depending on the operation you need to perform. If you only want to retrieve information, select GET.
In the Headers section, you can add additional settings such as key-value pairs to indicate how the response should be handled. For example, select Accept with the application/json value to expect a response in JSON format. In addition, it is possible to add variables within this field by clicking on the word Variable. If you need to add more headers, use the Add Headers option.
Sends emails as part of the interactions within the flow. This is useful for notifications or confirmations.

In this node, you can configure the following fields:
- Recipients: This is where you enter the recipients' email addresses. You can add multiple recipients separated by commas. You can also press Enter after you type each address to add it, and then type the next one.
- Subject: In this field, you define the subject of the email. It is possible to insert variables by clicking on the Variable option to customize the subject with dynamic data.
- Body: This section allows you to write the content of the email. You can format the text using basic editing options such as bold, italics, underline, lists and links. You can also insert emojis or variables.
Allows you to write data into a spreadsheet directly from a flow. You can use this node to store user responses or any other information in real time, organizing the data in specific columns of the spreadsheet.

To configure the Spreadsheet node, click on the Edit icon located on the right side of the node. Clicking on Edit will open a side menu where you can enter the Spreadsheet ID and the Sheet name. The Spreadsheet ID is obtained from the URL of the Google Spreadsheet, and the Sheet name corresponds to the specific tab within the file where you want to save the data, such as "Sheet 1".
In addition, make sure to upload the JSON file with the service account credentials and that the service account has permissions on the spreadsheet.
The node displays a drop-down field where you can select the variables to be written to the spreadsheet. You must arrange the variables in the order in which they appear in the spreadsheet. You can also add other context variables if necessary.
The Responses section contains the nodes responsible for generating responses to the end user.

Sends custom messages within a flow, such as an initial greeting. For example, you can use: "Hello {name}, how can I help you?", where {name} is a dynamic variable that is filled with the user's name.

This message is fully customizable. You can format the text using different styles, such as Normal or Heading 1, and formatting tools such as bold, italics, lists, links and emojis. In addition, you can insert dynamic variables, and add lists, links and emojis.
You can also add message variants.
Adds images to interactions within a flow, displaying a space where you can upload or select an image.

In addition, you can make the content dynamic by clicking on the nut-shaped icon, allowing you to use Velocity Template Language (VTL) to create dynamic responses, adapting the image content to different contexts.
Clicking on Add Image brings up a menu on the left side that allows you to upload an image by dragging it or by browsing for the file on your device. You can also enter a URL directly to use an online image. This menu offers options for adjusting the size of the image, including cropping or scaling the image, and setting its vertical and horizontal position, centering it as needed.
Create rich links with a custom preview that includes a title, description, image and tag, providing additional context to engage the user.

If you choose to add an image, clicking on Add Image will open a menu on the left side where you can upload an image from your device or enter a URL to use an online image. This menu also allows you to adjust the size, vertical position and horizontal position of the image, in a similar way as with the Image component.
In addition, you can make the content of the link dynamic by clicking on the nut-shaped edit button. This will allow you to use Velocity Template Language (VTL) to adapt the preview to different contexts and situations within the flow.
Create interactive cards within a flow, where you can add an image, title, and short description. As in the Image and Link components, you can add an image by clicking on Add Image, which will open a menu on the left side with the same options as the Image and Link components.

The Card node includes one button by default, and you can add more if necessary. If you add several buttons, each one can be configured to connect to an External function or External link, or to define an event. When all buttons are configured as External function or External link, the flow follows a single branch. However, if any of the buttons is configured for an event, an additional branch will be generated in the flow for each button configured for events.
This node allows you to enable or disable text interaction, keep the conversation active, or allow user input. You can also make the content dynamic in order to adapt the card to different contexts within the flow using Velocity Template Language (VTL).
Adds the URL of a video, but YouTube videos are not supported. You can also paste the URL of an image in the Poster field to use it as a thumbnail or cover of the video.

It is possible to make the link content dynamic using Velocity Template Language (VTL) to adapt the video preview to different contexts and situations within the flow.
In addition, the component offers the option of adding buttons to connect to an external link, define a specific event or action, and set variables that can be used as input in other interactions within the flow.
Each additional button can create a new branch in the flow, unless it is configured to connect to an External function or External link, in which case it will follow the same branch.
Allows you to insert YouTube videos into your flow.

To set up this node, paste the ID of the video in the "Id" field in the left menu, which appears when you click on the edit icon.
Make sure to enter only the part of the URL that comes after the equal sign (=). For example, if the URL is https://www.youtube.com/watch?v=h_5nxFWjmZc, just enter h_5nxFWjmZc in the corresponding field.
The video thumbnails are generated automatically, so there is no need to add an additional image.
The component also offers the option to add as many buttons as you deem necessary.
In addition, you can make the content dynamic using Velocity Template Language (VTL), which allows you to adapt the video presentation to different contexts and situations within the flow.
Adds buttons that you can use to start actions or redirect to other flows. Each button is configured by entering its name and selecting an action option. The Event option allows you to direct the reply to the desired flow. With External Link, you can redirect the user to a website, taking them out of the current flow. Finally, the External function allows you to execute an external function.

This node also offers additional behavior settings. You can disable text interaction, keep the conversation active, or enable user input. By default, the Enabled User Input option is active, which means that, if you add multiple buttons, a branch will be generated in the flow for each button configured as an Event. Buttons configured as External function or External link will not create new branches and will follow the same path in the flow.
Allows you to select a date within a flow, displaying fields to choose the month, day and year.

It is possible to configure the format in which the date will be displayed, select which dates will be available, connect the date picker to a specific event, and assign the selected value to a variable.
Additionally, this node offers options for configuring the state behavior. You can disable text interaction, keep the conversation active, or enable user input, which is enabled by default. Additionally, it is possible to make the content dynamic, which allows you to adapt the interaction with the date picker to different contexts within the flow.
Allows the end user to select an option from a predefined list.

To configure this node, click on Edit to the right of the node. Next, in the left menu configure Assign value to field, which can be either an entity or a variable.
In addition, below Dropdown list, you must define the options to be offered. These options can be numbers, letters, phrases, or a combination of all of them. Each option can be associated with a specific response flow.
Once you have defined the options in the Dropdown list, to configure each value, go to the node and select each option in Select option. Next, in the left menu, configure the actions to perform when the user selects that option. These actions can include the execution of specific flows or any other logic you need to associate with the selected option.
It works in a similar way to Cards, but with a different visual presentation that allows showing several cards in a rotating format.

It allows you to add an image, title, and description for each card. In addition, you can trigger an event by clicking on the CTA action button, which can redirect to another flow. It is also possible to trigger an external event that takes to another website or page, or execute an external function.