Invoke Process
Invoke Process
Section titled “Invoke Process”Type: invoke-process · Package: Core Activities v1.0.8
Runs another published process from Zoan Cloud as part of the current process, passes it input data and receives its results back. It is the way to reuse a whole process across projects: signing in to a portal, looking up a customer in the ERP or sending a report is built and published once, and other processes invoke it.
The invoked process runs inside the same execution, not as a separate one. That is why what it returns stays alive: if the login process returns the already authenticated browser session, the calling process keeps working in that same tab.
How it works
Section titled “How it works”- Looks up in Zoan Cloud the current published version of the process set in
process, in the same environment where the robot runs. It downloads it the first time and keeps it on the machine for later runs. - Loads the activity packages that process needs and runs its entry playbook, passing it the values of
input. - The invoked process runs with its own variable space: it does not see or modify the caller’s variables.
- When it finishes, its outputs are mapped to variables of the current process according to
outputs. - If the invoked process fails, this activity fails with the same error (catchable with Try / Catch).
Required parameters
Section titled “Required parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
process | string | — | The published process to run, by name. Its current published version is always invoked; no version is pinned. |
Optional parameters
Section titled “Optional parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
input | Dictionary | — | Values the invoked process receives, as name: value pairs. The names are the input arguments of its main playbook. |
outputs | Dictionary | — | { processOutput: callerVariable } mapping. Only the invoked process’s output arguments (Out or In/Out) cross over; names that are not valid variables or that the process doesn’t return are ignored. |
Output
Section titled “Output”This activity does not return a value of its own: what the invoked process produces reaches the variables set in outputs. Since it runs in the same execution, an output can be a live object (a browser session, an application window) that the current process keeps using. When it finishes successfully, Process '…' completed. is logged.
Choosing the process in the Designer
Section titled “Choosing the process in the Designer”If you are signed in to Zoan Cloud from the Designer and have an environment selected, process shows the list of processes published in that environment. When you pick one, the input and outputs editors are filled with the inputs and outputs that process declares.
Without a session, process is a free text field where you type the process name: you can keep designing, and the name is resolved anyway when the process runs on a robot.
Example
Section titled “Example”A published process, Supplier portal login, opens the browser, signs in and returns the page session. Another process invokes it and keeps working in the same tab:
Invoke Process process = "Supplier portal login" input = { user: "robot01" } outputs = { page: portalPage }Page Navigate page = portalPage url = "https://suppliers.example.com/invoices"Extract Structured Data page = portalPage selector = (#invoices) → output: invoicesinput: the invoked process receivesuseras an input variable.outputs: the invoked process’spageoutput is stored in the current process’sportalPagevariable.
Common errors
Section titled “Common errors”| Message | Cause and fix |
|---|---|
Process not found: '…' | There is no published version with that name in the environment where the robot runs. Check the exact name and that the process is published in that environment. |
Process '…' is a Windows process and cannot be invoked from a headless process. … | A headless process tried to invoke a Windows one. Run the calling process on a Windows robot, or make the invoked process headless. |
Could not resolve process '…': Zoan Cloud answered HTTP … | Zoan Cloud answered with an error other than “does not exist” (for example, missing permissions or a service failure). Check the robot account’s permissions; if it is a temporary failure, wrap the invocation in a Retry. |
Could not prepare process '…' (…). See the Runner log for details. | The process exists, but it could not be downloaded or prepared on the robot. The details are in the Runner log; check the machine’s connection and disk space. |
invoke-process is not supported in this host (no process resolver configured). | The execution has no connection to Zoan Cloud (for example, the Designer without a signed-in session). Sign in to Zoan Cloud from the Designer and pick an environment, or run it on a connected robot. |
Recursion detected: … | The invoked process is already running higher up in the same invocation chain. Reorganize the logic so it is not invoked again. |
Maximum invocation depth reached (32 levels). | Too many processes or playbooks are invoking each other in a chain. Flatten the structure. |
Output '…' was not assigned to '…': … | Warning: the variable that receives the output is not declared or its type is not compatible. Declare it with the right type. |
The invoked process '…' failed. | The invoked process failed without a message of its own. When it has one, the activity fails with that same message and type (a business error is still a business error). Handle it with a Try / Catch. |
'process' is required. | The process name is missing. |
Related activities
Section titled “Related activities”- Invoke Playbook — run another playbook from the same project.
- Try / Catch — handle a failure of the invoked process.
- Publish a process — how the invoked version gets published.
- Variables — how inputs are passed and outputs received.