Setting up RPA for production deployments
This document steps through the specific configuration of your RPA runner. For the basics on getting started, visit the getting started guide.
Configuration options
Transitioning from a development setup
To transition from a development setup to a production setup, there are a few things to consider:
- Disable the local sandbox: If your worker should only accept scripts from Zeebe and is not used for testing scripts from Modeler, disable the local execution by setting
camunda.rpa.sandbox.enabled
tofalse
. - If your scripts require third-party tools: Install them along with the RPA worker so they are accessible from the scripts.
- Add tags to your worker and scripts: Depending on your use case, it might be useful to tag your workers with their capabilities. Common ways for tagging include operation systems and available applications. Read more on tags and labels.
Using secrets
When running an RPA worker with Camunda SaaS, you can add access to connector secrets.
To do this:
- Create client credentials with both the
Zeebe
andSecrets
scope. - Use them in the worker config by adding the secrets endpoint to your
rpa-worker.properties
file:
camunda.rpa.zeebe.secrets.secrets-endpoint=https://cluster-api.cloud.camunda.io
In the RPA script, your secrets are stored in the ${secrets}
variable. You can reference a secret like MY_API_KEY
with ${secrets.MY_API_KEY}
.
Labels
To differentiate capabilities of runners, use tags and labels.
- In the
rpa-worker.properties
, add:
camunda.rpa.zeebe.worker-tags=accounting-system
- If you also want the worker to work on unlabeled tasks, use:
camunda.rpa.zeebe.worker-tags=default,accounting-system
- Add a label to your script when configuring the RPA task in your diagram.
Labels describe capabilities. If you want your worker to only pick up a specific script, use a unique label on both the worker and the RPA task.
If no label is defined, both the task and worker will use the label default
.
Pre- and post-run scripts
Some of your scripts might require a specific environment to be prepared before the main script starts. To use pre- or post-run scripts:
- Create and deploy separate RPA scripts.
- Reference them in the properties panel of the RPA task.
The working directories of the worker’s job will be removed once the job is completed.
Timeouts
To set timeouts:
- On the RPA task (recommended): Set the timeout when configuring the RPA task in your diagram.
- In the worker: Use the default timeout in
rpa-worker.properties
as a fallback.
Concurrent jobs
To enable concurrent jobs, set camunda.rpa.zeebe.max-concurrent-jobs
in the worker config. Use this if your scripts (like browser automation) can run in parallel safely.
Additional libraries
To install additional dependencies:
- Create a
requirements.txt
file listing required packages. - Set
camunda.rpa.python.extra-requirements=extra-requirements.txt
in the properties file. - Restart the worker to install them.
Use labels to ensure scripts only run on compatible workers.
For example, to use Playwright:
## requirements.txt
robotframework-browser
## application.properties
camunda.rpa.python.extra-requirements=extra-requirements.txt
camunda.rpa.zeebe.worker-tags=default,playwright
Installation and setup guide
An RPA worker acts as a specialized job worker designed to run outside the main Camunda orchestration cluster.
Prerequisites
RPA workers are supported on Windows, Linux, macOS, and in Docker for headless automation.
Hardware requirements
The RPA worker runs on bare metal, virtualized, or containerized systems. Use hardware suitable for your automated applications.
Software requirements
The RPA worker is a standalone binary.
Operating system | Required software | Optional software |
---|---|---|
Windows | RPA worker | - |
Linux + macOS | RPA worker | Python 3.12 + pip |
Network configurations
- Ensure connectivity to your Camunda cluster.
- Allow internet access if downloading external libraries.
Installation and configuration
This section will focus on the setup of the RPA host machine.
Scaling and operation
Each machine hosts one RPA worker.
For scalable workloads:
- Use VMs to quickly spin up new workers.
- Use max-concurrent-jobs if safe for your use case.
Setting up a VM
We recommend using virtualization.
Create a template VM
- Start with a clean Windows VM.
- Install and configure the RPA worker.
- Install all required third-party applications.
- Test connectivity by running a process in Camunda.
- Add the RPA worker to run automatically on startup.
- Configure Windows autologon.
- Disable screen saver, sleep, and lock.
- Set the VM's time zone to match business requirements.
- Save the configured VM as a template.
- Keep a separate local admin/password in escrow for emergency access (audit all RDP/Console logons).
Monitoring and scaling
To scale using your VM template:
- Provision new VMs from the template.
- Start the VMs to allow them to connect to Zeebe and begin executing tasks.
- Use Operate and Optimize to monitor task execution, wait times, and incidents.
If jobs are waiting too long, create additional VMs.
Operational tips:
- Script handling and versioning: RPA workers fetch the latest script version automatically.
- Labels: Use them to route tasks to the right worker types.
- Maintenance and monitoring:
- Enable OS updates during a maintenance window.
- Take regular snapshots.
- Monitor health, disk space, and RPA service status.
- Surface alerts into your monitoring tools.
FAQ
My RPA task is never picked up.
Ensure your RPA worker is connected to the correct Zeebe instance and has the correct label configured for the task.
My first script run succeeds, but any subsequent runs fail. I always need to restart the machine.
Your script might not clean up properly. Use teardown scripts to close apps after execution.
How do I handle errors and exceptions within RPA scripts?
Use setup and teardown steps in the Robot Framework. Optionally, use Throw BPMN Error
for BPMN-specific handling.