Google Workspace Studio is getting better with each update. So much so that you should strongly consider replacing parts of your RPA Desktop bot with it. If you’ve done any work at all with UIPath and Power Automate Desktop bots, you know that their workflows can be very brittle. All a website needs to do is sneeze and it smashes your entire flow. The problem with desktop-based bots is that they are far too brittle. Modern automations need to be deterministic, and that simply isn’t possible with tools that operate on local machines.
But this is where web-based tools like Workspace Studio excel. In this article, we’ll explore how I took parts of an old, clunky Power Automate Desktop flow and converted it into a strong, Google-powered time saver.
Most Brittle Parts of Any RPA Process
The most fragile part of any RPA bot process is reliance on UI elements. If a legacy application doesn’t have an API for you to use, or any sort of scheduled export, then you have no choice but to rely on the UI. This is problematic for two reasons.
- UI components change without notice - Vendors generally give you a heads up about major updates, but minor ones like changing the ID for the username field to user_name from username aren’t one of these. But this seemingly small change is enough to break your automation.
- Systems performance and environment issues - Even if the application itself has not changed, the machine that houses your bot might. A VM can stutter when opening a browser. Excel can freeze when the bot opens the files. A lag spike can cause the bot to click before the page is fully loaded. In some web apps, UI components don’t always render in a consistent order. I’ve seen menu components render top to bottom or left to right depending on the order in which they are clicked.
What Deterministic Automation Looks Like
Deterministic automation is a fancy way of saying that if you give a workflow the same input, it should give you the same result every single time. It sounds fairly obvious, but most desktop-based RPA workflows don’t really work like that.
Instead of operating on the structured data, like what you’d find in a JSON payload, they heavily rely on:
- Where a button is located on a page
- Page speed
- Whether a UI element renders properly
- Whether the browser behaves the same way it did last week
Deterministic workflows don’t care about any of these things. They live off events and data, not pixels.
For example:
- A file arrives in Gmail.
- A row is added to a Google Sheet.
- A record is created or updated in a system.
- A PTO request changes from pending to approved .
RPA does its best at mimicking human actions, while modern automation connects systems together and lets data flow smoothly between them without variance.
My Old Power Automate Desktop Flow
My old PAD flow was housed on a virtual machine and was triggered by a scheduled cloud flow to run every morning at 6 a.m. Once the bot clocked in for work, it immediately popped open a Chrome browser, entered the URL of the web application, and logged in. From there, it would traverse the UI until it landed on the report section.
At this point, the flow continued like this:
- Enter the report parameters
- Hit the export button
- Wait about a minute, then go to the downloads section
- Pass the file from the downloads folder to a Python script
- This script normalized the data before the final step
- Next, attach the completed file to an email and fire it off to the client
The flow wasn't perfect, but it got the job done for years and didn't require much human interaction. But it wasn't resilient, and no matter how much error handling I added in, many common issues stopped it dead in its tracks.
It also used to reside on an old laptop before migrating to a dedicated VM. Back when it was running on a physical laptop, I had to contend with power outages, network connectivity issues, and people accidentally shutting the laptop down.
My New Google Workspace Flow
I’m admittedly a massive Google fanboy, but Workspace Studio is unable to replace my entire desktop-based workflow. Logging into systems via web interfaces, traversing through the system, and downloading files is currently out of reach for the platform. Instead, it jumped in at the data transformation and file sending part. Instead of local data manipulation, the cloud handled the rest.
- Power Automate Desktop logged into the vendor system
- The bot entered the report parameters
- The bot hit export and downloaded the file
- The exported file was moved into Google Drive
- Workspace Studio triggered once the file arrived
- Apps Script reads the file and normalizes the data (requires JavaScript, not Python… I know… gross)
- The cleaned output is sent back to the designated Drive folder
- The output is attached to an email and sent to the client
Since the file manipulation occurs in the cloud and not on your local machine, you aren’t subject to spikes, latency, and other quirks VMs experience. You aren’t completely replacing the desktop portion, just eliminating one of its most common failure points.
Don’t Replace The Desktop Bot, Just Augment It
For as long as legacy systems and apps without APIs exist, there will always be a place for Desktop bots. Valuable data sometimes exists in hard to reach places, and Power Automate Desktop still does a fantastic job at retrieving that data. It truly goes where no web-based automation can. However, its flows are at times extremely brittle, and a strong enough breeze can topple your business-critical operations.
This is where the Desktop flow needs to tag in its web-based counterpart, Google Workspace Studio. After it has done the dirty work in extracting the file, it can pass the rest of the job off to the cloud-based automation platform. This process removes the unpredictability and allows for consistent outputs throughout the workflow.
If you're interested in automation, AI, and productivity, let's connect on the socials listed below. Until next time, happy hacking.