Hi everyone,
I recently started working in a UiPath environment and I am currently reviewing how our RPA projects are structured and operated.
I have a few questions about common practices and best practices in UiPath. I would really appreciate hearing how other teams manage these areas.
I realize this is quite a long list of questions, so I would sincerely appreciate any advice or experience you can share, even if you are only able to answer one of them.
1. Sharing common libraries when Orchestrator Organizations are separated
We are planning to create a common library containing reusable workflows such as login, file handling, Excel utilities, browser handling, credential handling, etc.
However, our Orchestrator environments/Organizations are separated by project or bot.
What would be the recommended way to share the same common library across these separated environments?
For example, would you normally use:
- a shared/custom NuGet feed,
- a shared network folder,
- or publish the same library package separately to each Orchestrator environment?
In our environment, we generally have one bot/PC per RPA project.
If the common library is updated from version 1.0.0 to 1.0.1, do we normally need to update the library dependency in each individual RPA project, test it, and republish each project?
Or is there a more efficient/common way to manage library updates across many bots and projects?
2. Using Windows Task Scheduler instead of Orchestrator schedules
I noticed that some RPA processes are executed using Windows Task Scheduler rather than Orchestrator triggers/schedules.
Is this a common approach in UiPath production environments?
If you are using Windows Task Scheduler, what are the typical reasons for choosing this instead of using an Unattended Robot with Orchestrator scheduling?
For example:
- licensing or cost,
- infrastructure limitations,
- security restrictions,
- legacy architecture,
- or other reasons?
I am curious whether this is considered a normal production architecture or more of a workaround depending on the environment.
3. Common/reusable modules used by other UiPath teams
Do most UiPath teams create and maintain their own common libraries?
If so, what kinds of reusable workflows or activities do you usually include?
For example:
Common Library
โโ Login / Logout
โโ Create Task Folders
โโ File Exists / Wait for File
โโ File Backup
โโ Excel validation
โโ Browser / Application cleanup
โโ Mail handling
โโ Credential handling
โโ Logging
โโ Exception handling utilities
Are there any commonly used design patterns or recommended structures for building a reusable UiPath library?
If anyone has sample projects, GitHub repositories, example workflows, or documentation showing a good common-library structure, I would really appreciate it.
4. Git branches and Orchestrator package management
Our Git repository currently has a development branch and a main branch.
Is it generally okay for developers to commit/push directly to the main branch?
Or is a flow like this more common?
Development branch
โ
Review / Test
โ
Merge
โ
Main branch
โ
Publish UiPath package
โ
Orchestrator
Also, when using both Git and Orchestrator, how do you normally divide their responsibilities?
My current understanding is:
Git
โ source code version control
โ XAML / project.json / configuration files
โ development history
Orchestrator
โ published packages
โ deployment
โ execution
โ logs / monitoring
Do most teams use both Git and Orchestrator together, rather than choosing one or the other?
How do you normally link a Git version/commit/tag with a published UiPath package version so that it is easy to trace what source code is running in production?
5. UiPath / Windows version standardization and upgrade timing
Another issue I noticed is that the environment is not fully standardized.
Different bots/projects may currently be using different versions of:
- Windows,
- UiPath Studio / Robot,
- activity packages,
- browser versions,
- browser extensions,
- and common libraries.
For example, one bot may be running on Windows 10 with an older UiPath version, while another may be running on Windows 11 with a newer version.
Is it common to allow different bots to remain on different UiPath/Windows versions as long as they are stable?
Or do most teams try to standardize the environments across all bots?
Also, how do you normally decide when to upgrade UiPath Studio/Robot or Windows?
For example, do you upgrade:
- whenever a new version is released,
- only when the current version is close to end of support,
- on a fixed yearly schedule,
- when there is a security requirement,
- or only when a specific project requires it?
When performing a major environment change, such as:
Windows 10 โ Windows 11
UiPath 2023.x
โ
UiPath 2024.x / 2025.x
what kind of validation process do you normally follow before changing production bots?
Do you maintain a separate test machine/VDI and run regression tests for existing automations before upgrading the production environment?
I would also be interested to know whether teams usually define a standard combination such as:
Standard RPA Environment
Windows version
UiPath Studio / Robot version
UI Automation package version
Excel package version
Browser version / extension
Common Library version
and periodically migrate all bots to that standard.
I would appreciate any advice, examples, or experiences from teams operating UiPath at scale.
Thank you!