Release Notes
🎉 RPA Framework 23.4.0
- Add new library RPA.Robocorp.Storage for managing assets within Asset Storage in Control Room. (#957)
Worker v6.32.2
Workforce Agent Core v6.32.2
- Fixes an issue where worker executor was left running after the connection to Control Room was already lost
- Fixes an issue where keyboard interrupt or SIGINT would exit the application with exit code zero
You can find the detailed changelog for Workforce Agent Core here.
Introducing Workspace Assets
Today we are releasing Asset Storage for your bots! It’s a highly convenient way to persistently store data and configurations you might need when setting up or operating your attended or unattended automations.
The Asset Storage stores data on a workspace scope and can be used either via UI, API, or with Keywords directly from the Robots, and supports different data types, e.g., Text, JSON, and Files.
There are endless use cases in which the feature can be helpful; your imagination is the limit! Here are some examples we have heard from our users:
-
Managing configuration data across automations in a centralized way instead of multiple environment variables in process steps (e.g. e-mail lists used by the robots)
-
Sharing common input data across multiple processes (e.g. Excel sheet that multiple robots process different parts from)
-
Storing user-facing reports that are updated by multiple processes (e.g. Excel sheet that is updated by multiple different processes)
-
Storing process operational data that the work items are not suitable for due to their transactional nature
-
Storing non-process items, like development guides, documentation, and company practices
-
Storing LLM prompt templates to be used by the robots with large language models, allowing the iteration of prompts without deploying the bot
The Asset Storage is designed for non-sensitive data that needs to persist beyond a single process or assistant run, and the Vault should be used to store sensitive data like credentials instead.
How to use
Control Room UI: Asset Storage is enabled by default, and you can access it from the navigation by selecting "Assets" in the menu. In the Assets view, you can create new assets or modify the content of old assets.
API: Assets can be used with the workspace API; please see the available actions from the API documentation under "Asset Storage".
Keywords: To utilize Assets from robots, we have created simple-to-use keywords for convenient workflows. Please see the library documentation.
For the full description of the feature, please see the documentation page. As always, we at Robocorp would be most excited to hear your thoughts and feedback about the features, and if you have interesting use cases in mind, please share them with us!
Robocorp Setup Utility v0.13.3
Added System Toolbox to fix the most common system-level settings
Detection if the user is an administrator and hides features that cannot be used.
Submit Issue is now available:
-
Submit Issue creates the report as Generate Report & sends that as attachment
-
The report package will still be available for the user locally
Fixes to the Windows Desktop Worker setup:
-
Fixed issues with User & Domain
-
Added ability to test user credentials
Download Robocorp Setup Utility from our download site.
Worker v6.32.0
Workforce Agent Core v6.32.0
Fixes an issue with desktop setup when "Do not signout after run" option was used. The agent core was left running even after the execution.
You can find the detailed changelog for Workforce Agent Core here.
Introducing the new era of Python automations
We're excited to announce our new automation framework for Python automations – simply called robocorp. The release brings the experience of developing Python automations on par with Robot Framework on our platform.
The project templates in our VS Code extension have been updated to use the new framework and leverage its capabilities.
Check out our blog post for in-depth story about the new features, or view and read the summary below.
Features
- New
@taskDecorator: Any method decorated with@taskbecomes runnable, and can thus be scheduled or otherwise managed as a part of a Process or Assistant in Control Room. - Visual and Autogenerated Logs: We've brought the loved logging features from Robot Framework to Python, all without you having to write a single line of code. Furthermore, you can now control the logging with ease, suspending logs for sections dealing with sensitive data in several different ways.
- New Robocorp Automation Libraries: While our rpaframework libraries are based on Python, we wanted to enhance the developer experience for those choosing to work on Python exclusively. The new robocorp automation libraries roll out focusing on common automation tasks (Excel, browser, APIs) and interacting with Robocorp Control Room (such as Vault, Asset Storage, Work Items).
- New Python Templates in VS Code and Portal: Easiest way to start using these new capabilities is through the new Python templates in VS Code. They are already available, for example have a look at Playwright Browser automation template.
Second generation of Robocorp-hosted Cloud Workers
CLOUD WORKERS - ACTION REQUIRED
We are announcing three significant changes to the Robocorp-hosted Cloud Workers:
-
Modernization of the Linux distribution from Ubuntu 18.04 to Debian 12.0 "bookworm".
-
Predictable performance via specified resource quotas.
-
Update process that enables testing upcoming container versions beforehand and reverting to a previous version in case of problems.
These changes do not affect any previously deployed robots (yet), but we recommend migrating to the new Debian-based container to stay up to date with security updates.
If no action is taken, step configurations will be migrated automatically starting January 1, 2024.
OK, WHAT SHOULD I DO?
👉 Update your step configurations to use "Cloud Worker" instead of "Cloud Worker (Ubuntu 18.04 legacy)"
👉 Test that the robot still runs as expected.
We expect the overwhelming majority of robots to just work without any modifications.
BACKGROUND & DETAILS
Since their launch in 2019, the Robocorp-hosted Cloud Workers have been powered by Ubuntu 18.04 as the underlying distribution. It has proven to be a stable foundation for many popular use cases such as Browser and API automation. However, as of June 2023, Ubuntu 18.04 has reached the end of the standard maintenance window and it is time to move on. Unfortunately starting with Ubuntu 20.04, Chromium is distributed as a Snap package, which does not play nice with containers. Therefore we decided to upgrade to Debian instead.
Unpredictable performance was a common pain point with the first generation of Robocorp-hosted containers. The containers were historically run with a relatively small amount of guaranteed resources (1/4 vCPU, 256 MB RAM, 20 GB disk), but any excess capacity on the underlying cluster was made available to the containers. This resulted in great performance most of the time, but in the case of load spikes, the performance could drop significantly. The Debian-based containers are run with hard resource quotas of 1 vCPU, 3.5 GB RAM and 20 GB disk. In practical terms, the performance is always the same, regardless of total resource utilization.
Finally, we used to have just one version of the Cloud Worker available. It was not possible to 1) test upcoming versions in advance or 2) selectively revert back to a previous version in case of issues. For the 2nd generation of Cloud Workers we are offering three variants. The "early access" version is the bleeding edge, which can change anytime. Once deemed stable, some versions will be selectively promoted to the default version after a 2-week notice period. Customers interested in ensuring maximum stability have two weeks to test the upcoming release. Finally, the "previous" version points to the version that was previously the default, meaning it is possible to effectively roll back in case something breaks.
To summarize, the following changes are live as of today:
-
The Ubuntu-based Cloud Worker has been renamed as "Cloud Worker (Ubuntu 18.04 legacy)" to indicate the EOL status.
-
Three new Cloud Worker options have been added. See the docs page for a description: https://robocorp.com/docs/control-room/unattended/worker-setups/robocorp-container#different-cloud-worker-versions
-
New steps are assigned to the Debian-based, current container version by default.
-
The legacy Ubuntu-based container continues to run with a soft resource quota. The new Debian container runs with a (significantly increased) hard quota.
KNOWN ISSUES
Currently, if a step run gets terminated due to exceeding the memory or disk quota, the run fails with a "Connection loss" error. We are working on adding better error reporting.
Setup Utility: Managing your Desktop Workers just got easier 🎉
👉 You can now manage your Windows Workers just by logging in as the server's admin and using Setup Utility.
Setup Utility lets you see which ones are busy, CPU loads, versions, jump to the correct Worker in Control Room, etc. Setup Utility also now handles the permission setting so that you can directly create Workers on user accounts without admin permissions.

The service-helper CLI tool is still there, and Setup Utility is using it, so the CLI support needed by IT departments using fleet management systems is going nowhere.
👉 The update path is to update your existing Workers to v6.31.1 using the service-helper so that Setup Utility can see them. After that, you can do everything in Setup Utility.
You can find the documentation on Setup Utility in our docs
There is also support for Demo Worker, which is designed to replace the Robocorp Workforce Agent UI application. So if you need to demonstrate robot runs on your machine, this is the place for you.
This was one of the “this should be simple” features that turned out to be a bit bigger thing 😉, so big props to Kosmo & Matti from my team!
I'd also want to thank a few enterprise customers and their IT departments, but I do not know if I can ping their names, so I'll just give an anonymous thank you here. 🙏
Process run termination updates
We are excited to announce a few updates to the process run termination in the Control Room, which will give you more control over how process runs are stopped and what happens to the work items in them.
Previously, when "Terminate ongoing step runs instantly" was selected, it also marked all work items as "Done", which prevented retrying the items after the underlying issue was solved. This was inconvenient in many use cases, so we are now introducing new toggles which you can use to define the logic in a more granular level. Also, many users were not aware of the different ways we provide to end ongoing runs, so we have clarified the options in the UI.

When you click "Stop Run" button in the process run table or inside the process run view, you will get a confirmation dialog with two options.
The first one lets you control the way the step runs are stopped:
- By selecting "Terminate ongoing step runs instantly," all the step runs are given a terminate signal which will instantly end all processing
- By not selecting, all the step runs will finish the work item they are processing and shut down gracefully afterward
The second one controls the behavior of the "Pending" work items which are still to be processed:
- By selecting "Failed" the work items are marked as "Failed" with an exception and can be retried, and the process run will be marked as "Unresolved"
- By selecting "Done" the work items are marked as "Done", and the process run will be marked as "Complete"
For more information about the feature, please see the updated documentation page.
As always, we are excited to hear what you think about the update, so please feel free to contact us in Slack if you have any feedback!
Worker v6.31.1
Workforce Agent Core v6.31.1
Changes to the Workforce Agent Core:
-
Cleanup temporary video files once they have been processed to save diskspace
-
Fixed video streaming issues
-
Fix an issue where on terminate command failure the desktop video streamer would keep running when worker is in error state
-
Fix logging issue with video streamer when delete file event is handled
-
Added a status files for agent-core instances to common location for Robocorp Setup Utility tool
-
Status file for agent containing all relevant information from device and Control Room
-
Added the
statuscommand that reads from the Status file and prints information to the user -
Added new handlers for exit situations
-
A new way to handle a graceful shutdown with listeners for standard I/O
-
Update dependencies
You can find the detailed changelog for Workforce Agent Core here.
🎉 RPA Framework 23.3.0
Jun 2023
-
Library RPA.MSGraph (#980):
-
Lock
O365dependency to a version less than2.0.27for compatibility with Python 3.7 -
Security update: Bumps
cryptographyto version41.0.1. (#979) -
Library RPA.JavaAccessBridge:
-
Update
java-access-bridge-wrapperto version0.12.0
Supporting repository for RPA.JavaAccessBridge is upcoming on Monday.
RPA.OpenAI got an Azure support (1.2.0)
Microsoft offers Open AI service from Azure, and now it's easy to use them with Robocorp, too!
This is an appealing alternative, especially for enterprise customers. Using Azure OpenAI, customers get the security capabilities of Microsoft Azure while running the same models as OpenAI. Azure OpenAI offers private networking, regional availability, and responsible AI content filtering. Please note that you must request and set up the Azure Open AI Service yourself before using it from your bots.
The new capabilities are available in the rpaframework-openai package from version 1.2.0 onwards, and by including the RPA.OpenAI library.
Usage is straightforward and follows the same pattern as previously with the Open AI API. Simply authenticate first:
Then off you go with the prompts, just like before.
Have fun LLMing!

🎉 RPA Framework 23.2.0
-
Library RPA.Browser.* (#974):
-
Selenium:
-
Fix bug with detecting the right web-driver version for download on systems having Chromium installed instead of Chrome. (#949)
-
Add support for operating on shadow DOMs within the
Get WebElementkeyword. (#941) -
Playwright:
-
Upgrade version and documentation to the latest robotframework-browser 16.2.0. (#942)
-
Automatic headless detection when running on systems without UI, including our Cloud Worker (Linux container). (#166)
Process webhooks and conditional step start
We're thrilled to add two new features to the unattended automation, helping you to integrate and control the execution flow of processes in new ways:
-
Process scoped webhooks
-
Conditional process step start
Process Scoped Webhooks
Previously all webhooks were on the Workspace level, leading to unwanted events and a need to filter them at the integration in some use cases. Solution: Process Scoped Webhooks! You can now receive webhook invocations for chosen process runs instead of polling the APIs for status updates and work item data. This feature is designed to be simple, efficient, and scalable to meet the integration needs with various systems like dashboards, other workflow automation tools and BPM tools.
API Key and Webhook management user interfaces got an overhaul in the process. These now have filtering and sorting and let you send test events to ensure the integrations are working properly.
Last but not least, we have added an event log for Webhooks, where you can see the invocations and results, including errors and error codes, to help troubleshoot any problems that might arise during use.
Please see our updated Webhooks documentation to learn more about the feature.
Conditional step start
This new feature lets you control the execution condition of process steps - a much-wanted functionality! Look at the Mark in the below picture; that's where the magic happens. He is like a gatekeeper between the steps, exactly what this feature introduces.

With the "Start Only After" feature switched on, you can choose a step execution to start only after all work items from the previous steps have been processed. This will allow you to synchronise workloads in the process steps. A typical case is when you are concurrently processing high volumes of work items in the early parts of the process but need a consolidated step at the end to, for example, generate a report of all the results of a process run. Take a look at our new Producer-Consumer-Reporter template for an example.
You can switch on the "Start Only After" in the Configuration under each step (except the first of any process). For more information about the feature, please see our updated documentation.
As always, we would love to hear your feedback about the new features, so please don't hesitate to contact us if you have anything in mind!
🎉 RPA Framework 23.1.0
- Library RPA.Browser.Selenium (#943):
- New keyword
Click Element When Clickablewhich tries to overcome errors like “Other element would receive the click”. (#884) - New keyword
Set Element Attributewhich sets an attribute value to an element retrievable withGet Element Attribute. (#762) - Setting a custom download directory is now supported by all Chromium-based browsers and Firefox. Use
Set Download Directorybefore opening any browser instance in order to set such a custom path. (this should be working now in both headful and headless modes; #882) - Custom user profiles (and common configuration) can be used with all Chromium-based browsers, like Chrome, Edge. (#865)
- Improved main library documentation, accepting both WebElement and str as locator types under our keywords as well. (#940, #939)
Pre-build robot environments 🏗️
👉 Need to control or scan every file your automations use in production?
👉 Want to save time / protect developers from environment building?
We now have a solution for setting up environment pre-building inside your company network so that all robot runs and developer tools can get environments much faster.
The setup enables you to build the environments on dedicated machines and, if needed, scan the results before passing them on to your users.
The client machines only download missing files to get the environment which means drastic speed improvements over time as the environments share many of the same files.

🚀 The documentation covers the feature and setup, but if there are any questions, do not hesitate to ping us.
Robot templates update 🤖
Robot Templates coming via RCC and VS Code are now "renamed" a bit, and we have a simple landing page for templates to explain a bit more and have links to their Portal pages.
The highlight item is the new template Producer-Consumer Extended, which extends the Producer-Consumer template by showcasing a third step for reporting, examples for starting your own Python library, more extensive exception handling, etc.
The template list from RCC looks like this:
👉 Reminder that Robocorp Portal is full of open-source robots that can work as a jumping off point, so check it out.
Robocorp Assistant 2.0.11
Robocorp Assistant 2.0.11
This update contains:
- Now all the Error pages will show a "Submit issue" button; this will specially be helpful for users to submit an issue in case of linking errors
- RCC updated to version 14.6.0
Kind reminder that Assistant v1 will be deprecated end of June 2023, we will push the automatic update, at which point the end-users still using version 1 will get a prompt to upgrade.
🎉 RPA Framework 23.0.0
-
Library RPA.Database (#944):
-
Improvements for keyword
Call Stored Procedure -
Fix keyword not returning results of the procedure
-
Add possibility of returning result as a
RPA.Tables.Tableby parameteras_table=True(default is True, ie. Table is returned) -
Add possibility of returning multiple resultsets from a
Call Stored Procedureby parametermultiple=True(default is False, ie. only one resultset is returned). Multiple results are then either a list of lists or a list of Tables. -
Remove specific support for Python 2.* in this keyword
-
Library RPA.Email.Exchange (#948):
-
Add new keyword
Send Reply Message -
Add parameter
items_onlyfor keywordList Messageswhich returns internal Email objects (mainly for advanced usage) -
Library RPA.Email.ImapSmtp:
-
Add keyword
Convert EML file into messagewhich reads EML message and returns headers, attachments and body (in text and HTML) format. (#948) -
Add parameters in_reply_to and return_path to keyword
Send Message. (#948) -
Make the recipients optional. It is still mandatory to give one of the following parameters recipients, cc or bcc. (#930)
-
Library RPA.FTP (#938): Add socket support for TLS connections.
-
Library RPA.JavaAccessBridge (#947):
-
Add new keyword
List Java Windows -
Add new keyword
Select Window By PID -
Add new keyword
Select Window By Title -
Keyword
Select Windowis deprecated in favor of the 2Select..keywords mentioned above. Direct replacement for this keyword isSelect Window By Title. This keyword will be removed during next major release involvingRPA.JavaAccessBridgelibrary. -
Update library documentation to contain information about autoexit init parameter
-
RPA.Excel.Application
-
RPA.Outlook.Application
-
Library RPA.Word.Application (#945): Add autoexit init parameter (on default True as it is for similar libraries). This is a breaking change.
🎉 RPA Framework 22.5.3
- Security update: Bumps
cryptographyto version 40. (fixes the limitation of not being able to use the latestrpaframework-pdfin some scenarios; #926)