8.1 Object Repository & UI Descriptor Libraries

Key Takeaways

  • The Object Repository is a Modern Design Experience capability that organizes UI targets into a strict four-level taxonomic hierarchy: Application, Version, Screen, and UI Element.

  • UI Descriptors encapsulate multi-target definitions (strict selectors, fuzzy selectors, image descriptors, anchors, and window selectors), completely decoupling element targeting from workflow business logic.

  • UI Descriptors created within a local project can be extracted and published as reusable UI Descriptor Libraries (NuGet packages) to UiPath Orchestrator or enterprise package feeds.

  • Dragging screens or UI elements from the Object Repository onto the Studio designer canvas automatically generates or binds Modern UI activities with active descriptor links.

  • Upgrading a target application's UI definition requires updating the descriptor once in the centralized UI Library; consuming automation projects simply update their package dependency with zero workflow code refactoring.

Last updated: September 2026

8.1 Object Repository & UI Descriptor Libraries

Core Concept: The Object Repository is an enterprise-grade UI management feature in UiPath Studio's Modern Design Experience. It centralizes, catalogs, and version-controls UI targets into reusable UI Descriptors. By decoupling selector definitions from workflow business logic, the Object Repository transforms UI automation from brittle, per-activity selector maintenance into a modular, centralized architecture where application interface updates propagate across entire enterprise portfolios with zero code refactoring.

In enterprise robotic process automation (RPA), selector maintenance historically represented the single largest contributor to technical debt and ongoing operational cost. In legacy "Classic" automation designs, when an enterprise ERP or web portal underwent an update—such as altering a CSS class, renaming an HTML control ID, or restructuring a navigation hierarchy—automation developers were forced to manually locate, inspect, and update dozens or hundreds of individual activities across multiple .xaml workflow files. The Object Repository resolves this structural flaw by establishing a single source of truth for UI metadata.


1. Object Repository Architecture & Hierarchy

The Object Repository operates strictly within projects configured for the Modern Design Experience (enabled via Project Settings > General > Modern Design Experience). It organizes all interactive elements of an application into a structured, four-tier taxonomic tree:

Object Repository Taxonomic Hierarchy
└── Application (e.g., SAP_S4HANA)
    └── Version (e.g., 2026.1)
        └── Screen (e.g., InvoiceProcessingScreen)
            ├── UI Element 1 (e.g., Input_VendorNumber)
            ├── UI Element 2 (e.g., Input_InvoiceAmount)
            ├── UI Element 3 (e.g., Btn_PostTransaction)
            └── UI Element 4 (e.g., Table_LineItems)

The Four Taxonomic Levels

  1. Application: Represents the top-level software system, platform, or service being automated (e.g., Salesforce_Lightning, Workday_HCM, Epic_EHR, SAP_WinGUI). An Application node defines the overarching technological boundary.
  2. Version: Represents a specific software release, patch level, or deployment environment of the application (e.g., v24.2, 1.0.0, R3_Build450). Versioning enables developers to maintain concurrent UI descriptor definitions for systems undergoing phased rollouts or environment-specific staging (such as Sandbox vs. Production).
  3. Screen: Corresponds to a distinct top-level window, webpage, tab, or modal dialog within the application (e.g., LoginPage, PurchaseOrderCreate_Window, VendorMaster_Dashboard). The Screen object encapsulates the Window Selector (such as <wnd app='saplogon.exe' title='Create Purchase Order' /> or <html app='chrome.exe' title='Salesforce - Home' />), establishing the operational context for all child controls.
  4. UI Element (UI Descriptor): The atomic interactive component located on a Screen (e.g., text inputs, action buttons, dropdown menus, table grids, checkboxes). Each UI Element stores a comprehensive UI Descriptor.

Anatomy of a UI Descriptor

A UI Descriptor is a unified metadata container that encapsulates everything required to locate, track, and interact with a UI control. Rather than relying on a single static string, a UI Descriptor contains:

  • Top-Level Window Selector: The parent window or container selector inherited from the Screen.
  • Strict Selector: An XML-based deterministic selector identifying exact tag names and attributes (e.g., id, name, automationid, class).
  • Fuzzy Selector: An attribute-matching selector with configurable fuzziness accuracy (e.g., matching text labels or partial strings even when dynamic IDs shift).
  • Image and Computer Vision targets: A visual snapshot of the element with its matching accuracy, plus Computer Vision targeting where enabled.
  • Anchor Descriptors: Spatial bindings to neighboring static elements (e.g., pairing an empty input box with a persistent text label like "Invoice Total:" or an adjacent icon).
  • Element Properties & Metadata: Informational tags, default interaction types, and human-readable descriptions for documentation.
+--------------------------------------------------------------------------------+
|                                UI DESCRIPTOR                                   |
|                                                                                |
|  +--------------------------------------------------------------------------+  |
|  | Top-Level Screen Selector: <html app='chrome.exe' title='Enterprise ERP' /> |  |
|  +--------------------------------------------------------------------------+  |
|  | Strict Selector:           <webctrl id='inv_amt_txt' tag='INPUT' />      |  |
|  +--------------------------------------------------------------------------+  |
|  | Fuzzy Selector:            <webctrl tag='INPUT' innertext='Amount*' />   |  |
|  +--------------------------------------------------------------------------+  |
|  | Image Descriptor:          [Base64 Image Bitmap + 0.84 Match Threshold]  |  |
|  +--------------------------------------------------------------------------+  |
|  | Anchor Relational Link:    Left-of: <webctrl tag='LABEL' aaname='Total' />|  |
|  +--------------------------------------------------------------------------+  |
+--------------------------------------------------------------------------------+

2. Decoupling UI Definitions from Workflow Logic

In standard software engineering, the principle of Separation of Concerns (SoC) mandates that data presentation, business logic, and infrastructure adapters remain isolated. The Object Repository implements this principle for robotic automation:

Traditional / Classic UI AutomationModern Object Repository Automation
Coupling: Selectors are hardcoded directly inside individual activities in .xaml files.Decoupled: Workflows store only a GUID/URI reference pointing to the centralized UI Descriptor.
Maintenance: A UI change requires searching through every workflow, checking out multiple files, and editing activities individually.Maintenance: The UI Descriptor is updated in one location; all referencing activities update instantly.
Reusability: Selectors must be manually copied and pasted across different activities and workflows.Reusability: UI Elements are dragged from a centralized catalog into any workflow.
Consistency: Different developers build varying selectors for the same UI control, leading to inconsistent reliability.Consistency: A single, optimized, multi-anchor selector definition is shared across the entire development team.
Auditability: Difficult to identify which workflows interact with a specific button or screen.Auditability: UI Descriptors provide bi-directional dependency tracking showing every workflow referencing a screen or element.

3. Workflow Authoring: Drag-and-Drop Dynamics

The Object Repository fundamentally streamlines how automation workflows are constructed in UiPath Studio. Developers capture application elements using the Capture Elements recorder or by adding individual screens and elements within the Object Repository panel.

Dragging Screens

When a developer drags a Screen node from the Object Repository panel directly onto the workflow canvas:

  • UiPath Studio automatically generates a Use Application/Browser container activity.
  • The container is automatically bound to the Screen's UI Descriptor, pre-populating the application path, URL, window selector, and display name.
  • Any child activities placed inside this container automatically inherit the scope's window context.

Dragging UI Elements

When a developer drags a UI Element from the Object Repository into a workflow:

  • Onto an existing Modern activity: If dropped directly onto a Modern UI activity (such as Click or Type Into), the activity's target is immediately linked to the UI Descriptor.
  • Onto an empty workflow canvas: Studio detects the element type and presents a context menu of compatible activities (e.g., dragging a button suggests Click, Hover, or Check App State; dragging a text field suggests Type Into, Get Text, or Set Text).

The Linked Indicator and Descriptor Binding

Once an activity is connected to an Object Repository descriptor, a distinct blue/cyan link icon appears in the top-right corner of the activity header. This visual indicator confirms that:

  1. The activity is bound to the centralized UI Descriptor.
  2. Any update made to that descriptor in the Object Repository applies to every activity that uses it, at design time and at runtime.
+-------------------------------------------------------------------+
|  [🔗 Linked] Type Into 'Vendor Tax ID'                             |
|  Target: Object Repository -> SAP_S4HANA -> v1.0 -> VendorTaxID   |
|  Text: in_VendorTaxID                                             |
+-------------------------------------------------------------------+

Note

If an exceptional circumstance requires a single activity to diverge from the centralized standard, developers can click the link icon and choose Unlink. Unlinking converts the UI Descriptor into a local, standalone selector specific to that activity, severing future synchronization with the Object Repository.


4. UI Descriptor Libraries & Enterprise Distribution

The Object Repository operates at two architectural scopes:

  1. Project-Local Object Repository: Elements captured inside a standard Automation Process reside within the project's metadata (.objects folder). These descriptors can be reused across all .xaml workflows within that specific project, but they are not directly visible to other automation projects.
  2. Enterprise UI Descriptor Libraries: To achieve organization-wide reuse, developers build dedicated Library projects in UiPath Studio containing UI Descriptors for core enterprise platforms (e.g., Salesforce, SAP, Oracle Financials, ServiceNow).

Creating and Publishing a UI Descriptor Library

The enterprise lifecycle for a UI Descriptor Library follows a structured pipeline:

  1. Create Library Project: A developer opens UiPath Studio and initializes a new project using the Library template, ensuring Modern Design Experience is active.
  2. Capture Application UI: The developer captures all applications, screens, and UI elements, tuning anchors, fuzzy thresholds, and strict selectors for maximum resilience.
  3. Extract as Library / Publish: The developer clicks Publish in Studio. Studio packages the Object Repository hierarchy into a standardized NuGet package (.nupkg), complete with semantic versioning metadata (e.g., Company.SAP.UIElements.1.0.0.nupkg).
  4. Feed Distribution: The package is published to:
    • UiPath Orchestrator Libraries Feed: Accessible to all tenant robots and Studio users across the organization.
    • Enterprise Artifact Repositories: Internal private feeds such as Azure DevOps Artifacts, JFrog Artifactory, or Sonatype Nexus.
  5. Consuming the Library: In any consuming automation process, developers open the Manage Packages dialog, search for the published library package, and install it as a project dependency.
  6. Object Repository Integration: Upon installation, the library's entire taxonomic tree appears in the consuming project's Object Repository panel under the UI Libraries section, ready for immediate drag-and-drop workflow authoring.

5. Versioning, Maintenance & Zero-Code Refactoring

The true power of the UI Descriptor Library architecture manifests when target applications undergo interface overhauls or periodic upgrades.

The Enterprise Application Upgrade Scenario

Consider an enterprise where thirty distinct automation processes interact with an internal billing portal. The IT web development team pushes an update that converts all HTML submit buttons from standard <button id='btn_submit'> tags to dynamic custom components <div role='button' class='v2-action-btn'>. In a classic RPA architecture, this single change would break all thirty automations, requiring thirty individual code checkouts, sixty hours of developer remediation, and extensive regression testing.

With UI Descriptor Libraries, the remediation follows a clean, zero-code maintenance pattern:

[1. Target App UI Changes]
        │
        ▼
[2. Open UI Library Project in Studio]
        │
        ▼
[3. Update UI Descriptor via Target Analyzer / Re-indicate Element]
        │
        ▼
[4. Increment Library SemVer: 1.0.0 -> 1.0.1]
        │
        ▼
[5. Publish .nupkg to Orchestrator Libraries Feed]
        │
        ▼
[6. Consuming Processes: Manage Packages -> Update to 1.0.1]
        │
        ▼
[All Workflows Instantly Synchronized — Zero .xaml Editing Required]

Semantic Versioning (SemVer) for UI Libraries

Enterprise Centers of Excellence (CoEs) govern UI Libraries using standard Semantic Versioning (MAJOR.MINOR.PATCH):

  • PATCH (e.g., 1.0.0 -> 1.0.1): Applied when fine-tuning existing element selectors, adjusting fuzzy matching accuracy thresholds, or adding backup image anchors without altering screen hierarchies or element names. Consuming projects can safely update patch releases with minimal regression risk.
  • MINOR (e.g., 1.0.0 -> 1.1.0): Applied when new screens or elements are added to an existing application version (e.g., adding descriptors for a newly released "Batch Invoice Export" tab). Backward compatibility with existing workflows is fully preserved.
  • MAJOR (e.g., 1.0.0 -> 2.0.0): Applied when a target application undergoes a fundamental architectural overhaul (e.g., migrating from SAP GUI on-premise to SAP Fiori web interface, or Salesforce Classic to Lightning), where existing screen structures and interaction patterns are deprecated or removed.

Updating a Consumed Library

In a consuming project, update the library dependency through Manage Packages like any other package. The updated screens and elements then appear under UI Libraries in the Object Repository panel, and activities linked to those descriptors use the new definitions. Review the changes and rerun your tests before publishing the consuming process.


6. Enterprise Governance and Lifecycle Management

To maximize the stability and return on investment (ROI) of the Object Repository, organizations establish formal governance frameworks:

  1. Segregation of Responsibilities:
    • Component / Library Engineers: Experienced automation engineers within the Automation CoE are tasked with building, testing, and maintaining core UI Descriptor Libraries. They ensure selectors are optimized for speed, reliability, and security.
    • Process Developers: Line-of-business automation developers assemble workflows by consuming certified UI Libraries, focusing purely on business logic without worrying about low-level selector syntax.
  2. Automated UI Testing via UiPath Test Suite: Before publishing a new UI Library version to production Orchestrator feeds, the CoE runs an automated test suite. These test cases use activities such as Check App State and Verify Control Attribute against staging environments to confirm that the library's descriptors still find their elements.
  3. Deprecation Strategies: When an application feature is phased out, document the affected elements in the library's release notes and publish a new major version, so consuming teams update deliberately instead of discovering the change in production.
Loading diagram...
Enterprise UI Descriptor Library Architecture & Distribution
Test Your Knowledge

When an enterprise web application updates its user interface and breaks existing button selectors across twenty distinct automation processes, how do teams utilizing UI Descriptor Libraries resolve the issue with minimal maintenance overhead?

A

Open each of the twenty automation projects and manually re-record the affected activities in every workflow file.

B

Update the UI Descriptors once in the centralized UI Library project, publish a new package version, and update the library dependency across the twenty projects.

C

Write an Invoke Code activity in each process to dynamically replace the broken selector XML strings in memory at runtime.

D

Convert all Modern UI activities in the twenty projects back to Classic activities with fuzzy matching enabled.

Test Your Knowledge

What is the correct structural hierarchy of elements within the UiPath Object Repository?

A

Screen -> Application -> Version -> UI Element

B

Version -> Application -> UI Element -> Screen

C

UI Element -> Screen -> Application -> Version

D

Application -> Version -> Screen -> UI Element

Test Your Knowledge

What occurs when a developer drags a Screen node directly from the Object Repository panel onto the workflow canvas in UiPath Studio?

A

Studio automatically generates a Use Application/Browser activity configured with the window selector and unified target of the selected screen.

B

Studio generates a standalone Flowchart containing empty Click placeholders for every UI element registered under that screen.

C

Studio creates a CV Screen Scope activity connected to the cloud Computer Vision server.

D

Studio exports the screen definition as a local JSON file inside the project's Data directory.

Sections you finish are checked off in the contents.