- Overview
- JavaScript functions
- Python functions
- Deploy and run
- Packaging and publishing
- Invoking functions
Once deployed as a process, a function runs as an Orchestrator job. You can invoke it from several surfaces. A JavaScript function that declares a route has one more: it can also be called directly over HTTP.
From a Maestro Service Task
In a Maestro process, add a Service Task and bind it to the deployed function:
- Select the package and entry point.
- Map process variables to the function's
Inputfields. - Map the function's
Outputfields back to process variables.
The input and output schemas exported from your Input/Output models drive the binding UI, so typed fields appear directly in the mapping panel.
From a Run Job activity in Studio
In Studio or Studio Web, add the Run Job activity and point it at the deployed function. The same exported input/output schema drives the argument mapping, so typed fields appear directly in the activity's input/output panels.
From the Orchestrator API
Start the function as a job:
POST /orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs
POST /orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs
Pass the package (release) and the input arguments in the request body. The job runs the function and returns its output through the standard job result.
From a job trigger
Because a deployed function is an Orchestrator process, it can be started by any job trigger — scheduled, queue-based, or event/webhook-based.
Over HTTP
A JavaScript function that declares a method and a path is also exposed as an Orchestrator HTTP trigger. Callers reach it at the trigger URL with a bearer token, and the platform passes the caller's identity to the function — which is what lets a Coded App use a function as its backend without ever holding a credential in the browser.
The request and the response are bounded on this surface: about 10,000 characters of input and about 512 KB of output. A job has no such limit, because it carries large payloads as attachments — so a function handling megabytes should be invoked as a job even when it also has a route.
This surface is specific to JavaScript functions; a Python function is always invoked as a job. See HTTP triggers and routing.
Observability
Every invocation runs as a job and is logged in Orchestrator job history with caller identity and timestamps. When invoked from Maestro, the run also emits trace spans — see Tracing and observability.
Next steps
- About Functions — review where functions fit in the platform.