Much like every site on the internet, we use cookies to help analyze traffic and improve our website. As outlined in our privacy policy, any information is only used internally and is not shared with outside organizations.
Learn More

Activities, Activities, Activities!

A library of built-in activities are essential to a strong “no code” automation tool, and this release delivers 36 new activities in key areas that enable brand new automation scenarios.

The full list of new activities is below.  The new Flow Control activities include 3 loops designed to repeat actions for common scenarios where traditional programming might use a “for” loop.  With this update, AutoBloks now supports “if/then/else”, “while”, and “for” programming concepts.  The new “Text” category provides a wealth of opportunity for analyzing or manipulating any text, while the “Data” category has been expanded with several new activities related to work with date/time values.

File System

  • Overwrite text in file - which will overwrite the current file text with new text.
  • Read text from file - which can read individual lines, ranges of lines, or all text.
  • Count lines in file - to output the total number of lines in a file.
  • Find and replace text in file - to perform text replacement directly in a file.
  • Find and replace pattern in file - to perform regex-based text replacement directly in a file.


  • Read random line from file - to help randomize data by pulling in a value from a file of seed values (e.g. first names, last names, phone numbers)
  • Random date of birth - to generate a date that will result in an age within the range given
  • Format date/time - to convert any date string into another format
  • Extract date parts - to break any date down into parts like month, day, year, milliseconds, day of the week
  • Adjust date/time - to add/subtract years, months, days, hours, minutes, seconds to/from a date.
  • Create date/time - to define a new date from individual year, month, day, hour, minute, second


  • Count characters - to count the number of characters in text
  • Make lowercase - to convert text to lowercase
  • Make uppercase - to convert text to uppercase
  • Trim white space - to remove leading/trailing white space and/or collapse repeated white space
  • Pad text - to add additional characters before and/or after text until it is a certain length
  • First characters - to return the first number of characters in text
  • Last characters - to return the last number of characters in text
  • Repeat text - to create a new text value by repeating a smaller value until the desired length is met
  • Extract text - to return a subset of text from a larger text value
  • Insert text - to insert a new text value into another text value
  • Join text - to combine multiple text values until a single value with optional separator between
  • Find text - to find explicit text in a larger text value
  • Find pattern - to match regular expression pattern against larger text value
  • Replace text - to replace all matches of explicit text with new value
  • Replace pattern - to replaces all matches of regular expression pattern with new value
  • Count separated values - to count the number of entries in a delimited list of values (CSV supported)
  • Get separated value - to return the value at a certain position in a delimited list of values (CSV supported)
  • Set separated value - to set the value at a certain position in a delimited list of values (CSV supported)
  • Find separated value – to find the position of a value in a delimited list of values (CSV supported)

Flow Control

  • For each separated value - allows you to loop over every entry in a list of separated values (e.g. “One,Two,Three”, or “One;Two;Three”) with full support for CSV formatting.
  • Counted repeat - for a simple loop that executes a set number of times.  Easier to configure than using a "Conditional repeat" loop.
  • Stepping repeat - to step from a start value to an end value while running the loop for every value encountered along the way.


  • Wait for property value to stabilize - can be used to make sure an element is not changing (e.g. moving on the screen or text updating).
  • Wait for expression value to stabilize - can evaluate any supported expression and wait for it to stop changing.

Element Interaction

  • Count Elements - to count how many elements match a given identification.


  • Updates to Verify expression and Verify property value allow you to optionally define a custom message to appear in the report instead of the auto-generated one.

Sample Scenarios Now Supported

All these new activities enable new scenarios that weren’t possible before.  Same examples of what you can do now include:

Random data

Good testing often involves randomizing the data used for input.  AutoBloks already supported “Random characters” and “Random number” to help with some data randomization, but you now have even more powerful capabilities.  The “Random date of birth” activity allows you to specify an age range you want, and then the activity will randomly generate a date of birth within the given range.  You can combine the “Random number” and “Create date/time” activities to generate random dates.

For any other random data, the new “Random line from file” activity has you covered.  Your application may want to randomize names of people, but you don’t want to use real names.  Simply create a file with as many real names as you want, and then use “Random line from file” to randomize the name.  If you do the same for both first and last names, you will be generating a highly randomized user every time.  The same concept could be used for anything else you need to randomize!  Just create as many entries in the file as you need and then randomly pull a value from the file.

Data drive your automation with CSV files

Comma-separated values (CSV) is a common format used to represent rows of data in plain text and is fully support by Microsoft Excel.  Several new activities in this release will allow you to data-drive your process.  The following illustrate how you would build activities to read a sample file with two columns of data in CSV format where Column 1 is “User Name” and Column 2 is “Password”.


  1. Create a variable called “{DataFile}” and set the default value to match the path of your data file.
  2. Add the “File System \ Count lines in a file” activity.  Set the “File” input argument to use the “{DataFile}” variable.  Map the “LineCount” output argument to a new variable called “{LineCount}”
  3. Add the “Flow Control \ Stepping repeat” activity to your process.  This activity will be used to loop over each line in the file that defines data.  Set the “StartValue” input argument to 1 to start at the beginning of the file, or 2 if the first line of the file contains header data.  Set the “EndValue” input argument to the variable “{LineCount}” that was established in Step 2.  Finally, map the “CurrentValue” output argument to a new variable called “{LineNumber}” so you can track which line of the file you are on.
  4. The following activities will be added inside the “Stepping repeat” loop:
    1. Read the current line by adding the “File System \ Read text from a file” activity.  Set the “File” input argument to use the same “{DataFile}” variable from prior steps. Set the “StartLineNumber” variable to “{LineNumer}” so that it reads the current line. Set “MaximumLinesToRead” to 1 to only return the single line.  Map the “Text” output argument to a new variable called “{LineValues}”.  This variable will hold the comma-separated values for the current line.
    2. Add the “Text \ Get separated value” activity to read the value from column 1.  Set the “Values” input argument as the variable “{LineValues}”.  Set the “Separator” input argument to “CSV”.  Set the “Position” input argument to 1 for the first column.  Map the “Value” output argument to a new variable called “{UserName}”.
    3. Repeat the last step to add a similar activity for the “Password” column.  Except this time set the “Position” input argument to 2 for the second column and map the “Value” output argument to a new variable called “{Password}”.
    4. TIP: You could also create variables called “{UserNamePosition}” and “{PasswordPosition}” that are given default values of 1 and 2 to make it easy to update your process later if the column positions change.  If your CSV file contained a header row, you could also use the “Find separated value” activity to automatically determine the position of each value.

Next you simply add the activities that you want to have repeated with the loop and can use the “{UserName}” and “{Password}” variables for the current row’s data.  We have plans to create a special activity specifically for looping over a data set, but the above set of activities make CSV parsing available today.

Jump to Source from Reports

When reviewing the results of a run, you can now easily jump to the source that generated the entry in the report.  Simply right-click and select “Go To Location”.  You can also double-click the entry if it does not have children (where double-click would toggle expansion state instead).


Note that if you open a report generated on older versions of the software, you may not be able to navigate to all location types as the necessary tracking information was not part of the old report.

Integer Data Entry and Validation

Many parameters take simple integer values, and those values are often limited to a range of numbers.  The month of a year, for example, is a value from 1 to 12.  Where applicable, range-based numeric values will now verify your data matches the range and generate errors in the Error List when necessary.  The following example from the “Create date/time” activity shows spinners on integer-based fields and a validation failure when hour is set to “24” since the expected range is “0 – 23”.


New System Variables

The following new system variables have been added and can be used when defining argument values:

  • {EmptyText} – This system variable is just an empty value with no text.  When an activity has a required argument and you intend for the value to be explicitly empty, you can pass the {EmptyText} expression to avoid the error about leaving the required argument empty.
  • {Tab} – This variable represents the tab character that cannot be typed as an argument value.
  • {CarriageReturn} and {LineFeed} – These variables represent the characters used in files to mark the end of a line.  Every operating system is a little different with how it handles the default line terminator.
  • {NewLine} – Since every operating system uses “Carriage return” and “Line feed” characters differently, this variable will always represent the default for the current operating system.  On Windows, that is a combination of “Carriage return” followed by “Line feed” (aka “CrLf” or “\r\n”).