Description
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:///identity/connect/token - Configurable custom OAuth endpoints
- Token caching for optimal performance (90% fewer OAuth requests)
- Organization Unit scoping support
- 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 (includes comments, events, transactions, bulk add)
- Custom API Call (NEW! ๐): Make custom requests to any UiPath Orchestrator endpoint with full control over method, headers, query params, and body
- Custom API endpoints (on-premise support)
- Custom OAuth token URLs
- Customizable OAuth scopes
- Pagination support (take/skip)
- Organization Unit ID scoping
โ 9 Resource Types with 45+ Operations
โ Flexible Configuration
—
๐ฆ Installation
Via NPM
npm install n8n-nodes-uipath-orchestrator
In n8n
1. Open n8n interface
2. Go to Settings โ Community Nodes
3. Search for n8n-nodes-uipath-orchestrator
4. Click Install
5. Restart n8n
—
๐ Credentials Setup
Create OAuth2 Credentials
1. In n8n, go to Credentials โ New โ UiPath OAuth2 API
2. 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
1. Log in to your UiPath Orchestrator instance
2. Go to Administration โ API Access
3. Create an Application and get:
– Client ID
– Client Secret
– Tenant name (from instance URL: https://)
– 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:
1. Set Up New Folder โ Assign Users โ Assign Machines โ Verify Setup
2. Audit Permissions โ Get All Roles For User or Get Users For Folder
3. Move Folder with Impact Analysis โ Get Move Folder Machines Changes โ Verify Results
4. Batch Machine Updates โ Update Machines To Folder Associations
๐ Full Documentation: See FOLDERSOPERATIONSv1.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 JOBSOPERATIONSv1.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
#### 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:
—
๐ก 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:
uipath.mycompany.comhttps://uipath.mycompany.com/api/oauth/tokenhttps://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:
https://orchestrator.mycompany.comOR.Administration OR.Execution OR.Assets OR.Users OR.Folders) as requiredThe node will use the provided Server URL to request OAuth2 tokens using the client credentials flow:
https:///identity/connect/token https:///identity/.well-known/openid-configuration granttype=clientcredentials&clientid={appid}&clientsecret={appsecret}&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:
OR.Folders.Read OR.Jobs.ReadOrganization Unit Scoping
Limit operations to specific organizational units:
—
๐ 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”
“API endpoint not found (404)”
“Permission denied”
Slow Performance
Take parameter to smaller batches if needed—
๐ Resources
—
๐ 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.4.6)
๐ Major Updates
#### New Features
– 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 APIQUICKSTART.md”>CUSTOMAPIQUICKSTART.md
#### Critical Fixes
– All operations now correctly pass query parameters to axios params instead 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
#### Previous Updates (v1.1.1)
Notes
npm run build to compile TypeScript after pulling changes—
๐ค Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Submit a pull request with clear descriptions
—
๐ License
MIT License – Feel free to use in commercial projects
—
๐ฌ Support
For issues, questions, or feature requests:
—
Made with โค๏ธ for the n8n and UiPath communities