N8n Code Javascript
davila7/claude-code-templates
Write JavaScript code in n8n Code nodes. An agent skill from davila7/claude-code-templates.
UiPath API Workflow assistant — author, run, validate, package, publish, deploy, and troubleshoot JSON workflows for uip api-workflow.
$ npx skills add UiPath/skills --skill uipath-api-workflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UiPath/skills uipath-api-workflow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/uipath-api-workflow .claude/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .claude/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflowType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add UiPath/skills --skill uipath-api-workflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UiPath/skills uipath-api-workflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/uipath-api-workflow .agents/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .agents/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UiPath/skills --skill uipath-api-workflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UiPath/skills uipath-api-workflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/uipath-api-workflow .cursor/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .cursor/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/UiPath/skills.git --path skills/uipath-api-workflow--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add UiPath/skills --skill uipath-api-workflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UiPath/skills uipath-api-workflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/uipath-api-workflow .gemini/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .gemini/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install UiPath/skills uipath-api-workflowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add UiPath/skills --skill uipath-api-workflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/uipath-api-workflow .github/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .github/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UiPath/skills --skill uipath-api-workflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UiPath/skills uipath-api-workflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UiPath/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/uipath-api-workflow .opencode/skills/uipath-api-workflow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "uipath-api-workflow" agent skill from https://github.com/UiPath/skills/tree/main/skills/uipath-api-workflow into .opencode/skills/uipath-api-workflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uipath-api-workflow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
uipath-api-workflowUiPath API Workflow assistant — author, run, validate, package, publish, deploy, and troubleshoot JSON workflows for uip api-workflow.
Uipath API Workflow is an agent skill from UiPath/skills. UiPath API Workflow assistant — author, run, validate, package, publish, deploy, and troubleshoot JSON workflows for uip api-workflow. Load for ANY create/edit of a Workflow.json / API workflow project; with evals/ present, tests come first (TDD). Covers Sequence, Assign, JavaScript, If (Wrapper/Then/Else), ForEach, DoWhile, Break, TryCatch, Wait, Response, nested; files as JobAttachment refs via File to Base64 / Base64 to File ($helpers.file., serializeData(), --input-file/--output-dir); HTTP / IS connector…
Its SKILL.md is about 7.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 24 other files, including reference files and assets (for example `assets/templates/api-workflow-template.json`, `assets/templates/conditional-workflow-example.json` and `assets/templates/connector-call-example.json`).
It sits in Productivity & Automation, covering LLM evaluation, Workflow automation and Mobile testing and debugging. It works with JavaScript. The repository describes itself as: This is a repository of skills for interfacing UiPath capabilities to external developers. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 39fb026. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Uipath API Workflow loads about 7.5k tokens when it runs, and up to ~66k if it reads all its reference files. Until then it costs about 260 tokens; SKILL.md has 2,897 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Glob, GrepAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from UiPath/skills at commit 39fb026, republished under its MIT licence (© UiPath). 2,897 words, ~7,523 tokens.
.claude/skills/uipath-api-workflow/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.<!--skill-flavor:surface-summary:start-->
Build, run, and publish UiPath API Workflows: JSON conforming to CNCF Serverless Workflow DSL 1.0.0 with UiPath activity extensions. Workflows run through @uipath/api-workflow-executor and uip api-workflow run, and package as Type: "Api" projects through uip solution pack.
<!--skill-flavor:surface-summary:end-->
<!--skill-flavor:host-command-contract:start-->
<!--skill-flavor:host-command-contract:end-->
TDD gate — read first (rule 22). For create/edit requests, check
<project>/evals/besideWorkflow.json, never at workspace or solution root. If absent, Evaluations is off: do not ask about tests or loop mode; author normally. If present, stop before authoring and ask whether existing rows remain/change or empty tests should be added, and whether to run/retry until all pass or author once. After both answers, declare schemas, write/update evals first, then author. A request not to ask skips these questions, not runtime consent; run rows only when requested. Later behavior changes require asking whether affected expectations should change.
Use for API workflow JSON creation/editing and activities including Sequence, Assign, JavaScript, If, ForEach, DoWhile, Break, TryCatch, Wait, Response, HTTP Request, and connector activities. Use the connector and testing references for Studio Web connector workflows and project evals/ layouts.
<!--skill-flavor:surface-lifecycle-scope:start-->
<!--skill-flavor:surface-lifecycle-scope:end-->
JobAttachment, $helpers.file, serializeData(), --input-file / --output-dir. See references/files-and-base64.mdcall: "UiPath.IntSvcEvent"). See references/trigger-authoring-guide.md<!--skill-flavor:surface-operations-scope:start-->
<!--skill-flavor:surface-operations-scope:end-->
Do not use for .flow Maestro flows (uipath-maestro-flow), .xaml or coded RPA (uipath-rpa), coded agents (uipath-agents), or Coded Web Apps (uipath-coded-apps). API-workflow evals are only evals/ beside Workflow.json using evals/<scope>/eval-sets/; evals/eval-sets/ is for low-code agents and Flow evals for uipath-maestro-flow.
<!--skill-flavor:runtime-validation-contract:start-->
--no-auth --output json after each addition. Fix what breaks. Repeat.uip api-workflow validate is autonomous/offline. run is runtime validation, may access HTTP or connections, and requires consent.<!--skill-flavor:runtime-validation-contract:end-->
Workflow JSON. Top level has document with dsl: "1.0.0", evaluate with language: "javascript" and mode: "strict", and do containing one root sequence. Root sequence names may vary; read the file. See references/workflow-file-format.md.
WorkflowStart. It is first in the root sequence, hydrates variable defaults into $context.variables, forwards inputs to $input, and must not be removed, renamed, or modified. Only it uses isTransparent: true.
Activity objects and keys. Each activity is one single-key object in a do array. Keys are globally unique, including wrapper suffixes such as #Wrapper, #Then, #Else, and #Body.
Exports. Every activity should export output. Assign uses { ...$context, variables: { ...$context.variables, ...$output } }; all others use { ...$context, outputs: { ...$context?.outputs, "<ActivityKey>": $output } }. See references/expressions-and-context.md.
<!--skill-flavor:designer-literal-runtime-comparison:start-->
set, Response, If when, and variable contexts, string literals must be expressions such as "${'literal'}", because Studio Web rewrites a bare "literal" into "${literal}" on save and that fails at runtime; numbers, booleans, and references need no wrapping. Connector bodyParameters, queryParameters, and pathParameters instead use bare literals; references remain expressions. See references/connector-activity-discovery.md and references/troubleshooting.md.<!--skill-flavor:designer-literal-runtime-comparison:end-->
Assign. Each Assign sets exactly one variable. Studio Web collapses multi-key set; use sequential Assign activities and merge each single key through the variables export.
If. Use If_N#Wrapper containing If_N, If_N#Then, and If_N#Else. Both branches end with then: "exit"; when is wrapped in ${...}. See references/control-flow-patterns.md.
Loops. ForEach and DoWhile require #Body. ForEach uses index-aware accumulation, resetting on iteration 0; DoWhile uses simple accumulation. each and at are plain names, not expressions.
DoWhile. for.in is always "${ [1] }"; doWhile controls repetition. The body must update the condition variable or the loop may be infinite.
Nested loops. Use distinct iterator and index names for each loop.
Loop/catch bindings. Declare for.each, for.at, and catch.as without $, but reference them in expressions/scripts with $: "row" binds $row, "idx" binds $idx, and "err" binds $err. Omitting $ causes an undefined-name error.
Break. It exits only the innermost loop and is valid only inside #Body. Put it inside an If; break must be string "true", with then: "exit" and set: "${$input}". To exit nested loops, set a flag and check it in the outer loop. See references/control-flow-patterns.md.
Workflow inputs. Use $workflow.input.<name>, never $input.<name> from a non-first activity; $input is current task input and may be prior output.
JavaScript. Scripts read $context, $workflow, and $input as globals and must return a value. Keep standard Studio Web run.script.arguments scaffolding: "${{ \"$context\": $context, \"$workflow\": $workflow, \"$input\": $input }}"; runtime ignores it.
Response. markJobAsFailed is a sibling of response. Always use then: "end"; then: "exit" is for branches/loops. Object responses use one expression, e.g. "${{ key: $context.variables.value }}", not independently interpolated fields. Single values may use "${$context.outputs.Activity}" or "${'done'}". ${ { ... } } and ${{ ... }} are both valid; stay consistent.
<!--skill-flavor:response-roundtrip-validation:start-->
- **On-disk is authoritative.** After Studio Web saves, treat disk as authoritative and rerun `uip api-workflow run --no-auth` after reapplying needed workarounds.
<!--skill-flavor:response-roundtrip-validation:end-->
uip api-workflow registry resolve then stub; never guess uiPathActivityTypeId, metadata.configuration, activity kind, endpoint, SlotKey, or ExportBucketKey; use stub output verbatim.resolve miss is not proof of no curated activity because it AND-matches tokens. Identify product/vendor with uip is connectors list --filter, then enumerate with uip is activities list <connector-key> before fallback.uip is connections ping <uuid>. If listing is empty/fails, try unfiltered listing, then --all-folders, and ping another matching connection.with.connectionId, connectionResourceId, or an HTTP URL. Re-stub with a real value before writing.--inputs if needed.${'literal'}.UiPath.Http with a vendor connection UUID. IntSvc results are wrapped; read $context.outputs.<ExportBucketKey>.content.<field>.<!--skill-flavor:connector-solution-registration:start-->
uip api-workflow bindings sync --workflow <Workflow.json> and refresh with uip solution resources refresh --solution-folder <path>. Skip for HTTP, non-connectors, and standalone projects.<!--skill-flavor:connector-solution-registration:end-->
16a. A connector-event trigger is a separate catalog, a separate activity shape, and a second artifact. When the workflow must start from an event (Slack button clicked, new Outlook calendar entry), run uip api-workflow registry resolve "<keyword>" --kind trigger then registry stub — never hand-author. Place the stub in exactly one slot: the root Sequence's do array, directly after WorkflowStart (do[0].Sequence_1.do[1]) — never inside an If / ForEach / TryCatch, never after another activity, never a second trigger. validate rejects a misplaced or second trigger. A GenericTrigger needs --object-name. Full flow, filter syntax, anti-patterns: references/trigger-authoring-guide.md.
<!--skill-flavor:trigger-binding-registration:start-->
- **Run `uip api-workflow bindings sync` after every trigger add or edit.** It writes the `EventTrigger` entry in `bindings_v2.json` that registers the Orchestrator event trigger on deploy. **Without it the workflow validates, packs, publishes and deploys clean — and never fires.** No gate catches this. In Solutions mode follow with `uip solution resources refresh` (rule 16).
<!--skill-flavor:trigger-binding-registration:end-->
<!--skill-flavor:trigger-debug-contract:start-->
- **A `webhooks` trigger cannot run locally without input.** `uip api-workflow run` replays a live event only for `polling` (side-effecting under rule 21); for either mode, `--input-arguments` shaped like the event payload exercises the rest of the workflow offline.
<!--skill-flavor:trigger-debug-contract:end-->
<!--skill-flavor:runtime-invocation-io:start-->
CLI input. Pass JSON as a string: --input-arguments '{"key":"value"}'; invalid JSON exits 1.
CLI output. Parse with --output json. Success: { "Result": "Success", "Code": "WorkflowRun", "Data": {...} }; failure: { "Result": "Failure", "Message": "...", "Instructions": "..." } with exit 1.
<!--skill-flavor:runtime-invocation-io:end-->
<!--skill-flavor:project-creation:start-->
uip api-workflow init <name>; do not hand-assemble project files. Project commands include build <projectDir> and pack <projectDir> <outputDir>. Use uip solution pack and uip solution publish; there is no uip api-workflow publish. Solution type is "Api".19a. Init shape and registration. Run uip api-workflow init <name> --output json inside the solution directory. It creates project.uiproj, Workflow.json, entry-points.json, and bindings_v2.json, and registers the project in the nearest .uipx. Use --skip-solution-registration only when explicitly requested for a standalone CLI/local project. Always create a full project, never a lone workflow file. Do not use solution projects add/remove or change existing project IDs. For legacy project.json, initialize a fresh sibling and move content into its Workflow.json, or convert in place; see references/troubleshooting.md. Runtime success does not prove Studio Web compatibility; init-produced shape does.
<!--skill-flavor:project-creation:end-->
uip api-workflow validate <Workflow.json> --output json as the last autonomous command in every author/edit cycle. On Result: "Failure", read Instructions, fix the activity at its JSON path, and repeat until Data.Status: "Valid". Prioritize semantic-tail errors over duplicate oneOf noise.<!--skill-flavor:runtime-validation-limit:start-->
Validation catches malformed JSON, unknown types, required-field errors, bad evaluate settings, duplicate/empty variables, and empty task lists; not broken connections, wrong resource IDs, runtime expression errors, unwrapped literals, or multi-key Assign sets — those need `uip api-workflow run` once the user consents.
<!--skill-flavor:runtime-validation-limit:end-->
<!--skill-flavor:runtime-execution-consent:start-->
uip api-workflow run without explicit consent. After validation, ask whether to skip, run --no-auth, or run with auth. Recommend --no-auth for control-flow-only workflows and HTTP with ImplicitConnection; recommend authenticated execution only for IntSvc after confirming real side effects. Authenticated calls may send emails, create tickets, or upload files. Loop-mode consent authorizes eval rows with --no-auth, but authenticated connector runs still require explicit consent. This gates only uip api-workflow run, never uip solution pack/publish: a build/package/publish request proceeds without the run question; a local run is a separate request, done only when asked.<!--skill-flavor:runtime-execution-consent:end-->
TDD gate. Check <project>/evals/ on every create/edit. Without it, do not offer tests, create the folder, or mention loop mode. With it, stop before modifying Workflow.json or evals and ask whether existing cases change or new cases are added, and whether to run/retry until all pass or author once. If rows exist, report their count and summarize each; if empty, propose 2–3 cases. After answers, declare input.schema and output.schema, update evals, author, then run rows only in loop mode or hand over in author-once mode. Behavior changes require identifying affected rows and asking whether expectations should change. A request not to ask keeps existing tests and does not authorize runtime. See references/testing-and-evals.md §3.
Files are references, not bytes — and base64 is a file too. File inputs and outputs are JobAttachment references ({ ID, FullName, MimeType, Metadata? }) to Orchestrator blobs; $workflow.input.<file> is never the bytes.
run.script tasks identified by their $helpers.file.* call (what validate checks): File to Base64 returns a new reference containing base64 text; Base64 to File returns a binary reference. The script must be exactly one return expression and nothing else. Studio Web silently drops preceding/trailing statements, a second argument, or an extra option key; validate catches only extra statements, so an extra argument or key can still break the activity. Put preprocessing in a separate JavaScript activity. See references/files-and-base64.md for exact shapes and examples.$context.outputs.<Key>.output.<ref>.serializeData() directly in an HTTP body or Response field; it is a deferred-read marker, so do not store it or use it in script logic. Nested in a JSON body, it works only for a base64 reference (the File to Base64 output); nesting a binary file's marker or a bare reference is a send-time error. Send a binary file as the whole body or convert it first.fileName and mimeType apply only to a raw base64 string. References keep their name, and the engine sniffs type from bytes; a .txt round-trip can therefore become extensionless.<!--skill-flavor:file-run-cli:start-->
`uip api-workflow run --no-auth` refuses such a workflow up front; run it signed in (`uip login`, no `--no-auth`) — it still needs the rule-21 "yes". Pass local files with `--input-file <name>=<path>` (uploaded, arriving as `$workflow.input.<name>`), collect returned files with `--output-dir <dir>` (each reference in the output gains a `LocalPath`), and `--folder-key <guid>` if the tenant's Attachments API requires a folder. In the printed output the CLI PascalCases keys (`ID` → `Id`).
<!--skill-flavor:file-run-cli:end-->
Shapes, worked examples, and pitfalls: [references/files-and-base64.md](references/files-and-base64.md).Check the project directory for evals/, then read evals/<scope>/eval-sets/*.json and evaluators when present. For edits, read Workflow.json, keys, variables, schemas, and export patterns. For creates, read assets/templates/api-workflow-template.json, the closest conditional/loop/nested-control-flow template, and references/control-flow-patterns.md as needed. Apply rule 22 before authoring.
Choose activities, unique keys, variables, inputs, outputs, and nesting. Use Assign for variables, JavaScript/JsInvoke for custom logic, If for branching, ForEach for collections, DoWhile for repetition, TryCatch for errors, Wait for pauses, Response for termination, Break inside an If, and registry-generated UiPath.Http or UiPath.IntSvc for HTTP/connectors. For files/base64, File to Base64 encodes a file (input or downloaded) as base64 for an inline API body and Base64 to File turns a base64 payload back into a file (rule 23). Use generic connector activities only when registry discovery finds no curated operation. Read references/task-types.md.
Copy minimal shapes from references. Create from the template and place activities after WorkflowStart in the root sequence. For edits, preserve conventions and use sufficient unique context. When rule 22 applies, declare schemas before eval rows. Skeleton:
{
"document": { "dsl": "1.0.0", "name": "...", "version": "0.0.1", "namespace": "default", "metadata": { "variables": { "schema": { "format": "json", "document": { "type": "object", "properties": {}, "title": "Variables" } } } } },
"input": { "schema": { "format": "json", "document": { "type": "object", "properties": {}, "title": "Inputs" } } },
"output": { "schema": { "format": "json", "document": { "type": "object", "properties": {}, "title": "Outputs" } } },
"do": [{ "Sequence_1": { "do": [{ "WorkflowStart": {} }] } }],
"evaluate": { "mode": "strict", "language": "javascript" }
}<!--skill-flavor:validation-run-lifecycle:start-->
uip api-workflow validate ./<project>/Workflow.json --output json
uip api-workflow run ./<project>/Workflow.json [--no-auth] --output jsonValidate autonomously and fix until valid; then ask before running. Name the concrete side effect in the question (an email sent, a ticket created), then wait. If skipped, provide the exact command.
<!--skill-flavor:validation-run-lifecycle:end-->
<!--skill-flavor:runtime-troubleshooting:start-->
Triage failures as Structure > Expression > Activity Config > Logic; see references/troubleshooting.md.
<!--skill-flavor:runtime-troubleshooting:end-->
<!--skill-flavor:deployment-lifecycle:start-->
Packaging needs a passing validate (rule 20), not a local run — on a build/package/publish request, pack right away (rule 21 gates run, never pack). Confirm init-produced shape, then:
uip solution pack <solutionDir> <outputDir> --name <PACKAGE_NAME> --version 1.0.0 --output json
uip solution publish <outputDir>/<package>.zip --tenant <TENANT_NAME> --output jsonPublishing requires uip login. The packager detects Type: "Api", validates/copies workflows, generates deployment metadata, and produces a .nupkg inside a .zip. After deployment, operate through Orchestrator/API triggers, jobs, connections, logs, and traces; local uip api-workflow verbs no longer operate the published workflow. See references/operating-published-workflows.md, delegating depth to uipath-platform or uipath-troubleshoot when appropriate.
<!--skill-flavor:deployment-lifecycle:end-->
<!--skill-flavor:quick-start-create:start-->
uip solution init <SolutionName> --output json
cd <SolutionName>
uip api-workflow init <ProjectName> --output json
# If <ProjectName>/evals/ exists, stop and apply rule 22; otherwise edit after WorkflowStart.
uip api-workflow validate ./<ProjectName>/Workflow.json --output json
# Ask for consent, then run if approved:
uip api-workflow run ./<ProjectName>/Workflow.json --no-auth --output json
uip solution pack . ./build --name <PackageName> --version 1.0.0 --output json
uip login
uip solution publish ./build/<package>.zip --tenant <TenantName> --output json<!--skill-flavor:quick-start-create:end-->
| File | Use |
|---|---|
| references/workflow-file-format.md | JSON skeleton, schemas, variables, WorkflowStart, Studio Web structure |
| references/http-retry-config.md | Workflow-level HTTP retry/backoff |
| references/task-types.md | Activity shapes, required fields, exports, mistakes |
| references/control-flow-patterns.md | Nested If, loops, TryCatch, Break, branching, key uniqueness |
| references/connector-activity-discovery.md | Authoring HTTP Request / Gmail / Outlook / GitHub / Slack / etc. activities via uip api-workflow registry resolve + stub — discovery flow, connection verification, field-shape rules, multipart |
| references/trigger-authoring-guide.md | Connector-event triggers: registry resolve --kind trigger + stub, UiPath.IntSvcEvent shape, mandatory EventTrigger binding, JMESPath filters, polling vs webhooks |
| references/expressions-and-context.md | Expressions, context, inputs, scripts, exports, strict mode |
| references/files-and-base64.md | Files & base64 — JobAttachment references, the File to Base64 / Base64 to File activities (exact JSON, $helpers.file.*), serializeData() for inline bodies/Responses, passing local files in and getting files out of a run, pitfalls |
<!--skill-flavor:cli-reference-navigation:start-->
| references/cli-reference.md | API workflow, solution, login, build, pack, validate, publish |
<!--skill-flavor:cli-reference-navigation:end-->
<!--skill-flavor:published-reference-navigation:start-->
| references/operating-published-workflows.md | Published triggers, connections, jobs, logs, traces |
<!--skill-flavor:published-reference-navigation:end-->
| references/troubleshooting.md | Runtime, structure, expression, connector, response, packaging, publish failures | | references/testing-and-evals.md | Eval contract, scoring, raw outputs, test-until-green protocol |
<!--skill-flavor:reference-navigation-extra:start-->
<!--skill-flavor:reference-navigation-extra:end-->
document file input → File to Base64 → Base64 to File → Response returning both references. The exact run.script shape Studio Web writes for the two activities (rule 23). Verified end-to-end with a signed-in run: local file in → .base64 reference → decoded file out, bytes identical.WorkflowStart → UiPath.IntSvcEvent trigger → Response reading the payload. Its <REPLACE_WITH_*> connection UUID and trigger type id are sentinels; re-stub for real values (rules 16, 16a).<!--skill-flavor:template-execution-proof:start-->
ImplicitConnection.<!--skill-flavor:template-execution-proof:end-->
<!--skill-flavor:solution-resource-template:start-->
<!--skill-flavor:solution-resource-template:end-->
call: "http"; use registry-generated UiPath.Http.${'literal'}.$input.<name>.JobAttachment references. Inline a file's content only with <ref>.serializeData() inside an HTTP body / Response, never in an Assign or script — and inside a JSON body field only on the File to Base64 output ($workflow.input.document.serializeData() nested in a body fails with "Raw bytes cannot be embedded in JSON"). See rule 23.$helpers.fileToBase64(...) / $helpers.base64ToFile(...) — the helpers live under $helpers.file.; validate rejects the task and the runtime says is not a function. See rule 23.<!--skill-flavor:runtime-execution-antipattern:start-->
<!--skill-flavor:runtime-execution-antipattern:end-->
<!--skill-flavor:project-creation-antipatterns:start-->
Workflow.json, or use solution projects add/remove.<!--skill-flavor:project-creation-antipatterns:end-->
output.schema and Response, using raw output for expectations.evals/ exists; apply rule 22. Do not create or offer evals when absent. Do not change logic merely to satisfy stale expectations.If a command fails with the same error twice, investigate instead of retrying. Allow at most three attempts per operation, then stop and report what was tried.
<!--skill-flavor:authentication-remediation:start-->
uip login.<!--skill-flavor:authentication-remediation:end-->
ls.© UiPath, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 21 other files (references, assets) in skills/uipath-api-workflow of UiPath/skills.
Open the folder on GitHubat commit 39fb026
Uipath API Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Uipath API Workflow this skillUiPath/skills | 167 | — | ~7.5k | Automated safety check: Notes | MIT | |
| N8n Code Javascriptdavila7/claude-code-templates | 32k | 4 repos | ~4k | Automated safety check: Pass | MIT | |
| n8n Code Node JavaScriptczlonkowski/n8n-skills | 6.4k | — | ~4.9k | Automated safety check: Pass | MIT | |
| Native Python in n8n Code Nodesczlonkowski/n8n-skills | 6.4k | — | ~2.8k | Automated safety check: Pass | MIT | |
| n8n Custom Code Tool Guideczlonkowski/n8n-skills | 6.4k | — | ~4k | Automated safety check: Pass | MIT | |
| Build Audit Logsactivepieces/activepieces | 25k | 1 repos | ~5.9k | Automated safety check: Pass | Custom licence |
davila7/claude-code-templates
Write JavaScript code in n8n Code nodes. An agent skill from davila7/claude-code-templates.
czlonkowski/n8n-skills
Guides writing JavaScript in n8n Code nodes: picking an execution mode, reading input data, returning items, using built-in helpers and avoiding common errors.
czlonkowski/n8n-skills
Explains how to write native Python in n8n Code nodes, including the two input variables, blocked imports and fixes for common errors.
czlonkowski/n8n-skills
Explains the n8n Custom Code Tool's actual runtime contract so an AI-agent-callable tool doesn't get written like a regular workflow Code node.
activepieces/activepieces
Build or review audit trails in TypeScript/JavaScript apps using evlog (pipelines, typed actions, denials, retention, compliance-style reviews).
smallnest/goclaw
Controls an Android device over ADB in a loop of screenshot, vision analysis, tap and verification, so the agent acts on real on-screen coordinates.
UiPath/skills
UiPath automation discovery — mines Slack/email/wikis/CRM/HRIS/ERP for repetitive work, SPOFs, and replicable models; produces a 4-tier prioritized opportunity report with UiPath implementation…
UiPath/skills
Maintain build-time skill flavors in the UiPath skills repository.
UiPath/skills
UiPath Coded Functions — deterministic Python or TypeScript/JavaScript units built with the uip function CLI (new -l py|ts|js, init, serve, run, pack, publish); the functions map in uipath.json…
UiPath/skills
TRIGGER for authoring, operating or diagnosing UiPath Maestro BPMN.
UiPath/skills
TRIGGER for authoring UiPath Maestro Case plans as <Name.case.ts with the reference-mode TypeScript builder SDK (@uipath/maestro-builder-sdk/case), compiling to caseplan.json, and running the uip…
UiPath/skills
UiPath causal investigation across every product, runtime, and activity package.
Works with
UiPath API Workflow assistant — author, run, validate, package, publish, deploy, and troubleshoot JSON workflows for uip api-workflow. Uipath API Workflow is an agent skill from UiPath/skills. UiPath API Workflow assistant — author, run, validate, package, publish, deploy, and troubleshoot JSON workflows for uip api-workflow.
Uipath API Workflow fits situations like: project type Api; JSON with document.dsl/do[]; those activity types; file/base64 handling.
Run `npx skills add UiPath/skills --skill uipath-api-workflow -a claude-code`. Or copy the skill folder (skills/uipath-api-workflow in UiPath/skills) into .claude/skills/uipath-api-workflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UiPath/skills --skill uipath-api-workflow -a codex`. Or copy the skill folder (skills/uipath-api-workflow in UiPath/skills) into .agents/skills/uipath-api-workflow in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UiPath/skills --skill uipath-api-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uipath-api-workflow, .gemini/skills/uipath-api-workflow, .github/skills/uipath-api-workflow and .opencode/skills/uipath-api-workflow in your project.
SKILL.md names no scripts, command-line tools or credentials: Uipath API Workflow is instructions for the agent only. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Uipath API Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.5k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 59k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Uipath API Workflow: N8n Code Javascript (davila7/claude-code-templates, 32k stars), n8n Code Node JavaScript (czlonkowski/n8n-skills, 6.4k stars), Native Python in n8n Code Nodes (czlonkowski/n8n-skills, 6.4k stars) and n8n Custom Code Tool Guide (czlonkowski/n8n-skills, 6.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UiPath (a GitHub organization) maintains it in UiPath/skills, which has 167 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.
Source: UiPath/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.