UiPath Documentation
functions
latest
false
Functions user guide
  • Overview
    • About Functions
  • JavaScript functions
  • Python functions
  • Deploy and run
    • Packaging and publishing
    • Invoking functions

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:

  1. Select the package and entry point.
  2. Map process variables to the function's Input fields.
  3. Map the function's Output fields 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

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated