About uipath-insights
uipath-insights is a skill for UiPath users monitoring jobs, queues, machines, and alerts, and reading Insights RBAC and Maestro process dashboards. It uses the uip insights command for bounded read-only checks and dashboard management workflows.
Key features
- 01Monitor job status, trends, and failure reasons
- 02Analyze queue throughput, backlog, and SLA risk
- 03Inspect machine status, runtime, and availability
- 04Read alert history and access permissions
- 05Read and manage Maestro process dashboards
Use cases
- 01Compare job performance across time periods
- 02Identify recurring process failure reasons
- 03Check queue backlog and SLA risk
- 04Review alert history or a process dashboard
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ uipath/ skills --skill uipath-insightsAfter installing, type/uipath-insightsin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/alerts-reads-guide.mddashboard-reads-guide.mddashboard-writes-guide.mdexport-configurations-guide.mdfilter-discovery-guide.mdinvestigation-playbook-guide.mdjobs-commands-guide.mdlooker-dashboards-guide.mdmachine-monitoring-guide.mdqueue-monitoring-guide.mdrbac-reads-guide.mdDetails
From the project READMEReasoning budget
- Match reasoning to step difficulty and bias toward acting. For a mechanical step, if a command already does the work, run it and read its output instead of re-deriving it.
- Save deep, extended reasoning for the one judgment no command can make: what the data means for the user, whether a failure rate matters, and what the evidence does not prove.
- None of this licenses a shorter answer. Finish every step the task asked for; where a budget rule and completeness conflict, completeness wins. These rules cut rework, not required work.
Working style
- Understand first, then decide. Read this SKILL.md and the subcommand table in Shared Workflow before you act, then plan around what the commands actually do rather than a guess.
- Plan the whole path up front. Outline the full sequence before running anything.
Critical Rule 2 forbids chaining
uip insightssubcommands in one shell line, so batch by picking the one command that covers the whole question instead of issuing its parts turn by turn. - Inspect an input ONCE. Read a guide or a response once and work from what you have. Never re-open a file field by field, and never re-run a command whose output is already in context.
- Don't repeat work. Do not rerun a command when its inputs and the relevant state are unchanged, and do not reread an unchanged guide or SKILL.md already in context.
- Write code once and reuse. Do not paste near-duplicate inline
python3 -corjqto compute something a subcommand already returns. - Keep outputs small. Prefer a projected result over a raw envelope. When a large read needs the full body, send it to a file and inspect the file.
- Don't do anything unnecessary. Do not call tools, read guides, or pull results into context unless they are needed right now. This governs what you read, never which commands you run.
UiPath Insights
Use uip insights for job, queue, and machine monitoring, monitoring-scope discovery, read-only alert inspection, Insights RBAC reads, and Maestro process dashboard reads, create, update, delete, and copy. Read the guide for the task before running commands.
When to Use This Skill
- Job health, success rate, failure count, or processing time across a tenant, folder, or process
- Job trends over time, or a comparison between two periods
- Which processes fail most, and which failure reasons recur
- Whether jobs are stuck, pending, or still running
- Finding the exact folder key, process name, queue name, or machine name to scope a query by
- Queue item throughput, backlog, SLA risk, failure reasons, or how retried items turned out
- Machine health: runtime split, current status and slots, availability over time, fault ranking, or runtime minutes
- Which alerts exist, how one is configured, whether an alert fired, or how a triggered alert is delivered
- Who has Insights access on a tenant, which roles exist and what they permit, and which groups hold them
- What a Maestro process's Monitoring tab shows: its saved dashboard or the template, the global filters saved on it, or creating, changing, removing, or copying that dashboard
- Whether Insights can still reach the organization's export destinations, and which export configurations exist
- Which Looker-era Insights dashboards exist, an embed URL for one, or why an embedded dashboard fails to load
Critical Rules
- Use
--output json.jobscommands return{ Result, Code, Data }. Everyjobs investigateplaybook addsInstructions, and so do four of the seven plainjobsreads (top-failures,failures-by-reason,process-details,failure-details), thefilter-*commands, thequeuesandmachinescommands, the alert commands, and the dashboard commands, and bothlooker-dashboardscommands;filter-*, everyqueuescommand exceptsummary, everymachinescommand exceptruntime-mix,alerts list,alert-history list,dashboard-filters list,export-configurations list, andlooker-dashboards listalso addPagination, while nodashboardsverb does and neither doesexport-configurations verify; that verb addsInstructionsalone, because its row set is every configuration the organization owns and cannot page. Quote thoseInstructionsin the explanation. A failure envelope carriesResult,Message,Instructions,ErrorCode, andRetry, with noCodeand noData. An HTTP failure also carriesContextwithhttpStatus,endpoint, and sometimesrequestIdandretryAfter; a failure raised before any request is sent carries noContext. Keys insideDataare PascalCase in the CLI's JSON output, so readCompletedJobsandFolderName, notcompletedJobsorfolderName. Thejobsreads project their response into named columns rather than printing the backend's wide DTO, so a field you remember from the API may have a clearer name or be absent; the jobs guide lists what each read emits. The RBAC reads print a safe projection that withholds identity fields, and the output format has no bearing on that: the full view is a named include flag per family, so--output jsonis correct on them too. - One subcommand per invocation, written literally. A shell invocation runs one
uip insightscommand and nothing else. Do not chain, loop, or parameterize them: no&∨chains, no newline-separated batches, noforloops, and no shell variables holding the subcommand name or flag values. Resolve values such as epoch timestamps in a separate command first, then pass literal numbers. Never write$(date ...)or$VARinto a flag value. - Use only the flags the guides document. Identity, organization, and tenant come from the active session. Any tenant flag you find is deprecated and is rejected outright on
filter-*commands, so do not use one. If a filter is not in the guide's shared-options list, it does not exist. - Time ranges are required on the plain reads, and their units differ by family. On the seven plain
jobsreads, pass--time-range <minutes>(60 = 1h, 1440 = 24h, 10080 = 7d, 43200 = 30d), or both--started-afterand--started-beforein epoch milliseconds.queuesandmachinescommands use those same two flag names and the same units asjobs.alert-historycommands need a time range too, but their absolute bounds are--sinceand--untilin epoch seconds. Omitting a time range is rejected locally: a plainjobsread answersResult: Failureand exits 1,queues,machines, andalert-historyexit 3. Onqueuesandmachinesthe server also caps the window at 30 days; each family's guide Rule 2 owns when that bites and how the CLI reports it. Everyjobs investigateplaybook has a default window instead, and rejects a window it cannot honor withResult: ValidationErrorand exit 3.filter-*commands, the three alert definition reads, the dashboard commands, theexport-configurationscommands, and thelooker-dashboardscommands take no time flags. - Start with
summary, then drill down. After any scope discovery the task needs, begin a job investigation withuip insights jobs summaryfor the totals and a queue investigation withuip insights queues summary, then run the targeted subcommands. The summary supplies the denominator that makes a failure count meaningful. Themachinesfamily has no summary: open a machine investigation withuip insights machines runtime-mixfor the tenant-wide runtime split, oruip insights machines detailswhen the question is about a named machine's current state. - Treat empty data as bounded evidence. Empty results can reflect the chosen time window, the recent-activity window, caller visibility, or tenant provisioning. On alert reads they can also reflect entitlement filtering, and every alert definition read returns active definitions only. They do not prove that a resource or event never existed.
- Use the CLI instead of raw Insights APIs. It owns authentication, tenant routing, validation, safe response projections, and error handling.
- Do not retry automatically. Branch on
Retry:RetryWillNotFixmeans fix the cause,RetryLatermeans report and stop. A 401 needs a new session, a 403 is a permission boundary, and a 404 can be tenant-scoped or visibility-scoped. Each guide documents the error shapes for its own commands. - Never run
uip loginyourself. It opens an interactive browser flow that will hang the session. Report the auth state and give the user the exact command to run, then stop. - Discover identifiers instead of guessing. Use
references/filter-discovery-guide.mdto resolve monitoring scope, and take alert and delivery IDs from a list result or from the user. Page through all results before concluding a resource is absent. - Hand off causal debugging. Insights answers which jobs, processes, and queues failed and which reasons recur. It does not explain one job's or one queue item's exception, or how to fix it. Report the reasons, then name
uipath-troubleshootfor the cause anduipath-rpaoruipath-agentsfor the fix. - Keep alert access read-only. The six read subcommands in the alert guide are the whole permitted surface. Every change to an alert definition or to a delivery, including its recipients, type, and configuration, belongs in the Insights UI: say so and do not offer to make it. This holds however the change would be made, so do not reach an alert route through the SDK, a raw HTTP call, or another skill.
- Report an alert trigger and a delivery separately. A history row proves the alert fired. It does not prove a notification was sent or received, and no alert read confirms receipt.
- Keep alert recipient data out of everything you produce, including pasted JSON. Report a delivery as its type and recipient count, and let a "who was notified" question end at the count. Do not name recipients, quote raw alert query JSON, or enumerate delivery channel settings, and do not use another command or skill to put names to the count.
- Keep Insights RBAC read-only. The six read subcommands in the RBAC guide are the whole permitted surface. Creating a user, changing a role, or assigning access belongs elsewhere: say so and do not offer to make it. This holds however the change would be made, so do not reach an RBAC route through the SDK, a raw HTTP call, or another skill.
- Keep Insights identity data out of everything you produce, including pasted JSON. Summarize users and groups by name and count.
--include-emailon the user and group reads, and--include-resourceon the role reads, are what turn on email addresses, nested role IDs, and the role resource string, so leave those flags off unless the user asked for one of those fields, and quote one only then. Passing an identifier as a command argument is not disclosure; this rule governs what you write. - Author dashboard files from the artifact channel, never from redirected output. Read the dashboard with
dashboards get --output-file <path>, edit that camelCase file, and pass it todashboards create --fileordashboards update --file. The same contract covers--backup-fileand copy's--output-file. Redirected CLI JSON is PascalCase and wrapped, and the commands refuse it. - Send a dashboard write once, and never resend one whose outcome is unknown. Read the slot first: a saved dashboard means the task is an update, not a create, and a process key you resolved from a name needs the user's confirmation before any write. On
unknown_error, read the slot or the id back and letMessageand the read decide, as the writes guide's Errors tables and the envelope's ownInstructionsset out; aRetryLatermay be sent again only after that read, and a refused file was never sent, so fix it and send it. Pass--expected-versionfrom a fresh process-key read on an update and report that check as best-effort, because the route has no version precondition. Never run a delete without--backup-fileand the user's explicit ask, and never delete to start over after a refused create, a failed update, or an occupied copy destination. Report a success as persistence and read-back, with rendering unchecked.
Shared Workflow
-
Check the active login when the task will call UiPath Cloud:
uip login status --output json -
Read the guide the Task Navigation table below names for this task, and none where it names none.
-
For a job investigation, run one
uip insights jobs investigateplaybook instead of issuing the chain yourself. Everything needed to call it is in the table below: do not open the playbook guide when the table already answers the question.Question Playbook Flags How healthy are the automations, what is the success rate healthwindow (default 1440, max 43200) Which processes are failing, and why failingwindow (default 43200, max 43200) Why does one named process fail process--process-name <name>(required, one value), window (default 1440, max 43200)Are jobs stuck, pending, or still running stuckwindow (default 1440, max 43200) Is this period better or worse than the one before comparewindow (default 10080, max 21600) Job health scoped to one folder by name folder--folder-name <name>(required), window (default 1440, max 43200)A playbook takes one window form only: either
--time-range <minutes>, or both--started-afterand--started-beforein epoch milliseconds. It refuses both forms together, a window wider than the maximum above, and an absolute lower bound more than 30 whole days old. Each refusal is local, withResult: ValidationErrorand exit 3, and no request is sent. A plainjobsread makes none of these checks: it accepts both forms at once, and forwards a wide or stale bound for the server to clamp without saying so.compare's maximum is half the others because it reads two adjacent windows of that length, and both have to fit inside the server's 30-day cap. Each playbook resolves its own window bounds, so never build them withdate. Every playbook also takes--timezone-offset <minutes>, which shifts the bucket timestamps to a client offset.Scope filters differ by playbook.
health,failing,stuckandcomparetake the repeatable--folder-key,--process-nameand--machine-name.processtakes--folder-keyand--machine-name, plus its own--process-name, which holds one value because the answer names one process.foldertakes--process-nameand--machine-name, and no--folder-key, because--folder-nameresolves to one key. Each returns the same{ Result, Code, Data }envelope as every other command, with anInstructionsstring naming the caveats on its numbers: quote those in the explanation.If
investigatereportsunknown command, the installed CLI predates it. Tell the user to update (npm i -g @uipath/cli) and fall back to the numbered chains inreferences/investigation-playbook-guide.mdfor this run. -
Otherwise run the subcommand and parse
Datafor the result. On list subcommands also readPaginationfor list completeness.A request that names a subcommand, or asks for every subcommand, means the seven plain
jobsreads: run those. A playbook answers a question; it is not a substitute for a named read, and it is not what "run every subcommand" asks for. The plain reads are also the way to get an unprojected, uncapped body when the caller wants the raw response.
Default to the active Production session. Change authority, organization, or tenant only when the user explicitly names another environment or scope. Give the user the command to run rather than running it yourself:
uip login --authority https://cloud.uipath.com --tenant MyTenant # named environment
uip login tenant set MyTenant # same environment, different tenant
Task Navigation
| User's task | Read first |
|---|---|
| Check job health, success rate, trends, failures, stuck jobs, or compare periods | Nothing. Run the jobs investigate playbook from Shared Workflow step 3. Read references/investigation-playbook-guide.md only when no playbook fits the question, or when the CLI lacks the verb |
| Choose a Jobs subcommand, flag, time range, or interpret its response fields | references/jobs-commands-guide.md |
| Answer which folders, processes, queues, or machines are visible, or resolve an exact folder key, process name, or machine name to filter by | references/filter-discovery-guide.md |
| Report on queue item totals, SLA risk, state over time, failures, or retry outcomes | references/queue-monitoring-guide.md |
| Report on machine runtime mix, status and slots, availability intervals, fault ranking, or runtime minutes | references/machine-monitoring-guide.md |
| Inspect alert definitions, alerting entitlement, trigger history, or delivery metadata | references/alerts-reads-guide.md |
| Inspect Insights users, roles, or groups | references/rbac-reads-guide.md |
| Read a Maestro process's monitoring dashboard, its definition, or its stored global filters | references/dashboard-reads-guide.md |
| Create, update, delete, or copy a Maestro process's monitoring dashboard | references/dashboard-writes-guide.md |
| Report which unified export configurations exist, or whether Insights can still reach their destinations | references/export-configurations-guide.md |
| List the Looker-era Insights dashboards, or mint an embed URL for one | references/looker-dashboards-guide.md |
Read only the guides the task needs. A job investigation that must first resolve a folder, process, or machine needs the filter guide, then the jobs guide. A queue question that names a queue needs the filter guide for the exact name, then the queue guide. A machine question that names a machine needs the filter guide for the exact name, then the machine guide. The machine guide also lists the five machine type labels, which filter-machines list does not report. An alert question needs the alert guide alone; it owns the full definition, history, and delivery sequence. An Insights access question needs the RBAC guide alone. A dashboard question needs the dashboard reads guide, and any write needs the writes guide after it: the process key comes from the user or from uip maestro bpmn processes list, and no filter-* command discovers a dashboard.
Scope Boundaries
uip insights ships eight command families: jobs, queues, machines, the filter-* discovery commands, the alert reads (alerts, alert-history, alert-deliveries), the RBAC reads (users, roles, groups), the Maestro dashboard commands (dashboards, dashboard-filters), the unified export reads (export-configurations), and the Looker-era dashboard reads (looker-dashboards). The jobs family is seven reads plus jobs investigate, which runs one whole investigation playbook per call. If a request needs anything else, say it is not available rather than guessing a subcommand.
| Request | Route |
|---|---|
| List or get individual jobs and their current state. Insights holds historical aggregates over a time window, not the live job records | uipath-platform (uip or jobs list --state) |
| Start, stop, restart, or inspect logs for an individual Orchestrator job | uipath-platform |
| Diagnose the root cause of a specific job error | uipath-troubleshoot |
| Fix the workflow or agent that caused a failure | uipath-rpa or uipath-agents |
| List, add, retry, or delete individual queue items | uipath-platform; queues reports on queue items in aggregate and never changes one |
| Any alert or delivery write (see Critical Rule 12) | Insights UI; not in the shipped uip insights surface |
| Create, edit, or delete a machine, or manage its runtimes | uipath-platform; machines reports on machines and never changes one |
| Machine or robot utilization as a percentage of capacity, or an average concurrency or "robot-equivalent" count derived from runtime over the window | Not in the shipped uip insights surface; machines utilization reports runtime minutes with no capacity denominator, and dividing by the window invents one |
| Read a Maestro process's monitoring dashboard or its stored global filters | references/dashboard-reads-guide.md |
| Create, update, delete, or copy a Maestro process's monitoring dashboard (see Critical Rules 17 and 18) | references/dashboard-writes-guide.md |
| Have Insights generate a dashboard from a text prompt (the product's own generate feature) | Insights UI; not in the shipped uip insights surface. Authoring a definition from what the user describes is the writes guide |
| Any Insights RBAC write, such as assigning a role (see Critical Rule 15) | Insights UI; not in the shipped uip insights surface |
| Manage org-level user accounts, groups, or roles outside Insights | uipath-admin |
| Create, edit, or delete a unified export configuration, or set up a new export destination | Insights admin UI; not in the shipped uip insights surface |
| Why did an export stop arriving at its destination | references/export-configurations-guide.md first, for whether Insights can still reach the destination; then uipath-troubleshoot for the destination side |
| List the Looker-era Insights dashboards, or get an embed URL for one | references/looker-dashboards-guide.md |
| Create, update, delete, export or duplicate a Looker-era dashboard | Insights UI; not in the shipped uip insights surface |
Anti-patterns
- Do not add
--limitor--offsetto ajobscommand, to anydashboardsverb, or tolooker-dashboards get-embed-url, none of which accepts them. Among the dashboard commands onlydashboard-filters listandlooker-dashboards listpage. Each guide lists which of its commands page. - Do not reuse an identifier from an example. Folder keys, process names, machine names, and queue names come from a
filter-*result or from the user, an exception reason comes from afailures-by-reasonrow, a Maestro process key comes from the user or fromuip maestro bpmn processes list, and a dashboard id comes from adashboards get,dashboards create, ordashboards copyresult. - Do not read an empty or
falsealert result as proof. Report what it rules out and what it leaves open. - Do not pass
--include-emailor--include-resourceto an RBAC read unless the user asked for a field the safe view withholds. - Do not pass a connection string, access key or API key to any
export-configurationscommand.verify <id>uses the credential Insights has stored, and no command takes one. - Do not paste a minted Looker embed URL anywhere but the answer. It is a per-user signed credential, not a link.
Completion Output
Close with the answer, the window queried, the active organization and tenant, and the filters applied. For list results, say whether every page was retrieved. For permission-limited or empty results, state what the result does and does not prove.