Bot Games Season 2: Quarter Close Tutorial


Bot Games Season 2: Quarter Close Tutorial

Challenge Objective

In this challenge, we are bringing you a popular use case called “Quarter Close”. Create a bot that can review all the transactions displayed on the challenge page and for each of these transactions, find the matching transaction in the banking application. If a match is found, mark the transaction as ‘Verified’. If no match is found, mark the transaction as ‘Unverified’. Update the status for all the transactions on the page and submit to complete the challenge.

Challenge Link:

Steps Package:

Steps are a great way to force something we all could do better at: commenting our code. Using steps “forces” code commenting as you give each step a name and fill in the corresponding logic. Steps enable you to lay-out your logic in a visible way to build the shell/structure of your bot – going in and filling in the actions required to complete each step afterwards.

Loop Package:

You can use the Loop action to repeatedly run a sequence of actions for a specific number of times or until a condition is met. In this scenario, there are 12 transactions on the listed page, and you have to loop through 12 times to update the status for all the transactions. Once the loop is executed as configured, the bot will continue with the next step of actions.

String Package:

This package is helpful for data manipulation. In this use case, when we extract the Guid from the modal, it includes the word “verified followed by a space” which we do not need. To remove this extra word, we can use the action “Replace text” and replace the unwanted characters with an empty string.

Variables Used:


A dictionary is a collection of key-value pairs, in which each key has a value. It is similar to an entry in a dictionary, where each word has a corresponding definition or explanation. The key is similar to the word, and the definition or explanation is similar to its value. In this use case, we have used Dictionary data type to capture different accounts such as Checking, Savings & Credit card, in which Key is the text displayed for each account and value is the XPath of the object.


It stores multiple values in a table of rows and columns. We have used this variable type to extract information from the search results in the banking application.

Inline Conversion:

We loop through each of the 12 transactions using a number variable called nCounter. While identifying different objects in each of these transactions, we need to use this nCounter in XPath, however the XPath attribute only accepts string variables, and to convert nCounter temporarily to be used as a string variable, we use inline scripting using the code shown here: $nCounter.Number:toString$.


Do something different? Part of the fun of learning to build bots is trying out different approaches to see how they impact the reliability, accuracy, and ultimately the outcome of your bot. What impact would using the Browser: Run JavaScript action have on your bot instead of the Recorder package…are things any faster if you just use the Simulate Keystrokes action instead of the Recorder package? Explore different options as you build these bots as they become different approaches you may consider when building out bots for your organization/customers.

Enjoy doing this Challenge Page? Check out some of our other RPA Challenge pages to see if you can knock out some of our other bot-building challenges and check out our other upcoming Bot Games Challenge Pages!