Long Running Workflows Community Preview

:loudspeaker: Hello UiPath Forum!

We’d like to introduce to you the preview of a new canvas in Studio called Long Running Workflow. This will help you model & automate advanced processes integrating tasks, decision points, data flows and human collaboration all while leveraging UI, API & API-powered capabilities.

:speech_balloon: What is it

  • New canvas that helps users model using BPMN concepts applied to RPA
  • Each node represents an activity; some can be configured directly on the canvas, some require a few quick steps
  • Leverages activity templates for a quicker configuration experience
  • Enhanced error handling through Error Boundary Events and Error End Event

:gear: Getting started

First update to the latest version of Studio.

Navigate to the Templates tab backstage and search for the Long Running Automation. This will get you started with the Long Running Workflow set as main and all additional required settings. From here, you can model a project from scratch or import a BPMN file to get started with an existing project. Make sure to check Include Prerelease.

:robot: Key use cases

  • Invoice processing
  • HR onboarding
  • Ticket management
  • Order fulfillment
  • Incident management
  • and many more

:blue_book: Key functionality

  • Add activities from the Activities Panel

    • For a detailed list of all activities and use cases they can help with, follow the guide at the end of the post
  • Change types by right clicking a canvas element and selecting Change Type

  • Some activities may require setting a template or changing the activity (example in the video below):

  • Change color by right clicking on a canvas element or a connecting arrow and selecting Change color (example in the video below):

    • The use cases that it can help with are distinguishing between the types of Tasks (User Task vs Service Task vs Agentic Task), tracking implementation status or defining execution paths
  • Import BPMN

    • You are able to import existing BPMN files into a Long Running Workflow. The experience will be improved but for now, right click and click on Import BPMN and select the BPMN file.

Activities

Check out the guide below that describes all activities available in the Long Running Workflow canvas alongside use cases and examples on how to best integrate them in a Long Running Automation.

Start Events

Start Events define how and when a process begins. They represent the entry point for a process.

Expand to learn about all Start Event types

Start Event

This is the default for all Long Running Workflows. The Start Event initiates a process without any specific external triggers.

Use case: This is suitable for processes that begin on demand or without dependency on time or external systems

Timer Start Event

The Time Start Event triggers automations based on a predefined schedule and uses a Time Trigger to schedule process execution.

Use case: It’s ideal for automations like daily reports, scheduled tasks, recurring business processes

Message Start Event

The Message Start Event starts the execution as a response to an API event. It leverages Event Triggers Integration Service, Microsoft 365, Google Workspace, System etc.

Use Case: When developing automation triggered by external events, such as email actions, Queues, employees created in Workday, records created in SAP concur and many more

Intermediate Events

Intermediate Events represent points within a process where specific actions or conditions pause the workflow. They provide flexibility to model waiting periods, external triggers, or other process dependencies.

Expand to learn about all Intermediate Event types

Intermediate Event

A generic placeholder used during design to represent intermediate points. It can be replaced with specific event types as the design evolves.

Use case: Use this when designing the process before taking a decision of whether it should be a Timer or a Message Intermediate Catch Event.

Timer Intermediate Catch Event

This event suspends the execution of a process until a specified time condition is met. Once suspended, it activates after either:

  • A predefined time duration (e.g. “wait 2 hours”).
  • A specific date and time (e.g. “resume on 2024-12-01 at 10:00 AM”).

Use Case: Ideal for scenarios like sending follow-up emails after a delay or waiting for a deadline

Message Intermediate Catch Event

Suspends the execution until a specific event occurs and resumes it afterwards. It creates a subscription to an API event and listens for configured events from:

  • Integration Service (records in SAP Concur, employee updates in Workday etc)
  • Microsoft 365 (emails received, spreadsheets updated, calendar events)
  • Google Workspace (emails received, spreadsheets updated, calendar events)
  • and others.

Use Case: Processes that rely on real-time interactions, such as waiting for external approvals, or system-generated updates.

Boundary Events

Attach to a Task or a Subprocess and route execution on a different path. Usually can be interrupting and non-interrupting but for now, there is only one type: the Error Boundary Event which is interrupting.

Expand to learn more about Error Boundary Events

Error Boundary Event

For an improved error handling experience, you can use an Error Boundary Event to catch Exceptions. By default, the Error Boundary Event will catch all types of exceptions and can route the process through a recovery or a notification to handle this exception.

You can configure it to catch custom exceptions as well, creating custom recovery mechanisms based on the exception type. You can add multiple Error Boundary Events to the same Task or Subprocess, as long as the exception configured on each of them is different.

Use case: Use this to handle a Business Exception triggered in a subprocess like in the example below:

Use it to catch all potential exceptions or custom exceptions like in the example below and create a recovery mechanism.

Tasks

Tasks represent the building blocks of a process. They describe actions or operations to be performed, ranging from manual tasks to fully automated ones.

Expand to learn about all Task types

Task

A generic placeholder used at design time to represent an activity. It can be changed later with specific type as the process is refined.

User Task

Represents work that requires human intervention, suspending process execution until the task is completed. A User Task will leverage activities from Action Center, including the Approval Task template. The suggested structure is:

    • Create an Action App Task
    • Assign the task to one or more users and notify them via Slack, Microsoft Teams, or other communication channels.
    • Set timers for completion with rules (i.e. notify or reassign)
    • Suspend execution until the Task is complete

Use Case: Perfect for approval workflows, manual data entry, or tasks requiring a decision from a human actor.

Business Rule Task

Used to evaluate a predefined business rule or decision. It helps automate decision-making within a process based on runtime data and helps structure more complex decisioning. This functionality is still under preview. To learn more about it, sign up on https://insider.uipath.com/.

The activity consumes a Business Rule defined in Orchestrator. The business rule has to be modeled using Decision Model and Notation (DMN). To get started, simply upload a new rule or link an existing one from another folder.

From Orchestrator, you can also manage the rule by uploading a different version or managing links.

Once it’s configured, it can be configured in the activity by selecting the folder path and the business rule, as well as its arguments.

Use Case: Ideal for determining next steps based on criteria such as policy compliance, credit checks, or conditional routing. The example below shows can you use it within the context of approvals and determine the path based on data like region, cost and others.

Service Task

Represents an automated task requiring no human intervention. It leverages the Invoke Workflow activity and it’s configurable directly from the Properties Panel.

Use Case: Suitable for RPA steps like data processing, data extraction using Document Understanding, login etc. It helps modularize the process and split it into executable blocks.

Send Task

Models the publication of a message to an external system. Use activities from Microsoft 365, Google Workspace, or Integration Services (IS).

Use Case: Useful for sending notifications, triggering external workflows or updating external systems.

Receive Task

Pauses the process until a specific message is received. It’s similar to the Message Intermediate Catch Event but allows for more activities to be performed alongside message receipt. It can also be used in conjunction to the Error Boundary Event for any potential system errors.

It creates a subscription to an API event and listens for configured events from:

  • Integration Service (records in SAP Concur, employee updates in Workday etc)
  • Microsoft 365 (emails received, spreadsheets updated, calendar events)
  • Google Workspace (emails received, spreadsheets updated, calendar events)
  • and others.

Use Case: Ideal for workflows that wait for external input, such as confirmations, responses, or acknowledgments and require either more than one step. Alternatively, it can be used like in the example below where on any potential system error, there is a recovery.

Subprocess

Group related elements within a process to simplify the diagram and improve readability. The subprocess is collapsed and helps reduce the diagram complexity. Can include a Start Event but no specialized types like Message Start Events or Timer Start Events.

Use Case: Useful for simplifying the view of large processes and grouping part of the process. It’s also useful when wanting to use Business Exceptions through the Error End Event & Error Boundary Event pairing.

Gateways

Gateways define decision points or control flow logic in a process, enabling conditional routing or parallel execution of workflows.

Expand to learn about all types of Gateways

Decision

Based on the condition set, executes one of the two branches. By default, the branches are titled True and False but their names can be changed in the Properties Panel. It’s equivalent to the If activity and in BPMN can be mapped to an Exclusive Gateway.

Use case: Ideal for binary decisions, such as approving or rejecting a request based on a condition

Switch

Enables you to execute a single course of action out of multiple options, based on a specified condition. The activity consists of a conditional expression and a collection of cases, each containing a corresponding activity or set of activities. Based on the expression set, routes execution to the branch that matches the result. Equivalent to the Switch activity and aligns with BPMN’s Exclusive Gateway.

Use Case: Useful for processes requiring multiple possible outcomes, such as routing support tickets by category or processing orders by priority.

Split and Merge

Split Divides a process into parallel paths to execute tasks simultaneously. Can be used alongside a Merge activity or followed by an End Event on each outgoing branch.

Merge Joins the incoming parallel paths and continues execution. By default, it waits for all branches to complete before proceeding. The behavior can be changed from the Properties Panel where you can set it to Wait for

Use Case: Ideal for workflows requiring concurrent tasks, such as gathering approvals from multiple departments or performing simultaneous data validation and enrichment.

  • By default, it’s equivalent to a Parallel Gateway. Take the example of processing expenses where you need approval from two departments at the same time. In this case, execution will be suspended and will not continue until both Tasks are completed.

  • It can be used as an Inclusive Gateway if the outgoing branches of a Split are followed by a Decision. In this case, based on data at runtime you can decide which paths to execute. For example, in case of travel requests, the process may need to follow certain approvals based on destinations or cost.

  • Event Based Gateway if followed by a Merge with behavior set to Wait for one. The Split also has to by followed by User Tasks, Message Intermediate Catch Event or Timer Intermediate Catch Event. In this case, once the first event is triggered, the others will be cancelled. So for example, if the approval from Action Center is received first, execution will continue from the Merge and the timed and email suspensions will be cancelled.

End Events

Signify the conclusion of a process path, where some represent visual markers, while others trigger specific actions.

Expand to learn about all End Event types

End Event

Indicates the conclusion of a path. A Long Running Workflow can include multiple End Events. If a node in the diagram lacks outgoing connectors, it is equivalent to an End Event.

Use case: Visually mark the end of a path like in the below example

Terminate End Event

The Terminate End Event halts all ongoing activities in the scope.

  • In a Long Running Workflow: It terminates the process instance. After this, the process instance is considered complete.
  • In a Subprocess: It terminates all element instances within the subprocess. Once the subprocess ends, the main process continues by following the outgoing sequence flows of the subprocess.

Use case: When you’re required to terminate the instance of a specific process scope. The example below showcases how to best use it in conjunction with a Split and Merge. In the case the approval is rejected, you want to terminate the Subprocess execution and handle the recovery on a different path without waiting for the other approval.

Error End Event

The Error End Event generates an Error that can be captured by an Error Boundary Event. It’s useful when you’d like to generate business exceptions based on runtime data and certain conditions. It operates in tandem with an Error Boundary Event, ensuring smooth exception handling within the process flow.

Use case: In this example, if there are any issues with the approval, I will trigger an exception

This in turn will be caught by the Error Boundary Event and the execution will go on a different path to recover this:

20 Likes