Skip to main content

· 3 min read
Selin Gizem Özkan

Efficient email management is essential for businesses and individuals alike. The Core.Mail package of Robomotion provides a powerful set of tools to simplify and automate various email-related tasks, from sending important messages to searching for specific emails in your inbox.

In this comprehensive guide, we will delve into the 'send mail' and 'search mail' nodes within the Core.Mail package, enabling you to run your email processes easily.

How to Setup?

To begin, Login to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link. You can use the Core Mail package for email operations. You don't need to install this package; it comes pre-installed by default.

About Core Mail Package

The Core Mail Package comprises 11 nodes that empower you to perform various email-related operations. These capabilities range from connecting to email accounts to sending, searching, and moving emails, among others. This package simplifies the automation of email-related tasks, allowing you to streamline and enhance your email processes effortlessly.

Send Mail node input

Send Mail node input

Flow Steps:

  1. The Inject node is used to initialize the flow

  2. The input values in the 'send mail' node are entered as follows:

  • From: Enter the sender's email address.
  • To: Enter the email address to which the mail will be sent.
  • Subject: Write the subject of the email to be sent.
  • Body: Write the content of the email to be sent.
  • Cc: Enter the email address you want to add to Cc (optional).
  • Bcc: Enter the email address you want to add to Bcc (optional).
  1. Select the credentials information found in Options.

Search Mail node input

Search Mail node options

  1. The input values in the 'search mail' node are entered as follows:
  • Mail Folder: Enter the folder you want to search in. 'INBOX' is the default option, but you can change this field (e.g., Starred, snoozed, sent, etc.).
  • Subject: Enter the email subject you want to search for.
  1. Select the credentials information in the Options.
  2. Enter the date range you want to search for in Options. Date information should be entered in the day/month/year format.
  3. To view the results, use the debug node.

Flow

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/QSK5RUHdbW9Fh9njmJArgi

· 4 min read
Burcu Evren

When an error occurs during the operation of the flow, it is managed using both the Catch node and the Try Catch structure. Errors are an inherent aspect of many processes and can vary from simple typos to intricate issues that demand hours of debugging to rectify.

An example of the error-handling structure is provided below. This example functions by verifying the existence of a specified file path. If the file does not exist within the folder directory, it is checked three times before the flow is halted. However, if the file does exist within the folder directory, it is read, and the flow is terminated

How to Setup?

To begin, Login to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

Node Overview

  • Inject: This node initializes the flow.
  • Function: In this node, variables, objects, etc., to be used in the flow are defined.
  • Path Exists: This node checks if the given path exists. It is of boolean type, and its output is either true or false.
  • Read File: This node is used to read a specific text file.
  • Catch: It is used to catch an error if one occurs during the execution of the flow.
  • Switch: This node is used for routing the flow based on specific conditions.
  • Goto: To ensure flow continuity, this node establishes connections and routing between nodes to guarantee process repetition when an error is encountered. When the flow reaches this node, it continues from wherever it was redirected.
  • Label: This node holds the redirection point for the 'Goto' node, allowing the flow to continue from its location.
  • Stop: This node is used to halt the flow.

Flow Steps

  1. Access to the workspace is granted through the instructions provided in the "How to Set Up" section.
  2. The 'Inject' node is utilized to initiate the flow.
  3. Inside the 'Prepare' function node, the variable 'msg.filePath' is defined. This variable will serve as the input for the 'Path Exists' node, and the file path to be checked for existence should be specified.
msg.filePath = "C:\\Robomotion\\Templates\\myText.txt"; // The directory of the folder to be checked for files should be given
return msg;
  1. The 'msg.try_count' variable is defined within the 'Set Try Count' function node. This variable stores the initial count of how many times the try-catch structure will be invoked when an error occurs in the flow.
msg.try_count = 0;
return msg;
  1. The 'Path Exists' node verifies whether files exist in the specified path. This node is of boolean type, and its output can be either true or false.

  2. The 'Switch' node controls the output of 'Path Exist' node.

Switch Node Options

If the output is true, it signifies that the file exists. In such cases, the robot reads the file using the 'Read File' node, and then the flow comes to a halt. This represents the error-free scenario, and the Try Catch structure remains inactive. However, if the output is false, the flow continues with the 'throw' function node.

  1. The robot triggers an error during the 'throw' function node phase because it is unable to locate the file in the designated path.
throw "The file you defined in msg.sourcePath was not found."
return msg;
  1. The 'Catch' node contains the function node that encountered an error.

  2. In the 'Plus Try Count' node, the previously defined 'msg.try_count' index is incremented by 1.

msg.try_count += 1;
return msg;
  1. The 'Switch' node examines the value of this index. If it is less than 3, the flow is rerouted to the 'Path' using the 'Go To Path' node. The 'Path Exists' node verifies whether the file exists. In the 'Go To' node, select the appropriate 'Label' node from the options section.

Goto Node Options

If the index is greater than 3, the flow is terminated. This means that the file has been checked three times and has not been found. The Try Catch structure also operates based on the value of the index.

The index value is optional and can be modified as needed.

Switch Node Options Try Catch Structure Flow

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/flows/HEwetqz9vGMuawiCy4efdY

· 2 min read
Melisa Durmuş

Downloading files from the internet is a fundamental task that many of us encounter in our digital lives. Whether it's grabbing a software update, acquiring research documents, or saving media files, the ability to efficiently download files is essential.

By the end of this blog post, you will have a clear understanding of how to automate and streamline the file download process, making it easier and more efficient for your specific needs.

Let's dive in!

How to Setup?

To begin, Login to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

Flow Steps

  1. Go to your workspace.
  2. The ‘Inject’ node is used to initialize the flow.
  3. The function node named "Config" contains JavaScript code to define variables.

Function node named “Config” Code-Block:

msg.FilePath = ""; // [Required] Path to the file you want to download
msg.FileDownloadPath = ""; // [Required] The path to will save the document you want to download

return msg;
  1. The "Download File" node is responsible for downloading the file
  2. The "Stop" node is used to stop the flow.

Flow Overview

· 3 min read
Melisa Durmuş

Slack, a popular instant messaging application, has transformed the landscape of business communication. It serves as a catalyst for improving teamwork and connectivity among professionals.

In this blog post, we will delve into a practical example, showcasing the utilization of the Slack node within Robomotion. By the end of this guide, you will have a clear understanding of how to use the capabilities of this node to optimize communication workflows and enhance productivity within your team.

How to Setup?

To begin, Login to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link. First, make sure the "Slack" package is installed for this workflow. Once the package is installed, you can proceed with the workflow, leveraging its functionalities for your tasks.

About the Slack Package

The Slack package provides a straightforward interface for accessing the Slack app. With this package, you can perform various tasks, including sending messages to Slack channels, uploading images, and more.

Exploring Slack Package: Navigating Package, Installing, and Understanding Flow Steps:

  1. Go to your workspace.
  2. Click the cube icon to access the packages page.

Menu of Packages

  1. Enter "Slack" into the package search field, then right-click on the package and select "Download."

Install Package

  1. The “Inject” node is used to initialize the flow.
  2. The function node named “Config” includes some javascript code to define variables.
  3. Function node named “Config” Code-Block:
msg.SendMessage = "Hello"; //[Required] Type the message you want to send.
msg.TextMessage = msg.SendMessage;
msg.ChannelName = ""; //[Required] Type the channel name.
msg.webhook = ""; //[Required] Enter your Slack channel webhook.

msg.req = {
"payload": "{\"text\":\"" + msg.TextMessage + "\"}",
};

return msg;
  1. The "Connect" node establishes a connection to your account using a provided Bot Token. To acquire the Bot Token, you must create a vault and then create a vault item named "API Key/Token.

Click on the links in the specified order to create the secure environment.

Following these procedures, you can choose the necessary vault from the options section of the "connect" node.

Connect Properties

  1. The "Send Message" node is employed to send messages to the Slack channel.

  2. The Slack Disconnect node is utilized to disconnect a specific account. It requires only one input: the connection_id.

  3. The "Stop" node is used to stop the flow.

Flow Overview

· 4 min read
Süeda Gül

In a world where PDF documents reign supreme for sharing and preserving content, the need to download them efficiently is a common task. Whether it's research papers, user manuals, or reports, we all find ourselves needing to gather PDFs from the vast expanse of the internet. However, manually downloading each PDF file can quickly become a tedious and time-consuming process.

One such remarkable feature in our RPA tool is the browser package—a comprehensive suite comprising 23 meticulously designed nodes. From opening browsers to capturing screenshots, these nodes offer a versatile set of capabilities that can revolutionize the way we interact with web content.

In this blog post, we will explain how to automate the process of downloading PDFs using Browser Automation with Robomotion.

Visual Snapshot

Flow Overview

How to Setup?

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

About Browser Package

The browser package refers to a collection of nodes that are specifically designed to interact with web browsers. These nodes enable automation of web-based tasks and processes by providing a set of actions that mimic human interactions with a browser.

The browser package consists of 23 nodes, each representing a specific action that can be performed within a web browser. These actions range from basic functions like opening and closing browsers, clicking on elements, and navigating forward or backward, to more advanced operations like capturing screenshots, handling alerts, and even executing custom scripts within the browser environment.

Flow Steps

  1. ‘Inject’ node is used to initialize the flow.
  2. The "Config" function node contains JavaScript code designed to define variables.

Function Node Named “Config” Code-Block:

//User Directory Path to save Chrome settings 
msg.user_directory_path = "YourUserDataDirFolderPath";
//Download Path to save PDF files
msg.download_path = "YourDownloadFolderPath";
//Give a url for the pdf file to download
msg.url = "https://www.fedex.com/content/dam/fedex/us-united-states/services/Fees_Shipping_Information.pdf";
return msg;
  1. During the initial run, you should establish a connection to the "Save Settings" sub-flow node, which comprises four individual nodes:

Save Settings Sub Flow Overview

    1. The "Create User Data Dir" node within the "File Create" category is used to generate the "User Data Dir" folder at the specified path.

Create User Data Dir Properties

    1. The node called "Create Download Dir" under the "File Create" category is used to establish the "Download Folder" at the provided path.

Create Download Dir Properties

    1. The node labeled "Open Browser First Run" is used to select the browser type and initiate the browser driver on the machine.

Open Browser Properties

    1. The 'Open Link First Run' node is used to navigate, directing you to the specified URL.

Open Link Properties

    1. Once the page loads, follow these steps to save your settings:
  • Open Chrome Settings.

Choose Settings

  • On the currently displayed page, navigate to "Privacy and Security".

Select Privacy and security settings

  • Choose "Site Settings".

Select Site Settings

  • Choose the "Additional Content Settings".

Select Additional Content Settings

  • Choose the PDF documents.

Select PDF Documents

  • Select "Download PDFs".

Choose Download PDFs

    1. You can now stop the flow and disconnect the "Save Settings" sub-flow.
  1. Once the main flow has stopped and disconnected from the "Save Settings" sub-flow, you can proceed by establishing a connection to the "Open Browser" node. Subsequently, you can initiate the flow once more.

Open Browser Properties

  1. The "Open Link" node is utilized to access the provided PDF download URL. This action will trigger the opening of the webpage and initiate the immediate download of the PDF documents. The downloaded document will be saved to the designated "Download Folder" path, which is specified within the "Config" function node.

  2. The “Stop” node is used to stop the flow.

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/RxwBFxvjVC3A4jqjF9LYZf

· 4 min read
Süeda Gül

As we automate tasks and processes to save time and reduce errors, handling data seamlessly becomes a top priority. This is where the "Array" package steps in, offering a way to effortlessly manage and manipulate arrays within your RPA workflows.

In this blog post, we'll dive into a specific use case: pushing array values to table row entries. This task may sound complex, but with the right package and nodes, it becomes a running process that enhances your automation projects.

The "Array" package provides a wealth of functionalities that empower RPA developers to work with arrays in an intuitive way. One of the standout operations is the "Push" operation, which proves invaluable when it comes to appending data to table rows.

Imagine you have a dataset that you want to efficiently incorporate into your automation workflow. To make this happen, you'll first need to structure your data. One of the most versatile ways to organize data is by using an Excel spreadsheet. Excel not only allows you to input and arrange information neatly but also serves as an excellent source for RPA data manipulation.

So, the first step is to create an Excel spreadsheet that houses the data you want to work with. This could range from customer information to product details or any other dataset relevant to your specific RPA use case. The key is to organize your data into columns, making it easier to push these values into table rows later on.

Visual Snapshot

Unpushed Table Rows

How to Setup?

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

First, ensure that the OpenAI package is installed for this flow. Once the package is installed, you can proceed with the flow by utilizing its functionalities for your tasks.

About the Array Package

This package offers a collection of 12 nodes, each tailored to perform specific array operations effortlessly. From creating and accessing arrays to advanced tasks like filtering, mapping, and aggregation, these nodes enable you to efficiently manage and transform array data.

Building Blocks for Flow Success

This flow utilizes the Core Excel package. If you attempt the identical operations using the MS Excel Package, the flow will result in an error. The success of this flow hinges on the Array package, which must be installed before you execute the flow.

How to install a package?

  1. Click the cube icon to access the packages page

Package Icon

  1. Right-click on a package and then select "Install."

Install Package

Flow Steps

  1. ‘Inject’ node is used to initialize the flow.

  2. Function node named “Config” includes some javascript code to define variables.

Function Node Named “Config” Code-Block:

//Excel Path of Data Table
msg.excel_path = "YourDataTableExcelPath";
//Defining Array
msg.array = [];
return msg;
  1. The "Open Excel" node is used to initiate the opening process for the provided Excel file path. It requires a file path with the ".xlsx" extension as input and produces an output termed as the "Excel File Descriptor."

Open Excel Properties

  1. The "Get Range" node is utilized for data retrieval. It requires an Excel File Descriptor as input, and in this case, we're using the default msg.excel_fd variable. The output is an object that encompasses arrays of rows and columns. In the options tab, we've selected "All Range" as the target and opted to include "Headers" for column identification.

Get Range Properties

  1. The "For Each Row" For Each node is employed to iterate through and process each row of data. It requires an array variable as input. In this flow, we are processing each row within the msg.table.rows array.

For Each Row Properties

  1. The "Array Push" node is used to append a value to a row within an array.

Push Properties

  1. The "Go To Next Row" Go To node is used to navigate to a specific label. In this scenario, it is used to transition to the next row.

Go To Next Row Properties

  1. The "Next Row" label node serves as a reference point for navigation within the process.

  2. The "Debug: Array" node is utilized for displaying variable values within the flow. If a particular variable is provided, the node will exhibit only the value of the specified variable. In this instance, we utilize the msg.array variable to showcase the values of the array.

Debug: Array Properties

  1. “The Stop" node is used to stop the flow.

Flow Overview

Debug: Array’s Values

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/NkJQd64Nxtd4jvsEhCbZRV

· 2 min read
Cansel Kahraman

If you have a variable type of number in your flow, but you need to convert this number to string; You can convert number to string by using 'To String' node of ‘Number’ packages.

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

About the Number Package

The number package consists of 5 nodes. In this package, you will find five essential nodes: 'Assign', 'To String', 'Decrement', 'Increment', and 'Random'. The Number package is a powerful toolset designed to run and simplify basic number operations in your programming workflow. As its name suggests, this package focuses on fundamental numeric tasks, providing a collection of nodes that enable efficient handling and manipulation of numerical data.

Building Blocks for Successful Flow

  • To use the 'Assign' node and the 'To String' node, it is necessary to install the 'Number' package.

  • You can obtain the 'Number' package by accessing the 'Packages' menu and initiating the download from there.

Menu of Packages

Packages download page

About 'Assign' Node Inputs

  • The value must be entered in the Value data box
  • The output of ''Assign” node is variable type of number.

 Details of ‘Assign’ Node Inputs

About 'To String' Node Inputs

  • Make sure to enter the output value of the 'Assign' node into the Number data field.

  • The output of the 'To String' node is of the string variable type.

Details of ‘To String’ Node Inputs

Flow Steps

  1. ‘Inject’ node is used to initialize the flow.
  2. Use the 'Assign' node to assign a numerical value.
  3. Use the 'To String' node to convert a number into a string.‘To String’ node is used to convert number to string.
  4. Stop the flow using the 'Stop' node.

Convert Number To String  Flow

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/9VuYCycAnU1yZDdf5aRbB4

· 3 min read
Burcu Evren

In the realm of data manipulation and analysis, Microsoft Excel stands as a cornerstone, offering a vast array of functions to run tasks and unearth insights from raw information. One of the fundamental operations that professionals frequently encounter is adding columns to Excel spreadsheets, a seemingly simple yet crucial task that can significantly enhance data organization and analysis.

In this blog post, we’ll dive focusing on the process of adding two columns within a spreadsheet.

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link. This flow utilizes Excel. If you attempt the same operations with the MS Excel Package, the flow will result in an error.

To add columns, follow these steps:

  1. Use the 'Insert Column' node.
  2. Begin by defining the column names.
  3. Next, specify the particular column within the input of each 'Insert Column' node and add the desired data.
  4. Lastly, employ the 'Save Excel' node to save the changes.

Flow Steps

  1. The 'Inject' node is used to initialize the flow.
  2. Three variables are defined using a "function" node. One of these variables is 'msg.excel_path', which specifies the path of the Excel file to be used. The other two variables are 'msg.ColumnName1' and 'msg.ColumnName2', both of which define column names

Code for Set Excel Properties Function Node:

msg.excel_path = ""; // Give the excel path here
msg.ColumnName1 = [""]; // Give the column name here
msg.ColumnName2 = [""]; // Give the column name here
/*
Note!!
Each insert column node is used to insert a column.
The variables msg.ColumnData1 and msg.ColumnData2 are the column names to be added.
*/
return msg;

  1. 'Open Excel' node is used to open the defined Excel file. The input for the 'Open Excel' node is the variable 'msg.excel_path'.

  2. The first column name that you've defined is included using the 'Insert Column' node. In this process, the 'msg.ColumnName1' variable serves as the input for the 'Insert Column' node, and this variable is then written into the Column Data field. Simultaneously, within the Column Name field, you specify the particular column where you wish to add this column name within the Excel file.

Insert Column Node Options for First Column

  1. The second column name that has been defined is added using the 'Insert Column' node. The input of the 'Insert Column' node is the variable 'msg.ColumnName2'. This variable is written into the Column Data field. Moreover, in the Column Name field, you define the specific column in which you want the column name to be included in the Excel file.

Insert Column Node Options for Second Column

  1. The Excel file is saved at the designated Excel path. The 'Save Excel' node takes the variable 'msg.excel_path' as its input.
  2. The Excel file that has been saved is closed by using the 'Close Excel' node
  3. The 'Stop' node is used to stop the flow.

Add Two Columns Flow

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/9Qiu4RfRmKiS1wiY7c5z95

· 2 min read
Selin Gizem Özkan

When working with large datasets, one common task is to locate the last row with data. Knowing how to find the last row with data can save you a lot of time. Robomotion offers a handy shortcut to quickly navigate to the last cell within a range that contains data.

How to Setup?

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link.

About the Excel Package

The Excel Package comprises 26 nodes that simplify Excel tasks. It covers tasks like opening, creating, saving files, sheet management, styling, data manipulation, and more. This package runs Excel-related automation, enhancing efficiency in data manipulation and analysis.

How to find last row with data?

To find the final value within a table from an Excel file, you should use the "Get Row" node from the Excel package. Within this node, you select the desired operation from various options.To locate the last value, the "Last Row" option is selected.

Get Row node options

Flow Steps

  1. Inject node is used to initialize the flow.

  2. The directory path of the Excel file to be used is defined as a variable within the function node.

Function Node Named “Config”:

Code-Block

msg.excel_path = "C:\\excel_name.xlsx";
return msg
  1. The Excel file is accessed through the "Open Excel" node.

  2. Inside the "Get Row" node, you choose the "Last Row" option.

  3. A Debug node is employed to visualize the received last row.

Find last row data in excel Flow

· 3 min read
Cansel Kahraman

Managing data formats effectively within your workflow is a common challenge. Often, you might find yourself with data stored in the JSON object format, yet requiring it to be transformed into a more structured data table format. This is where the transformative power of the 'JSON to Data Table' node from our 'Data Table' package comes into play.

In this blog post, we'll delve into how the 'JSON to Data Table' node can be your solution to effortlessly bridge the gap between JSON and data table data within your automation processes.

How to Setup?

To begin, Log in to your Robomotion workspace. If you haven't registered yet, you can create your workspace from the provided link. Once you have access to your workspace, you can proceed by using Data Table package to convert JSON to Data table.

About the Data Table Package

DataTable Package is designed to empower automation developers to handle data transformations with ease. It consists of various nodes that cater to different data manipulation tasks, and one such important node is the JSON to Table node. This node acts as a bridge between JSON data and DataTable, allowing for efficient conversion and manipulation.

Building Blocks for Successful Flow

  • To use the 'JSON To Data Table' node, it's necessary to download the 'Data Table' package.
  • To acquire the 'Data Table' package, navigate to the 'Packages' menu and proceed with the download.

Menu of Packages

Packages download page

About 'JSON to Data Table' Node Inputs

  • The name of the 'JSON' data object must be entered into the JSON Data Box.
  • The output of the 'JSON To Data Table' node is the resulting DataTable object.

Details of ‘JSON to Data Table’ Node Inputs

Flow Steps

  1. ‘Inject’ node is used to initialize the flow.

  2. Use the 'Function' node to create the JSON object.

Code-Block

msg.data = [{
'productID': "123456",
'productSize': "S",
'productColor': "Green",
'productPrice': 25.50,
'productProperties': "Viscon"
},
{
'productID': "123457",
'productSize': "M",
'productColor': "Blue",
'productPrice': 30.00,
'productProperties': "Cotton"
},
{
'productID': "123458",
'productSize': "M",
'productColor': "Red",
'productPrice': 50.00,
'productProperties': "Cotton"
}
]
return msg;

  1. The 'JSON to Data Table' node is employed to transform a JSON object into a DataTable object.

  2. Stop the flow by using the 'Stop' node

JSON to Data Table Flow

Here you can access the complete flow by clicking on the following link: https://casestudies.robomotion.io/designer/shared/Wdsvbt9Wy6wopnK5p7ZbcF