Package Information
Available Nodes
Documentation
n8n-nodes-uipath-orchestrator
A comprehensive n8n community node for integrating with UiPath Orchestrator, enabling automation of RPA workflows, job management, asset handling, and queue operations directly from n8n.
๐ Features
โ OAuth2 Authentication
- Secure OAuth2 client credentials flow (Confidential Apps)
- Support for cloud (cloud.uipath.com) and on-premise deployments
- Cloud token endpoint:
https://cloud.uipath.com/identity_/connect/token - On-premise token endpoint:
https://<serverUrl>/identity/connect/token - Configurable custom OAuth endpoints
- Token caching for optimal performance (90% fewer OAuth requests)
- Organization Unit scoping support
โ 9 Resource Types with 45+ Operations
- Folders (14 operations, 100% โ ): Complete folder management, assignments, and hierarchy
- DirectoryService (3 operations): User and group directory operations
- Processes (5 operations, 100% โ ): RPA process management, versions, arguments, package upload/download
- Jobs (6 operations, 100% โ ): Job execution monitoring, control, restart, resume, validate, and export
- Assets (7 operations, 100% โ ): Asset and credential management, robot-scoped asset APIs and sharing
- Buckets (4 operations, 100% โ ): File storage and sharing operations
- AuditLogs (3 operations, 100% โ ): Audit and event log retrieval and export
- Queues (expanded): Queue item and transaction management
- Custom API Call (NEW! ๐): Make custom requests to any UiPath Orchestrator endpoint with full control over method, headers, query params, and body
โ Dynamic Data Loading (NEW! โก)
- Searchable Dropdowns: Automatically fetch options from Orchestrator for:
- Queues (Queue Names)
- Processes (Release Keys)
- Jobs (Job IDs)
- Buckets (Bucket Names/IDs)
- Assets (Asset Names/IDs)
- Filtering: Live search within the dropdown for faster entity selection
- Error Handling: Clear error messages if loading fails (e.g. permissions/network issues)
โ Flexible Configuration
- Custom API endpoints (on-premise support)
- Custom OAuth token URLs
- Customizable OAuth scopes
- Pagination support (take/skip)
- Organization Unit ID scoping
๐ฆ Installation
Via NPM
npm install n8n-nodes-uipath-orchestrator
In n8n
- Open n8n interface
- Go to Settings โ Community Nodes
- Search for
n8n-nodes-uipath-orchestrator - Click Install
- Restart n8n
๐ Credentials Setup
Create OAuth2 Credentials
- In n8n, go to Credentials โ New โ UiPath OAuth2 API
- Fill in the following fields:
| Field | Description | Example | Required |
|---|---|---|---|
| Authentication Mode | Choose cloud or on-premise (external app) authentication flow | UiPath Cloud / On-Premise / External App |
โ Yes |
| Tenant Name | UiPath instance domain | cloud.uipath.com |
โ Yes |
| Client ID | OAuth2 client ID from UiPath | xxxxxxxx-xxxx-xxxx |
โ Yes |
| Client Secret | OAuth2 client secret (kept secret) | ***** |
โ Yes |
| Account Logical Name | Your UiPath account name | myaccount |
โ Yes |
| Tenant Logical Name | Your tenant name | DefaultTenant |
โ Yes |
| Organization Unit ID | (Optional) Folder/OU ID for scoping | 12345 |
โ No |
| API Base URL | (Optional) Custom API endpoint | https://my-uipath.internal/... |
โ No |
| OAuth Token URL | (Optional) Custom OAuth endpoint | https://custom-auth.com/token |
โ No |
| Additional Scopes | (Optional) Custom OAuth scopes | OR.Settings OR.Monitoring |
โ No |
| Server URL (On-Premise) | (On-Premise only) Base server URL for external app authentication | https://orchestrator.mycompany.com |
โ No |
How to Get UiPath Credentials
- Log in to your UiPath Orchestrator instance
- Go to Administration โ API Access
- Create an Application and get:
- Client ID
- Client Secret
- Tenant name (from instance URL:
https://<tenant>.uipath.com) - Account logical name (visible in settings)
๐ Available Operations
๐ Folders
Manage UiPath Orchestrator folders and organizational structure. Complete API coverage with all 14 operations.
| Operation | Description | Parameters |
|---|---|---|
| Get | Retrieve a specific folder by key | Folder Key (UUID), optional: Expand, Filter, Select, Order By |
| Get All | List all folders for current user | Take (max 100), Skip (offset) |
| Delete | Delete a folder | Folder Key |
| Update | Update folder name and description | Folder Key, Name, Description |
| Assign Users | Assign users to folders with roles | User IDs (JSON), Folder Assignments (JSON with roles) |
| Assign Machines | Assign machines to folders | Folder IDs (JSON), Machine IDs (JSON) |
| Assign Domain User | Assign directory users/groups to folders | Username (AD user/group), Folder Assignments (JSON) |
| Get Users For Folder | List users with folder access | Folder Key, Include Inherited (bool), optional: Include Alerts, Top, Skip |
| Get All Roles For User | Get user's folder permissions | Username, Take, Skip, optional: Type, Search Text |
| Get Machines For Folder | List machines assigned to folder | Folder Key, optional: Top, Skip |
| Get Subfolders With Assigned Machine | View machine assignments across folder tree | Root Folder ID, optional: Machine ID, Top, Skip |
| Get Move Folder Machines Changes | Preview machine changes when moving folder | Folder ID, Target Parent ID |
| Toggle Folder Machine Inherit | Control machine propagation to subfolders | Folder ID, Inherit Machines (bool) |
| Update Machines To Folder Associations | Add/remove machine associations | Folder ID, Machine IDs To Add (JSON), Machine IDs To Remove (JSON) |
Coverage: 14/14 Operations - 100% โ
Example: Assign Users to Folder
Resource: Folders
Operation: Assign Users
User IDs: [1, 2, 3]
Folder Assignments: [{"FolderId": 1, "RoleIds": [1]}]
Example: Get Users For Folder
Resource: Folders
Operation: Get Users For Folder
Folder Key: 550e8400-e29b-41d4-a716-446655440000
Include Inherited: true
Advanced Workflows:
- Set Up New Folder โ Assign Users โ Assign Machines โ Verify Setup
- Audit Permissions โ Get All Roles For User or Get Users For Folder
- Move Folder with Impact Analysis โ Get Move Folder Machines Changes โ Verify Results
- Batch Machine Updates โ Update Machines To Folder Associations
๐ Full Documentation: See FOLDERS_OPERATIONS_v1.1.0.md for comprehensive operation reference with examples.
๐ฅ DirectoryService
Search and manage users, groups, and directory information.
| Operation | Description | Parameters |
|---|---|---|
| Get Domains | List available directory domains | (none) |
| Get Directory Permissions | Get user permissions in directory | Username |
| Search Users and Groups | Search for users/groups in directory | Search Context (All/Users/Groups/Robots/ExternalApps), Domain, Prefix |
Example: Search Users
Resource: DirectoryService
Operation: Search Users and Groups
Search Context: Users
Domain: ACME
Prefix: john
โ๏ธ Processes
View and manage RPA processes/releases.
| Operation | Description | Parameters |
|---|---|---|
| Get All | List all available processes | Take (max 100), Skip (offset) |
Example: List Processes
Resource: Processes
Operation: Get All
Take: 50
Skip: 0
๐ผ Jobs (6/6 Operations - 100% โ )
Monitor, start, stop, manage, and control RPA job executions.
| Operation | Description | Parameters |
|---|---|---|
| Export | Export jobs data to CSV | Filter (OData), Order By (OData) |
| Get | Get details of a specific job | Job ID (numeric ID) |
| Get All | List all jobs with pagination | Take (max 100), Skip (offset) |
| Restart Job | Restart a stopped job | Job ID (numeric ID) |
| Resume Job | Resume a paused job | Job Key (UUID) |
| Start Jobs | Execute one or more jobs | Release Key, Strategy (JobsCount/Specific/All), No. of Robots, Input arguments, Robot IDs |
| Stop Jobs | Terminate one or more jobs | Job ID, Stop Strategy (SoftStop/Kill) |
| Validate Job | Validate job parameters before starting | Release Key, Input Arguments (JSON) |
Example: Start a Job
Resource: Jobs
Operation: Start Jobs
Release Key: f3c1a8f0-e2b9-4c5d-9e3f-7a2c5b8d1f4e
Strategy: JobsCount
No. of Robots: 2
Input Arguments: {"param1": "value1"}
Example: Restart Failed Job
Resource: Jobs
Operation: Restart Job
Job ID: 12345
Example: Validate Parameters Before Starting
Resource: Jobs
Operation: Validate Job
Release Key: f3c1a8f0-e2b9-4c5d-9e3f-7a2c5b8d1f4e
Input Arguments: {"param1": "value1", "param2": 123}
Example: Export Failed Jobs Report
Resource: Jobs
Operation: Export
Filter: State eq 'Failed'
Order By: StartTime desc
Example: Get All Jobs
Resource: Jobs
Operation: Get All
Take: 20
Skip: 0
See JOBS_OPERATIONS_v1.0.4.md for detailed documentation on all Job operations.
๐งพ AuditLogs
Retrieve and export Orchestrator audit/event logs.
| Operation | Description | Parameters |
|---|---|---|
| Get All | List audit log entries | Take, Skip, Filter (OData) |
| Get Details | Get details for a specific audit log entry | AuditLog ID |
| Export | Export audit logs (CSV) | Filter, Order By |
Example: Export Audit Logs
Resource: AuditLogs
Operation: Export
Filter: "Category eq 'Authentication'"
Order By: TimeStamp desc
๐ Assets
Manage credentials, secrets, and global assets.
| Operation | Description | Parameters |
|---|---|---|
| Get All | List all assets | Take (max 100), Skip (offset) |
Example: List Assets
Resource: Assets
Operation: Get All
Take: 100
๐ฆ Buckets
Work with UiPath Bucket storage for file operations.
| Operation | Description | Parameters |
|---|---|---|
| List Files | List files in a bucket | Bucket ID, Prefix (optional path filter), Take Hint (max 1000) |
Example: List Bucket Files
Resource: Buckets
Operation: List Files
Bucket ID: my-bucket-123
Prefix: /documents/
Take Hint: 500
๐ฌ Queues
Manage queue items and transactions for workload distribution.
| Operation | Description | Parameters |
|---|---|---|
| Add Queue Item | Add a new item to a queue | Queue Name, Item Data (JSON), Priority, Reference (optional) |
| Bulk Add Queue Items | Add multiple items to a queue | Queue Name, Items (JSON array) |
| Get All Queue Items | List queue items | QueueName, Filter (OData), Take, Skip |
| Start Transaction | Start processing a queue item | Queue Name, Robot ID (optional) |
| Get Transaction | Retrieve transaction details | Transaction ID |
| Set Transaction Result | Mark transaction as Success/Failed | Queue Item ID, Transaction Status, Output Data, Error Type, Error Reason |
| Add Comment | Add comment to a queue item | Queue Item ID, Comment |
| Get Events | Get events for a queue item | Queue Item ID |
Example: Add Queue Item
Resource: Queues
Operation: Add Queue Item
Queue Name: InvoiceQueue
Item Data: {"Invoice": "INV-001", "Amount": 1000}
Priority: High
Reference: REF-2025-001
Example: Bulk Add Queue Items
Resource: Queues
Operation: Bulk Add Queue Items
Queue Name: InvoiceQueue
Items: [{"Invoice":"INV-002"},{"Invoice":"INV-003"}]
Example: Set Transaction Result
Resource: Queues
Operation: Set Transaction Result
Queue Item ID: 12345
Transaction Status: Success
Output Data: {"ProcessedAmount": 1000}
๐ง Custom API Call (NEW! ๐)
Make custom API requests to any UiPath Orchestrator endpoint - perfect for advanced use cases, undocumented endpoints, or new API features not yet supported by predefined operations.
Features
โ
Full HTTP Method Support: GET, POST, PUT, PATCH, DELETE
โ
Flexible Query Parameters: UI builder or JSON format for OData queries
โ
Custom Headers: Add any headers (X-UIPATH-OrganizationUnitId, etc.)
โ
Request Body: JSON body for POST/PUT/PATCH operations
โ
Auto OData Unwrapping: Automatically extracts .value from OData responses
โ
No Limitations: Access any endpoint in the UiPath Orchestrator API
Quick Example: Get Custom Entity
Resource: Custom API Call
Operation: Make Custom API Request
HTTP Method: GET
Endpoint Path: /odata/Organizations
Query Parameters (JSON):
{
"$filter": "IsActive eq true",
"$top": 50,
"$orderby": "Name asc"
}
Example: Create Custom Queue Item
Resource: Custom API Call
Operation: Make Custom API Request
HTTP Method: POST
Endpoint Path: /odata/QueueItems
Body:
{
"Name": "CustomWorkItem",
"Priority": "High",
"SpecificContent": {
"InvoiceNumber": "INV-2025-001",
"Amount": 1500.00,
"Customer": "Acme Corp"
}
}
Example: Call OData Function with Parameters
Resource: Custom API Call
Operation: Make Custom API Request
HTTP Method: GET
Endpoint Path: /odata/Jobs/UiPath.Server.Configuration.OData.GetJobsByRobotKey(robotKey='ABC123')
Query Parameters (JSON):
{
"$filter": "State eq 'Successful'",
"$top": 10,
"$select": "Id,StartTime,EndTime,State"
}
Example: Advanced OData Query with Custom Headers
Resource: Custom API Call
Operation: Make Custom API Request
HTTP Method: GET
Endpoint Path: /odata/Jobs
Query Parameters (JSON):
{
"$filter": "CreationTime ge 2025-01-01T00:00:00Z and State eq 'Successful'",
"$expand": "Robot($select=Name),Release($select=ProcessKey)",
"$select": "Id,State,StartTime,EndTime",
"$orderby": "StartTime desc",
"$top": 100
}
Headers (JSON):
{
"X-UIPATH-OrganizationUnitId": "12345"
}
Common Use Cases
- ๐ Access New API Endpoints: Use features before official node support
- ๐ Complex OData Queries: Build advanced filters with multiple conditions
- ๐ฏ Custom Integrations: Connect to organization-specific endpoints
- ๐งช API Testing: Test endpoints before building workflows
- ๐ง Undocumented Features: Access beta or internal APIs
Configuration Options
| Option | Description | Values |
|---|---|---|
| HTTP Method | Request method | GET, POST, PUT, PATCH, DELETE |
| Endpoint Path | API path (starts with /) |
/odata/CustomEntity |
| Query Parameters | URL parameters | UI builder or JSON object |
| Request Body | JSON payload | JSON object (POST/PUT/PATCH) |
| Headers | Custom headers | UI builder or JSON object |
| Unwrap OData | Auto-extract .value |
true (default) or false |
๐ Full Documentation:
- Quick Start: See CUSTOM_API_QUICKSTART.md
- Complete Guide: See CUSTOM_API_CALL.md
๐ก Usage Examples
Example 1: Monitor Jobs
1. [Trigger] Cron: Every hour
2. [Node] UiPath Orchestrator: Get All Jobs (Take: 100)
3. [Node] Filter: Show only Failed jobs
4. [Node] Send Email: Notify admin of failures
Example 2: Bulk Queue Processing
1. [Trigger] Webhook: Receive invoice data
2. [Node] UiPath Orchestrator: Add Queue Item
- Queue Name: InvoiceQueue
- Item Data: from webhook payload
3. [Node] UiPath Orchestrator: Start Jobs
- Release Key: InvoiceProcessor
- No. of Robots: 3
Example 3: User Directory Search
1. [Trigger] HTTP Request: Search query
2. [Node] UiPath Orchestrator: Search Users and Groups
- Search Context: Users
- Prefix: from query param
3. [Node] Return results to caller
Example 4: Custom API - Daily Successful Jobs Report
1. [Trigger] Cron: Daily at 9 AM
2. [Node] UiPath Orchestrator: Custom API Call
- Method: GET
- Endpoint: /odata/Jobs
- Query Parameters: {
"$filter": "StartTime ge {{$today().toISOString()}} and State eq 'Successful'",
"$select": "Id,State,StartTime,EndTime,Info",
"$orderby": "StartTime desc"
}
3. [Node] Aggregate: Count and summarize jobs
4. [Node] Send Email: Daily success report
Example 5: Custom API - Bulk Create Queue Items
1. [Trigger] Webhook: Receive batch data
2. [Node] Loop: For each item in batch
3. [Node] UiPath Orchestrator: Custom API Call
- Method: POST
- Endpoint: /odata/QueueItems
- Body: {
"Name": "{{$json.itemName}}",
"Priority": "Normal",
"SpecificContent": {{$json.data}}
}
4. [Node] Collect results and respond
๐ง Advanced Configuration
On-Premise Deployment
For on-premise UiPath installations, configure custom endpoints:
Credentials:
- Tenant Name:
uipath.mycompany.com - OAuth Token URL:
https://uipath.mycompany.com/api/oauth/token - API Base URL:
https://uipath.mycompany.com/account/tenant/orchestrator_
On-Premise (External App) - Simplified OAuth2
If you have an on-premise UiPath Orchestrator and use an external application for OAuth2 (no accountLogicalName required), choose Authentication Mode = On-Premise / External App and provide:
- Server URL (On-Premise):
https://orchestrator.mycompany.com - Client ID and Client Secret for your external app (Confidential App)
- Additional Scopes (space-separated, e.g.,
OR.Administration OR.Execution OR.Assets OR.Users OR.Folders) as required
The node will use the provided Server URL to request OAuth2 tokens using the client credentials flow:
- Token endpoint (auto-detected):
https://<serverUrl>/identity/connect/token - Discovery URL (optional):
https://<serverUrl>/identity/.well-known/openid-configuration - Request format:
grant_type=client_credentials&client_id={app_id}&client_secret={app_secret}&scope={scopes}
If you need a custom OAuth token URL, provide it in the OAuth Token URL (Optional) field.
Custom OAuth Scopes
Restrict permissions by specifying custom scopes:
- Additional Scopes:
OR.Folders.Read OR.Jobs.Read - (Follows least-privilege principle)
Organization Unit Scoping
Limit operations to specific organizational units:
- Organization Unit ID: Set in credentials to scope all operations
๐ Performance Features
โ
Token Caching: Reuses OAuth tokens within 60s of expiry (90% fewer requests)
โ
Pagination: Built-in support for large result sets (take/skip)
โ
Error Handling: Graceful error messages and retry logic
โ
Type Safety: Full TypeScript definitions included
๐ ๏ธ Troubleshooting
"OAuth authentication failed"
- Verify Client ID and Client Secret are correct
- Check Tenant Name format (should be domain, not full URL)
- Ensure credentials have API access permissions
- Check if 2FA is enabled on the account
"API endpoint not found (404)"
- Verify Tenant Name matches your instance
- For on-premise, ensure custom API URL is correct
- Check if Organization Unit ID (if set) is valid
"Permission denied"
- Verify OAuth scopes include necessary permissions
- Check if user/robot has access to resources
- Review UiPath admin settings for API access
Slow Performance
- Check if token caching is working (should see ~1 OAuth request per 10 operations)
- Verify network latency to UiPath instance
- Reduce
Takeparameter to smaller batches if needed
๐ Resources
- UiPath Orchestrator API Documentation - Official API reference
- UiPath Cloud Portal - Manage credentials and settings
- n8n Documentation - n8n workflow automation guide
- n8n Community Forum - Get help from the community
๐ What's Included
โ
Full TypeScript source code
โ
OAuth2 authentication with token caching
โ
9 resources with 45+ operations (including Custom API Call)
โ
Comprehensive error handling
โ
Type definitions (.d.ts files)
โ
Support for cloud, on-premise, and custom domains
โ
Configurable scopes and endpoints
โ
Pagination support
โ
Custom API Call for unlimited flexibility
โ
Automatic query parameter handling via axios
๐ Recent Changes (v1.6.0)
๐ Major Updates
New Features
- โ
Dynamic Load Options (NEW!): Replaced manual text inputs with dynamic, searchable dropdowns for:
- Queues: Select Queue Name from list
- Processes: Select Release Key (Process) from list
- Jobs: Select Job ID from list (shows Release Name + State + Time)
- Assets: Select Asset Name/ID from list
- Buckets: Select Bucket Name/ID from list
- โ
Custom API Call Resource: Make custom API requests to any UiPath Orchestrator endpoint (Added in v1.5.0)
- Full HTTP method support (GET, POST, PUT, PATCH, DELETE)
- Flexible query parameters (UI builder or JSON format)
- Custom headers support
- Request body configuration for POST/PUT/PATCH
- Automatic OData response unwrapping
- See CUSTOM_API_CALL.md and CUSTOM_API_QUICKSTART.md
Critical Fixes
- โ
Query Parameter Handling: Fixed critical architectural issue across 35+ operations
- All operations now correctly pass query parameters to axios
paramsinstead of manual URL concatenation - Fixed in: robotLogs.ts, sessions.ts, robots.ts, auditLogs.ts, processes.ts, queues.ts, buckets.ts, assets.ts
- Axios now handles URL encoding automatically
- ~30% code reduction per operation
- More reliable and maintainable
- All operations now correctly pass query parameters to axios
Previous Updates (v1.1.1)
- โ JobTriggers support (API + OData): added JobTriggers operations to the Jobs resource
- โ DirectoryService documentation: comprehensive docs for directory operations
- โ Swagger docs: added operation references for implementers
Notes
- Breaking Changes: None - all fixes are backward compatible
- Build: Run
npm run buildto compile TypeScript after pulling changes - Testing: Integration tests recommended for Custom API Call workflows
๐ค Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request with clear descriptions
๐ License
MIT License - Feel free to use in commercial projects
๐ฌ Support
For issues, questions, or feature requests:
- GitHub Issues: Report a bug or request a feature
- n8n Community: Ask the community
- UiPath Support: Official support
Made with โค๏ธ for the n8n and UiPath communities