UiPath Scanner

A free tool for evaluating UiPath environment performance


TLDR

There is a lot of poorly built and poorly maintained UiPath processes out there and overselling licenses is rampant.

If you think yours might be one on them or you want to figure out if you can cut costs - run this tool to get a spreadsheet like this

I offer up to a half day for free to dig deeper into the results, Call or Email me

While the UiPath team are reviewing our submission for the marketplace, you can download the package here

Contact Me

Why did I build this?

Despite being a very positive person, my general thesis is that the average design and build quality for processes coming out of some of the biggest UiPath consultancies is poor. Resulting in high failure rate processes and oversold licenses to resolve performance problems.

So I created this tool to help people get more informed about the performance of their environment because my experience has been that project sponsors recieve a lot anecdotal feedback about failures and delays but rarely are they provided nor have access to objective metrics.

So if you're looking for some insight into the critical performance metrics of your environment so that you can start having informed discussions, run this tool.

What you get

The process extracts queue item and job data from Orchestrator, generating an Excel file with conditional formatting to help you identify problem areas.

The data is processed and unimportant details are removed, leaving four sets of condensed data

License Recommendation

Ultimately, you need enough licenses to handle the volume of work you have in a timely fashion.

On the left is the calculation of the percentage of time your robots are logged in, regardless of whether they are polling, performing critical work or waiting

On the right is the calculation of the percentage of time your robots are processing queue items - which is a typical indicator of actual business work being performed.

If you have high figures on the left but low figures on the right, this is an indicator that you have jobs running which either don't use queue items OR are simply executing but not finding any work to be done.

These are generalisations based on best practice, but this is an indicator I've found extremely useful in past engagements.

Calculating the recommendation and estimated savings (if possible) are also saved in the top left to give an idea of what you're potentially able to do. These figures are based on UiPath's public pricing with the 15% annual subscription discount applied.

In worst-case scenarios where the concurrency is low, licenses are plentiful but you're experience high time to start for queue items, the likely culprit is poor uipath process design preventing multiple robots from working on a single queue at the same time.

Overall QueueItem Stats

aka High level stats per Queue

This provides a summary of how long it takes items in a queue to start, process and the end-to-end totals. Split by status to allow easy detection of failures creating bottlenecks.

The 'typical' values are calculated by removing outliers (outside 3 standard deviation), allowing you to see what the typical average/min/max are.

The 'absolute' values include all items, easily highlighting issues where there might be infinite loops etc... causing major delays.


Individual QueueItem Stats

aka Detailed breakdown per transaction

Ordering by "Start Processing" will show the exact order that every queueitem was executed. The Minutes to Start is a critical metric because the linear processing model of UiPath means that processing time accumulates in delays for queue items further down the stack.

Job priority will play a key role in explaining jumps in start times as you can in the example below, the P002 job is lower priority than P001 and so despite having the job scheduled earlier it actually starts after.


Overall Job Stats

aka High level stats per Process

The details provided here are almost identical to the Overall QueueItem Stats but also includes utilisation, total executions and the amount of actual time spent processing each kind of job

Because Utilisation is based on a single license, you may see a number greater than 1 - indicating you require more than a single license to achieve the current processing demand. This figure does not account for every scenario, but it does provide an explanation for where your processing capacity is being allocated and generally your number of licenses shouldn't exceed this by much unless there are specific business requirements such as dedicated license availability etc.


Individual Job Stats

aka Detailed breakdown per job

This view provides insight into the ordered execution of jobs, including jobs that are cancelled by Orchestrator before they are run (due to Trigger configuration)

It allows you to see if/how jobs are cumulatively delayed by prior executions, highlighting peak load times where contention might be causing delays.

How to Get Started

This process runs from UiPath Studio, allowing you and your team to run it without installing new third party applications.

Download the package here

Below are some common scenarios, pick the one that most closely describes you!

Scenario #1: I have someone internally that can run this for me

If you have an internal person who does UiPath development work, they can do the following

  1. Download the files above
  2. Open UiPath Assistant and select your production tenant from the dropdown at the top of the window
  3. Run the process
  4. Send the "data/output.xlsx" file back to you.

Scenario #2: You're a UiPath Developer

Easy mode.

All you need to do is connect to the production tenant inside UiPath Assistant, refresh your Studio connection at the bottom and run the process.

The output.xlsx file is overwritten by the process each run - so don't worry about deleting it between runs.

Scenario #3: Kane... I need help...

Fear not, give me a shout. I'll need an account but we can work through that.

We'll figure it out!

Call or Email

Scenario #4: Never used UiPath but need to DIY

You're fighting the good fight alone, its all good - I've got you.

You will need to have existing permissions within UiPath Cloud, so if you need to request someone add that you should ask them to allocate you a developer license and administrative permissions - that way you can skip the first two sections

This will take about 5mins, but if you run into issues just call me on my mobile

Download the package here and extract them.

Getting a license

You need to get a license, which means potentially taking it temporarily from someone else.

  1. Open https://cloud.uipath.com and sign in with your account
  2. Click the 9 dots at the top left, click "Admin"
  3. Click on Licenses
  4. Expand the "License Allocations to Users" section
  5. Click "+ Allocate Licenses"
  6. If there is a "Automation Developer - Named User" available tick it on and add your name at the top box.
  7. If no license was available, we need to temporarily take it from another developer
  8. Expand the "License Allocations to Groups" section
  9. Click the person icon next to "Automation Developers"
  10. Click the bin icon to the oldest 'last login' - this releases their license.
  11. Now repeat steps 4 - 6.

Check your permissions

  1. Click the 9 dots at the top left, click "Admin"
  2. Click "Accounts & Local groups"
  3. Click "Local groups"
  4. Add yourself to the Administrators group
  5. This should give you access to the entire Orchestrator environment, assuming no one has unnecessarily played with the defaults!

Getting Studio

If you have developer machines internally, you can connect to them and use studio from there.

Otherwise, you can download and install Studio from UiPath

Using Studio

Its easiest to get started by opening "UiPath Assistant" which gets installed alongside Studio. It will prompt you to sign-in, after which it might ask you to select the "Tenant". If it does, select which ever environment is the Production environment.

Extract the Zip file you downloaded earlier (link here)

Now open UiPath Studio, click "Open a Local Project" and find the extracted files

Once the process is open you can simply press Start and it will execute.

The output file is added to the extracted files for you to review

What next?

I offer a free half-day of consulting to work with you and your team to dig deeper on the results with the goal of providing a path forward to getting your automations back on track.

I do offer UiPath consulting services at a day rate, for remediations projects I typically do fixed-fee engagements for standard development and remediation work, but also have a per-hour emergency support for processes where urgent remediation calls for an immediate start to work.

I don't personally have a managed service offering for UiPath but have strong ties with a UiPath Platinum Partner who I know does outstanding work in the space - absolulety happy to make those introductions. There are no kickbacks or anything here, just a good team I know you'd do well to work with.

Service Description Rate
Initial Review Half-day review and investigation Free
General Consulting Fixed-fee project with proposal and scheduled timelines $1000pd
Emergency Remediation Time and Materials with an immediate start $150ph
Referral to UiPath Partner Introduction to a trusted full-service partner Free

Common issues people experience

Here are a few common issues that people have, which you might also see in the data output.

Low Utilisation

Caused by having too many licenses or not having enough automations running!

Decrease your license count, or if you only have one license make sure you're automating more to fill it up

Outages will also negatively affect this figure

Queue items have high time to start

Most often caused by inefficient processes, scheduled jobs running too frequently and poorly configured priorities causing jobs to be pushed back as new higher priority jobs come in.

Improving the efficiency of slow processes, shifting away from ultra high frequency dispatchers to event driven design and making sure that high volume processes are able to be run in parallel

If you're constrained to a low license count, consider implementing maximum transaction counts for processes so that they are able to load balance between processes more frequently.

Jobs creating high numbers of queue items

Most often caused by poorly configured dispatching processes or an over-reliance on brute force dispatching.

Moving from a pull to a push design by implementing things like webhooks to allow third party products to alert UiPath to work rather than checking in for new work every n minutes

If there are no alternatives, consider whether more frequent triggers would allow the work to be spread out more.

Jobs processing high numbers of queue items

This is often related directly to the prior point, spikey dispatching leads to spikey performing.

In cases where there is no option to smooth out the pattern of new work coming in, parallel execution will help minimise the time it takes to resolve queueitems in a single queue.

Evening out the creation of new work items will also see a positive result here.

Jobs being TimedOut

Orchestrator Triggers can be set to stop or kill a process if it is running for more than n minutes. These time limits also include time the job stays in Pending.

Updating triggers to allow for longer start times is an option or limiting the number of transaction any given process can run linearly can help, however it is worth considering whether this is caused by priority settings on other jobs.

If a lot of jobs are getting cancelled prior to running, you may have broader problems such as insufficient licenses or inefficient processes causing these bottlenecks.

High error rate

If you're seeing a lot of Application Exceptions, this is a big problem because that indicates something unexpected is occuring, causing the application to crash.

If you're seeing a lot of Business Rule Exceptions, this might be a symptom of confidence thresholds being set too high or caused by upstream issues that require further attention - such as poor quality of data inputs.

Application Exceptions should be hunted down with extreme prejudice, but assessing if a BRE is a problem requires a good understanding of the process.

Licensing

By using this tool you agree to the EULA found here