Introduction
OpenBots is an open-source RPA software built on .NET Framework in C#. It has good capabilities and a better studio for creating automation with the usage of commands, along with a recorder feature that records the action and plays the scripted automation.
OpenBots offers an end-to-end Open Source RPA automation platform. From process discovery and development to automation orchestration and program management, every tool within the OpenBots automation platform is free for all users.
In addition to OpenBots RPA Suite, OpenBots also has other products including OpenBots Discovery (A SAAS based OpenBots Process Discovery and Analysis tool) and OpenBots Documents (A SAAS based Intelligent Document Processing tool).
Here are the main components of OpenBots.
Components of OpenBots
- OpenBots Studio: The OpenBots Studio helps to design the bots through the usage of commands. Around 150 inbuild commands are here. Additional commands can be installed or can be created using c# and be used here.
- OpenBots Server: The OpenBots Server helps to orchestrating and scheduling multiple process automation in an enterprise. Manage resources, queues, and various aspects of small to large fleet of robotic process automation bots.
- OpenBots Discovery: The OpenBots Discovery a Robotic Portfolio Management (RPM) tool, designed for Business Analysts and Business Users to assess, track and manage Enterprise Automations.
More details about openbots can be found here : https://openbots.ai/
Setup & Configuration
- The download link for OpenBots Studio is located here: (https://openbots.ai/downloads/)
- You can read more steps for the installation from here – (https://openbots.ai/product/openbots-studio/setup-and-configuration/)
Minimum:
- Windows 7/8.1/10/Server 2012/Server 2016/Server 2019
- 1GB ram and 200 MB disk Space
- .NET Framework 4.8
Recommended:
- Windows 10/Server 2012/Server 2016/Server 2019
- 4GB ram and 1GB disk Space
- .NET Framework 4.8
Solving RPACHALLENGE Using OPENBOTS
In this section, we can see how we can build basic bot in opnebots which do the variable field data entry RPA challenge (http://www.rpachallenge.com/). By moving through this tutorial you will be able to know to work with the following commands
- Web Browser Commands
- Excel Commands
- Loop Commands
In this RPA Challenge, we are given an excel file that contains 7 Columns named as First Name, Last Name, Company Name, Role in Company, Address, Email, Phone Number. The main objective of this challenge is to fill the details of the respective columns for each row in the website http://www.rpachallenge.com/ whose fields continuously change the position for every submits.
More details on the rpachallenge can be found in the website itself.
Step by Step Guide Using OpenBots
So let’s start building the bot for this rpa challenge in openbots studio…First, let’s open the openbots studio. After opening the openbots studio you can see the window like this

Type the project name and click the create button to create a new project. After clicking on the create project u can see the project window being opened as shown below

We can see that in default there is command is there in Main which is Show Message, This will show the message Hello World which is provided as input there. When you run the Main Run option as shown in the window. It will show the output like this

So this is the output of Show Message command. For our usecase we don’t require this command so we can delete this command by selecting the command in Main and press delete button on keyboard.
So let’s start building the workflow…
Step1 – Open Webpage
First, we need to open the website http://www.rpachallenge.com/. For this, we need to use the Create Browser command. For this in command-tab search Create Browser

Drag and drop Create Browser command in Main and click on the command to add the properties values.
- Browser Instance Name: Provide a unique name that will represent the application instance. This unique name will help to refer in future commands. For eg let’s put the browser instance name as browser1
- Browser Engine Type: Select the browser type. Default it is being set as Chrome. We can select Browser type as Chrome, Firefox, Internet Explorer from the dropdown option.
- URL: Provide the URL here. In our case put the http://www.rpachallenge.com/ as URL there.
- Window State: Select the window state as Maximize or Normal from the dropdown. Default it is set as Maximize.
- Comment Field: Enter the description for the command usage. For eg. This command helps to open the rpa challenge website.

After the above property data addition, click Ok.
Step2 – Perform Element Action
After opening the browser, the next step as per the instruction in rpa challenge is to click on Start Button before entering data into fields. For this, we can use Element Action Command. Drag and drop the command in the Main.

Configure the properties of the command by selecting it.
- Browser Instance Name: Provide the browser instance name here where the click activity needed to be done. In our example, we have to give browser1 as the instance name here as we need to perform the above element action inside the rpa challenge website which is referred to by the above instance name in the workflow.
- Element Search Parameter: Provide the element search parameter such as Xpath/class or any attributes which help to uniquely identify the UI element in the website. For eg. we can put Xpath as a parameter for finding our element. Xpath helps to uniquely identify the Start button on the website. As a best practice always put relative XPath rather than absolute Xpath as a parameter there.
Xpath for start button for rpa challenge website is //button[@class=”waves-effect col s12 m12 l12 btn-large uiColorButton”].
In Element Search Parameter section, provide the Parameter as Xpath and Parameter value as //button[@class=”waves-effect col s12 m12 l12 btn-large uiColorButton”]. Tick the Enabled checkbox for making the parameter enabled for finding the UI Element.

- Element Search Option: Select Find Element Option from dropdown since we need one UI Element only here.
- Element Action: Select the action which is to be done with the UI Element. Select the Left Click option from the dropdown as click action is needed to be performed on the Element.
- Comment Field: Enter the description for the command usage. For eg. This command help to click the start button.

Step 3 – Read Excel for Input Data
The next step is to read the excel file which contains information for data entry and store it in the data table variable. For this following steps had to be followed.
Create an excel instance using the Create Excel Application command.
(Drag and drop the command in Main and configure the following properties.)
- Excel Instance Name: Provide a unique name that will represent the application instance. This unique name will help to refer in future commands related to excel operations. For eg let’s put the excel instance name as excel1.
- New/Open Workbook: Indicate whether we want to open an existing workbook or create a new workbook. In our case we need to open excel file, so select the Open Workbook option from the dropdown.
- Workbook File Path: Here we need to provide the file path of the excel file.
- Visible: This option indicates whether the excel automation should be visible or not. Default it is set as No.
- Close all Excel Instances: This option indicates whether there is a need to close other excel instances when this is running.Default it is set as Yes.
- Comment Fields: Enter the description on usage of the command. For eg. The command is used to create the excel instance for the workbook

Use Get Last Row Index command to get the last row index of the excel worksheet.
(Drag and drop the command in main and configure the following properties)

- Excel Instance Name: Specify the excel instance on which we need to get the last row index. In our case , specify it as excel1
- Column : Specify the column name you need to check with. Defaultly it is set as A , which means for A column we are checking the last row index.
- Output Last Row Index Variable: Store the output of command that is rowindex of last row in a variable here. we can either select the variable which is already created and stored in variable manager section of studio or we can create a variable there by the following format {variablename}. Lets say we can create a variable {index} which stores rowindex of the worksheet.
- Comment Field: Enter the description of command usage. For eg. This command helps to give the last row index as output .

Use the Get Range command to store the excel file data in a data table variable by specifying the cell range.
Drag and drop the command to main and configure the following properties.

- Excel Instance Name: Specify the excel instance name which you need to work with. In our case specify the excel instance name as excel1.
- Range: Specify the range of cell from the data from excel need to extracted. In the excel, data is upto the G column. Since from the previous Get last row index command, we had obtained the index of last row and stored in variable {index}, we can use that variable to specify the range of data we need to extract from the excel file. Specify range as A1:G{index} in this example.
- Add headers : When selected YES option, the headers from specified excel sheet are also extracted.
- Output Datatable Variable: Specify the datatable variable which stores the output of the command. In this example, lets keep the variable name as {output}.
- Comment Field : Enter the description of command usage. For eg. This command helps to store the specified excel data in datatable variable.

Step 4 – Loop Through data and Input on website
After reading the excel and storing it in the data table. The next step is to loop through each row of the data table and filling the data in the corresponding field of the web form on the website. Also, consider the field position is changing every time.
For looping through each row of datatable, we need to use loop command. In the loop command, we can use Loop Collection Command. This command help to loop through each element in the collection. Since datatable is a collection, we can use this command.
Search for Loop collection command and drag in the main section and configure the following properties.

- Input Collection: Specify the collection through which iteration is to be done. In this example, we need to iterate through each row in {output} datatable. So specify the input collection as {output}.
- Output Collection Item Variable: Specify the output collection item variable. If the input collection is datatable, then output collection item variable will be a datarow variable. In this example, specify {row} as output collection item variable since the input collection is datatable. To access each column values for each row , use {row.ColumnName}.
- Comment Field: Enter the command usage description. For eg. This is to loop through each row in datatable.

The Loop command had three sections, initialization, action, end. The initialization part is what we had done now. Now the next part we are going to do the action part, we are doing the command done in the looping part. In our example, we need to iterate through each row and input it in the webpage forms whose fields are dynamically changing for every submits. So in action generally we have to do is
- Fill the data from each row for first name, last name, etc.
- Click on submit for each data submission.
Fill the Data
Let’s do the first step, Fill the data from each row into the respective input fields. For eg. Let’s fill the First Name input field. For this, we can use the Element Action command. Drag and drop the command and configure the properties.
- Browser Instance Name: Specify the browser instance where the element action (in the example, typing data in input field) need to be done. In this example, specify the browser instance as browser1.
- Element Search Parameter: Provide the element parameters such as Xpath/class etc which help to uniquely help to identify the UI Element. For our example, lets put the XPath as element paramter for the input field First Name. The Xpath should be relative so that it can consider the changing field position because the relative Xpath identifies the UI Element based on unique attribute for the UiElement.
Xpath for First Name input field : //input[@ng-reflect-name=’labelFirstName’].
In Element Search Parameter section, provide the Paramter as Xpath and Parameter value as //input[@ng-reflect-name=’labelFirstName’]. Tick the Enabled checkbox for making the parameter enabled for finding the UI Element.

- Element Search Option: Select Find Element Option from dropdown since we need one UI Element only here.
- Element Action: Select the Set Text option from the drop-down. The Set-Text action helps to type a text into the input field.
- Action Parameter: This property appears when the Set Text option is selected. The parameters to be filled are:
- Text to set: Provide the input text which is to be added into the First Name Field. In this example, provide the Text to set as {row.First Name}. {row} is the output collection item variable for the loop collection command.
- Clear Element Before setting Text: This option clears the empty the text field before setting text in the field when selected as Yes.

- Comment Field: Enter the description of command usage. For eg: This command helps to set the First Name input field.
Do the same step for filling the input field for the Last Name, Role in Company, Company Name, Address, Email, Phone Number input fields respectively. After doing the above steps, Before the end of every iteration, we need to click on the submit button. For that follow the steps below.
Click on submit
For clicking the submit button, use Element Action Command. Drag and Drop the command in the main and configure the following properties.
- Browser Instance Name: Specify the browser instance where the element action (in the example, typing data in the input field) needs to be done. In this example, specify the browser instance as browser1.
- Element Search Parameter: Specify the parameter and its value here. For the submit button, we can provide Xpath as a parameter.Xpath for submit button : //input[@value=”Submit”]. In Parameter , Specify as Xpath and in value section provide //input[@value=”Submit”] this as input.
- Element Search Option: Select Find Element Option from dropdown since we need one UI Element only here
- Element Action: Select the action which is to be done with the UI Element. Select the Left Click option from the dropdown as click action is needed to be performed on the Element.
- Comment Field: Enter the description for the command usage. For eg. This command help to click the submit button.
So overall these steps like filling the input field and click submit button comes under loop section.
Step 5 – Close Application & Excel
After filling in all data and doing it for all the rows. The next step is to close the browser and exit the excel process which is running which is created as a result of Create Excel Application Command.
Steps are –
Close the browser using the Close Browser Command. Drag and drop the command to the main and configure the following properties.

- Browser Instance Name: Specify the browser instance Name which is to be closed. In this example, it should be browser1
- Comment Field: Enter the description of command usage. For eg: The command helps to close the browser of a given browser instance.

Close the excel using Close Excel Application Command. This command helps to close the excel of a given excel instance. Drag and drop the command to main and configure the following properties.

- Excel Instance Name: Specify the excel instance you need to close. In our example, it is excel1
- Save Workbook: This option whether we need to save the excel workbook before closing it. Default it is selected as Yes.
- Comment Field: Enter the description of command usage.For eg: This command helps to close the excel workbook.

These are complete steps for building a basic bot in openbots which helps to fill the data from an excel file to rpa challenge website.
After completing the workflow. It looks like in final.

Lets run the workflow by clicking on the run button. Below video shows its working.
This is how a simple bot can built up using openbots studio. For more details refer the below link.
References
- OpenBots Studio: https://openbots.ai/product/openbots-studio/
- OpenBots Server: https://openbots.ai/product/openbots-server/
- OpenBots Discovery: https://openbots.ai/product/openbots-discovery/
- For any queries related to OpenBots usage, there is forum support by them. OpenBots Forum: https://openbots.ai/forums/