UiPath Tasks (Action Center) — Agent Skill
Action Center is UiPath's human-in-the-loop platform. Tasks represent work items
that require human input — form approvals, document validation, data labeling, and more.
All operations go through uip tasks <verb> --output json.
Login & Tenant Setup
Default to Production. Only switch environment/org/tenant when explicitly stated in the request.
- If the request mentions no environment → use the current session (defaults to prod
cloud.uipath.com)
- If the request explicitly names an environment/org/tenant → check
uip login status and re-login if needed
When switching is required:
- Check current login:
uip login status --output json — verify UIPATH_URL, Organization, and Tenant
- Re-login with
--authority only if environment differs:
- Alpha:
uip login --authority https://alpha.uipath.com --tenant <tenant>
- Staging:
uip login --authority https://staging.uipath.com --tenant <tenant>
- Production:
uip login --tenant <tenant> (default, no --authority needed)
- If already on the right environment but wrong tenant:
uip login tenant set <tenant-name>
# Check current environment, org, and tenant
uip login status --output json
# Login to a specific environment (production cloud is the default)
uip login --authority https://cloud.uipath.com --tenant MyTenant
# List all available tenants (after login)
uip login tenant list --output json
# Switch tenant within the same environment
uip login tenant set MyTenant
Critical: The --tenant flag on tasks commands does NOT switch the active session tenant.
The environment is determined by UIPATH_URL in the auth file — always confirm with login status before running tasks commands.
When to Use
- Listing or inspecting Action Center tasks across folders
- Assigning, reassigning, or unassigning tasks to users
- Completing tasks with action outcomes and data payloads
- Querying which users have task permissions in a folder
- Managing task catalogs (list, get, create, update) and their retention policy
- Reading and adding task comments
- Setting task labels
- Editing task metadata (title, priority, catalog association)
- Getting and saving task data
Not in scope: Orchestrator queues or queue items (use uip or), Document Understanding model training, or Action Center app development (use uip codedapp).
Task Types
| Type |
CLI value |
Description |
| Form task |
FormTask |
Form-based approval/action task |
| External task |
ExternalTask |
Generic external task |
| App task |
AppTask |
Action Center app-based task |
| Document validation |
DocumentValidationTask |
Document Understanding validation |
| Document classification |
DocumentClassificationTask |
Document Understanding classification |
| Data labeling |
DataLabelingTask |
Data labeling task |
Task Statuses & Priorities
| Status |
Meaning |
Unassigned |
Created but not assigned to any user |
Pending |
Assigned, awaiting completion |
Completed |
Completed with an action/outcome |
| Priority |
Level |
Low |
Low |
Medium |
Medium (default) |
High |
High |
Critical |
Critical |
Quick Start
# Check login and active tenant
uip login status --output json
# Switch tenant if needed
uip login tenant set <tenant-name>
# List all tasks across folders
uip tasks list --output json
# Get details of a specific task
uip tasks get <task-id> --output json
# Assign a task to a user
uip tasks assign <task-id> --user alice@company.com --output json
# Complete a task
uip tasks complete <task-id> --type ExternalTask --folder-id <folder-id> --output json
Critical Rules
Always resolve org and tenant first. If the user specifies an org/environment and tenant, run uip login status to check the active tenant, then uip login tenant set <tenant> to switch if needed. Never assume the active tenant matches the user's intent.
Task IDs are numeric. Unlike other UiPath services that use GUIDs, Action Center uses numeric task IDs. Use tasks list to discover task IDs.
Folder scope comes in three interchangeable forms. Folder-scoped commands accept --folder-id <numeric-id>, --folder-path <path>, or --folder-key <guid> (mutually exclusive). Path and key are exactly what uip or folders list prints (it has no numeric ID column), so prefer them when the folder came from folder discovery; the numeric id still works when a task row gave you folderId.
Complete requires --type. The API routes to different endpoints per task type. Always include --type when completing a task. Use tasks get to check the task type first.
FormTask and AppTask require --action and --data for completion. Other task types allow optional action and data.
Assign accepts --user-id or --user (email). Use tasks users <folder-id> (or tasks users --folder-path <path> / --folder-key <guid>) to discover assignable users and their IDs.
Always discover before acting. Use tasks list or tasks get to inspect task state before performing assign/complete operations.
Do not complete already-completed tasks. Check the task status field — if it is Completed, inform the user.
Folder scope for complete/catalogs/comments/labels/metadata/data. These commands need a folder. Pass one of --folder-id/--folder-path/--folder-key, or omit all three on an interactive terminal to pick from a list. A folder option is required in non-interactive runs (agents, CI) — the command fails with A folder is required otherwise, so always pass one explicitly there.
Retention actions are Delete or Archive. Archive also needs --retention-bucket-id. --encrypted is create-only and cannot be changed on update.
Labels replace the full set. tasks labels --labels overwrites all labels on the task — include every label to keep, and pass [] to clear them all.
data save takes no type flag. The command resolves the task type itself; pass the task ID, a folder option (--folder-id/--folder-path/--folder-key), and --data (a JSON object).
Task Navigation
| Task |
Commands to use |
| List all tasks |
tasks list |
| List tasks in a folder |
tasks list --folder-id <id> |
| List tasks in a folder by path/key |
tasks list --folder-path "<path>" or tasks list --folder-key <guid> |
| List tasks as admin |
tasks list --as-admin |
| Get task details |
tasks get <task-id> |
| Get task with type hint |
tasks get <task-id> --task-type FormTask --folder-id <id> |
| Assign a task |
tasks assign <task-id> --user <email> |
| Assign by user ID |
tasks assign <task-id> --user-id <id> |
| Reassign a task |
tasks reassign <task-id> --user <email> |
| Unassign a task |
tasks unassign <task-id> |
| Complete a task |
tasks complete <task-id> --type <type> --folder-id <id> |
| Complete with action |
tasks complete <task-id> --type FormTask --folder-id <id> --action "Approve" --data '{...}' |
| List assignable users |
tasks users <folder-id>, tasks users --folder-path "<path>", or tasks users --folder-key <guid> |
| List task catalogs |
tasks catalogs list --folder-id <id> |
| Get a catalog |
tasks catalogs get <catalog-id> --folder-id <id> |
| Create a catalog |
tasks catalogs create --name <name> --folder-id <id> |
| Update a catalog |
tasks catalogs update <catalog-id> --folder-id <id> |
| List task comments |
tasks comments list <task-id> --folder-id <id> |
| Add a comment |
tasks comments add <task-id> --text <text> --folder-id <id> |
| Set task labels |
tasks labels <task-id> --labels '[{"name":"region","displayName":"Region","displayValue":"EMEA"}]' --folder-id <id> |
| Edit task metadata |
tasks metadata <task-id> --folder-id <id> [--title --priority --catalog-id] |
| Get task data |
tasks data get <task-id> --folder-id <id> |
| Save task data |
tasks data save <task-id> --data '{...}' --folder-id <id> |
Workflow: Discover → Plan → Act → Verify
Always follow this pattern:
- Discover — list tasks, get details, find assignable users
- Plan — determine the operation (assign, complete, etc.)
- Act — execute the operation
- Verify — re-read the task to confirm the state change
# 0. Ensure correct tenant
uip login status --output json
uip login tenant set <tenant-name> # only if needed
# 1. Discover
uip tasks list --output json
uip tasks get <task-id> --output json
# 2. Plan — determine the task type, folder ID, and action needed
# 3. Act — assign a task
uip tasks assign <task-id> --user alice@company.com --output json
# 4. Verify
uip tasks get <task-id> --output json
Troubleshooting
| Error |
Cause |
Fix |
Not logged in |
Auth expired |
uip login |
HTTP 401 |
Invalid token |
Re-login |
HTTP 403 |
Permission denied |
Ensure account has Action Center permissions in the folder |
Missing assignee |
Neither --user-id nor --user provided |
Add --user <email> or --user-id <id> |
Task not found |
Wrong task ID |
Run tasks list to get correct ID |
| Completion fails |
Wrong --type |
Use tasks get to check the actual task type |
| Completion fails for FormTask |
Missing --action or --data |
FormTask and AppTask require both --action and --data |
| Cannot assign |
User lacks permissions in folder |
Run tasks users <folder-id> to list eligible users |
A folder is required |
Non-interactive run without a folder option |
Pass --folder-id, --folder-path, or --folder-key |
Folder not found: '<value>'. |
The path/key doesn't match a folder this login can access |
Run uip or folders list and use a listed Path or Key |
Invalid --folder-key: <value> |
The key is not a UUID |
Use the GUID from the Key column of uip or folders list |
Error resolving folder path/key '<value>' |
The folder lookup itself failed (permissions or network) |
Check the error detail in Instructions; verify access with uip or folders list |
References
For deeper guidance, read these files only when needed:
references/task-lifecycle.md — Listing and getting tasks, type-hint endpoint routing, and the full discover→assign→complete workflow
references/task-completion.md — Completion endpoint routing, required fields per task type
references/task-assignment.md — Assign, reassign, unassign patterns and user discovery
references/task-catalogs.md — Task catalog list/get/create/update and retention policy
references/task-metadata.md — Editing task metadata, plus task comments and labels
references/task-data.md — Getting and saving task data, and save type routing
references/action-center-urls.md — Canonical Action Center URL patterns; read this before constructing or sharing any task deep-link (the portal-UI misclassifies tenant-less URLs as "Orchestrator not enabled")
1---2name: uipath-tasks3description: UiPath Action Center human-in-the-loop tasks via `uip tasks`: list, assign, complete, plus task catalogs, comments, labels, metadata, and task data (get/save). For authoring HITL nodes in flows/agents→uipath-human-in-the-loop. For Orchestrator→uipath-platform, codedapp→uipath-coded-apps. Skip Document Understanding.4---56# UiPath Tasks (Action Center) — Agent Skill78Action Center is UiPath's human-in-the-loop platform. Tasks represent work items9that require human input — form approvals, document validation, data labeling, and more.1011All operations go through `uip tasks <verb> --output json`.1213---1415## Login & Tenant Setup1617**Default to Production. Only switch environment/org/tenant when explicitly stated in the request.**1819- If the request mentions no environment → use the current session (defaults to prod `cloud.uipath.com`)20- If the request explicitly names an environment/org/tenant → check `uip login status` and re-login if needed2122When switching is required:231. Check current login: `uip login status --output json` — verify `UIPATH_URL`, `Organization`, and `Tenant`242. Re-login with `--authority` only if environment differs:25 - Alpha: `uip login --authority https://alpha.uipath.com --tenant <tenant>`26 - Staging: `uip login --authority https://staging.uipath.com --tenant <tenant>`27 - Production: `uip login --tenant <tenant>` (default, no `--authority` needed)283. If already on the right environment but wrong tenant: `uip login tenant set <tenant-name>`2930```bash31# Check current environment, org, and tenant32uip login status --output json3334# Login to a specific environment (production cloud is the default)35uip login --authority https://cloud.uipath.com --tenant MyTenant3637# List all available tenants (after login)38uip login tenant list --output json3940# Switch tenant within the same environment41uip login tenant set MyTenant42```4344> **Critical:** The `--tenant` flag on `tasks` commands does NOT switch the active session tenant.45> The environment is determined by `UIPATH_URL` in the auth file — always confirm with `login status` before running `tasks` commands.4647---4849## When to Use5051- Listing or inspecting Action Center tasks across folders52- Assigning, reassigning, or unassigning tasks to users53- Completing tasks with action outcomes and data payloads54- Querying which users have task permissions in a folder55- Managing task catalogs (list, get, create, update) and their retention policy56- Reading and adding task comments57- Setting task labels58- Editing task metadata (title, priority, catalog association)59- Getting and saving task data6061> **Not in scope:** Orchestrator queues or queue items (use `uip or`), Document Understanding model training, or Action Center app development (use `uip codedapp`).6263---6465## Task Types6667| Type | CLI value | Description |68|------|-----------|-------------|69| Form task | `FormTask` | Form-based approval/action task |70| External task | `ExternalTask` | Generic external task |71| App task | `AppTask` | Action Center app-based task |72| Document validation | `DocumentValidationTask` | Document Understanding validation |73| Document classification | `DocumentClassificationTask` | Document Understanding classification |74| Data labeling | `DataLabelingTask` | Data labeling task |7576---7778## Task Statuses & Priorities7980| Status | Meaning |81|--------|---------|82| `Unassigned` | Created but not assigned to any user |83| `Pending` | Assigned, awaiting completion |84| `Completed` | Completed with an action/outcome |8586| Priority | Level |87|----------|-------|88| `Low` | Low |89| `Medium` | Medium (default) |90| `High` | High |91| `Critical` | Critical |9293---9495## Quick Start9697```bash98# Check login and active tenant99uip login status --output json100101# Switch tenant if needed102uip login tenant set <tenant-name>103104# List all tasks across folders105uip tasks list --output json106107# Get details of a specific task108uip tasks get <task-id> --output json109110# Assign a task to a user111uip tasks assign <task-id> --user alice@company.com --output json112113# Complete a task114uip tasks complete <task-id> --type ExternalTask --folder-id <folder-id> --output json115```116117---118119## Critical Rules1201211. **Always resolve org and tenant first.** If the user specifies an org/environment and tenant, run `uip login status` to check the active tenant, then `uip login tenant set <tenant>` to switch if needed. Never assume the active tenant matches the user's intent.1221232. **Task IDs are numeric.** Unlike other UiPath services that use GUIDs, Action Center uses numeric task IDs. Use `tasks list` to discover task IDs.1241253. **Folder scope comes in three interchangeable forms.** Folder-scoped commands accept `--folder-id <numeric-id>`, `--folder-path <path>`, or `--folder-key <guid>` (mutually exclusive). Path and key are exactly what `uip or folders list` prints (it has no numeric ID column), so prefer them when the folder came from folder discovery; the numeric id still works when a task row gave you `folderId`.1261274. **Complete requires `--type`.** The API routes to different endpoints per task type. Always include `--type` when completing a task. Use `tasks get` to check the task type first.1281295. **FormTask and AppTask require `--action` and `--data` for completion.** Other task types allow optional action and data.1301316. **Assign accepts `--user-id` or `--user` (email).** Use `tasks users <folder-id>` (or `tasks users --folder-path <path>` / `--folder-key <guid>`) to discover assignable users and their IDs.1321337. **Always discover before acting.** Use `tasks list` or `tasks get` to inspect task state before performing assign/complete operations.1341358. **Do not complete already-completed tasks.** Check the task `status` field — if it is `Completed`, inform the user.1361379. **Folder scope for complete/catalogs/comments/labels/metadata/data.** These commands need a folder. Pass one of `--folder-id`/`--folder-path`/`--folder-key`, or omit all three on an interactive terminal to pick from a list. A folder option is required in non-interactive runs (agents, CI) — the command fails with `A folder is required` otherwise, so always pass one explicitly there.13813910. **Retention actions are `Delete` or `Archive`.** `Archive` also needs `--retention-bucket-id`. `--encrypted` is create-only and cannot be changed on update.14014111. **Labels replace the full set.** `tasks labels --labels` overwrites all labels on the task — include every label to keep, and pass `[]` to clear them all.14214312. **`data save` takes no type flag.** The command resolves the task type itself; pass the task ID, a folder option (`--folder-id`/`--folder-path`/`--folder-key`), and `--data` (a JSON object).144145---146147## Task Navigation148149| Task | Commands to use |150|------|----------------|151| List all tasks | `tasks list` |152| List tasks in a folder | `tasks list --folder-id <id>` |153| List tasks in a folder by path/key | `tasks list --folder-path "<path>"` or `tasks list --folder-key <guid>` |154| List tasks as admin | `tasks list --as-admin` |155| Get task details | `tasks get <task-id>` |156| Get task with type hint | `tasks get <task-id> --task-type FormTask --folder-id <id>` |157| Assign a task | `tasks assign <task-id> --user <email>` |158| Assign by user ID | `tasks assign <task-id> --user-id <id>` |159| Reassign a task | `tasks reassign <task-id> --user <email>` |160| Unassign a task | `tasks unassign <task-id>` |161| Complete a task | `tasks complete <task-id> --type <type> --folder-id <id>` |162| Complete with action | `tasks complete <task-id> --type FormTask --folder-id <id> --action "Approve" --data '{...}'` |163| List assignable users | `tasks users <folder-id>`, `tasks users --folder-path "<path>"`, or `tasks users --folder-key <guid>` |164| List task catalogs | `tasks catalogs list --folder-id <id>` |165| Get a catalog | `tasks catalogs get <catalog-id> --folder-id <id>` |166| Create a catalog | `tasks catalogs create --name <name> --folder-id <id>` |167| Update a catalog | `tasks catalogs update <catalog-id> --folder-id <id>` |168| List task comments | `tasks comments list <task-id> --folder-id <id>` |169| Add a comment | `tasks comments add <task-id> --text <text> --folder-id <id>` |170| Set task labels | `tasks labels <task-id> --labels '[{"name":"region","displayName":"Region","displayValue":"EMEA"}]' --folder-id <id>` |171| Edit task metadata | `tasks metadata <task-id> --folder-id <id> [--title --priority --catalog-id]` |172| Get task data | `tasks data get <task-id> --folder-id <id>` |173| Save task data | `tasks data save <task-id> --data '{...}' --folder-id <id>` |174175---176177## Workflow: Discover → Plan → Act → Verify178179**Always follow this pattern:**1801811. **Discover** — list tasks, get details, find assignable users1822. **Plan** — determine the operation (assign, complete, etc.)1833. **Act** — execute the operation1844. **Verify** — re-read the task to confirm the state change185186```bash187# 0. Ensure correct tenant188uip login status --output json189uip login tenant set <tenant-name> # only if needed190191# 1. Discover192uip tasks list --output json193uip tasks get <task-id> --output json194195# 2. Plan — determine the task type, folder ID, and action needed196197# 3. Act — assign a task198uip tasks assign <task-id> --user alice@company.com --output json199200# 4. Verify201uip tasks get <task-id> --output json202```203204---205206## Troubleshooting207208| Error | Cause | Fix |209|-------|-------|-----|210| `Not logged in` | Auth expired | `uip login` |211| `HTTP 401` | Invalid token | Re-login |212| `HTTP 403` | Permission denied | Ensure account has Action Center permissions in the folder |213| `Missing assignee` | Neither `--user-id` nor `--user` provided | Add `--user <email>` or `--user-id <id>` |214| `Task not found` | Wrong task ID | Run `tasks list` to get correct ID |215| Completion fails | Wrong `--type` | Use `tasks get` to check the actual task type |216| Completion fails for FormTask | Missing `--action` or `--data` | FormTask and AppTask require both `--action` and `--data` |217| Cannot assign | User lacks permissions in folder | Run `tasks users <folder-id>` to list eligible users |218| `A folder is required` | Non-interactive run without a folder option | Pass `--folder-id`, `--folder-path`, or `--folder-key` |219| `Folder not found: '<value>'.` | The path/key doesn't match a folder this login can access | Run `uip or folders list` and use a listed `Path` or `Key` |220| `Invalid --folder-key: <value>` | The key is not a UUID | Use the GUID from the `Key` column of `uip or folders list` |221| `Error resolving folder path/key '<value>'` | The folder lookup itself failed (permissions or network) | Check the error detail in `Instructions`; verify access with `uip or folders list` |222223---224225## References226227For deeper guidance, read these files only when needed:228229- `references/task-lifecycle.md` — Listing and getting tasks, type-hint endpoint routing, and the full discover→assign→complete workflow230- `references/task-completion.md` — Completion endpoint routing, required fields per task type231- `references/task-assignment.md` — Assign, reassign, unassign patterns and user discovery232- `references/task-catalogs.md` — Task catalog list/get/create/update and retention policy233- `references/task-metadata.md` — Editing task metadata, plus task comments and labels234- `references/task-data.md` — Getting and saving task data, and save type routing235- `references/action-center-urls.md` — Canonical Action Center URL patterns; **read this before constructing or sharing any task deep-link** (the portal-UI misclassifies tenant-less URLs as "Orchestrator not enabled")