Get Started

Robility Manager is a centralized platform designed to manage, monitor, and deploy robotic process automation (RPA) workflows seamlessly across an organization. It serves as the command center for all automation activities, ensuring efficient execution and orchestration of processes at scale.

Key Features of Robility Manager

Robot Management

a. Facilitates the management of attended and unattended robots within the automation ecosystem.
b. Allows efficient assignment and monitoring of robot activities to optimize resource utilization.

Scheduling Robots

a. Provides advanced scheduling capabilities to trigger automation processes at specific times or events.
b. Supports recurring schedules and ad-hoc executions for flexible task automation.

Asset Management

a. Centralizes management of critical assets like credentials, configuration data, and reusable components.
b. Ensures secure storage and controlled access to sensitive information.

Interact

a. Enables the creation and management of dynamic work queues to distribute tasks across robots effectively.
b. Offers prioritization, retry mechanisms, and workload balancing for enhanced productivity.

Monitoring and Logging

a. Delivers real-time monitoring of robots, workflows, and processes.
b. Provides detailed logs and insights to troubleshoot issues and maintain operational efficiency.

Analytics and Reporting

a. Generates performance metrics and customizable dashboards for tracking automation outcomes.
b. Provides actionable insights to optimize processes and scale automation efforts.

Role-Based Access Control (RBAC)

a. Ensures secure and role-based access to Manager functionalities.
b. Enables granular permissions for different users, enhancing security and compliance.

Version Control

a. Maintains a history of deployed workflows, allowing easy updates or rollbacks when needed.
b. Supports managing multiple versions of automation processes.

API Integration

a. Offers robust APIs for integrating Robility Manager with third-party tools and custom applications.
b. Ensures seamless orchestration of automation workflows within broader enterprise systems.

Multi-Tenancy

a. Supports multiple tenants on the same platform, providing resource isolation and scalability.
b. Ideal for organizations with diverse departments or multiple client environments.

Deployment Options

a. Available as a cloud-based solution or on-premises deployment, tailored to meet business requirements.
b. Scalable to align with organizational growth and automation needs.

Customizable Workflows

a. Empowers users to define and customize workflows with ease, enhancing automation flexibility.
b. Promotes faster deployment of solutions that align with specific business processes.

 

Sign-In

To access Robility Manager, users must first receive an invitation to the platform. (Click here to refer) Once invited, they can sign in using one of two methods, depending on the identity provider chosen by their organization. Robility’s identity provider ensures secure authentication, providing seamless and protected access to the platform.

Using Username and password:

The username and password method is the initial and default sign-up process for all users, even when Azure SSO is selected. It is essential for account creation and identity verification within the platform.

1. Users can set up their own username and password to access Robility Manager.
2. This foundational step ensures a secure and seamless onboarding experience.

Using Azure AD authentication:

Following the initial sign-up with a username and password, users can log in using the Azure AD Single Sign-On (SSO) option if the organization has configured the setup with Azure. This ensures secure account creation and identity verification. Once set up, Azure AD SSO manages authentications for all future logins, providing seamless and secure access.

Click here to know how to setup with Azure AD authentication.  

 

Tenancy

In Robility, tenants provide self-contained environments for centrally managing data, resources, users, and configurations, streamlining automation processes within a single platform. Organizations can create multiple tenants with the same structure to address specific business needs.

Who Can Create Multiple Tenants?

The organization admin has the privilege to add multiple tenants under their organization, but this depends on the chosen structure:

a. Multiple-organization, multiple-tenant structure
b. Single-organization, multiple-tenant structure

However, if the admin selects a single-organization, single-tenant structure, they will not be able to create or add additional tenants later. Click here for more details.

Who manages the tenant?

The Tenant Admin is responsible for centralized control, ensuring seamless operations and optimizing automation processes. The Tenant Admin can manage the following features:

1. User Management:
Admins can invite users, assign roles, and manage access rights to ensure appropriate permissions.

2. Configuring Projects
Admins can create and customize multiple projects to meet business needs, including defining scope and aligning resources.

3. Storage and Key Vaults
Admins can manage storage and key vault configurations to securely handle project data, ensuring reliable automation processes.

4. License Management
Admins can procure and manage licenses for Robility products and resources at the tenant level.

5. HarmonyAI Integration
Admins can configure HarmonyAI and integrate it into projects to enhance automation capabilities.

When will tenant expire?

Tenants with a 365-day or 90-day license package will expire at the end of their license period unless renewed. The organization administrator will receive an email notification five days before the license expiration, ensuring sufficient time to take necessary action. Click here for more details.

To avoid disruptions, timely renewal is essential.

Who can renew the license? 

Both the organization administrator and the tenant administrator can renew the license. To ensure uninterrupted operations:

1. Navigate to the “License” page under the Settings menu in the Robility Manager platform.
2. Submit a request for a new license.
3. Review the remaining days of the current license, displayed for reference.

If license expiration affects products such as Robility Designer and Runner, these must also be reactivated. Click here for detailed guidance.

What happens after a tenant expires?

Failure to renew the license will result in:

a. Loss of access for all users and resources within the tenant.
b. Halted automation processes, including bot deployment.

To restore services, administrators should promptly request a license renewal. Follow the steps below to renew:

1. After logging in to the Robility platform, the tenant status will appear as Expired.
2. Click the Renewal button.
3. You will be redirected to the License Request page within the tenant and prompted to submit the renewal request.
4. Click Submit to complete the process.

Multiple Tenants

Organizations can create multiple tenants within the same structure, allowing them to streamline management, enhance efficiency, and maintain uniformity in handling data, resources, and user access across all tenants.

This capability is exclusively available to the organization admin, who can create multiple tenants depends on the selected organizational structure. If the organization adopts a multi-tenant setup—such as:

a. Multi-organization with multiple tenants, or
b. Single organization with multiple tenants

How to add multiple tenants?

The Organization Admin who signs up and creates the platform has the privilege to add multiple tenants for their organization. Admins can seamlessly switch between tenants using the same login credentials without affecting data, settings, or administrative tasks.

When the admin signs up, the first tenant is automatically created with the name provided during the signup process. To add additional tenants to the organization, follow these steps:

1. Login to the platform.
2. Once you logged into the platform, the user will be displayed the list of organizations.
3. Upon clicking on the organization’s name, the list of tenants or the tenant created against it will be displayed.
4. Click on the setting icon parallel to the organization name.
5. Choose “Add Tenant” option.

6. The Add tenant pop up appears on the screen.
7. Enter the Tenant name in the box. Note that the tenant will be created against the organization displayed on the tenant creation screen.

8. Choose the deployment model as “LIVE, STABLE, DEV or BETA version and select the create button.
9. A new database will be setting up for the created tenant. This might take a few minutes to complete.
10. Once the setup has been, the tenant’s name will appear on the list.

The newly added tenant will now be accessible alongside existing tenants, enabling efficient management and seamless transitions. 

Tenant Switch

Users and tenant administrators can easily switch between tenants as needed. Follow these steps to switch to a different tenant:

1. Click on the organization name at the top of the page.
2. On the top left corner, you can see the breadcrumbs displayed as “Robility AI / RPA / Automation / Products” (here “RPA” is the organization name).
3. You will be redirected to the Tenant Selection Choose your desired tenant.

This process ensures a seamless transition between tenants while maintaining data integrity

Tenant Status

All tenants under an organization, whether active, expired or requires renewal, will be displayed in the Tenant List section.

Active Tenants: These appear as clickable hyperlinks, allowing users to navigate directly to the respective tenant’s platform.
Expired Tenants: These remain visible on the list but are inaccessible until the license is renewed. Click here to learn how to renew your license. 
Requires Renewal: This section notifies users to renew the tenant license before it expires. 

Sign-In

To access Robility Manager, users must first receive an invitation to the platform. (Click here to refer) Once invited, they can sign in using one of two methods, depending on the identity provider chosen by their organization. Robility’s identity provider ensures secure authentication, providing seamless and protected access to the platform.

Using Username and password:

The username and password method is the initial and default sign-up process for all users, even when Azure SSO is selected. It is essential for account creation and identity verification within the platform.

1. Users can set up their own username and password to access Robility Manager.
2. This foundational step ensures a secure and seamless onboarding experience.

Using Azure AD authentication:

Following the initial sign-up with a username and password, users can log in using the Azure AD Single Sign-On (SSO) option if the organization has configured the setup with Azure. This ensures secure account creation and identity verification. Once set up, Azure AD SSO manages authentications for all future logins, providing seamless and secure access.

Click here to know how to setup with Azure AD authentication.  

 

UnAttended Runner

Unattended Robot

Unattended bots can run autonomously, providing comprehensive end-to-end automation for processes, typically in the back-office environment. These bots are designed to operate without human intervention and can handle tasks from start to finish. They are particularly useful for repetitive tasks, large-scale data processing, and operations that require minimal human oversight.

One of the key advantages of unattended bots is their ability to work on a predefined schedule or be triggered by specific logic within the process flow. This scheduling flexibility allows organizations to optimize their workflow and allocate resources more efficiently. Unattended bots can perform tasks at times when human intervention may not be available, such as outside of regular working hours, ensuring continuous operation and productivity.

Additionally, unattended bots are capable of handling complex workflows and interacting with multiple systems or applications seamlessly. They can navigate through various steps of a process, retrieve and process data, make decisions based on predefined rules or conditions, and perform actions such as data entry, file manipulation, report generation, and more. This level of automation reduces errors, improves accuracy, and accelerates the execution of tasks, leading to increased productivity and cost savings for organizations.

Steps to deploy a bot to the runner

1. Design a workflow in the designer.
2. Publish the workflow to the manager.
3. Add a machine to the manager to which the workflow has to be deployed. Choose the license type here.
4. Then navigate to the projects. Either add the machine to an existing project or create a new project to add the machine.
5. Get into the projects and assign the robot to it by navigating to the robot screen.

Click here to refer how to publish the robots to the RobilityManager. 

To see how to navigate in the runner screen, click on the respective links.

How to connect an assigned robot to the runner?
How to use the feature, health and disconnect feature in runner?
How to use the archive settings in runner?
How to use the logs in the runner?

Configuring Robot

The Robility Manager’s function includes adding machines, creating projects, and assigning robots to projects. The manager can send these designated robots to the runner. To assign a robot to the runner, we must first add a machine, create a project, and then assign a robot inside the project.

Adding a resource to the tenant

1. Publish the workflow from designer. (Click here to see how the workflow is published).
2. Add a resource, deploy the workflow to the Runner by choosing the respective license type.

There are 3 types of licenses that are available to automate your process,

1. Unattended robotsChoose this type of license when the bot does not require any user intervention. We can assign only one unattended bot to a machine. Unattended bots are typically employed for automating repetitive, rule-based tasks in business processes that can be performed without constant supervision.
2. High Density BotsChoose this type of license when a single machine has multiple users and does not require any user intervention. This is similar to Unattended bots but with multiple users are logged in to same system.

3. Attended BotsChoose this type of license when the bot encounters situations or tasks that require human intervention or decision-making.

To add a resource to the manager, click on add and fill in the mandatory details.

In the manager, there is room for up to 10 machines. If adding more machines becomes necessary, we must purchase additional licenses for them. To do this, navigate to the license tab on the home page and select the option labeled “Buy license.” Additionally, we have the flexibility to view, edit, or remove machines at any time.

Adding robot to the project

To add a robot to a project,

1. Navigate to the “Projects” menu.
2. Click on “Go” against the project where the robot needs to be added. 
3. Navigate to the “Deploy Robots” menu to add the robot.
4. Click on “Add” and provide the mandatory details. The username and password here is the system username and password.
5. The Solutions will be available only when you have published it against the project. Click here to refer. 

6. Click on save and the robot is added to the project.

Assigning the robot to an existing project

There might be a situation where we want to add another robot to an existing project. However, we can only add multiple robots to the existing project if a suitable number of licenses have been assigned to the project.

To add another robot to an existing project, follow the below steps.

1. Select the desired project into which the robot must be added.
2. Click on Go against the project.
3. To add a robot into the existing project, click on add and enter the robot details to be added.
4. Click on save to add the robot to the project.
5. Once the robot is added, a key is generated for the respective robot.

Connecting the Runner

Connect to Runner with license key

Let’s see how to connect the Runner by configuring the license key.

1. Copy the license key which is the activation code for the respective robot in runner by clicking on the “Key” button.
2. Launch the runner and enter the copied key to the activation code and click on connect.

Robot status and color codes

The color codes define the status of the ‘Runner’ connected to the project. They are available against each project where the robot is connected.

1. When the robot status shows Blue, it indicates that robots are idle.
2. When the robot status shows Green, it indicates that robots are in running state.

3. When the robot status shows Yellow, it indicates that the robots are in Tocheck state.
4. When the robot status shows Red, it indicates that the robots are in Faulted state
5. When the robot status doesn’t have any number or color code to it, there are no robots assigned to that project.

Execution of robot

Once the activation code has been entered in runner, the bot is ready to run. (Activation code is the key mentioned against the robot)

To execute the bot in the runner,

1. Open the “Deploy Robots” page in the Robility manager.
2. Click on Run against the machine which is in “Idle” state. It gives a message that the robot is initiated successfully.
3. We also get a pop-up message from the system tray where Runner is available as “Request received to run.”
4. Once it is completed, a message is popped up from system tray. “Run completed”.

Once the run is initiated the bot completes the run and executes the assigned workflow in the designated machine. Click here to know more about the status of the Robot. 

Managing Runner

Health Check

The Health Check tab in the Runner application is an essential tool for monitoring and diagnosing the bot’s health status. It provides critical insights into the bot’s readiness and operational condition, particularly when errors or unexpected issues occur during execution.

When a bot encounters an error, the Health Check tab should be the first point of reference. This feature helps identify potential issues and ensures the bot meets all necessary conditions for successful execution. By regularly reviewing the health status, users can prevent downtime and maintain smooth operations.

The Health Check tab highlights several important aspects:

1. Error Diagnosis: When a bot fails or encounters an issue during execution, the tab provides details about its health status, offering clues about what might have gone wrong.
2. Execution Readiness: It also verifies that the bot fulfills all required conditions for execution through the Runner. These conditions include system configurations, resource availability, and connectivity, which are vital for the bot to operate without interruptions.
3. Troubleshooting Guidance: By reviewing the health status, users can quickly identify problems, such as missing dependencies or misconfigurations, and address them efficiently.

Refer to the image below for a detailed overview of the prerequisites and conditions that must be fulfilled for the bot to execute successfully. 

Overview

The main screen of the Health Status tab displays four critical conditions that must be satisfied for the bot to run. These conditions are visually represented, and the bot will only execute if all four are marked with a green check. If any condition is incorrect, the following actions may be required:

1. Error Indication: If there is an issue with a condition, the corresponding status will turn red. The bot will not proceed and moves to the “ToCheck” status, to halt the execution until the error is resolved.
2. Repairing Issues: Use the Repair button to address plugin-related issues. This action removes and reinstalls the plugin, resolving most errors and allowing the bot to function. If the bot still fails to launch, review the log file to identify and resolve the underlying problem.
3. Scheduler Issues: If the scheduler’s configuration or functionality is problematic, attempt to repair the bot first. If repairing does not resolve the issue, use the Reset button as an alternative solution.
4. Browser Extensions: Errors related to Chrome or Edge extensions can be fixed by enabling the Robility Automation extension in the respective browsers. Open the affected browser, navigate to the extensions section, and activate the required plugin to restore functionality.

Repair and Reset

The Repair and Reset options in the Runner are essential tools for addressing issues and maintaining the smooth operation of bots. These functionalities ensure that the Runner’s configuration and settings are restored or refreshed as needed.

Repair

The Repair option is used when there is an issue with the health check status. It allows for a quick fix by removing and reinstalling the plugin associated with the Runner.

How it Works:

  1. Click the Repair button to address plugin-related errors.
  2. Once initiated, the plugin is reinstalled, and the health status should change to green if the issue is resolved.
  3. If the status doesn’t update, refresh the screen using the top Refresh button to display the updated health check information.

Reset

The Reset option restores the Runner to its factory default settings. This is useful when a complete reset is required due to persistent issues or to prepare the Runner for a new setup.

Key Features:

  1. Tenant-Specific Data Removal: All information about the current and previous bots saved for the tenant in the Runner is deleted.
  2. Package Deletion: Any packages installed when the Runner was launched from the Manager are removed.
  3. Activation Code Reset: The license key or activation code previously copied from the Manager is cleared, and the Runner returns to the login screen.
  4. Factory Defaults: The reset ensures that the Runner is restored to its initial configuration, ready for new configurations or troubleshooting.

Features

Features tab

The Features tab in the Runner serves as a centralized location for viewing and managing the features used within a workflow. This tab is particularly useful for identifying features that are currently active, as well as those that have been used in past workflows, providing a historical reference for better decision-making.

The Features section is categorized into two main parts:

1. Current Workflow Features:

a. This section displays all the features that are currently applied to the bot’s active workflow.
b. It helps users quickly identify the tools, integrations, or configurations that are actively in use.
c. This view is essential for understanding the scope of the bot’s current operations and ensuring the features align with the intended automation process.

2. All Workflow Features:

a. This section provides a broader view, listing not only the features in use for the active workflow but also features from previous workflows associated with the bot.
b. It offers a historical reference of all features that have been applied, making it easier to trace back configurations, identify patterns, or reuse features as needed.

Settings

Settings

The Settings page has three sections categorized. They are as follows, 

1. Profile: This section contains the information about the system and Tenant on the Robility Manager.
a. System Name: This is the system name where the runner is scheduled. 
b. Manager URL: Clicking on this link will navigate to the login page of the Robility manager.
c. Connected to: This displays the tenant’s name associated with the Manager and Runner.
d. License Expires on: The license’s expiration date and time are displayed here. Each license has a 90 days expiration date. Here, the time and date are expressed as of the license’s activation.
e. Environment: This displays the environment of the Robility Manager where the Runner is connected to. 

2. Optimization: Click here to know about the optimization configuration. 

3. Product Update: There is a toggle key that enables and disables the auto update. The runner automatically updates to any newly published patch when the auto update key is turned on. When the auto update feature is disabled, a pop-up window notifies the user that an update is available and asks them to upgrade the runner.

Disconnect Runner

To disconnect the bot from the runner, click on from the right-hand side top corner of the screen. A confirmation message to disconnect the runner will appear. Once we click on yes, the current robot will be disconnected from the runner.

Archive Settings

Archive Settings

Archives are places where documents or files are preserved for future reference. They are used to collect multiple data files together into a single folder for easier storage. The runner application has archive properties that can be edited by navigating to the log settings on the logs screen. Please refer to the image below.

1. Archive Numbering: Specify the way the archive numbering should be performed.
   a. Rolling– Rolling style numbering where the most recent file is always numbered 0. Like if there are 4 files, the recently added file will have the number 0.
   b. Date– Date style numbering. The previous period’s date and time will be imprinted on all archives. Sequence style numbering, where the most recent file has the highest numbering. Like if there are 4 files, the recently added file will have the number 5.
   c. Date and Sequence– Archives will be stamped with prior period date and time and the most recent has the highest numbering. (In combination with the date)

2. Archive Period: This drop down is used to select the period to archive the files. We can choose not to archive the files or choose to archive on a daily, monthly, or yearly basis.
None– Choosing this option will not archive any files.
Daily- Choosing this option will archive the files daily.
Monthly– Choosing this option will archive the files monthly.
Yearly– Choosing this option will archive the files yearly.

3. Concurrent writes: Gets or sets a value indicating if many processes running on the same host are writing to the log file simultaneously. For example if we have more than
one process running in a single system, keeping this option to true will write the log file of all the process simultaneously.

4. File size: The file size is the size of the file that we set in the log settings of the runner. Any file which crosses the size limit mentioned here is automatically archived.

5. Maximum number of files: This shows the count for the files to be archived. When we choose a number from the drop down, for example if we choose 5, once the archived
folder reaches more than the number of files specified; the oldest file will be automatically deleted.

Managing Logs

Logs in Runner

The log files are those that has all the details of the running status of the bots. Any activity that is executed through the runner is printed in the logs. The logs tab in the runner has only the execution log printed in it. To see the product log, activity log and the runner log, navigate to the Appdata folder.

The logs in the runner can be turned on or off using the toggle key. When it is turned on, we can see the execution log printed in the logs screen of the runner. When it is turned off, the execution log is not printed in the logs screen of the runner.

Log Settings

To edit the log settings, navigate to the settings icon within the log page on the left-hand side. The log page also has four icons which is info, debug, error, and trace and these are used as filters which when enabled shows the log only of the enabled log type.

Log Type

There are three types of logs available for selection: the execution log, the activity log, and the product log.

1. Execution log: This log provides a detailed record of the steps executed by the bot, offering insights into the sequence of actions taken during its operation.

2. Activity log: In the activity log, you’ll find a comprehensive list of all activities utilized within the workflow, accompanied by their respective execution states. This log serves as a valuable resource for tracking and analyzing the workflow’s performance.

3. Product log (Runner log): The product log, also referred to as the runner log, offers a focused view of the runner’s activities and highlights any errors encountered within the application. It provides crucial information for debugging and troubleshooting issues.

By default, the execution log is visible within the application interface, allowing users to toggle its visibility as needed for monitoring and review purposes.

Log Level

Choose the log level based on what you wish to be printed on the screen. The log levels that are applied can be categorized between Debug, Info, Trace and error.

Any execution that is done will be printed in the logs. What we will see in the output panel or the execution log, is
Execution started – Generated every time a workflow starts execution
 Execution start time – Generates the exact time when the execution started.
• Execution ended – Generated every time a workflow has ended.
• Execution end time – Generates the exact time when the execution ended.
• Total execution duration – Generates the total execution duration of the workflow.

The execution log and the output panel will show the log level, message and timestamp. To see the detailed log file based on the log level chosen, we need to navigate to the log files inside app data where we can view what is printed in the log file based on the log level chosen.

Clear Logs

Clicking on clear, clears all the log details of the current bot.

Click here to see how the archive settings work.

How to Troubleshoot the Runner

When troubleshooting an unattended Runner configured in a Virtual Machine (VM), it’s essential to ensure that all foundational components are correctly set up. Below documentation details the different troubleshooting scenarios in Runner.

1. Restart VM

Sometimes, issues may arise due to system resource locks, stuck processes, or other VM-specific problems that can hinder the performance of your Robility Runner.

When is this required?

Identify Issues: Performance issues are identified, such as a robot failing to execute tasks, unusual delays, processes getting stuck, and failure to update the system “Unlock” status.

Action: A simple restart of the VM can often resolve these issues, freeing up locked resources and resetting processes. Post restart, ensure to check the issues have been resolved.

2. Check for Active Sessions

To ensure that the Runner can execute its tasks without interference from other active user sessions on the VM, please ensure that the following are not being interfered during the execution of bot in Runner.

If there are multiple active sessions (e.g., a user is logged in remotely or another robot is active), it can cause various issues such as:

1. Screen Resolution Conflicts: Different sessions may have different screen resolutions, causing UI elements to be positioned incorrectly.
2. Application Access Issues: Applications might open in the wrong session, or the robot might not be able to interact with them as expected.
3. Execution Failures: The robot might fail to execute tasks properly if it cannot control the environment as expected.

When is this required?

These issues are identified when someone tries to log in to the VM during bot execution or while running any background processes. This disruption occurs because changes in screen resolution can cause image-based automation to fail, as the bot may not recognize the expected visual elements.

Action: Terminate all active sessions and close any background processes. Avoid using the machine or VM during the automation process. By ensuring there are no conflicting active sessions, the robot can execute tasks in a controlled environment, minimizing errors related to screen resolution or application access.

3. Check Resource Availability

Scenarios: When the allocated VM does not have sufficient CPU, memory, and disk space available for the robot to run effectively. Resource constraints can lead to issues such as the robot hanging, running slowly, or failing entirely.

When is this required?

1. CPU Usage: Ensure that the CPU is not overly taxed by other processes. High CPU usage could cause the robot’s tasks to lag or fail.
2. Memory (RAM): Check the available RAM to ensure that the robot has enough memory to load and process applications. Insufficient memory can cause the robot to hang or crash.
3. Disk Space: Verify that there is adequate disk space, especially if the automation involves handling large files or generating logs. Running out of disk space can disrupt the robot’s operations.

Action:

1. Set thresholds for each resource (e.g., CPU usage below 80%, at least 2 GB of free RAM, and at least 10 GB of free disk space).
2. Ensure that no other processes or users are consuming excessive resources or interfering with the robot’s operation.
3. Terminate/Reduce Resource Usage: If a process or user session is found to be consuming excessive resources, kill the unnecessary or non-critical process.
4. By ensuring that system resources are available and not overburdened, the robot can execute tasks efficiently without delays or failures.

4. Ensure Runner service is Running

Scenario: When Robility Runner service is not actively running on the VM. This service is necessary for the robot to execute tasks and update the machine status, Runner status and workflow updates to the RobilityManager.

How to check the Service Status?

1. Access Services App: Open the Services application on the VM. This can be done by typing services.msc in the Run dialog or search bar.
2. Locate the Service: Find the “Robility Runner” service in the list of services.
3. Verify Status: The service should have a status of “Running.” This indicates that the robot is ready to execute tasks.
4. Stopped/Paused: If the service is stopped or paused, the robot won’t be able to run. In this case, you’ll need to start or restart the service.

Action:

1. Start Service: If the service is not running, right-click on “Robility Runner” and select “Start.”
2. Troubleshoot: If the service fails to start, further troubleshooting may be needed, such as checking system logs or reinstalling the Robility Runner. If the issue persists after these steps, restart the machine and then contact the Robility Support team.

5. Workflow Not Stopped Despite Using GetStopStatus in VM

Scenario: The GetStopStatus activity is designed to check if a stop command has been issued to the robot. However, if the workflow is stuck in a loop or a long-running transaction, the bot may not respond to the stop command in a timely manner.

The loop or ongoing transaction may prevent the workflow from reaching a point where it can check the stop status or gracefully exit.

Actions:

1. Optimize Loop Handling: Set break conditions or timeouts in loops to enable exits and respond to stop commands.
2. Graceful Exit Strategy: Use Try-Catch blocks to handle exceptions and stop commands gracefully.
3. Workflow Design: Divide complex workflows into smaller components for easier stop command management.
4. System Monitoring: Regularly check the robot and VM to ensure responsiveness to stop commands.

Troubleshoot

The Automatic Failure Screenshot Capture feature helps diagnose automation failures by capturing the application state when an activity fails during workflow execution.
When a failure occurs, the Runner automatically captures a screenshot of the application and, when possible, identifies and highlights the associated UI element. The captured diagnostics provide visual context, making it easier to identify and resolve automation issues.

Prerequisites

Before using this feature, ensure that:
a. The Troubleshoot option is enabled in the Runner Configuration.
b. The Runner has permission to create and store diagnostic files in the local troubleshooting directory.

Limitations

This feature is available only for the supported automation packages.

Configuration

To enable automatic failure screenshot capture:

1. Open the Runner Configuration window.
2. Enable the Troubleshoot option. When enabled, the Runner creates the following local directory:
    C:\Users\(Username)\AppData\Local\RobilityRunner\
This directory contains the Troubleshoot.config file, which controls failure screenshot capture and UI element highlighting.
When a failure is detected, the Runner automatically stores failure screenshots and diagnostic artifacts in workflow-specific folders under the Exceptions directory.

Note: Each workflow has its own folder within the Exceptions directory.

Supported Automation Packages

This feature supports activities from the following automation packages:

1. Desktop Automation
2. Desktop Automation UIA3
3. Modern Desktop Automation
4. Image Automation
5. Web Automation

How It Works

During workflow execution, the Runner enters the To Check Status stage, where it monitors the outcome of each supported activity.
If an activity fails and the configured trigger conditions are met, the Runner automatically:
1. Records diagnostic information.
2. Captures the application state.
3. Identifies and highlights the associated UI element, when available.
4. Stores the collected diagnostics in the workflow-specific Exceptions folder.

Failure Capture Behavior

Capture Screenshot

When a supported activity fails, the Runner captures the current application state.
Each screenshot:
a. Reflects the application state at the time of failure.
b. Is stored in the corresponding workflow folder.
c. Uses a unique filename to prevent overwriting existing screenshots.
Example filename: ActivityName_Timestamp.png

Highlight Failed UI Element

After capturing the screenshot, the Runner attempts to identify the UI element associated with the failed activity.
If the UI element is identified:
a. The element is highlighted in the screenshot.
b. An automation snapshot of the element is included, when available.
If the UI element cannot be identified, the Runner still captures the screenshot to preserve the application state at the time of failure.

Failure Screenshot Trigger Conditions

Failure screenshots are captured only when the Troubleshoot option is enabled. The capture behavior depends on the Skip on Error setting.

Skip on Error Behavior
True Workflow execution continues after the error is logged. A failure screenshot is captured only if the activity contains a Result property and its value is False.
False Workflow execution stops when the activity throws an exception, and the Runner immediately captures a failure screenshot and diagnostic information.

Note: Failure screenshot capture applies only to activities from the supported automation packages.

Troubleshooting Benefits

Automatic failure screenshot capture helps users:

1. Identify the failed activity and associated UI element.
2. Preserve the application state at the time of failure.
3. Reduce troubleshooting time.
4. Accelerate root cause analysis.

Configuring Robot

The Robility Manager’s function includes adding machines, creating projects, and assigning robots to projects. The manager can send these designated robots to the runner. To assign a robot to the runner, we must first add a machine, create a project, and then assign a robot inside the project.

Adding a resource to the tenant

1. Publish the workflow from designer. (Click here to see how the workflow is published).
2. Add a resource, deploy the workflow to the Runner by choosing the respective license type.

There are 3 types of licenses that are available to automate your process,

1. Unattended robotsChoose this type of license when the bot does not require any user intervention. We can assign only one unattended bot to a machine. Unattended bots are typically employed for automating repetitive, rule-based tasks in business processes that can be performed without constant supervision.
2. High Density BotsChoose this type of license when a single machine has multiple users and does not require any user intervention. This is similar to Unattended bots but with multiple users are logged in to same system.

3. Attended BotsChoose this type of license when the bot encounters situations or tasks that require human intervention or decision-making.

To add a resource to the manager, click on add and fill in the mandatory details.

In the manager, there is room for up to 10 machines. If adding more machines becomes necessary, we must purchase additional licenses for them. To do this, navigate to the license tab on the home page and select the option labeled “Buy license.” Additionally, we have the flexibility to view, edit, or remove machines at any time.

Adding robot to the project

To add a robot to a project,

1. Navigate to the “Projects” menu.
2. Click on “Go” against the project where the robot needs to be added. 
3. Navigate to the “Deploy Robots” menu to add the robot.
4. Click on “Add” and provide the mandatory details. The username and password here is the system username and password.
5. The Solutions will be available only when you have published it against the project. Click here to refer. 

6. Click on save and the robot is added to the project.

Assigning the robot to an existing project

There might be a situation where we want to add another robot to an existing project. However, we can only add multiple robots to the existing project if a suitable number of licenses have been assigned to the project.

To add another robot to an existing project, follow the below steps.

1. Select the desired project into which the robot must be added.
2. Click on Go against the project.
3. To add a robot into the existing project, click on add and enter the robot details to be added.
4. Click on save to add the robot to the project.
5. Once the robot is added, a key is generated for the respective robot.

Features

Features tab

The Features tab in the Runner serves as a centralized location for viewing and managing the features used within a workflow. This tab is particularly useful for identifying features that are currently active, as well as those that have been used in past workflows, providing a historical reference for better decision-making.

The Features section is categorized into two main parts:

1. Current Workflow Features:

a. This section displays all the features that are currently applied to the bot’s active workflow.
b. It helps users quickly identify the tools, integrations, or configurations that are actively in use.
c. This view is essential for understanding the scope of the bot’s current operations and ensuring the features align with the intended automation process.

2. All Workflow Features:

a. This section provides a broader view, listing not only the features in use for the active workflow but also features from previous workflows associated with the bot.
b. It offers a historical reference of all features that have been applied, making it easier to trace back configurations, identify patterns, or reuse features as needed.

Get Started

Robility Designer is a low-code platform for streamlined workflow creation, offering an intuitive drag-and-drop interface and over 200 features to simplify automation. It facilitates easy workflow creation and seamless bot deployment while allowing customization to meet specific business needs.

The platform provides cognitive automation capabilities for tasks requiring human-like decision-making. Additionally, the Designer includes a growing marketplace of automation scripts and connectors to accelerate your automation projects.

How to Access Robility Designer?

Let’s Get Started!

To access the Designer, sign in to Robility Manager. You can choose between two login methods: Single Sign-On (SSO) or Username and Password.

Sign Up or Log In:

  • New Users: Visit the Robility website and sign up for an account. Click here to get detailed information. 
  • Existing Users: Log in to your Robility account. (Robility AI™)

Components

Solutions: One of the first and foremost step in Designer is to create solution. The solution serves as a workspace for constructing and automating bots efficiently. It aids in developing automation solutions for repetitive tasks and furnishes an intuitive interface enabling users to swiftly configure and oversee their automation solutions.

Templates: Templates act as reusable workflows that can be customized and deployed across your automation solutions within the tenant. These pre-built templates offer detailed outlines or processes of automation workflows, providing a structured framework for building specific automation solutions.

Marketplace: MarketPlace is designed to be the go-to centralized hub for a curated collection of automation scripts and connectors, meticulously crafted to elevate and expedite your automation projects. 

Reusable Objects:  This feature allows the user to re-use the elements multiple times which have been detected already in the workflow. This reduces the need to create the same element again and again when it is used in different places. The re-usable objects feature also makes it simpler to maintain the automation scripts, making the entire process more efficient and cost-effective.

Dynamic Resilience: Enabling this option assists robots in adapting to dynamically changing UI elements during the element search. To ensure successful execution, this option allows robots to capture surrounding elements, enabling them to precisely select the native element. This feature is accessible for both WebAutomation and ImageAutomation.

Visual Debugging: This feature proves especially useful in the development and troubleshooting phases, as it provides visual cues to identify the specific UI element being interacted with during the debugging process. The visual highlighting helps ensure the accuracy of the automation by confirming that the intended UI elements are correctly identified and interacted with as the robot executes the workflow. 

Workflow Analyzer: The Workflow Analyzer is a static analysis tool designed to assist developers in adhering to best practices, such as consistent naming conventions, proper error handling, and efficient variable usage. By automating the detection of these areas, it helps ensure workflows maintain high-quality standards and best practices.

Security Scan: The Security Scan is a protective feature within Robility Designer that helps safeguard automation workflows before deployment. It analyzes the execution log files generated during workflow runs and provides real-time alerts if it detects any security risks, such as hardcoded credentials, embedded secrets, or personally identifiable information (PII), that might be overlooked during development.

Activation

Once Designer is installed, activate your license to begin automating. Make sure the appropriate license and user role are assigned for activation. Click here to learn more about license procurement. Follow the steps below to complete the activation process.

Prerequisites:

1. The activation button in RobilityManager will be available only for users with the “RPA Developer” role. It is important to note that only they can activate and utilize the designer. For more information, click here.
2. If you have not been invited as an “RPA Developer,” please contact your tenant admin and request a role change.

Key Points

1. Activation unlocks all features and functionalities of Designer, allowing users to leverage its complete capabilities for automation.
2. Activating Designer ensures compliance with licensing agreements, avoiding potential legal issues or disruptions in usage.
3. Activated licenses are often linked to security measures, such as user authentication and access controls, enhancing overall system security.
4. Activated licenses typically come with access to support services and regular updates, ensuring users have the latest features and bug fixes.

Steps to activate 

There are two ways to activate Designer, both of which require user authentication. Follow the steps below for each activation method.

From Robility Manager:

1. Once the Designer has been installed in your system, sign in to “RobilityManager” to access activation.
2. After signing in, you’ll land on the Home page.
3. Navigate to the “Designer” section, where you’ll find an “Activation” button.
4. Click on the “Activation” button, and a prompt for authentication will appear.
5. Click “Open” to proceed.
6. Designer will be launched for use.

From Designer Application:

1. Launch Designer application.
2. Upon launching, you will be prompted to sign in using the provided URL on the display screen.
3. Click on the “Sign in” button, which will direct you to the “RobilityManager” page.
4. Sign in to “RobilityManager” on this page.
5. An authentication prompt will appear on the screen.
6. Click “Open” to complete the authentication process.
7. Designer will then be launched for use.

What happens when the designer is logged out?

The designer will log out every 48 hours, even if the user is actively using it. Upon launching the designer, it will prompt the user to re-activate from “RobilityManager.” Follow these steps:

1. When the reactivation prompt appears, sign in to “RobilityManager” to access the activation button.
2.
After signing in, you’ll land on the Home page.
3. Navigate to the “Designer” section, where you’ll find the “Activation” button.
4. Click on the “Activation” button, and an authentication prompt will appear.
5. Click “Open” to proceed.
6. The Designer will launch successfully.
7. Note that this process will not remove or erase any workflow details from the system.

Extensions

Robility Extensions are mandatory for utilization of Web Automation feature, allowing bots to interact seamlessly with web applications. These extensions are designed to:

1. Detect and locate all editable UI elements in browsers.
2. Facilitate communication between the Robility application (Designer and Runner) and supported browsers (Google Chrome and Microsoft Edge).
3. Enable bots to perform automation tasks efficiently on web-based applications.

To ensure proper automation, the Robility Extension must be installed and activated in the browser.

How to install the extensions from Robility Designer?

There are two methods to install the extensions from Robility Designer to automate with Web Automation:

During Designer Launch:

When launching Robility Designer, the application automatically checks for the required browser extensions:

1. If the extensions are not detected, a prompt appears requesting installation.
2. Once installed, users must manually enable the extension in their browser settings.
3. Launch Google Chrome or Microsoft Edge after installation, a prompt appears asking for permission to enable the extension.
4. Click “Enable” to activate the extension and allow the automation to function properly.
5. If the prompt does not appear, go to “Extensions” on the browser and enable them manually.

From the Configuration Menu:

If the extensions were not installed during the initial launch, users can manually install them later via Robility Designer:

1. Open Robility Designer.
2. Navigate to the “Configuration” menu on the home screen.
3. Under “Robility Extensions” (on the right-hand side), install the required extensions for your preferred browser.

How to install extensions from Robility Runner?

1. During the installation of Robility Runner, the application validates whether the Robility Automation Extension is available.
2. If the extension is missing, it will be installed automatically without requiring user intervention.
3. However, when launching the browser for the first time, users will see a message prompting them to enable the extension.
4. Click “Enable” to activate it and start using automation on Chrome or Edge.

For troubleshooting steps related to extension installation and automation, click here to view the detailed guide.

Release Notes

v.3.4

Issue

The user was unable to automate actions on a specific website using WebAutomation activities.

Root Cause

Although the feature successfully identified the element, the browser blocked the programmatic action due to a Content Security Policy (CSP) error.

Fix Details

We have resolved the issue by updating the runtime script to handle the JavaScript execution in compliance with CSP restrictions.

v.3.2

Issue

The user is unable to click on a specific element on the webpage.

Root cause

We found that the issue was with the general.css file, which was used to highlight elements. After adding the CSS file, it attempts to search for headers on the web page. Since there are no headers on the current web page, it was throwing a null error.

Fix details

We added the general.css file for overall styling, but the exact name of the CSS file could vary (e.g., main.css, style.css, or base.css). Therefore, we added validations to the style.css file for those extensions and released revised version.

Expected behavior

Since we added the validations to the style.css file, even though the headers are not present on the webpage, the web automation (clicking on a specific element) will work.

Group Policies

There are few group policies that can affect the installation of the Robility extension or even stop the bots to automate the tasks on websites after installation. These policies are often configured by organizations to manage and control which extensions can be installed on their users’ browsers. Below are the specific scenarios where the installation of the Robility extension may be blocked or restricted:

1. ExtensionBlockInstallList Policy: Organizations can configure this policy to block the installation of any extensions on Chrome browsers. When set to True, users cannot install extensions. You can check whether this policy is enabled at “chrome://policy”.  

2. ExtensionForceInstallList: Administrators can configure a list of force-installed extensions using group policy, which overrides user control. If Robility Automation extensions are not included in this list, they will be blocked from being installed. You can check whether this policy at “chrome://policy”.  

3. Extensions Blocked via Device Management: In a managed environment, an administrator may use device management settings to prevent users from adding any extensions or limit them to a pre-approved set of extensions. Follow the below steps to check, 

a. Click on the three-dot menu () in the top-right corner.
b. Scroll down and check if there is a message “Managed by your organization” at the bottom of the menu.

4. User Permissions and Privileges: Restrictions on user might prevent users from installing extensions. Users without admin rights may be blocked from installing any extensions.

a. On Windows, if a user does not have admin rights, they may be unable to install extensions or make system changes.
b. Organizations may configure Group Policy on Windows to prevent certain users from installing extensions.

5. NativeMessagingBlockList: This policy controls which browser extensions can communicate with external applications on a user’s computer. If set to “*”, it blocks all such connections, preventing Robility WebAutomation from working.

To enable automation, IT administrators must allow:

a. Robility Chrome Native App (for Chrome)
b. Robility Edge Native App (for Edge)

6. Chrome Web Store Blocking: If an organization blocks access to the Chrome Web Store or restricts the use of certain URLs or domains, users won’t be able to download and install the Robility extension directly from the store.

7. Security Software or Firewall Settings: Some security software or network firewalls may block installation of extensions from certain sources, including the Chrome Web Store, which could prevent the installation of Robility’s browser extension.

Manual Installation of Extension

To resolve the above-mentioned scenarios, contact your organization’s IT administrator to request access. Until then, administrators can manually install the extension using the browser’s “Load Unpacked” option, allowing temporary installation from a local folder. However, this does not apply to NativeMessaging Host issues. Click here to learn more.

This method is not recommended for long-term solution. Follow the below steps to install an unpacked extension:

Steps to Load Unpacked Extensions in Chrome:

1. Open your Chrome browser and type chrome://extensions/ into the address bar, then press Enter.
2. This will take you to the Extensions management page where you can see all the installed extensions.
3. In the Extensions page, look to the top-right corner, where you’ll see a toggle for Developer mode.
4. Switch this toggle to the “On” position. 
5. Once Developer mode is enabled, you’ll see new buttons appear on the page: Load unpacked, Pack extension and Update.
6. Click on the Load unpacked button, which will open a file picker window to select the folder containing the extension files that you want to install.
7. In the file picker window, navigate to the folder where the unpacked extension is located. The folder should contain the manifest.json file, which is the core file of the extension, along with any other necessary files (such as HTML, CSS, JavaScript, images, etc.).
8. Once the folder is selected, the extension will be installed and immediately visible on the Extensions page (chrome://extensions/).

Important Considerations

1. Manual installation via the “Load Unpacked” option should only be used when explicitly allowed by your organization. If you are unsure about your organization’s policies, it’s always best to check with the IT department or the team responsible for managing browser configurations.

2. No Automatic Updates: Unlike extensions installed from the Chrome Web Store, unpacked extensions will not automatically update. You will need to manually update the files in the folder and reload the extension each time an update is made.

Troubleshooting Steps

This page highlights the most common issues that may affect the functionality of the Robility Automation extension installed on Chrome and Edge browser and provides step-by-step solutions to help users diagnose and resolve them efficiently.

Exception with Open Web Browser Activity: Browser Not Responding

The “Open Web Browser” activity may throw an exception “Browser Not Responding. Close and reopen the browser” if the CPU utilization is high. In some cases, the activity may fail, but the browser might still launch. When CPU usage is high, system resources are heavily utilized, causing the browser take longer to launch, leading to a timeout or failure in the activity. Click here to know about the minimum system requirements for Robility. 

How to resolve this?

1. Optimize CPU Utilization: Ensure that CPU usage is stable. If necessary, verify that the system meets the hardware requirements for running Robility Designer and Runner.
2. Modify Activity Properties: In the “Open Web Browser” activity, set the “WaitForReady” property to “Complete” and increase the wait time to allow the browser to launch properly. 

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions are removed automatically 

If the Robility Automation extension is removed automatically after installation, it may need to be reinstalled manually. This issue can occur due to various factors as below, 

1. User Profile Reset: If your browser profile is reset or corrupted, it may result in the removal of installed extensions.
2. IT Security Policies: Many organizations enforce group policies that restrict or remove extensions.

Click here to know how to install the extension. 

How to Resolve This Issue?

1. Manually reinstall the extension if it has been removed.
2. Verify browser settings to ensure extensions are allowed.
3. Whitelist Robility Automation in security software or IT policies.
4. Check with your IT administrator if the extension is being removed due to organizational policies.

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions May Be Corrupted

If the Robility Automation extension displays the message “Extension may be corrupted,” it means the browser has detected potential issues that may affect its functionality. This could be due to security risks, firewall restrictions, or a corrupted installation.

Possible Causes:

1. Browser Security Alerts: Chrome and other browsers automatically check for extension integrity. If they detect unusual behavior or incomplete files, they may flag the extension as corrupted.
2. Firewall or Antivirus Interference: Certain security policies or firewall settings may block extensions, causing them to malfunction.
3. Incomplete Installation or Browser Updates: A failed installation or an interrupted browser update can corrupt the extension files.
4. Third-Party Software Conflicts: Some browser extensions or installed applications may interfere with Robility Automation, leading to corruption warnings.

How to Check and Fix the Issue?

1. Open Chrome Extensions by navigating to “Chrome:extensions”
2. Locate the Robility Automation extension and if marked as corrupted, you will see an option to “Repair” the extension.
3. Click the “Repair” button to allow Chrome to reinstall and fix the extension automatically.
4. Restart the browser and check if the issue is resolved.
5. Ensure your firewall, antivirus, or endpoint security is not blocking or restricting the extension.
6. If repairing does not resolve the issue, try removing and reinstalling the Robility Automation extension.

If the issue continues, contact your IT administrator for further troubleshooting.

Activity is not working properly, please close and re-open the browser and try again

If you encounter the message “Activity is not working properly, please close and re-open the browser and try again” while executing the robot, follow these steps to resolve the issue.

Step 1: Check If Extensions Are Installed and Enabled

The first step is to ensure that the Robility Automation extension is installed and enabled in your browser. If the extensions are not enabled, follow the instructions here to learn how to install them.

Step 2: Verify Native Messaging Host Functionality

If the extensions are installed and enabled but the issue persists, we need to check whether the Native Messaging Hosts are running. 

What is Native Messaging Host?

The Native Messaging Host is a communication port that enables interaction between the browser extension and the Robility activities. In Robility, the Native Messaging Hosts are:

a. RobilityChromeNativeApp (for Chrome)
b. RobilityEdgeNativeApp (for Edge)

Step 3: How to Check If the Robility NativeApp is Running

To verify that the Native Messaging Host is functioning properly, follow these steps:

1. Open Task Manager and navigate to the “Details” tab.
2. Check if RobilityChromeNativeApp.exe (for Chrome) or RobilityEdgeNativeApp.exe (for Edge) is running.
3. If the Native App is running or unavailable, move to the “Extensions” tab in your browser.
4. Enable “Developer Mode” at the top of the page.
5. Find the “RobilityAutomation” extension and click on the “Service Worker” link.
6. A new DevTools window will open, displaying the Native Messaging app logs.
7. If the log shows “Failed to connect”, it means the communication port is disabled, preventing the activities from working.

Note: The Native Messaging Host may be blocked by group policies in your organization. Click here to learn more about group policies.

Step 4: Checking the Native Messaging Host in the Registry Editor

We also need to check the Registry Editor because it contains essential configuration data for both the extension and its communication with Robility activities. If the registry entries are missing or misconfigured, it could prevent the extension from properly connecting with Robility activities.

Here are the two key registry entries you need to locate:

1. Extension ID – lgnoojafhdgcpllpgolgpmjjdejnneom (Robility Automation). This entry ensures that the extension is correctly installed in the browser.
2. Robility.Runtime.Automation – Facilitates communication between the extension and Robility activities.

Where to Find These Entries:

1. Verify Extension Installation: Navigate to: HKEY_USERS → Unique SID (e.g., S-1-5-21-2144601217-6038991-817656539) → SOFTWARE → Google → Browser → Extensions → lgnoojafhdgcpllpgolgpmjjdejnneom. This confirms that the extension is installed correctly in the browser.
2. Verify Extension-Activity Communication: Navigate to: HKEY_CURRENT_USER → SOFTWARE → Browser → Chrome → NativeMessagingHosts → Robility.Runtime.Automation.This ensures proper communication between the extension and Robility activities

Step 5: What to Do If Registry Entries Are Missing?

If the registry entries for RobilityAutomation or Robility.Runtime.Automation are missing:

1. Reinstall the Robility Extension: Reinstalling the extension ensures that these registry entries are created automatically. If the entries are not present after reinstalling, it indicates an issue with the installation process, and you may need to troubleshoot further with Robility Support team.

2. Check Group Policies: In some cases, group policies in your organization may prevent the registry entries from being created. Contact your IT administrator to ensure that these policies allow the installation and configuration of the required registry keys.

Build Your Automation

Now, the designer is launched and ready to build in your automation solutions. To create your workflow, first let’s create a new solution. Follow the below steps to create a new solution:

1. To get started using the Designer, the user needs to create a new solution by selecting “CTRL +N” or by clicking on “Create New Solution” button.
2. A Pop- up window labelled as “New solution”, appears to fill out the details of the Solution Name, Solution Description, Workflow Name, Workflow Description, and location path to be saved.
3. After filling out the details, the user needs to click on the “Create” button to create the new solution.
4. The solution will be created and saved in the specified location.

And then you are all set to build the automation solution. As you can see on the left-hand side of the designer interface, there will be “Toolbox” panel. Here you can view the list of features are installed on the system. There will be a set of features that are installed by default. But wait there are a lot of features that awaiting to be explored.

Installing the features

On the top of the designer, you can see “Manage Features” option. The Manage Features option enumerates the list of all features that are available for the Designer. It also displays the features which has been installed, features which have updates, any new features available currently for the designer and a browse option to browse and use any feature located in our system.

To get more detailed information, click here.

Now, let’s install the features using this option.

1. Click on the “Manage Features” option.
2. Navigate to the “New features” option to discover and download the latest features.
3. Now, you can click on “Select All” option on the top of the window and select “Install” option.
    a. It will install all the features available in the designer.
    b. This process might take a time since all the features are being installed one by one.
4. The designer will be refreshed, and you can view all the installed features on the “Toolbox” section. 

Now let’s start building our automation solution. In the interface you can now drag and drop any activities into the flowchart and start creating the solution.

Steps to build the bot

Here I am going to showcase a demonstration of how to prompt a notification to the user.

1. Navigate to the “Toolbox” section and search for the activity as “MessageBox”.
2. Drag and drop the “MessageBox” activity from the “Notification” feature and set it as start node.
    a. Setting the activity as the start node helps to initiate the execution process from that activity.
    b. It helps the user to showcase any input either by hardcoding the values or by providing the input variable. Click here to get more information.
3. Double click on the activity.
4. Here, provide the input value as “Hello, Welcome to Automation”.
    a. This field accepts only “String” datatype; hence we are providing the value within the double quotes.

Save

Saving the workflows

There are always multiple ways to simplify the automation process, so we offer three options to save the workflow. Saving the workflow helps users avoid losing their automation progress.

1. Saving the workflow via the “Save” button: In the Designer’s “Home Menu” under the solution section, you will find an option labeled “Save.” Click on it to save the workflow. 
    a. If you have multiple workflows open and have made changes to all of them, the “Save” button also offers an option to save all workflows at once.

2. Saving the workflow using the save icon: At the top of the Designer’s menu bar, the first icon represents the “Save” functionality. Click on this icon to save the workflow.

Execution

The final step is to execute the workflow, which triggers the Designer to run the built activities. The execution process starts only when one of the activities is set as the start node. To get more information about the troubleshooting steps during the execution, click here.

There are three ways to initiate the execution. Let’s explore the steps:

1. Execution using the icon: At the top of the Designer menu, the second icon represents the “Execution” functionality. Click on this icon to execute the workflow. 

2. Execution through the “Run Button” in the Execute Menu: Navigate to the “Execute” menu, where you’ll find the “Run” option. Click on it to execute the workflow. 

3. Execution through the “Run” button in the Home menu: In the Designer’s “Home Menu,” under the “Execution” section, you can find the “Run” option. Click on it to execute the workflow.
     a. Please note that this option is used when you want to execute only one of the workflows. You can choose the workflow from the drop-down menu. Click here to get detailed information. 

Now, the workflow will be executed, and the input dialog box will appear on the screen prompting the message provided as input.

Publishing the workflows

Publishing the automation bots will help the users to deploy and execute it. The users will be able to publish the automation solutions / templates to Robility Manager or locally. To automate in real time, you must publish workflows to the cloud before deploying your solutions.

To get more detailed information about how the publish works, click here.

Learn here to publish the workflows to the Robility Manager.

Switching between tenants

Creation of Tenant’s Solution Folder

When the user activates the designer for a specific tenant, a new folder will be created in the following path, named with the tenant’s name:

“C:\Users\Username\Documents\Robility”

By default, all users activating the Designer will have a folder named “Robility” created in the above path. This path contains all the solutions and templates created using the Designer. Below is a list of items that will be available:

1. SolutionName.json: This file is automatically generated for each “.xaml” file marked as the “Main” workflow during the solution creation process. It contains metadata about the entire solution, including dependencies, solution settings, and package versions. It helps Robility Designer manage the solution’s configuration and ensure compatibility across different environment.

2. Workflowname.Xaml: This is also an automatically generated file created as the “Main” workflow during the solution creation process. It acts as the starting point for the entire automation solution. When you create a new solution, Robility Designer sets up this file with some basic configurations and structure to help you get started quickly.

Folder Creation Based on the “Tenant” Name

Robility Designer creates a folder in the location path where the solutions are stored. This folder is created based on the “Tenant” name associated with the designer activation. Refer to the image below, where the folder is created based on the tenant’s name within the location path. 

Example Folder Structure

Here’s an example of how the folder structure might look for a tenant:

Tenant Switch

When the user has access to multiple tenants and switches from one tenant’s solution to another, a prompt will appear on the screen. If the user opts to select “Yes”, the solution will be moved from one tenant to another. If there is already another solution with the same name, it will prompt the user to overwrite it.

Note: The solution folder will be completely moved from the previous tenant folder.

Configuration

The Configuration menu in Robility Designer provides a centralized interface for users to customize and manage settings. This feature enables fine-tuning of the Designer to meet specific project requirements, ensuring seamless automation workflows and enhanced operational efficiency. Within the Configuration menu, users can explore options such as Core Configuration, Activity Configuration, Product Configuration, and Robility Extensions, each catering to different aspects of the Designer’s functionality.

Core Configuration

Core Configuration focuses on the fundamental settings that define how the Designer operates at its core. It allows users to customize essential components like logging levels and storage preferences, which play a crucial role in maintaining the efficiency and reliability of the Designer and its associated modules.

Key Elements of Core Configuration:

1. Product Log:

a. This setting enables users to manage the logging framework for tracking the performance and behavior of the core product, individual activities, and all associated modules in Robility Designer.
b. By configuring the log level, users can control the granularity of information captured in logs, making it easier to debug issues, monitor system performance, and ensure accountability.
c. Log levels range from basic details to highly detailed traces, with the default set to “Info”. This level strikes a balance by capturing significant events without overwhelming users with excessive details.
d. Configuring this setting enhances transparency and ensures traceability throughout the automation process, making it easier to monitor and audit workflows. 

2. Save All Files: 

The Save ALL Files option in Core Configuration allows users to customize the storage path for all files and information related to workflows, activities, and the Core product. By specifying a central storage location, users can maintain better control over the management of critical data across projects. This functionality serves as a central repository for saving and organizing user files, ensuring that information is stored consistently across all workflows.

Product Configuration

The Product Configuration menu in Robility Designer is designed to give users complete control over their automation environment, enabling them to fine-tune settings, monitor performance, and seamlessly expand the tool’s functionality. It brings together key features that improve workflow execution, troubleshooting, and product maintenance. Here’s an in-depth look at the three core features under Product Configuration:

Debug Watcher

The Debug Watcher is an essential feature for users who need to monitor, debug, and refine their workflows. It allows for real-time tracking of the workflow’s execution, offering an interactive interface where users can observe how variables are changing during the run. This feature gives users the ability to pause the workflow at any point, inspect its state, and verify that each step is behaving as expected. In case of errors, the Debug Watcher helps pinpoint exactly where issues arise, making it easier to resolve them and improve the overall robustness of the workflows.
This tool is invaluable during the development and testing stages of automation, providing a granular view of the execution process and significantly reducing the time needed to troubleshoot. Whether you are optimizing an existing process or creating a new automation solution, the Debug Watcher ensures a smoother and faster debugging process.

Steps to debug the workflow:

1. Once you have enabled this option, create a workflow. Click here to know how to create a workflow. 
2. Now, navigate to the “Execute Menu” on the top of Designer.
3. Choose the option as “Debug”. 
     a. By default, the debug timer will be set to “2 secs”, you can also change the debugging timer. 
4. Now, you can watch lively how the bot execution happens, and the values are being passed to the variables and properties. 

Marketplace

The Marketplace is a comprehensive platform within the product that provides access to a wide range of pre-built workflows, modules, extensions, and third-party solutions that can be integrated directly into Robility Designer. By tapping into the Marketplace, users can quickly find ready-made automation components that can be customized and deployed within their workflows, significantly expanding the product’s capabilities.
This feature supports the integration of advanced tools, connectors, and services, allowing for enhanced automation processes. Users can also access various updates, templates, and custom solutions that address specific business needs. By providing a centralized location for new modules and resources, the Marketplace encourages greater flexibility and accelerates the creation of complex automation workflows. It is a valuable resource for users looking to extend Robility Designer’s functionality without having to build everything from scratch. 

Click here to learn about MarketPlace. 

Auto-Update

The Auto-Update option ensures that Robility Designer remains current with the latest versions and improvements by automatically updating the software. This feature eliminates the need for manual updates and patches, reducing downtime and ensuring users always have access to the newest features and bug fixes.
Auto-Update provides the advantage of continuous product improvement, with new features, enhancements, and security patches being applied automatically. This means that users can focus on their automation tasks without worrying about missing out on the latest functionalities or the risk of running outdated software. By maintaining up-to-date systems, Robility Designer remains reliable, secure, and efficient, providing a seamless user experience.

Click here to learn about Auto update. 

Activity Configuration

The Activity Configuration section plays a pivotal role in optimizing and personalizing workflows within Robility Designer. It provides users with several powerful tools designed to enhance workflow performance, improve adaptability, and ensure smoother collaboration. Let’s take a deeper dive into the key features that drive the efficiency of this section:

Dynamic Resilience   

Enabling this feature empowers robots to adapt to changing UI elements dynamically, ensuring that the automation process remains resilient even in environments with fluctuating or unpredictable elements. When robots are tasked with locating specific UI components, this feature enables them to capture and account for surrounding elements, improving their ability to identify and select the correct native element. This intelligent functionality helps overcome challenges related to varying UI layouts, element visibility, or screen resolution changes. By automatically adjusting to these conditions, Dynamic Resilience ensures consistent performance and smooth execution of automation tasks.

This feature significantly enhances the robustness of automation workflows, particularly in scenarios where UI elements change frequently, such as in applications with complex or dynamic interfaces. It reduces the likelihood of errors or failures during execution, improving the overall reliability of the automation process.

Supported Platforms: Dynamic Resilience is available for both WebAutomation and ImageAutomation. In WebAutomation, it aids in adapting to changes in web page elements and layouts, while in ImageAutomation, it helps to adjust the capture of screen elements, ensuring accuracy even if visual conditions change. This flexibility makes it an essential tool for ensuring that automation tasks are successful across diverse platforms and use cases. 

Visual Debugging

Visual Debugging is an essential feature for developers and troubleshooting teams, especially during the automation design and testing phases. This functionality provides real-time visual cues, highlighting the specific UI element being interacted with during the debugging process. These visual indicators help confirm the accuracy of the automation, ensuring that the correct UI elements are properly identified and interacted with as the robot progresses through the workflow. By visually tracking these interactions, users can easily detect any issues, misidentifications, or mismatches, facilitating quicker resolution and optimization of the automation process.

This feature significantly improves the debugging efficiency, reducing the time spent reviewing logs or errors. Visual Debugging gives developers a clear and immediate understanding of what the automation is doing, ensuring smooth and reliable execution.

Assisted Virtual Session 

The Assisted Virtual Session (AVS) BETA feature enables seamless collaboration between users and robots on the same machine without interruptions. This functionality allows both the user and the robot to work simultaneously, each within their own session. By leveraging Assisted Robots and AVS, users can create separate, isolated sessions for both the robot and themselves, ensuring that the robot can execute tasks autonomously while the user continues to perform manual activities without interference. This feature enhances the flexibility and efficiency of automation, making it possible to handle tasks that require human intervention while still maintaining automated processes in parallel.

Note: AVS is currently in Beta and will be fully available soon, bringing more robust capabilities for improved user-robot collaboration.

Runtime Configuration

The Runtime Configuration settings allow users to control workflow execution, monitor performance, and manage execution behavior across development, testing, troubleshooting, and production environments.

By fine-tuning these settings, users gain better visibility into workflow execution, enable targeted monitoring, and improve system reliability and fault tolerance.

Runtime Configuration helps balance:
 a. Real-time visibility into workflow execution
 b. Post execution analysis for debugging and auditing
 c. Execution reliability through intelligent failure handling

Key Benefits

Runtime Configuration enables users to:
1.Improve debugging with better visibility into workflow behavior
2.Enhance reliability through effective failure handling mechanisms
3.Support auditing and compliance with execution tracking
4.Adapt monitoring based on development, testing, or production needs

The Runtime Configuration section contains the following options:

1. Activity Tray 
2. Surround With AI (Upcoming)
3. Execution Trail

1. Activity Tray

The Activity Tray provides real-time visibility into workflow execution. As a workflow runs, users can observe each step as it executes without waiting for logs or final outputs. This makes it easier to identify delays, detect unexpected behavior, and diagnose performance bottlenecks during both development and troubleshooting.

When Activity Tray is enabled and a workflow starts executing, the Runtime Monitor dialog is automatically displayed, providing detailed visibility into workflow execution and runtime behavior.

Core Features

1. Displays currently executing activities in real time.
2. Tracks workflow progress step by step.
3. Simplifies debugging during development.
4. Improves visibility into long-running workflow executions.

Runtime Monitor

The Runtime Monitor, accessible from the Activity Tray, provides real-time visibility and control over workflow execution. It enables users to monitor, analyze, and manage bot activity as it runs, eliminating the need to wait for execution to complete before reviewing logs.

This capability allows issues to be identified and addressed immediately, improving both development efficiency and production reliability. It is particularly useful for debugging, monitoring live workflows, and optimizing performance.

How It Helps

a. Detect issues early by identifying failures, warnings, or unexpected behavior during execution.
b. Understand workflow behavior through live activity progression.
c. Identify performance bottlenecks, retries, or inefficient workflow steps.
d. Take immediate action by stopping workflow execution when necessary

Execution Details

The Execution Details section provides multiple views of a running workflow, enabling users to analyze execution from different perspectives.

1. Execution Order

Displays the sequence in which activities are executed within the workflow, helping users understand workflow progression, execution flow, and dependencies in real time.

2. Logs / Output

Provides detailed runtime logs, including messages, warnings, errors, and outputs generated during execution. This information helps users identify and troubleshoot issues effectively.

3. Stats

Displays performance-related metrics, such as execution duration, delays, retry counts, and failures, allowing users to evaluate overall workflow performance.

4. Health

Shows the operational status of the workflow through health indicators and activity-level insights, helping users quickly identify irregularities or performance issues.

Stop Control

The Stop action allows users to immediately terminate a running workflow. This is useful when:

   a. The workflow is stuck in a loop or an unexpected state.
   b. An error may impact downstream systems.
   c. Immediate intervention is required to prevent incorrect execution.

Stopping the workflow from the Runtime Monitor also stops it in the Designer, ensuring consistency across the platform.

Minimize vs. Close

Understanding the difference between minimizing and closing the Runtime Monitor helps preserve active monitoring sessions:

a. Minimize: Hides the Runtime Monitor without interrupting workflow execution. Users can reopen it from the system tray (Hidden Icons panel) and continue monitoring the same session.

b. Close: Ends the current monitoring session. To resume monitoring, the workflow must be restarted, which creates a new session.

2. Surround With AI (Upcoming)

Surround With AI is an upcoming feature designed to simplify exception handling and retry management during workflow design. It automatically generates AI-assisted retry and recovery patterns, reducing the need for manual error-handling configurations and helping users build more resilient workflows.

By intelligently applying fault-tolerance strategies, Surround with AI enables users to design workflows that can handle failures more effectively while minimizing development effort.

Core Features

1. Automatically generates AI-assisted retry and recovery patterns.
2. Simplifies exception handling during workflow design.
3. Reduces the need for manual error-handling configurations.
4. Enhances workflow resilience through intelligent fault-tolerance strategies

3. Execution Trail

The Execution Trail captures the complete end-to-end execution path of a workflow, including branching decisions and execution insights. It serves as a powerful mechanism for post-execution analysis, enabling effective debugging, auditability, and root-cause investigation.

It records the detailed, step-by-step flow of a workflow after execution and provides a comprehensive view of workflow behavior, helping users validate outcomes and perform in-depth execution analysis.

Visual Indicators

a. Successful activities are highlighted in green.
b. Failed activities are highlighted in red.

Core Features

1. Captures the complete workflow execution path from start to finish.
2. Records branching decisions and activity-level execution details.
3. Provides visual indicators for successful and failed activities.
4. Supports auditing, validation, and root-cause analysis of workflow executions.

Default Behavior

By default, Activity Tray, Execution Trail, and related monitoring features are disabled to minimize performance overhead during workflow execution.

Users can enable these features in either of the following ways:
    a. From the Runtime Configuration page by enabling the required options.
    b. During workflow execution, through a popup that appears when starting a workflow, allowing users to enable the desired monitoring features. Once enabled, these features remain active for subsequent workflow executions until they are manually disabled.
This flexible approach allows users to activate advanced monitoring capabilities only when needed, such as during debugging, troubleshooting, or execution analysis, while keeping routine workflow executions lightweight and efficient.

Auto Update

Auto Update

Auto update refers to the automated process by which the system enables to upgrade to the latest version without requiring manual intervention from the user. Auto updates enhance user experience by ensuring that the latest features, improvements, and security patches are promptly delivered to the end-users, reducing the need for manual interventions, and keeping the Designer up to date.

How to enable?

The Auto-update option can be enabled for all users in the tenant only if the tenant admin activates it in the Robility Manager. Note that the following steps can be performed only by the tenant admin:
1. Log in to the respective tenant in the Robility Manager.
2. Click on the “Features” menu.
    a. Choose the “Settings” option.
    b. A pop-up will be enabled; click on the “Designer” auto-updates option if it is disabled.
    c. By default, the option will be enabled in the tenant.
3. If users have already installed Designer, request them to relaunch the designer to refresh the changes.
4. The update will be scheduled every hour by the system and will notify the user if there are any latest versions available.
5. When the update is notified, users need to click on the “Update” option, and the latest version of Designer will be installed and launched.

Default Option

The default status of the auto-update option will depend on the configuration set by the tenant admin. Upon activation by the tenant admin, users can customize this option through the “Designer” configuration menu.

Auto-update Enabled:
1. Tenant Admin Activation: When the tenant admin activates auto-update, users will benefit from seamless updates upon installation.
2. Best Practices: Following best practices, scheduled routine maintenance windows for auto-updates are implemented to ensure a smooth and controlled update process, minimizing any potential disruptions to users.

Auto-update Disabled:
1. Tenant Admin Configuration: If the tenant admin opts to disable auto-update, users’ machines will have the auto-update option deactivated upon installation.
2. Manual Intervention: Disabling auto-update might lead to the need for manual intervention, requiring users to manually update the product to access the latest features. This approach is not recommended, especially in organizations with a larger user base.
3. Risk of Disruptions: Manually installing each version poses the risk of unwanted disruptions, making it less advisable, particularly when dealing with a substantial number of users.

Designer Taskbar

On the Top

Save – This shortcut is used to save the current workflow.
Run– This shortcut is used to execute the current workflow.
Abort– This short icon is used to abort/ stop the current workflow while execution.
Search – This shortcut enables the quick search pop-up to access the features / activities / variables in the workflow.
Customize Ribbon – This enables to customize the shortcut toolbar.
Help – This icon navigates the user to provide the help documentation page and a feedback link to provide the overall experience with the Robility Designer.
Profile – This icon displays the user details along with their mail ID, license expiry date and log out option. 

On the Bottom

Active workflows: The workflow that is active on the interface will be displayed along with the path. 
Connected: It indicates the tenant’s name in which you have been activated the Designer along with the “Project” name. This tenant shall be used to connect to the cloud. It also used to deploy the designed workflow to the cloud and execute it. Clicking on this hyperlink will lead you to the “Robility Manager”.
Publish: This option enables the user to choose the location of the project/ tenant to publish the solutions and templates accordingly. Click here to know more.  

Activation

Once Designer is installed, activate your license to begin automating. Make sure the appropriate license and user role are assigned for activation. Click here to learn more about license procurement. Follow the steps below to complete the activation process.

Prerequisites:

1. The activation button in RobilityManager will be available only for users with the “RPA Developer” role. It is important to note that only they can activate and utilize the designer. For more information, click here.
2. If you have not been invited as an “RPA Developer,” please contact your tenant admin and request a role change.

Key Points

1. Activation unlocks all features and functionalities of Designer, allowing users to leverage its complete capabilities for automation.
2. Activating Designer ensures compliance with licensing agreements, avoiding potential legal issues or disruptions in usage.
3. Activated licenses are often linked to security measures, such as user authentication and access controls, enhancing overall system security.
4. Activated licenses typically come with access to support services and regular updates, ensuring users have the latest features and bug fixes.

Steps to activate 

There are two ways to activate Designer, both of which require user authentication. Follow the steps below for each activation method.

From Robility Manager:

1. Once the Designer has been installed in your system, sign in to “RobilityManager” to access activation.
2. After signing in, you’ll land on the Home page.
3. Navigate to the “Designer” section, where you’ll find an “Activation” button.
4. Click on the “Activation” button, and a prompt for authentication will appear.
5. Click “Open” to proceed.
6. Designer will be launched for use.

From Designer Application:

1. Launch Designer application.
2. Upon launching, you will be prompted to sign in using the provided URL on the display screen.
3. Click on the “Sign in” button, which will direct you to the “RobilityManager” page.
4. Sign in to “RobilityManager” on this page.
5. An authentication prompt will appear on the screen.
6. Click “Open” to complete the authentication process.
7. Designer will then be launched for use.

What happens when the designer is logged out?

The designer will log out every 48 hours, even if the user is actively using it. Upon launching the designer, it will prompt the user to re-activate from “RobilityManager.” Follow these steps:

1. When the reactivation prompt appears, sign in to “RobilityManager” to access the activation button.
2.
After signing in, you’ll land on the Home page.
3. Navigate to the “Designer” section, where you’ll find the “Activation” button.
4. Click on the “Activation” button, and an authentication prompt will appear.
5. Click “Open” to proceed.
6. The Designer will launch successfully.
7. Note that this process will not remove or erase any workflow details from the system.

Overview

Introduction

The UI Automation package in Robility provides a comprehensive set of activities designed to automate graphical user interface interactions within a variety of software applications. These activities include tasks such as selecting elements, entering data into text fields, clicking buttons, navigating between web pages, and verifying information, among others.

By replicating human interactions with the application interface, UI Automation enables tasks to be executed with efficiency, accuracy, and consistency. It plays a crucial role in automation strategies, driving productivity, reducing errors, cutting costs, ensuring compliance, and enhancing customer experiences across diverse industries.

About the UI Automation package

Web Automation: These activities are tailored for automating web-based applications and processes. Users can interact with web elements, extract data, fill out forms, click buttons, and navigate between pages.

Desktop Automation: Desktop Automation activities automate tasks related to desktop applications. These include interacting with desktop UI elements, extracting data, simulating keyboard and mouse actions, and performing various operations within desktop-based applications.

Image Automation: Image Automation activities use image recognition to automate tasks based on screen elements. This includes actions like identifying and clicking on specific screen areas, verifying visual elements, and triggering automation actions based on images.

Form Builder: These activities streamline form-filling processes within applications. Users can automate the input of data into forms, validate form fields, submit forms, and handle related actions.

Screen Recording: Screen recording activities capture, and document actions performed on the screen. This feature is useful for creating automated workflows by recording user interactions, generating automation scripts, and replaying recorded steps.

Terminal: Terminal in Robility is designed to interact with and automate legacy mainframe systems accessed through terminal emulators. These activities allow users to seamlessly automate data entry, retrieval, and system navigation within terminal applications, improving efficiency and reducing the need for manual intervention.

UI involved Activities

The following are the list of activities that involves UI:

  • Web Automation
  • Desktop Automation
  • Image Automation
  • Terminal

These activities are segregated based on their interaction with different aspects of the user interface for several reasons:

Target Platform: Activities like Web Automation are specifically designed to interact with elements within web browsers, such as HTML elements, buttons, and forms. These activities are optimized for web-based applications and workflows.

User Interface Elements: Desktop Automation activities focus on interacting with UI elements within desktop applications, such as windows, buttons, input fields, and menus. These activities are tailored for desktop-based tasks and workflows.

Interaction Methods: Image Automation activities use image recognition and processing techniques to interact with elements represented as images on the screen. They are used when direct access to UI elements or conventional interaction methods is not feasible or available.

Certain applications have dynamic or constantly changing UI elements, making it challenging to target them accurately, in that we do recommend to use “Dynamic” accuracy option in “Image Automation”.

Unsupported Applications

Project Compatibility

Release Notes

v.2.3.5

This release includes enhancements that improve interaction flexibility and control.

Enhancements

1. Offset X and Y Support
The Click and Set Text activities now support Offset X and Offset Y properties, allowing you to specify the click position relative to the target UI element.

Note: Downgrading the latest Desktop Automation package may result in missing activities.
 
Released Date: 08/07/2026

v.2.3.2

In this release, the following bug has been fixed:

Bug Fix

Addressed an issue where the BringToFront activity did not bring the expected Chrome browser session to the foreground when multiple sessions (Chrome 1, 2, and 3) were selected.

Limitation

1. Multiple windows required. To use this activity, use separate Chrome windows or separate desktop instances (e.g. Chrome 1, Chrome 2, Chrome 3), not multiple tabs within the same window.
2. Tabs are not supported. BringToFront works only in separate Windows and desktop sessions. It is not supported within tabs of a single window or desktop session.

Released Date: 16/04/2026

v.2.3.1

In this release, the following bug has been fixed:

Bug Fix

Fixed an issue where the LaunchApplication activity under Desktop Automation was not displaying logs when SkipOnError was set to True.

Released Date: 28/03/2026

v.2.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.2.8

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.2.2.1

This release includes a bug fix to improve functionality and user experience.

Bug Fix

The resize option in the ApplicationActions activity was not functioning properly. This issue has now been resolved.

Overview

Introduction

Integration activities in Robility are designed to connect your automation workflows with a wide range of external systems, services, and APIs. These activities play a critical role in enabling seamless data exchange, service orchestration, and intelligent interaction across cloud platforms, enterprise tools, custom scripts, and AI services. Whether it’s accessing cloud storage, sending API calls, triggering AI models, or working with customer platforms like Salesforce and Zendesk, Robility’s integration capabilities are built to ensure flexibility, scalability, and secure automation.

List of Integrations

Cloud Platform Integration:

Enables automation with cloud services like Azure, Google Cloud, and AWS for managing resources, executing functions, and accessing cloud-based data.

App Integration Activities

Supports integration with third-party platforms such as Salesforce, Zendesk, and others to automate tasks like record updates, ticket management, and data retrieval.

WebClient Activities

Facilitates communication with web APIs by sending requests, handling responses, and automating web-based data operations.

Scripting Activities

Allows execution of Python or PowerShell scripts within workflows to handle custom logic, data transformation, or system-level tasks.

Invoke Activities

Enables calling of external code, reusable components, or workflows, making it easy to modularize and extend automation functionality.

Credential Manager

Secures sensitive information by storing and retrieving credentials safely within workflows, ensuring data protection during execution.

Interact Activities

Connects automation workflows with Robility Manager to add, retrieve, or update transactions via secure API calls.

AI Integration

Integrates AI services like Harmony AI to bring intelligence into automation through analysis, classification, and recognition.

Project Compatibility

AzureAIFormRecogniser

Introduction

Azure Form Recognizer, a cloud-based Azure Applied AI Service looks at your forms and documents, extracts text and data from them, maps field relationships as key-value pairs, and gives you a structured output. This structured output can be used to create data pipelines and automate processes. It can also be used to quickly access data and create reports, which can be used to make better decisions.

Benefits

1. Efficient Data Extraction: Azure Form Recognizer streamlines the extraction of text and data from diverse forms and documents, reducing manual data entry efforts and improving accuracy.

2. Structured Output: The service provides structured outputs in the form of key-value pairs, making it easier to integrate extracted data into existing systems and workflows.

3. Data Pipeline Automation: Azure Form Recognizer facilitates the creation of data pipelines, automating the processing and extraction of information from documents, leading to faster and more efficient workflows.

4. Process Automation: By leveraging the structured output from Azure Form Recognizer, businesses can automate processes such as invoice processing, document categorization, and data validation, enhancing operational efficiency.

5. Data Accessibility: The structured data output enables quick access to relevant information, empowering users to make data-driven decisions and respond promptly to business needs.

Use Cases

1. Invoice Processing: Automate the extraction of invoice details such as vendor information, invoice numbers, and line-item data from scanned invoices, streamlining accounts payable processes.

2. Expense Reporting: Automatically extract expense details from receipts and expense reports, speeding up reimbursement processes and ensuring accurate record-keeping.

3. Document Classification: Classify documents based on their content and extract key information for categorization and routing within document management systems.

3. Survey Analysis: Analyze survey forms to extract responses, sentiment analysis, and trends, facilitating insights for decision-making and improving customer satisfaction.

4. Healthcare Forms Processing: Automate the extraction of patient information, medical records, and insurance details from healthcare forms, improving patient care coordination and administrative efficiency.

Release Notes

v.1.0.5

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AzureAIScope

Microsoft Azure AI-powered document extraction service understands your forms. FormRecognizer applies advanced machine learning to accurately extract text, key/ value pairs and tables from documents. With just a few samples, Form Recognizer tailors its understanding to your documents. Turn forms into usable data at a fraction of the time and cost, so you can focus more time acting on the information rather than compiling it. You need an Azure subscription to use the AzureAIFormRecogniser activities.

Important

To create an Azure account, Click on the following link. Create Your Azure Free Account Today | Microsoft Azure

Create a cognitive services resource using your subscribed azure account.

You will get an end point and two account keys like below,
Sample End point: https://westus2.api.cognitive.microsoft.com Sample Account key- “1b******395******4ae********f7”

Properties

AUTHENTICATION

AccountKey:* Enter the account key received at the time of account creation.

EndPoint:* Specify the Endpoint received at the time of account creation.

MISC

Body: This auto populates once an activity is dropped into the scope

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIForm recognizer feature in use.

* Represents mandatory fields to execute the workflow.

TrainModel

To use the Form Recognizer custom model, you provide your own training data to the Train Custom Model operation, so that the model can train the same to your industry-specific forms. This section demonstrates how to train a model with your own data. A trained model can output structured data that includes the key/value relationships in the original form document.

Properties

INPUT

IncludeSubFolder: * Specify if the input should include the sub folders.

Prefix: * Add the folder name and subfolder name in which the training data is uploaded.

SourceURl:* Specify the SAS URL generated. Refer below on how to generate the same.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use

OUTPUT

ModelLocation: This is not a mandatory field. However, to view the model location we must declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

StatusCode:*  This is not a mandatory field. However, to view the status of the trained model, we must declare a variable here.

* Represents mandatory fields to execute the workflow.

Creating a SAS URL

To create a SAS URL, follow the steps below:

1.Open the Microsoft Azure Storage explorer
2.Click on the connections on the left-hand side and do the following steps.

3. Once you click on get shared access signature, there is an account key that is displayed which is the source URL in the Input segment.

GetModelInfo

This activity is used to get the model info from the train model activity. The Get model info activity gives us the model ID which is used to analyze custom forms.

Properties

INPUT

ModelLocationUrl:* Specify the model location URL which was derived in the output box of the train model activity.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to see the model info declare a variable here to see the output in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeBusinessCards

This activity is used to extract important contact information like the first name, last name, company name, etc., from business cards that are printed in English.

Properties

INPUT

InputImagePath:* Specify the path of the business card image file.

InputReceiptType: Specify the type of the receipt image if it’s a file or URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed business card, a variable must be created here, to view the result in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeReceipts

Receipts are inevitable in any business and is an acknowledgment of a payment received for a product or service provided by the organization. Receipts are valuable, when requested to return or refund a purchase. Moreover, A receipt is used to authenticate the validity of purchase for tax purposes. Therefore, it is very important that such vital data are accessible instantaneously. Now, users need not spend hours obtaining information, such as Line items, merchant name & address, phone number, transaction date, subtotal, etc., from such receipts. The Analyze receipt activity will fetch the required details in a fraction of a second and fraction of the cost when compared to retrieving receipt information manually.

This activity is used to extract details such as purchase data, shipping address and any other details about the purchase or service for a product from the input receipt.

Properties

INPUT

InputImagePath:*Specify the path of the image file which has the receipt in it.

InputReceiptType: Choose if the receipt is an image or a URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed receipt, a variable must be created here, to view the result in an output box.

Result:* Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeLayouts

This activity is used to extract important data that is in the form of tables as well as text from the given input document to accelerate business processes without manual effort and its subsequent human errors.

Properties

INPUT

InputImagePath:* Specify the path of the image file which has to be processed.

InputReceiptType: Choose if the receipt is an image or a URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed layout, a variable must be created here, to view the result in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeCustomForms

This activity is used to analyze custom forms for which we have trained a model and then give the output based on that.

Properties

INPUT

InputFormPath:*Specify the path of the file which has to be analyzed.

ModelID:* Specify the model ID of the trained model derived from the get model info.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed custom form, a variable must be created here, to view the result in an output box.

Result :*Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Overview

Introduction

The IT Automation activities package in Robility includes a range of functionalities designed to automate IT-related tasks efficiently including cloud management, data extraction, and storage operations, leveraging the capabilities of platforms like Microsoft Azure and Amazon Web Services (AWS) within Robility’s automation workflows. These activities streamline IT operations, improve efficiency, and enable seamless integration of cloud services and data processing functionalities.

About the package

Azure Activities: These activities automate tasks related to Microsoft Azure, enabling efficient resource management, deployment automation, service monitoring, and seamless integration of Azure functionalities into your workflows. Key features included are:

1. Azure Blob Storage: Automates the management of unstructured data, including file uploads, downloads, and data manipulation in Azure Blob Storage.

2. Azure Key Vault: Provides secure storage and management of sensitive data such as API keys, passwords, and certificates, ensuring data security within automation processes.

3. Azure Virtual Machines (VM): Enables the automation of VM provisioning, configuration, and management, optimizing cloud computing resources and streamlining virtual machine operations within workflows.

Amazon S3 Activities: Activities related to Amazon S3 (Simple Storage Service) facilitate automation of tasks involving cloud storage on Amazon Web Services (AWS). They enable uploading, downloading, managing, and manipulating files stored in Amazon S3 buckets, integrating cloud storage capabilities into automation processes.

Cognitive Services: These services enable developers to integrate AI functionalities into their applications, facilitating tasks such as text extraction from images, address validation, and image quality enhancement without requiring extensive AI expertise.

Integration of API

In Robility, IT Automation packages are integrated using APIs to interact with specific features and leverage their capabilities.

Azure Blob Storage: To use these activities, you must provide the necessary Azure credentials (such as Azure Storage Account name and key or connection string) and specify the target container and blob details as required by each activity.

Amazon S3 Storage: To use these activities effectively, you must provide your AWS credentials (such as Access Key ID and Secret Access Key), specify the target bucket and object keys, and configure any additional settings required for each activity.

In both cases, the APIs provided by Robility through these activities abstract the underlying communication and authentication mechanisms required to interact with Azure Blob Storage and Amazon S3 storage. Users need to configure the activities with the appropriate API credentials and parameters to perform file operations and data management tasks seamlessly within their automation processes.

It’s important to ensure that the API credentials used in Robility activities for Azure Blob Storage and Amazon S3 storage have the necessary permissions and access rights to perform the desired operations on the respective storage services. This includes permissions for reading, writing, deleting, listing, and managing storage resources based on the requirements of your automation workflows.

Project Compatibility

AzureBlob

Introduction

Azure Blob storage is a cloud-based storage solution optimized for storing massive amounts of unstructured data, such as text and binary data. Within Robility, Azure Blob storage provides activities that work seamlessly under the Azure Scope, allowing bots to interact with Azure Blob containers and manage data efficiently.

Benefits

1. Scalable Storage: Azure Blob storage offers scalable storage solutions, allowing organizations to store and manage large volumes of unstructured data without worrying about storage limitations.

2. Cost-Effective: It provides cost-effective storage options, enabling organizations to pay only for the storage capacity they use, reducing overall storage costs.

3. Secure and Reliable: Azure Blob storage offers built-in security features such as encryption, access controls, and data redundancy, ensuring data security and reliability.

4. Integration with Azure Services: It seamlessly integrates with other Azure services, enabling automated data management workflows and seamless data exchange between systems.

5. Data Management: Azure Blob storage facilitates efficient data management, including storage, retrieval, deletion, and archival of data, enhancing data governance and compliance.

Use Cases

1. Data Archival: Use Azure Blob storage activities in Robility to archive data from automation processes, ensuring data integrity and compliance with data retention policies.

2. Document Storage: Store and manage documents, images, and files generated during automation processes in Azure Blob containers, providing a centralized repository for document management.

3. Data Backup and Recovery: Automate backup and recovery processes using Azure Blob storage, ensuring data resilience and disaster recovery capabilities for automation workflows.

4. Data Transfer: Use Azure Blob storage activities to transfer data between Robility and Azure Blob containers, enabling seamless data exchange and integration between systems.

5. Project-Based Data Management: Create Azure Blob containers for specific automation projects, store project-related data, and delete containers once projects are completed, ensuring efficient data organization and management.

Release Notes

v.1.0.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

Azure Scope

Azure Blob storage is Microsoft’s object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that doesn’t adhere to a particular data model or definition, such as text or binary data.

Important

Create a free account before you login –
https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal

An account name and an account key is generated. This has to be confidential and used only for self-purpose. After signing into the portal, create a storage account. A storage account provides a unique namespace in Azure for our data. Every object that you store in Azure storage has an address that includes your unique account name as in the following example. http://mystorageaccount.blob.core.windows.net

Properties

AUTHENTICATION

AccountKey:Specify the account key for the Azure account.

AccountName:*Specify the Azure account name.

MISC

Body: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

* Mandatory fields to execute the workflow.

Once the AccountKey and AccountName is added, drag, and drop any of the activities from the AzureBlob feature to execute.

Create Container

This activity is used to connect to Microsoft Azure blob storage to create containers that help download and upload files. A container organizes a set of blobs, like the directory in a file path system. A storage blob can include number of containers, and the containers can create “n” number of files.

Properties

INPUT

ContainerName:* Specify a name for the container to be created.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been created, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Example

The following example illustrates on how we can use the create container activity to create a container in the Microsoft azure blob storage. Here we are going to create a container “azuretest1” in the azure blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the create container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be created within double quotes. Here it is“Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it isTesting.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g.,Testing.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and creates a container in the Azure blob storage.

Delete Container

This activity is used to delete an existing container in the Microsoft Azure Blob storage.

Properties

INPUT

ContainerName:* Specify the name of the container to be deleted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been deleted, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Mandatory fields to execute the workflow.

Example

The following activity illustrates on how we can use the delete container activity from a list of containers stored in the Azure blob storage. Here we are going to delete the container “azuretest1” from the blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the delete container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be deleted within double quotes. Here it is “Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it is Deleted.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Deleted.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and deletes the specified container from the azure blob storage.

Get Container Details

This activity is used to get the list of files available in the specific container. The output is taken as a list of string.

Properties

INPUT

ContainerName:* Specify the name of the container for which the details are required.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Filelist: This is not a mandatory field. However, to see the details in a container, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Use Case

The following activity illustrates on how we can use the get container details activity to get the details inside a specific container. Here we are going to get the details from the container “azb”.

Steps to execute the bot

1. Drag and drop an azure scope activity to the workflow.
2. Enter the account name and account key.
3. Drag and drop the get container details activity within the Azure scope.
4. Click on the activity.
5. Enter a name of the container for which the details are required. Here it is azb.
6. Enter the declared variable in the output box of the output segment. Here it is Text
7. Drag and drop a writelog activity below the azure scope.
8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Text(0).ToString (Refer tips)
9. Enter the log level as “Info.”
10. Execute the activity.

The bot executes the workflow and extracts the details from the specified container and displays the output using the write log activity.

Download File

This activity is used to download a specific file from a specific container.

Properties

INPUT

ContainerName:* Specify the name of the container from which the file has to be downloaded.

DownloadFileName:* Specify the name of the file which has to be downloaded from the container.

OutputFilePath:* Specify the path in which the file has to be downloaded.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Output: This is not a mandatory field. However, to view the file name downloaded from the container, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Use Case

The following activity illustrates on how we are going to use the download activity to download the file “APJ.PNG” from the container “azb”.

Steps to execute the bot

1. Drag and drop an azure scope activity to the workflow.
2. Enter the account name and account key.
3. Drag and drop the download activity within the Azure scope.
4. Click on the activity.

5. Enter the name of the container from which the file has to be downloaded within double quotes.Here it is “azb”.
6. Enter the declared variable in the output box of the output segment. Here it is Testing.
7. Drag and drop a writelog activity below the azure scope.
8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Testing.ToString.
9. Enter the log level as “Info”.

10. Execute the activity.

The bot executes the activity and downloads the APJ.PNG file to the path mentioned.

Product Differences

Robility offers you second-to-none flexibility on delivery options, with two ways to get the full, cloud-native platform as well as continued support for installing key individual products yourself.

Robility Cloud is designed and optimized to offer the complete Robility Platform as a service, so you can focus on automation and leave the infrastructure to us.

Robility On – premises is designed and optimized to deliver a similar full-platform experience, but self-hosted in cloud or on-premises. Accordingly, it contains platform, container, and infrastructure configurations and management as part of the single installation.

We also offer support and new functionality for standalone product installations.

This table highlights some of the key feature differences between the options.

available– Available
not available– Not applicable

Capability Hybrid OnPremises Cloud Details

Support for multiple tenants with in an organization

All Robility deployment model support multiple tenants within a single organization.
Note: On-Premises deployment will require a separate license to use this feature.

Tenants within an organization has the highest level of resources isolation

The tenants with in an organization represents the highest level of resource isolation. Resources such as accounts, roles, and packages are exclusively shared within the boundaries of the organization, ensuring secure and controlled access.

Platform license procurement

x

License procurement is unavailable in On-Premises installations.

Tenant level settings available for each client

Each client can manage the following at the tenant level: Storage, Secure Vault, IP Restrictions, Product Auto-Update (On/Off), Marketplace License and License Auto-Renewal (On/Off).

Basic authentication for external users

x

x

Only secure authentication mechanisms, such as AD OAuth, are supported for Cloud and Hybrid deployments. For On-Premises deployments, Basic authentication can be configured, allowing the use of custom usernames and passwords for authentication.

Marketplace listing for public use

Control the publication of marketplace libraries across tenants using the host feed. For restricting access within an organization and tenant, a private feed should be utilized.

Custom credential store plugins

x

Robility supports secure storage options tailored to different deployment models. For Cloud and Hybrid deployments, only Azure Key Vault is supported, ensuring enhanced security. In contrast, On-Premises deployments provide flexibility, allowing the use of either Azure Key Vault or the built-in secure storage options.

File Storage Options

Robility Cloud and Hybrid deployments support storage-as-a-service options exclusively from Azure and AWS. On-Premises deployments support all storage-as-a-service options, including databases and document stores.

Robility Robots - VM

Each robot machine is hosted in a dedicated environment where everything is managed and hosted for you. This is a Cloud-only feature.

Overview

Introduction

In Robility, the other activities packages activities have been built by Windows Workflow Foundation and are installed together with Designer. They provide functionality for control flow, conditions, event handling, state management, and communicating with applications and services.

About the package

This package consists of the following feature,

Control Flow: Provides activities like If Else, Switch, While, For Each, and Flow Decision, enabling developers to create flexible control structures, branching, looping, and decision-making within workflows.

Collections: Includes activities for managing collections of data, such as adding, removing, iterating through items, and performing operations on collections.

Dictionary: Offers functionalities for working with key-value pairs, allowing developers to store, retrieve, and manipulate data using keys and values.

Flowchart: Enables the design and implementation of flowchart-based workflows, defining sequential steps, decision points, and branching logic for process automation.

Primitives: Provides basic building blocks and activities for workflow development, including variables, assignments, calculations, and basic operations.

Error Handling: Includes activities like Try Catch, Throw, and Exception Handling for managing errors, exceptions, and implementing robust error handling strategies within workflows.

Please note that in this guide we have only documented the essential Workflow Foundation activities. For more information, please visit Microsoft’s official documentation.

DoWhile

This activity allows the user to execute a sequence of actions to be repeatedly executed as long as a specified condition meets true. In other words, it creates a loop where the associated activities are executed repeatedly until the condition specified within the activity becomes false.

Properties

MISC

Condition:* This indicates the condition to be met while the sequence of actions is executed. You can either provide the values hardcoded in “Boolean” format or enter the values in “Boolean” datatype. This field accepts the values in “Boolean” datatype.

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Represents mandatory fields to execute the workflow.

Example

Here’s an example of how the activity works –

In the following example, I am about to perform the counter variable condition where the bot meets the value “10”, the execution will be completed. Here I have already created a variable “Counter” in “Integer” datatype and assigned default value as “1”.

Steps to execute the bot

1. Open an existing solution or create a new solution as “ControlFlow”.
2. The ControlFlow feature will be available in the toolbox on the installation of the Designer.
3. Drag and drop the “DoWhile” activity to the workflow and set it as start node.
4. Here I am using this activity to execute the sequence of actions in loop until the specified condition is met.
5. Double click on the activity.
6. Here, I am adding the “Assign” activity into the “Body” of “DoWhile” activity.
a. Providing the “Counter” variable created already in the “TO” field.
b. Now, providing the value as “Counter + 1”.
7. Now, I am adding the “WriteLine” activity inside the body of the “DoWhile” activity.
a. Here I am providing the value as “Counter.ToString” in the “Text” field of the activity to write the number.
b. The “.ToString” is advised to use along with any other data types other than string format. It converts any data type into string.
8. Now, Here I am specifying the condition as “Counter =10” in the box.
9. Save and execute the workflow.

The bot executes the workflow and when it reaches the condition, since it gets the value of 1=10 according to the condition, which is false, it aborts the workflow and gives, and output of the counter is 1.

Overview

Developer activities in Robility are actions performed by developers using Robility Designer to create and deploy automation solutions. These activities involve building workflows, designing automation processes, and integrating various technologies to automate repetitive tasks.

These developer activities encompass a wide range of tasks used to build, develop, and deploy automation solutions. They include working with SQL commands, JSON, and XML, allowing developers to interact with databases, manage structured data, and seamlessly integrate with external systems. These activities consist of several packages available for developers, providing the tools needed to effectively create robust automation solutions.

The developer activities consist of the following packages available,

  1. Portable database
  2. Database Automation
  3. Json
  4. XML

About the package

Portable Database Package:

This package facilitates the integration and manipulation of data stored in lightweight, portable databases such as SQLite. It allows developers to create, read, update, and delete (CRUD) operations on database records within the workflows.

Developers can use activities from the portable database package to connect to an SQLite database file, execute SQL queries, retrieve query results, insert or update records, and manage database transactions. This package is valuable for automation processes that involve local data storage, offline operations, or lightweight database interactions.

Database Package:

This package enables developers to interact with traditional relational databases such as MySQL and SQL Server. It supports a wide range of database operations, including data retrieval, data manipulation, stored procedure execution, and transaction management.

Developers can utilize activities from the database package to establish connections to external databases, execute SQL commands or stored procedures, fetch data based on criteria, perform bulk operations, handle database transactions with rollback and commit options, and manage database connections efficiently. This package is crucial for projects that involve integration with enterprise databases and data-driven automation tasks.

JSON Package:

This package is designed to handle JSON (JavaScript Object Notation) data structures, allowing developers to parse, manipulate, and generate JSON data within workflows. It is commonly used for data exchange between systems, API integration, and handling structured data in modern applications.

Developers can employ activities from the JSON package to parse JSON strings into objects, extract specific data elements from JSON structures, transform JSON data formats, validate JSON schemas, and handle JSON serialization/deserialization. This package is essential for processes that involve working with web APIs, RESTful services, or systems that use JSON as a data interchange format.

XML Package:

This package facilitates the manipulation and processing of XML (Extensible Markup Language) documents, which are commonly used for data representation, configuration files, and communication protocols. It allows developers to parse, generate, validate, and transform XML data within the workflows.

Developers can utilize activities from the XML package to parse XML documents into structured data, extract information using XPath expressions, modify XML nodes and attributes, validate XML against schemas etc. This package is valuable for tasks that involve working with XML-based systems, data interchange formats, or configuration files in applications.

Project Compatibility

Use Case

Creating an activity

Overview:

We are going to create an activity for the extraction of specific data from a JSON file within an automation solution. Previously, achieving this extraction required a workflow comprising 4 to 5 steps; however, with this custom activity, the process becomes more efficient and direct.

Use Case:

In this scenario, the activity reads a JSON file and extracts a specific value from it.

Steps to build the custom activity

1. Once you have created a project with “Robility Custom Activity” builder template, now navigate to the “Menu” bar.2
2. Click on the “Extensions” and choose the “Robility” from the drop-down menu.
3. Select the “Add Activity” to build and create a custom activity for our use case.
    a. A window labeled as “Add Activities” will appear on the screen.

4. Upon selecting the “Create” option, you will be navigated to define the activities name for the feature that we are about to create.
    a. In this case, we are creating only one activity and let’s name it as “Json Reader”.
    b. Click on the “Add” option and enter the name in the box.
    c. Let’s provide a description of the activity as “Helps to extract specific details from the provided JSON input.
    d. If you want to add multiple activities, click on “Add” button and define them.

Creating Properties

This is the most crucial step where we define the basic structure for the properties required for the activity. These properties determine how the input and output values should be provided.

A. Define Input Properties:

Input properties specify the data that the activity will receive. In this use case, we require the following input properties,

1. InputText – This is used to provide the input JSON text value in “String” format from which the specified extracted value needs to be retrieved.
2. ExtractionValue – This is used to provide the “Value” that needs to be extracted from the JSON input text.

Now, let’s see how to define these properties.

1. To launch the “Define Properties” window, select the “Edit” option under the property in the define activities window.
2. Now, click on the “Add” button to create the property.
    a. Enter the property name as “InputText”.
    b. In the description, you can provide the properties description. Here the value is, “Provide the input JSON value in String format”.
    c. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input. The direction needs to be set as “IN”.
    d. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    e. Make this property as “Mandatory” by toggling the “required” option.

3. Now, let’s define the next property, “ExtractionValue”.
    a. Click on the “Add” button at the bottom of the window.
    b. Enter the property name as “ExtractionValue”.
    c. In the description, you can provide the properties description. Here the value is, “Provide the value that needs to be extracted from the JSON value in String format”.
    d. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input. The direction needs to be set as “IN”.
    e. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    f. Make this property as “Mandatory” by toggling the “required” option.

B. Define Output Properties:

Output properties specify the data that the activity will provide as result. In this use case, we require the following output property,

1. JsonValue – This is used to return the value that is provided as input from the JSON text value in “String” format.

Now, let’s see how to define these properties.

1. In the “Define Properties” window, click on the “Add” button and in the “Category” list, choose the value as “Output”.
    a. Enter the property name as “OutText”.
    b. In the description, you can provide the properties description. Here the value is, “Declare a variable to view the output in String format”.
    c. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input, the direction needs to be set as “OUT”.
    d. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    e. Make this property as “Mandatory” by toggling the “required” option.

C. Provide the custom code:

Once you select the “Finish” button, the activity’s code with all the properties will be created. In that code, you can add the custom logic that needs to be performed. Let’s see how to input your custom code:

1. In the “Code Editor,” you can view the default code template with all the activity arguments defined.
2. In the “Execution” section, you will see “Add your logic here.” In that area, provide your code. 
    a. Refer to the attached code.
    b. Now, you can save the code.

D. Create the nuget package:

1. Now, right click on the “Solution” name in the solution explorer.
2. Choose “Build” option to create the nuget package.
3. The path where the nuget package will be saved will be available in the below toolbox.

E. Utilizing the activity in Robility Designer:

Let’s use the created package in the Designer to view how the activity works.

1. Launch the designer and create a solution.
2. Click on the “ManageFeatures” option in the Designer to install our package.
3. Navigate to the “Browse” option.
    a. This option is used to install the nuget package that aren’t available in the Designer.
    b. Here we are using this option to install our nuget package.
    c. Now, browse and install the package, the feature will be available in the “Toolbox”.

5. Drag and drop the activity and pass the required input in the properties.

Below is the sample output of the execution of the activity,

Overview

Introduction

The Application Activities package in Robility encompasses a range of activities designed to interact with various applications and file formats, enhancing automation capabilities across different tasks. These activities streamline automation workflows by enabling efficient data handling, document management, and communication tasks within Robility.

About the package

CSV Activities: Robility’s CSV Activities automate tasks related to working with CSV files, which are commonly used for storing structured data in a simple, readable format. The CSV Scope activity is the central feature for managing CSV files within an automation workflow. It allows users to easily read, write, and process CSV files, providing a structured way to handle data without the need for manual intervention.

Excel Activities: These activities enable automation of tasks related to Microsoft Excel, such as reading data from Excel files, writing data to Excel sheets, formatting cells, performing calculations, and manipulating Excel data for analysis or reporting purposes.

Outlook Activities: Activities in this category facilitate automation of email-related tasks using Microsoft Outlook. This includes sending emails, receiving emails, reading email contents, managing attachments, and interacting with Outlook’s email management features.

Word Activities: Word activities enable automation of tasks involving Microsoft Word documents. This includes tasks like reading text from Word documents, modifying document content, formatting text, and generating documents dynamically.

PDF Activities: These activities are used for automating tasks related to PDF files, such as reading text from PDFs, extracting data, merging, or splitting PDF documents, and performing OCR (Optical Character Recognition) for scanned PDFs.

Text Activities: Text activities facilitate automation of text-related tasks, including text manipulation, parsing, searching, and formatting. They enable automation of tasks involving text data, such as data extraction, text processing, and generating text-based reports or documents.

Project Compatibility

Supported versions

Excel Application:

The following are the list of versions of Excel application that are supported in Windows legacy,

  • Excel 2010
  • Excel 2007

It’s important to ensure that you have the necessary updates, service packs, and compatibility patches installed for these Office versions to work smoothly on Windows Legacy systems.

Additionally, for optimal security and performance, it’s recommended to consider upgrading to newer Office versions and compatible Windows operating systems when feasible and supported by your organization’s IT policies.

Word:

The Microsoft Word application is not supported on Windows Legacy versions because Robility only supports a limited number of Word application versions. To know more information, click here to refer the Word documentation.

Scope Integration

The Scope Integration in Robility includes a unique scope activity within the Applications Activities package. This activity is utilized to establish an authenticated connection to the specified application.

By establishing an authenticated connection within the scope activity, Robility maintains data integrity and security, enabling seamless automation of tasks across various applications while adhering to authentication protocols and access controls.

The following activities require “Scope” integration for the execution of other activities:

1. CSV Automation: The “CSV Scope” activity serves as a scope in this feature, enabling seamless automation for managing CSV files within workflows. This activity encapsulates actions related to reading, writing, and processing CSV data, allowing users to automate tasks such as importing data into the system, exporting results, and performing calculations or transformations on the data.

2. Email Automation: The “Read” activity serves as a scope in this feature, facilitating integration and connection with other activities for execution. Most activities must be used within scope, while a few activities do not require scope integration. For detailed information, refer to the Email Automation documentation.

3. Excel Automation: The “Excel Scope” activity in Excel Automation enables integration and connection with other activities for execution. The execution occurs in the background, meaning there will be no active application opened during the process.

4. Outlook Automation: The “Outlook Scope” activity acts as a scope in Outlook Automation, providing a centralized environment for automating email-related tasks within Microsoft Outlook. This activity encapsulates all actions related to managing emails, appointments, contacts, and tasks, enabling users to streamline their email workflows.

5. Word: The “Word Scope” activity acts as a scope in Word Automation, facilitating integration with the Word application document. The execution occurs in the background, meaning there will be no active application opened during the process.

Why do we need scope integration for the applications?

Scope integration is necessary for activities in Robility for several reasons:

1. Modularity and Reusability: Scopes promote modularity and reusability of activities’ parameters. By encapsulating related activities within a scope, they can be easily reused multiple times in the flow without the need for extensive modifications.

2. Authentication and Security: Scope activities help establish authenticated connections to specific applications or services, ensuring that automation processes can securely interact with them. This authentication ensures that only authorized users or processes can access and manipulate data within the application.

Overview

Introduction

System activities in Robility encompass a range of tools and functionalities designed to streamline automation processes and enhance the capabilities of automation solutions. These activities cover various aspects of automation, including data handling, file management, communication with external systems, user interactions, time management, notifications, and advanced text processing.

These system activities collectively empower developers to build comprehensive automation solutions that handle diverse tasks efficiently, ranging from data processing and file management to user interactions and advanced text processing, enhancing the productivity and effectiveness of automation implementations in Robility.

Let’s delve deeper into the key functionalities offered by these system activities:

  1. Data Handling: It enables developers to manage data effectively within automation workflows. This includes activities for data extraction, transformation, validation, and integration with datatables or external data sources.
  2. File Management: It allows for seamless file handling operations such as file creation, copying, moving, deletion, and manipulation of file attributes.
  3. Communication with External Systems: Robility provides activities to facilitate communication with external systems.
  4. User Interactions: System activities in Robility support automation of user interactions with applications through simulated keyboard inputs, mouse actions, and UI interactions.
  5. Time Management: It also includes the functionalities for managing time delays and timeouts.
  6. Notifications: It allows for sending notifications, alerts, or messages during automation execution.
  7. Advanced Text Processing: It also supports advanced text processing capabilities through system activities such as regular expressions (Regex).

About the package

1. DataTable package: This package facilitates the manipulation of tabular data within automation workflows. It supports operations such as adding, updating, deleting rows, sorting, filtering, and performing calculations on Datatables.

2. FileSystem (FS) Package: It enables interaction with the file system, including operations like creating, copying, moving, renaming, and deleting files and directories. It also supports file attributes manipulation and file system monitoring.

It is crucial for file management tasks, file manipulation, working with file paths, and handling file-related operations in automation processes.

3. FTP package: This package facilitates file transfer operations between local and remote systems using FTP/SFTP protocols. It supports uploading, downloading, listing directory contents, and managing FTP connections.

It is valuable for automation tasks involving file transfers, data synchronization between servers, batch processing, and integration with FTP/SFTP servers.

4. Delay Package: This package introduces a time delay or pause in the automation workflow, allowing developers to control timing between actions. It helps in managing workflow execution timing and handling synchronization requirements.

5. Keyboard Automation Package: It simulates keyboard inputs, keystrokes, and keyboard shortcuts within automation workflows. It allows developers to interact with applications by sending virtual keyboard commands.

6. Notification Package: This package facilitates to send notifications, alerts, or messages to users or systems during automation execution.

7. Mouse Automation package: It simulates mouse actions and movements, including clicking, dragging, scrolling, and hovering, within automation workflows. It allows developers to interact with applications through virtual mouse inputs.

Mouse automation package is used for UI automation, mouse-based interactions, testing mouse functionalities, automating GUI interactions, and performing actions that require mouse input.

8. Regex (Regular Expression) package: Regex feature provides support for regular expressions, allowing developers to perform advanced text matching, pattern recognition, and text manipulation operations within automation workflows.

Project Compatibility

Multiple Tenants

Organizations can create multiple tenants within the same structure, allowing them to streamline management, enhance efficiency, and maintain uniformity in handling data, resources, and user access across all tenants.

This capability is exclusively available to the organization admin, who can create multiple tenants depends on the selected organizational structure. If the organization adopts a multi-tenant setup—such as:

a. Multi-organization with multiple tenants, or
b. Single organization with multiple tenants

How to add multiple tenants?

The Organization Admin who signs up and creates the platform has the privilege to add multiple tenants for their organization. Admins can seamlessly switch between tenants using the same login credentials without affecting data, settings, or administrative tasks.

When the admin signs up, the first tenant is automatically created with the name provided during the signup process. To add additional tenants to the organization, follow these steps:

1. Login to the platform.
2. Once you logged into the platform, the user will be displayed the list of organizations.
3. Upon clicking on the organization’s name, the list of tenants or the tenant created against it will be displayed.
4. Click on the setting icon parallel to the organization name.
5. Choose “Add Tenant” option.

6. The Add tenant pop up appears on the screen.
7. Enter the Tenant name in the box. Note that the tenant will be created against the organization displayed on the tenant creation screen.

8. Choose the deployment model as “LIVE, STABLE, DEV or BETA version and select the create button.
9. A new database will be setting up for the created tenant. This might take a few minutes to complete.
10. Once the setup has been, the tenant’s name will appear on the list.

The newly added tenant will now be accessible alongside existing tenants, enabling efficient management and seamless transitions. 

Tenant Switch

Users and tenant administrators can easily switch between tenants as needed. Follow these steps to switch to a different tenant:

1. Click on the organization name at the top of the page.
2. On the top left corner, you can see the breadcrumbs displayed as “Robility AI / RPA / Automation / Products” (here “RPA” is the organization name).
3. You will be redirected to the Tenant Selection Choose your desired tenant.

This process ensures a seamless transition between tenants while maintaining data integrity

Tenant Status

All tenants under an organization, whether active, expired or requires renewal, will be displayed in the Tenant List section.

Active Tenants: These appear as clickable hyperlinks, allowing users to navigate directly to the respective tenant’s platform.
Expired Tenants: These remain visible on the list but are inaccessible until the license is renewed. Click here to learn how to renew your license. 
Requires Renewal: This section notifies users to renew the tenant license before it expires. 

Release Notes

v.3.4

Issue

The user was unable to automate actions on a specific website using WebAutomation activities.

Root Cause

Although the feature successfully identified the element, the browser blocked the programmatic action due to a Content Security Policy (CSP) error.

Fix Details

We have resolved the issue by updating the runtime script to handle the JavaScript execution in compliance with CSP restrictions.

v.3.2

Issue

The user is unable to click on a specific element on the webpage.

Root cause

We found that the issue was with the general.css file, which was used to highlight elements. After adding the CSS file, it attempts to search for headers on the web page. Since there are no headers on the current web page, it was throwing a null error.

Fix details

We added the general.css file for overall styling, but the exact name of the CSS file could vary (e.g., main.css, style.css, or base.css). Therefore, we added validations to the style.css file for those extensions and released revised version.

Expected behavior

Since we added the validations to the style.css file, even though the headers are not present on the webpage, the web automation (clicking on a specific element) will work.

Upcoming Platform Update

Upcoming Features

1. Security Scan – Phase II
Enhancing governance and visibility, Phase II introduces integrated certification status indicators for all solutions—certified and non-certified to the Robility Manager. It helps to view detailed execution logs in the Manager, helping track compliance adherence and notify when sensitive information is being printed, even after being flagged. This ensures proactive risk management and reinforces secure automation practices.

2. Workflow Analyzer II
Advanced validation for automation quality with new set of rules to ensure consistency, reliability, and standardization across all automation projects.

3. RAG Integration with GenAI: Combine retrieval-augmented knowledge with Gen AI activities to deliver context-rich, accurate, and intelligent automation outcomes.

4. Java UI Automation: Seamlessly perform user interface automations in Java-based applications, expanding coverage across enterprise systems.

5. Image Classification (GenAI): Leverage AI-driven image recognition to categorize and interpret visuals, enabling faster decisions and automation of image-based tasks.

Upcoming features update in July

Upcoming Features

Security Scan – Phase II
Enhancing governance and visibility, Phase II introduces integrated certification status indicators for all solutions—certified and non-certified to the Robility Manager. It helps to view detailed execution logs in the Manager, helping track compliance adherence and notify when sensitive information is being printed, even after being flagged. This ensures proactive risk management and reinforces secure automation practices.

New Activities for Secure Authentication
Simplify secure integration with upcoming activities:

1. Get PIN & Key
2. JWT (JSON Web Token) Retrieval
3. Token Management

Workflow Analyzer II
Advanced validation for automation quality:

1. Validate mandatory package usage
2. Detect invalid parameter modifiers
3. Perform comprehensive project structure checks
4. Ensure consistency, reliability, and standardization across all automation projects.

Upcoming features update in July

Upcoming Features

Security Scan – Phase II
Enhancing governance and visibility, Phase II introduces integrated certification status indicators for all solutions—certified and non-certified to the Robility Manager. It helps to view detailed execution logs in the Manager, helping track compliance adherence and notify when sensitive information is being printed, even after being flagged. This ensures proactive risk management and reinforces secure automation practices.

New Activities for Secure Authentication
Simplify secure integration with upcoming activities:

1. Get PIN & Key
2. JWT (JSON Web Token) Retrieval
3. Token Management

Workflow Analyzer II
Advanced validation for automation quality:

1. Validate mandatory package usage
2. Detect invalid parameter modifiers
3. Perform comprehensive project structure checks
4. Ensure consistency, reliability, and standardization across all automation projects.

About Robility Flow

Robility Flow is an enterprise-grade platform for designing, orchestrating, deploying, and managing Agentic AI workflows and solutions at scale. It enables organizations to embed intelligent, context-aware decision-making directly into business processes by combining AI agents, structured workflow orchestration, and deep integrations with core business systems and data sources.

Robility Flow unifies the capabilities organizations need to operationalize agentic AI workflows:

1. Agentic workflow orchestration: Coordinate multi-step, multi-agent processes that reason, plan and act across tasks turning agent outputs into reliable business decisions and actions.

2. MCP & tool connectivity: Support for the Model Context Protocol (MCP) and standard connector patterns lets models access live data, services, and tools securely and consistently, reducing one-off integrations and enabling model-agnostic workflows.

3. Enterprise integrations: Plug into ERPs, CRMs, ITSM, databases, APIs, automation systems and other enterprise platforms so AI-driven workflows are embedded in day-to-day operations rather than isolated experiments.

4. Model and storage flexibility: Bring-your-own-LLM and pluggable storage/vector options prevent vendor lock-in and allow teams to choose providers that meet performance, cost and compliance needs.

5. Visual design + production execution: A visual orchestration layer enables subject-matter experts and developers to design, test, deploy and monitor workflows, bridging prototyping speed and enterprise-grade reliability.

Why this matter?

Robility Flow is built to move organizations beyond point solutions and experimentation: it delivers a governed, extensible platform where agentic AI is a first-class part of operational workflows — measurable, auditable, and integrated with the systems that run the business.

Agentic AI Workflow Orchestration

Robility Flow enables organizations to design and operationalize AI-driven workflows and intelligent enterprise solutions across critical business functions. It supports production-grade use cases where AI must interact with enterprise systems, automation layers, and structured data in a governed execution environment.

Real-World Enterprise Use Cases

a. SDLC & Engineering: AI-driven requirement analysis, automated code review, test case generation, and intelligent release validation integrated with development pipelines.
b. ITSM & Service Operations: Intelligent ticket triaging, incident summarization, SLA monitoring, and automated resolution workflows connected to service management platforms.
c. KYC & Compliance: Automated document verification, identity validation, risk scoring, and regulatory case summarization embedded into compliance workflows.
d. Telecom Operations: Churn prediction, complaint classification, billing dispute resolution, and proactive customer retention workflows powered by AI agents.
e. Banking & Financial Services: Fraud signal analysis, transaction review assistance, loan document validation, and policy compliance orchestration.
f. Enterprise Back Office: Invoice validation, procurement approvals, HR query automation, and finance document intelligence integrated with ERP systems.

Build Flows in Minutes

At the core of Robility Flow is the concept of flows, modular representations of application logic built using configurable component nodes.

Using the drag-and-drop visual editor, you can create complete workflows by connecting components, each representing a specific step in the process. For instance, you can build a chatbot for an e-commerce site that integrates an LLM with a product database, allowing customers to ask product-related questions and receive intelligent responses.

Real-Time Flow Testing

Robility Playground allows you to test flows interactively without building the full application stack. You can validate flow logic and receive real-time feedback during development. You can also execute individual components independently to isolate and test dependencies. 

Execute and Operationalize Flows

Robility Flow enables organizations to execute Agentic AI workflows within a structured and governed enterprise environment. Designed for operational use, flows can be deployed as managed workflow units that interact seamlessly with enterprise systems, automation platforms, and data sources.

Once designed and validated, workflows can be executed as part of business processes — supporting real-time decision-making, system-triggered actions, and human-in-the-loop scenarios.

Robility Flow ensures:

a. Controlled execution of AI-driven workflows
b. Secure interaction with enterprise applications and APIs
c. Structured handling of inputs, outputs, and contextual data
d. Monitoring and refinement of workflow behavior

For more information, see the following: Trigger flows with the Robility flow API

Flexible Configuration and Integration

Robility flow includes a wide range of components designed to integrate with various AI services and tools.

a. General components: input, output, data stores
b. Specialized components: agents, language models, embedding providers

Each component supports parameter customization, either fixed or dynamic. You can also apply runtime tweaks to override default settings.

Legacy Components

Legacy components are outdated system elements kept for backward compatibility. They no longer meet current platform standards and will be phased out (decluttered) in upcoming updates to boost performance, usability, and maintainability.
They’ll work in existing workflows for now but won’t get enhancements or support. Avoid using them in new workflows, they risk becoming unavailable, causing compatibility issues or upgrade disruptions. Switch to the latest supported components for better reliability and features.

Built-In Agent and MCP Support

Robility flow enables advanced agentic workflows and supports the following features:

1. Create and manage AI agents within workflows
2. Use flows and components as tools within agents
3. Operate Robility flow as an MCP server
4. Connect to external MCPs as a client

Extending Custom Components

Beyond the built-in components, Robility flow allows for full extensibility.
You can:

1. Use community-built custom components
2. Develop your own components for internal or shared use.
3. Package and reuse proprietary connectors
4. Standardize internal tooling as reusable workflow modules. 

 

Quick Start

Begin using Robility Flow by loading a template, running a flow, and serving it via the /run API endpoint.

Prerequisites

Before you start, ensure you have the following:

a. An OpenAI API key

b. Create a Robility flow API key

The Robility API key is a project specific token that you can use within Robility Flow. 

To create Robility flow API key, do the following:

1. Publish your flow to the Robility Manager. 
2. Navigate to the project in the Robility Manager. 
3. Go to the “Workflows” page. 
4. It will list the flows published against the Manager and choose your respective flow. 
5. Click on “Generate API Key” and choose the published version of the flow. 
6. Once the key is generated, click on “History” button and you can view the API key generated against each version of the flow published. 
7. Copy the API key and store it securely.

To use your Robility flow API key in a request, set a ROBILITYFLOW_API_KEY environment variable, and then include an x-api-key header or query parameter with your request. For example:

# Set variable
export ROBILITYFLOW_API_KEY="sk..."

# Send request
curl --request POST \
  --url "http://ROBILITYFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" \
  --header "Content-Type: application/json" \
  --header "x-api-key: $ROBILITYFLOW_API_KEY" \
  --data '{
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "Hello"
  }'

Run the Simple Agent Template Flow

To quickly test a flow:

1. In Robility Flow, click New Flow.
2. Select the Simple Agent template from the list.

You can now configure, run, and serve the flow using the /run API endpoint.

The Simple Agent flow includes an Agent component connected to Chat I/O components, a Calculator tool, and a URL tool. When you run the flow, it processes user input from the Chat Input, invokes the appropriate tool (Calculator or URL), and returns the result via Chat Output.

1. User Input is submitted through the Chat Input
2. The Agent analyzes the query and decides which tool(s) to invoke:
a. For math-related questions, it uses the Calculator tool.
b. For current events or external content, it calls the URL tool to fetch data.

3. The response is displayed through the Chat Output
4. Agents can also use other tools, such as Model Context Protocol (MCP) servers, depending on flow configuration and context.
5. In the Agent component settings, locate the OpenAI API Key
6. Enter your key directly or click the Globe icon to create a global variable.

Note: This example uses OpenAI. You can change the provider and model by updating the Model Provider and Model Name fields and supplying the relevant credentials.

Run and Test the Flow

1. Click Playground to open the test environment.
2. To test the Calculator: Ask a math question (e.g., “I want to add 4 and 4”). The Agent will call the Calculator tool using the evaluate_expression action.
3. To test the URL tool: Ask a current events question (e.g., “What’s the latest news?”). The Agent will call the fetch_content action and summarize the fetched content.
4. Click Close once you’re done testing.

What’s Next

Now that you’ve successfully run your first flow, you can:

a. Customize the Simple Agent flow by adding new tools or components.
b. Build a flow from scratch or explore other templates.
c. Integrate Robility flows with external apps via the Robility Flow API.

Running Flows from External Applications

Robility Flow functions both as an IDE and a runtime server. You can call through the Robility flow API using Python, JavaScript, or HTTP (cURL).

To test locally, send requests to your local server. For production, deploy a persistent instance of Robility Flow.

Access API Snippets

1. In the Playground, click Share, then API Access.
2. You’ll find code snippets for:

a. Python
b. JavaScript
c. cURL

These snippets are pre-filled with:

a. Your server URL
b. Flow ID
c. A sample payload
d. Your Robility Flow API key (if defined as an environment variable)

Sample Python Snippet


import requests

url = "http://ROBILITY_SERVER_ADDRESS/api/v1/run/FLOW_ID"  # The complete API endpoint URL for this flow

payload = {
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "hello world!"
}

headers = {
    "Content-Type": "application/json",
    "x-api-key": "$ROBILITY_API_KEY"
}

try:
    response = requests.request("POST", url, json=payload, headers=headers)
    response.raise_for_status()  # Raise exception for bad status codes

    print(response.text)  # Print response

except requests.exceptions.RequestException as e:
    print(f"Error making API request: {e}")
except ValueError as e:
    print(f"Error parsing response: {e}")

Run the script to test your flow. If using cURL, you can execute the command directly in your terminal.
Sample API Response
A successful response includes:
a. session_id
b. Inputs and outputs
c. Components used
d. Durations
e. and more
In production, extract only relevant parts of the response for your application, such as displaying the final output or storing logs.

Extract data from the response

The following example builds on the API pane’s example code to create a question-and-answer chat in your terminal that stores the agent’s previous answer.

1. Incorporate your Simple Agentflow’s /run snippet into the following script. This script runs a question-and-answer chat in your terminal and stores the agent’s previous answer so you can compare them.
Example: Python Script
python

import requests

url = "http://ROBILITY_SERVER_ADDRESS/api/v1/run/FLOW_ID" # The complete API endpoint URL for this flow

payload = {
  "output_type": "chat",
  "input_type": "chat",
  "input_value": "hello world!"
}

headers = {
  "Content-Type": "application/json",
  "x-api-key": "$ROBILITY_API_KEY"
}

try:
  response = requests.request("POST", url, json=payload, headers=headers)
  response.raise_for_status() # Raise exception for bad status codes

  print(response.text) # Print response

except requests.exceptions.RequestException as e:
  print(f"Error making API request: {e}")
except ValueError as e:
  print(f"Error parsing response: {e}")

To view the agent’s previous answer, type compare. To close the terminal chat, type exit.

Use Tweaks to Override Flow Parameters

You can include tweaks with your requests to temporarily modify flow parameters. Tweaks are added to the API request and temporarily change component parameters within your flow. Tweaks override the flow’s components’ settings for a single run only. They don’t modify the underlying flow configuration or persist between runs.

Tweaks are added to the /run endpoint’s payload. To assist with formatting, you can define tweaks in Robility flow’s Input Schema pane before copying the code snippet.

1. To open the Input Schema pane, from the API access pane, click Input Schema.
2. In the Input Schema pane, select the parameter you want to modify in your next request. Enabling parameters in the Input Schema pane doesn’t permanently change the listed parameters. It only adds them to the sample code snippets.
3. For example, to change the LLM provider from OpenAI to Groq, and include your Groq API key with the request, select the values Model Providers, Model, and Groq API Key. Robility flow updates the tweaks object in the code snippets based on your input parameters and includes default values to guide you. Use the updated code snippets in your script to run your flow with your overrides.

Example Payload with Tweaks

{
  "output_type": "chat",
  "input_type": "chat",
  "input_value": "hello world!",
  "tweaks": {
    "Agent-ZOknz": {
      "agent_llm": "Groq",
      "api_key": "GROQ_API_KEY",
      "model_name": "llama-3.1-8b-instant"
    }
  }
}

Note: Tweaks apply only to the current execution—they do not alter the original flow configuration.

Tutorials

Tutorials in Robility Flow offer hands-on, step-by-step guides for building AI-powered applications and integrating Robility Flow’s capabilities into real-world solutions. Each tutorial targets a specific use case, such as building a vector RAG chatbot, creating a file-ingesting chatbot, connecting applications to agents, or linking applications to MCP servers — and walks through the essential steps needed to configure a working implementation.

By following these guided examples, you’ll see how components, agents, files, retrieval systems, and external applications come together within a complete solution. Tutorials bridge the gap between individual concepts and practical application, helping you move confidently from learning Robility Flow’s building blocks to deploying functional AI-driven solutions.

Create a vector RAG chatbot

This tutorial demonstrates how you can use Robility flow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database and then chat with the data.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key
c.
Install the Robility flow JavaScript client 
d. Be familiar with vector search concepts and applications, such as vector databases and RAG.

Create a vector RAG flow

1. In Robility flow, click New Flow, and then select the Vector Store RAG template.

About the Vector Store RAG template:

This template has two flows.

The Load Data Flow populates a vector store with data from a file. This data is used to respond to queries submitted to the Retriever Flow.

Specifically, the Load Data Flow ingests data from a local file, splits the data into chunks, loads and indexes the data in your vector database, and then computes embeddings for the chunks. The embeddings are also stored with the loaded data. This flow only needs to run when you need to load data into your vector database.

The Retriever Flow receives chat input, generates an embedding for the input, and then uses several components to reconstruct chunks into text and generate a response by comparing the new embedding to the stored embeddings to find similar data.

2. Add your OpenAI API key to OpenAI Embeddings components. 
3. Optional: Replace both Astra DB vector store components with a Chroma DB or another Vector Store component of your choice. This tutorial uses Chroma DB.

The Load Data Flow should have FileSplit TextEmbedding Model, vector store (such as Chroma DB), and Chat Output components:

The Retriever Flow should have Chat InputEmbedding Model, vector store, ParserPromptLanguage Model, and Chat Output components:

The flows are ready to use. Continue the tutorial to learn how to use the loading flow to load data into your vector store and then call the chat flow in a chatbot application.

Load data and generate embeddings

To load data and generate embeddings, you can use the visual editor or the /v2/files endpoint.

The visual editor option is simpler, but it is only recommended for scenarios where the user who created the flow is the same user who loads data into the database.

In situations where many users load data or you need to load data programmatically, use the Robility flow API option.

a. Visual editor

b. Robility flow API

1. In your RAG chatbot flow, click the File component, and then click File.
2. Select the local file you want to upload, and then click Open. The file is loaded to your Robility flow server.
3. To load the data into your vector store, click the Vector Store component, and then click Run component to run the selected component and all prior dependent components.

When the flow runs, the flow ingests the selected file, chunks the data, loads the data into the vector store database, and then generates embeddings for the chunks, which are also stored in the vector store.

Your database now contains data with vector embeddings that an LLM can use as context to respond to queries, as demonstrated in the next section of the tutorial.

Chat with your flow from a JavaScript application

To chat with the data in your vector database, create a chatbot application that runs the Retriever Flow programmatically.

This tutorial uses JavaScript for demonstration purposes.

1. To construct the chatbot, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file, and then replace the placeholders with the information you gathered in the previous step:

const readline = require('readline');

const { Robility flow Client } = require('@datastax/Robility flow-client');

const API_KEY = 'ROBILITY FLOW_API_KEY';

const SERVER = 'ROBILITY FLOW_SERVER_ADDRESS';

const FLOW_ID = 'FLOW_ID';

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// Initialize the Robility flow client

const client = new Robility flow Client({
  baseUrl: SERVER,
  apiKey: API_KEY
});

async function sendMessage(message) {
  try {
    const response = await client.flow(FLOW_ID).run(message, {
      session_id: 'user_1'
    });

    // Use the convenience method to get the chat output text

    return response.chatOutputText() || 'No response';

  } catch (error) {
    return `Error: ${error.message}`;
  }
}

function chat() {
  console.log('🤖 Robility flow RAG Chatbot (type "quit" to exit)\n');

  const ask = () => {
    rl.question('👤 You: ', async (input) => {

      if (['quit', 'exit', 'bye'].includes(input.trim().toLowerCase())) {
        console.log('👋 Goodbye!');
        rl.close();
        return;
      }

      const response = await sendMessage(input.trim());

      console.log(`🤖 Assistant: ${response}\n`);

      ask();
    });
  };

  ask();
}

chat();

The script creates a Node.js application that chats with the content in your vector database using the chat input and output types to communicate with your flow. The chat mode maintains conversation context across multiple messages, enabling a continuous interaction. If you use text input and output types instead, each request is processed as an independent text string without preserving conversation context.

3. Save and run the script to send the requests and test the flow.

Result

The following is an example response from this tutorial’s flow. Due to the nature of LLMs and variations in your inputs, your response might be different.

👤 You: Do you have any documents about engines?

🤖 Assistant: Yes, the provided text contains several warnings and guidelines related to engine installation, maintenance, and selection. It emphasizes the importance of using the correct engine for specific applications, ensuring all components are in good condition, and following safety precautions to prevent fire or explosion. If you need more specific information or details, please let me know!

👤 You: It should be about a Briggs and Stratton engine.

🤖 Assistant: The text provides important safety and installation guidelines for Briggs & Stratton engines. It emphasizes that these engines should not be used on 3-wheel All-Terrain Vehicles (ATVs), motor bikes, aircraft products, or vehicles intended for competitive events, as such uses are not approved by Briggs & Stratton.

If you have any specific questions about Briggs & Stratton engines or need further information, feel free to ask!

Create a chatbot that can ingest files

This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.

For example, you could upload a contract and ask, “What are the termination clauses in this agreement?” Or upload a resume and ask, “Does this candidate have experience with marketing analytics?”

The main focus of this tutorial is to show you how to provide files as input to a Robility flow, so your chatbot can use the content of those files in its responses.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create a flow that accepts file input

To ingest files, your flow must have a File component attached to a component that receives input, such as a Prompt Template or Agent component.

The following steps modify the Basic Prompting template to accept file input:

1. In Robility flow, click New Flow, and then select the Basic Prompting template. 
2. In the Language Model component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

3. To verify that your API key is valid, click Playground, and then ask the LLM a question. The LLM should respond according to the specifications in the Prompt Template component’s Template field. 
4. Exit the Playground and then modify the Prompt Template component to accept file input in addition to chat input. To do this, edit the Template field, and then replace the default prompt with the following text:

ChatInput:

{chat-input}

File:

{file}

Tips

You can use any string to name your template variables. These strings become the names of the fields (input ports) on the Prompt Template component.

For this tutorial, the variables are named after the components that connect to them: chat-input for the Chat Input component and file for the File component.

1. Add a File component to the flow, and then connect the Raw Content output port to the Prompt Template component’s file input port. To connect ports, click and drag from one port to the other.

You can add files directly to the File component to pre-load input before running the flow, or you can load files at runtime. The next section of this tutorial covers runtime file uploads.

At this point your flow has five components. The Chat Input and File components are connected to the Prompt Template component’s input ports. Then, the Prompt Template component’s output port is connected to the Language Model component’s input port. Finally, the Language Model component’s output port is connected to the Chat Output component, which returns the final response to the user.

Send requests to your flow from a Python application

This section of the tutorial demonstrates how you can send file input to a flow from an application.

To do this, your application must send a POST /run request to your Robility flow  server with the file you want to upload and a text prompt. The result includes the outcome of the flow run and the LLM’s response.

This example uses a local Robility flow  instance, and it asks the LLM to evaluate a sample resume. If you don’t have a resume on hand, you can download fake-resume.txt.

Points to note

For help with constructing file upload requests in Python, JavaScript, and curl, see the Robility flow File Upload Utility.

1. To construct the request, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. FILE_COMPONENT_ID: The UUID of the File component in your flow, such as File-KZP68. To find the component ID, open your flow in Robility flow, click the File component, and then click Controls. The component ID is at the top of the Controls pane. 
d. CHAT_INPUT: The message you want to send to the Chat Input of your flow, such as Evaluate this resume for a job opening in my Marketing department.
e. FILE_NAME and FILE_PATH: The name and path to the local file that you want to send to your flow.
f. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a Python file, and then replace the placeholders with the information you gathered in the previous step:

# Python example using requests

import requests
import json

# 1. Set the upload URL

url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v2/files/"

# 2. Prepare the file and payload

payload = {}

files = [
    ('file', ('FILE_PATH', open('FILE_NAME', 'rb'), 'application/octet-stream'))
]

headers = {
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

# 3. Upload the file to Robility Flow

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

# 4. Get the uploaded file path from the response

uploaded_data = response.json()
uploaded_path = uploaded_data.get('path')

# 5. Call the Robility Flow run endpoint with the uploaded file path

run_url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID"

run_payload = {
    "input_value": "CHAT_INPUT",
    "output_type": "chat",
    "input_type": "chat",
    "tweaks": {
        "FILE_COMPONENT_ID": {
            "path": uploaded_path
        }
    }
}

run_headers = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

run_response = requests.post(run_url, headers=run_headers, data=json.dumps(run_payload))

robility_flow_data = run_response.json()

# Output only the message

message = None

try:
    message = robility_flow_data['outputs'][0]['outputs'][0]['results']['message']['data']['text']
except (KeyError, IndexError, TypeError):
    pass

print(message)

This script contains two requests.

The first request uploads a file, such as fake-resume.txt, to your Robility flow  server at the /v2/files endpoint. This request returns a file path that can be referenced in subsequent Robility flow  requests, such as 02791d46-812f-4988-ab1c-7c430214f8d5/fake-resume.txt

The second request sends a chat message to the Robility flow  flow at the /v1/run/ endpoint. The tweaks parameter includes the path to the uploaded file as the variable uploaded_path, and sends this file directly to the File component.

3. Save and run the script to send the requests and test the flow.

The initial output contains the JSON response object from the file upload endpoint, including the internal path where Robility flow stores the file. Then, the LLM retrieves the file and evaluates its content, in this case the suitability of the resume for a job position.

Next steps

To continue building on this tutorial, try these next steps.

Process multiple files loaded at runtime

To process multiple files in a single flow run, add a separate File component for each file you want to ingest. Then, modify your script to upload each file, retrieve each returned file path, and then pass a unique file path to each File component ID.

For example, you can modify tweaks to accept multiple File components. The following code is just an example; it isn’t working code:

# Set multiple file paths

file_paths = {
    "FILE_COMPONENT_1": uploaded_path_1,
    "FILE_COMPONENT_2": uploaded_path_2
}

def chat_with_flow(input_message, file_paths):
    """Compare the contents of these two files."""

    run_url = f"{ROBILITY_FLOW_SERVER_ADDRESS}/api/v1/run/{FLOW_ID}"

    # Prepare tweaks with both file paths

    tweaks = {}

    for component_id, file_path in file_paths.items():
        tweaks[component_id] = {
            "path": file_path
        }

You can also use a Directory component to load all files in a directory or pass an archive file to the File component.

Upload external files at runtime

To upload files from another machine that isn’t your local environment, your Robility flow server must first be accessible over the internet. Then, authenticated users can upload files to your public Robility flow server’s /v2/files/ endpoint, as shown in the tutorial.

Preload files outside the chat session

You can use the File component to load files anywhere in a flow, not just in a chat session.

In the visual editor, you can preload files to the File component by selecting them from your local machine or Robility flow file management.

For example, you can preload an instructions file for a prompt template, or you can preload a vector store with documents that you want to query in a Retrieval Augmented Generation (RAG) flow.

For more information about the File component and other data loading components, see Data components.

Connect applications to agents

This tutorial shows you how to connect a JavaScript application to a Robility flow agent.

With an agent, your application can use any connected tools to retrieve more contextual and timely data without changing any application code. The tools are selected by the agent’s internal LLM to solve problems and answer questions.

Prerequisites

a. Create a Robility flow API key
b. Install the Robility flow JavaScript client
c. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create an agent flow

The following steps modify the Simple Agent template to connect a Directory component and a Web Search component as tools for an Agent component. The Directory component loads all files of a given type from a target directory on your local machine, and the Web Search component performs a DuckDuckGo search. When connected to an Agent component as tools, the agent has the option to use these components when handling requests.

1. In Robility flow, click New Flow, and then select the Simple Agent template. 
2. Remove the URL and Calculator tools and then add Directory and Web Search components to your flow. 
3. In the Directory component’s Path field, enter the directory path and file types that you want to make available to the Agent component.

In this tutorial, the agent needs access to a record of customer purchases, so the directory name is customer_orders and the file type is .csv. Later in this tutorial, the agent will be prompted to find email values in the customer data.

You can adapt the tutorial to suit your data and save it in a customer_orders folder on your local machine.

4. In the Directory and Web Search components’ header menus, enable Tool Mode so you can use the components with an agent. 
5. Connect the Directory and Web Search components’ Toolset ports to the Agent component’s Tools port. 
6. In the Agent component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

7. To test the flow, click Playground, and then ask the LLM a question, such as Recommend 3 used items for john.smith@example.com, based on previous orders.

Given the example prompt, the LLM would respond with recommendations and web links for items based on previous orders in customer_orders.csv.

The Playground prints the agent’s chain of thought as it selects tools to use and interacts with functionality provided by those tools. For example, the agent can use the Directory component’s as_dataframe tool to retrieve a DataFrame, and the Web Search components perform_search tool to find links to related items.

Add a Prompt Template Component to the flow

In this example, the application sends a customer’s email address to the Robility flow agent. The agent compares the customer’s previous orders within the Directory component, searches the web for used versions of those items, and returns three results.

1. To include the email address as a value in your flow, add a Prompt Template component to your flow between the Chat Input and Agent components. 
2. In the Prompt Template component’s Template field, enter Recommend 3 used items for {email}, based on previous orders. Adding the {email} value in curly braces creates a new input in the Prompt Template component, and the component connected to the {email} port is supplying the value for that variable. This creates a point for the user’s email to enter the flow from your request. If you aren’t using the customer_orders.csv example file, modify the input to search for a value in your dataset.

At this point your flow has six components. The Chat Input component is connected to the Prompt Template component’s email input port. Then, the Prompt Template component’s output is connected to the Agent component’s System Message input port. The Directory and Web Search components are connected to the Agent component’s Tools port. Finally, the Agent component’s output is connected to the Chat Output component, which returns the final response to the application.

Send requests to your flow from a JavaScript application

With your flow operational, connect it to a JavaScript application to use the agent’s responses.

1. To construct a JavaScript application to connect to your flow, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file and then replace the placeholders with the information you gathered in the previous step. If you’re using the customer_orders.csv example file, you can run this example as-is with the example email address in the code sample. If not, modify the const email = “isabella.rodriguez@example.com” to search for a value in your dataset.

import { RobilityFlowClient } from "@datastax/robilityflow-client";

const ROBILITY_FLOW_SERVER_ADDRESS = "ROBILITY_FLOW_SERVER_ADDRESS";
const FLOW_ID = "FLOW_ID";
const ROBILITY_FLOW_API_KEY = "ROBILITY_FLOW_API_KEY";

const email = "isabella.rodriguez@example.com";

async function runAgentFlow(): Promise<void> {
    try {
        // Initialize the Robility Flow client
        const client = new RobilityFlowClient({
            baseUrl: ROBILITY_FLOW_SERVER_ADDRESS,
            apiKey: ROBILITY_FLOW_API_KEY
        });

        console.log(`Connecting to Robility Flow server at: ${ROBILITY_FLOW_SERVER_ADDRESS}`);
        console.log(`Flow ID: ${FLOW_ID}`);
        console.log(`Email: ${email}`);

        // Get the flow instance
        const flow = client.flow(FLOW_ID);

        // Run the flow with the email as input
        console.log("\nSending request to agent...");

        const response = await flow.run(email, {
            session_id: email // Use email as session ID for context
        });

        console.log("\n=== Response from Robility Flow ===");
        console.log("Session ID:", response.sessionId);

        // Extract URLs from the chat message
        const chatMessage = response.chatOutputText();

        console.log("\n=== URLs from Chat Message ===");

        const messageUrls =
            chatMessage.match(/https?:\/\/[^\s"')\]]+/g) || [];

        const cleanMessageUrls = [...new Set(messageUrls)].map(url => url.trim());

        console.log("URLs from message:");

        cleanMessageUrls.slice(0, 3).forEach(url => console.log(url));

    } catch (error) {
        console.error("Error running flow:", error);

        // Provide error messages
        if (error instanceof Error) {
            if (error.message.includes("fetch")) {
                console.error(
                    "\nMake sure your Robility Flow server is running and accessible at:",
                    ROBILITY_FLOW_SERVER_ADDRESS
                );
            }

            if (error.message.includes("401") || error.message.includes("403")) {
                console.error("\nCheck your API key configuration");
            }

            if (error.message.includes("404")) {
                console.error(
                    "\nCheck your Flow ID - make sure it exists and is correct"
                );
            }
        }
    }
}

// Run the function

console.log("Starting Robility Flow Agent...\n");

runAgentFlow().catch(console.error);

3. Save and run the script to send the request and test the flow.

Your application receives three URLs for recommended items based on a customer’s previous orders in your local CSV, all without changing any code.

4. To quickly check traffic to your flow, open the Playground. New sessions are named after the user’s email address. Keeping sessions distinct helps the agent maintain context. For more on session IDs, see Session ID. 

Next steps

For more information on building or extending this tutorial, see the following:

Model Context Protocol (MCP) servers

Connect to MCP servers from your application

This tutorial shows you how to connect MCP servers to your applications using Robility flow ‘s MCP Tools component.

The Model Context Protocol (MCP) helps agents integrate with LLMs through MCP clients and MCP servers. Specifically, MCP servers host tools that agents (MCP clients) use to complete specialized tasks. MCP servers are connected to MCP clients like Cursor. Then, you interact with the client, and the client uses tools from the connected servers as needed to complete your requests.

You can run Robility flow as an MCP client and an MCP server:

1. Use Robility flow as an MCP client: When run as an MCP client, an Agent component in a Robility flow  flow can use connected components as tools to handle requests. You can use existing components as tools, and you can connect any MCP server to your flow to make that server’s tools available to the agent.

2. Use Robility flow as an MCP server: When run as an MCP server, your flows become tools that can be used by an MCP client, which could be an external client or another Robility flow flow.

In this tutorial, you will use the Robility flow MCP Tools component to connect multiple MCP servers to your flow, and then you’ll use a Python application to run your flow and chat with the agent programmatically.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create an agent flow

1. In Robility flow, click New Flow, and then select the Simple Agent template. 
2. In the Agent component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

3. To test the flow, click Playground, and then ask the LLM Is it safe to go hiking in the Adirondacks today?

This query demonstrates how an LLM, by itself, might not have access to information or functions designed to address specialized queries. In this example, the default OpenAI model provides a vague response, although the agent does know the current date by using its internal get_current_date function.

Today is July 11, 2025.

To determine if it’s safe to go hiking in the Adirondacks today, you should check the current weather conditions, trail advisories, and any local alerts (such as bear activity or flooding).

Would you like a detailed weather forecast or information on trial conditions for the Adirondacks today?

To improve the response, you can connect MCP servers to your flow that provide specialized tools for the agent to use when generating responses. In the next part of this tutorial, you’ll connect an MCP server that provides the agent with real-time weather information so that it can generate a more specific response.

Add an MCP Tools component

There are many MCP servers available online that offer different tools for different tasks. To use an MCP server with an MCP client, you must make the server available to the client. With all MCP clients, there are several ways to do this:

a. Install the server locally.
b. Use uvx or npx to fetch and run a server package.
c. Call a server running remotely, like those available on Smithery.

This tutorial demonstrates how to install a weather server locally with uv pip install, and how to use npx to run the geolocation server package. Your MCP server’s requirements may vary.

In Robility flow , you use the MCP Tools component to connect a specific MCP server to a flow. You need one MCP Tools component for each MCP server that you want your flow to use.

1. For this tutorial, install a weather MCP server on your local machine with uv and Python:

uv pip install mcp_weather_server

Make sure you install the server in the same Python environment where Robility flow is running:

a. Robility flow in a virtual environment: Activate the environment before installing the server.
b. Robility flow Docker image: Install the server inside the Docker container.
c. Robility flow Desktop or system-wide Robility flow OSS: Install the server globally or in the same user environment where you run Robility flow.

2. In your Simple Agent flow, remove the URL and Calculator tools, and then add an MCP Tools component. 
3. Click the MCP Tools component, and then click Add MCP Server.
4. In the Add MCP Server pane, provide the server startup command and arguments to connect the weather MCP server to your flow. For this tutorial, use either the JSON or STDIO option.

Robility flow runs the command to launch the server when the agent determines that it needs to use a tool provided by that server.

Notice that both configurations provide the same information but in different formats. This means that if your MCP server repository only provides a JSON file for the server, you can still use those values with the STDIO option.

JSON

To provide the MCP server configuration as a JSON object, select JSON, and then paste the server configuration into the JSON field:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": [
        "-m",
        "mcp_weather_server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

STDIO

To provide the MCP server configuration in a GUI format, select STDIO, and then enter the MCP server configuration values into the given fields:

Name: weather 
Command: python
Arguments:
 -m
mcp_weather_server

5. Click Add Server and then wait for the Actions list to populate. This means that the MCP server is successfully connected.

With this weather server, the MCP Tools component also adds an optional City field. For this tutorial, don’t enter anything in this field. Instead, you will add a geolocation MCP server in the next step, which the agent will use to detect your location.

6. Click the MCP Tools component, enable Tool Mode in the component’s header menu, and then connect the component’s Toolset port to the Agent component’s Tools port.

At this point your flow has four connected components:

a. The Chat Input component is connected to the Agent component’s Input port. This allows users to flow to be triggered by an incoming prompt from a user or application. 
b. The MCP Tools component with the weather MCP server is connected to the Agent component’s Tools port. The agent may not use this server for every request; the agent only uses this connection if it decides the server can help respond to the prompt. 
c. The Agent component’s Output port is connected to the Chat Output component, which returns the final response to the user or application.

7. To test the weather MCP server, click Playground, and then ask the LLM Is it safe to go hiking in the Adirondacks today?

The Playground shows you the agent’s logic as it analyzes the request and selects tools to use.

Ideally, the agent’s response will be more specific than the previous response because of the additional context provided by the weather MCP server. For example:

The current weather in Lake Placid, a central location in the Adirondacks,

is foggy with a temperature of 17.2°C (about 63°F).

If you plan to go hiking today, be cautious as fog can reduce visibility

on trails and make navigation more difficult.

This is a better response, but what makes this MCP server more valuable than just calling a weather API?

First, MCP servers are often customized for specific tasks, such as highly specialized actions or chained tools for complex, multi-step problem solving. Typically, you would have to write a custom script for a specific task, possibly including multiple API calls in a single script, and then you would have to either execute this script outside the context of the agent or provide it to your agent in some way.

Instead, the MCP ensures that all MCP servers are added to agents in the same way, without having to know each server’s specific endpoint structures or write custom integrations. The MCP is a standardized way to integrate many diverse tools into agentic applications. You don’t have to learn a new API or write custom code every time you want to use a new MCP server.

Additionally, you can attach many MCP servers to one agent, depending on the problems you want your application to solve. The more servers you add, the more specialized context the agent can use in its responses. In this tutorial, adding the weather MCP server already improved the quality of the LLM’s response. In the next section of the tutorial, you will add an ip_geolocation MCP server so the agent can detect the user’s location if they don’t specify a location in their prompt.

Add a geolocation server

The Toolkit MCP server includes multiple MCP tools for network monitoring, including IP geolocation. It isn’t extremely precise, but it doesn’t require an API key.

Note that this tool returns the IP geolocation of your Robility flow server, so if your server is deployed remotely, consider alternative approaches for getting user-specific location data, such as browser geolocation APIs.

This MCP server can be started with one npx command, which downloads and runs the Toolkit MCP server Node registry package without installing the package locally.

To add the Toolkip MCP server to your flow, do the following:

1. Add another MCP Tools component to your flow, click the component, and then click Add MCP Server.
2. Select STDIO.
3. For Name, enter ip_geolocation.

Points to note

The tool name and description help the agent select tools. If your agent is struggling to select tools, make sure the names and descriptions are clear and human readable.

4. For Command, enter npx@cyanheads/toolkit-mcp-server. 
5. Click Add Server and then wait for the Actions list to populate. This means that the MCP server is successfully connected. 
6. Click the MCP Tools component, enable Tool Mode in the component’s header menu, and then connect the component’s Toolset port to the Agent component’s Tools port.

Your flow now has an additional MCP Tools component for a total of five components.

Create a Python application that connects to Robility flow

At this point, you can open the Playground and ask about the weather in your current location to test the IP geolocation tool. However, geolocation tools are most useful in applications where you or your users want to ask about the weather from different places around the world.

In the last part of this tutorial, you’ll learn how to use the Robility flow API to run a flow in a script. This could be part of a larger application, such as a mobile app where users want to know if the weather is good for a particular sport.

When you use the Robility flow API to run a flow, you can change some aspects of the flow without changing the code. For example, you can add more MCP servers to your flow in Robility flow and then use the same script to run the flow. You can use the same input or a new input that prompts the agent to use other tools.

1. For this tutorial’s Python script, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a Python file, and then replace the placeholders with the information you gathered in the previous step:

import requests
import os

url = "ROBILITY_FLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID"  # The complete API endpoint URL for this flow

# Request payload configuration

payload = {
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "What's the weather like where I am right now?"
}

# Request headers

headers = {
    "Content-Type": "application/json",
    "x-api-key": "ROBILITY_FLOW_API_KEY"
}

try:
    # Send API request

    response = requests.request("POST", url, json=payload, headers=headers)
    response.raise_for_status()  # Raise exception for bad status codes

    # Parse and print only the message text

    data = response.json()
    message = data["outputs"][0]["outputs"][0]["results"]["message"]["text"]

    print(message)

except requests.exceptions.RequestException as e:
    print(f"Error making API request: {e}")

except ValueError as e:
    print(f"Error parsing response: {e}")

except (KeyError, IndexError) as e:
    print(f"Error extracting message from response: {e}")

Notice that this script uses a different prompt than the previous Playground examples. In this script, the input_value asks about the weather in the user’s current location without providing any hints about the user’s location, such as a particular city.

Additionally, this script includes parsing code to extract the LLM’s reply from the entire Robility flow API response. You will want to use similar extraction in your own applications because the Robility flow  API response includes metadata and other information that isn’t relevant to the reply passed to the user.

3. Save and run the script to send the request and test the flow.

The agent uses the ip_geolocation tool to detect the requester’s location, and then it uses the weather tool to retrieve weather information for that location. For example:

The weather in Waynesboro, Pennsylvania, is currently overcast with a temperature of 23.0°C (about 73.4°F).

If you need more details or have any other questions, feel free to ask!

Remember, the ip_geolocation tool used in this tutorial uses your Robility flow server’s location, which can be different from your actual location. 

Next steps

To continue building on the concepts introduced in this tutorial, see the following:

1. Use Robility flow as an MCP client
2.
Use Robility flow Agents
3. Use Robility flow as an MCP server

Quick Start

Begin using Robility Flow by loading a template, running a flow, and serving it via the /run API endpoint.

Prerequisites

Before you start, ensure you have the following:

a. An OpenAI API key

b. Create a Robility flow API key

The Robility API key is a project specific token that you can use within Robility Flow. 

To create Robility flow API key, do the following:

1. Publish your flow to the Robility Manager. 
2. Navigate to the project in the Robility Manager. 
3. Go to the “Workflows” page. 
4. It will list the flows published against the Manager and choose your respective flow. 
5. Click on “Generate API Key” and choose the published version of the flow. 
6. Once the key is generated, click on “History” button and you can view the API key generated against each version of the flow published. 
7. Copy the API key and store it securely.

To use your Robility flow API key in a request, set a ROBILITYFLOW_API_KEY environment variable, and then include an x-api-key header or query parameter with your request. For example:

# Set variable
export ROBILITYFLOW_API_KEY="sk..."

# Send request
curl --request POST \
  --url "http://ROBILITYFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" \
  --header "Content-Type: application/json" \
  --header "x-api-key: $ROBILITYFLOW_API_KEY" \
  --data '{
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "Hello"
  }'

Run the Simple Agent Template Flow

To quickly test a flow:

1. In Robility Flow, click New Flow.
2. Select the Simple Agent template from the list.

You can now configure, run, and serve the flow using the /run API endpoint.

The Simple Agent flow includes an Agent component connected to Chat I/O components, a Calculator tool, and a URL tool. When you run the flow, it processes user input from the Chat Input, invokes the appropriate tool (Calculator or URL), and returns the result via Chat Output.

1. User Input is submitted through the Chat Input
2. The Agent analyzes the query and decides which tool(s) to invoke:
a. For math-related questions, it uses the Calculator tool.
b. For current events or external content, it calls the URL tool to fetch data.

3. The response is displayed through the Chat Output
4. Agents can also use other tools, such as Model Context Protocol (MCP) servers, depending on flow configuration and context.
5. In the Agent component settings, locate the OpenAI API Key
6. Enter your key directly or click the Globe icon to create a global variable.

Note: This example uses OpenAI. You can change the provider and model by updating the Model Provider and Model Name fields and supplying the relevant credentials.

Run and Test the Flow

1. Click Playground to open the test environment.
2. To test the Calculator: Ask a math question (e.g., “I want to add 4 and 4”). The Agent will call the Calculator tool using the evaluate_expression action.
3. To test the URL tool: Ask a current events question (e.g., “What’s the latest news?”). The Agent will call the fetch_content action and summarize the fetched content.
4. Click Close once you’re done testing.

What’s Next

Now that you’ve successfully run your first flow, you can:

a. Customize the Simple Agent flow by adding new tools or components.
b. Build a flow from scratch or explore other templates.
c. Integrate Robility flows with external apps via the Robility Flow API.

Running Flows from External Applications

Robility Flow functions both as an IDE and a runtime server. You can call through the Robility flow API using Python, JavaScript, or HTTP (cURL).

To test locally, send requests to your local server. For production, deploy a persistent instance of Robility Flow.

Access API Snippets

1. In the Playground, click Share, then API Access.
2. You’ll find code snippets for:

a. Python
b. JavaScript
c. cURL

These snippets are pre-filled with:

a. Your server URL
b. Flow ID
c. A sample payload
d. Your Robility Flow API key (if defined as an environment variable)

Sample Python Snippet


import requests

url = "http://ROBILITY_SERVER_ADDRESS/api/v1/run/FLOW_ID"  # The complete API endpoint URL for this flow

payload = {
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "hello world!"
}

headers = {
    "Content-Type": "application/json",
    "x-api-key": "$ROBILITY_API_KEY"
}

try:
    response = requests.request("POST", url, json=payload, headers=headers)
    response.raise_for_status()  # Raise exception for bad status codes

    print(response.text)  # Print response

except requests.exceptions.RequestException as e:
    print(f"Error making API request: {e}")
except ValueError as e:
    print(f"Error parsing response: {e}")

Run the script to test your flow. If using cURL, you can execute the command directly in your terminal.
Sample API Response
A successful response includes:
a. session_id
b. Inputs and outputs
c. Components used
d. Durations
e. and more
In production, extract only relevant parts of the response for your application, such as displaying the final output or storing logs.

Extract data from the response

The following example builds on the API pane’s example code to create a question-and-answer chat in your terminal that stores the agent’s previous answer.

1. Incorporate your Simple Agentflow’s /run snippet into the following script. This script runs a question-and-answer chat in your terminal and stores the agent’s previous answer so you can compare them.
Example: Python Script
python

import requests

url = "http://ROBILITY_SERVER_ADDRESS/api/v1/run/FLOW_ID" # The complete API endpoint URL for this flow

payload = {
  "output_type": "chat",
  "input_type": "chat",
  "input_value": "hello world!"
}

headers = {
  "Content-Type": "application/json",
  "x-api-key": "$ROBILITY_API_KEY"
}

try:
  response = requests.request("POST", url, json=payload, headers=headers)
  response.raise_for_status() # Raise exception for bad status codes

  print(response.text) # Print response

except requests.exceptions.RequestException as e:
  print(f"Error making API request: {e}")
except ValueError as e:
  print(f"Error parsing response: {e}")

To view the agent’s previous answer, type compare. To close the terminal chat, type exit.

Use Tweaks to Override Flow Parameters

You can include tweaks with your requests to temporarily modify flow parameters. Tweaks are added to the API request and temporarily change component parameters within your flow. Tweaks override the flow’s components’ settings for a single run only. They don’t modify the underlying flow configuration or persist between runs.

Tweaks are added to the /run endpoint’s payload. To assist with formatting, you can define tweaks in Robility flow’s Input Schema pane before copying the code snippet.

1. To open the Input Schema pane, from the API access pane, click Input Schema.
2. In the Input Schema pane, select the parameter you want to modify in your next request. Enabling parameters in the Input Schema pane doesn’t permanently change the listed parameters. It only adds them to the sample code snippets.
3. For example, to change the LLM provider from OpenAI to Groq, and include your Groq API key with the request, select the values Model Providers, Model, and Groq API Key. Robility flow updates the tweaks object in the code snippets based on your input parameters and includes default values to guide you. Use the updated code snippets in your script to run your flow with your overrides.

Example Payload with Tweaks

{
  "output_type": "chat",
  "input_type": "chat",
  "input_value": "hello world!",
  "tweaks": {
    "Agent-ZOknz": {
      "agent_llm": "Groq",
      "api_key": "GROQ_API_KEY",
      "model_name": "llama-3.1-8b-instant"
    }
  }
}

Note: Tweaks apply only to the current execution—they do not alter the original flow configuration.

Create a vector RAG chatbot

This tutorial demonstrates how you can use Robility flow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database and then chat with the data.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key
c.
Install the Robility flow JavaScript client 
d. Be familiar with vector search concepts and applications, such as vector databases and RAG.

Create a vector RAG flow

1. In Robility flow, click New Flow, and then select the Vector Store RAG template.

About the Vector Store RAG template:

This template has two flows.

The Load Data Flow populates a vector store with data from a file. This data is used to respond to queries submitted to the Retriever Flow.

Specifically, the Load Data Flow ingests data from a local file, splits the data into chunks, loads and indexes the data in your vector database, and then computes embeddings for the chunks. The embeddings are also stored with the loaded data. This flow only needs to run when you need to load data into your vector database.

The Retriever Flow receives chat input, generates an embedding for the input, and then uses several components to reconstruct chunks into text and generate a response by comparing the new embedding to the stored embeddings to find similar data.

2. Add your OpenAI API key to OpenAI Embeddings components. 
3. Optional: Replace both Astra DB vector store components with a Chroma DB or another Vector Store component of your choice. This tutorial uses Chroma DB.

The Load Data Flow should have FileSplit TextEmbedding Model, vector store (such as Chroma DB), and Chat Output components:

The Retriever Flow should have Chat InputEmbedding Model, vector store, ParserPromptLanguage Model, and Chat Output components:

The flows are ready to use. Continue the tutorial to learn how to use the loading flow to load data into your vector store and then call the chat flow in a chatbot application.

Load data and generate embeddings

To load data and generate embeddings, you can use the visual editor or the /v2/files endpoint.

The visual editor option is simpler, but it is only recommended for scenarios where the user who created the flow is the same user who loads data into the database.

In situations where many users load data or you need to load data programmatically, use the Robility flow API option.

a. Visual editor

b. Robility flow API

1. In your RAG chatbot flow, click the File component, and then click File.
2. Select the local file you want to upload, and then click Open. The file is loaded to your Robility flow server.
3. To load the data into your vector store, click the Vector Store component, and then click Run component to run the selected component and all prior dependent components.

When the flow runs, the flow ingests the selected file, chunks the data, loads the data into the vector store database, and then generates embeddings for the chunks, which are also stored in the vector store.

Your database now contains data with vector embeddings that an LLM can use as context to respond to queries, as demonstrated in the next section of the tutorial.

Chat with your flow from a JavaScript application

To chat with the data in your vector database, create a chatbot application that runs the Retriever Flow programmatically.

This tutorial uses JavaScript for demonstration purposes.

1. To construct the chatbot, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file, and then replace the placeholders with the information you gathered in the previous step:

const readline = require('readline');

const { Robility flow Client } = require('@datastax/Robility flow-client');

const API_KEY = 'ROBILITY FLOW_API_KEY';

const SERVER = 'ROBILITY FLOW_SERVER_ADDRESS';

const FLOW_ID = 'FLOW_ID';

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// Initialize the Robility flow client

const client = new Robility flow Client({
  baseUrl: SERVER,
  apiKey: API_KEY
});

async function sendMessage(message) {
  try {
    const response = await client.flow(FLOW_ID).run(message, {
      session_id: 'user_1'
    });

    // Use the convenience method to get the chat output text

    return response.chatOutputText() || 'No response';

  } catch (error) {
    return `Error: ${error.message}`;
  }
}

function chat() {
  console.log('🤖 Robility flow RAG Chatbot (type "quit" to exit)\n');

  const ask = () => {
    rl.question('👤 You: ', async (input) => {

      if (['quit', 'exit', 'bye'].includes(input.trim().toLowerCase())) {
        console.log('👋 Goodbye!');
        rl.close();
        return;
      }

      const response = await sendMessage(input.trim());

      console.log(`🤖 Assistant: ${response}\n`);

      ask();
    });
  };

  ask();
}

chat();

The script creates a Node.js application that chats with the content in your vector database using the chat input and output types to communicate with your flow. The chat mode maintains conversation context across multiple messages, enabling a continuous interaction. If you use text input and output types instead, each request is processed as an independent text string without preserving conversation context.

3. Save and run the script to send the requests and test the flow.

Result

The following is an example response from this tutorial’s flow. Due to the nature of LLMs and variations in your inputs, your response might be different.

👤 You: Do you have any documents about engines?

🤖 Assistant: Yes, the provided text contains several warnings and guidelines related to engine installation, maintenance, and selection. It emphasizes the importance of using the correct engine for specific applications, ensuring all components are in good condition, and following safety precautions to prevent fire or explosion. If you need more specific information or details, please let me know!

👤 You: It should be about a Briggs and Stratton engine.

🤖 Assistant: The text provides important safety and installation guidelines for Briggs & Stratton engines. It emphasizes that these engines should not be used on 3-wheel All-Terrain Vehicles (ATVs), motor bikes, aircraft products, or vehicles intended for competitive events, as such uses are not approved by Briggs & Stratton.

If you have any specific questions about Briggs & Stratton engines or need further information, feel free to ask!

Release Notes

v.1.4.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.4.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.3.9

This release includes an enhancement to the Merge Datatable activity under the Datatable Automation feature.

Behavior Improvements

  • When MissingSchemaAction is set to Error, the activity throws an error only if SkipOnError is set to False.
  • When SkipOnError is set to True, errors are skipped and the workflow continues without interruption.

v.1.3.7

In this release, new activities have been added to Datatable Automation to improve data comparison, modification, and text manipulation within DataTables, enabling more efficient and controlled data handling in workflows.

New Activities

1. Compare DatatableAllows users to compare two DataTables and identify differences based on defined matching criteria. 

2. Update Row ItemEnables users to update specific column values within a DataTable row that matches the given conditions. This simplifies in-place data updates without the need for complex looping or manual row handling.

3. Find and Replace in DatatableAllows users to search for a specific value or pattern within a DataTable and replace it with a new value. This activity is useful for data cleansing, standardization, and bulk text updates across rows and columns.

v.1.2.8

In this release, new activities have been introduced under the Datatable Automation feature to simplify workflow creation and enhance flexibility.

New Activities

1. Generate DataTable From Text: Allows users to create a DataTable at runtime from structured text input such as CSV or delimited data, enabling quick and dynamic data generation within workflows.

2. Lookup DataTable: Enables users to search for a specific value in a DataTable and retrieve the corresponding value from another column in the same row, simplifying data lookup operations.

3. Build DataTable: Used to design and configure a DataTable with defined columns and optional rows during design time using an interactive DataTable Wizard.

Release Notes

v.1.0.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

Articles

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

Release Notes

v.1.0.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

Release Notes

v.1.0.5

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.4.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.4

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.3.3

In this release, we have introduced a new activity:

New Activities

Build Collection – It creates and initializes a collection such as an array, integer, or string within a workflow. It ensures that all items in the collection share the same data type as the first specified element, maintaining consistency across values.

Released Date: 25/03/2026

Robility Manager

This section outlines the server infrastructure, operating system, software, and access requirements necessary for the successful installation and operation of Robility Manager. These prerequisites must be validated and available before deployment activities commence to ensure a stable, secure, and supported platform environment. 

Operating System & Platform

1. Server Type: Windows Server – on-premises physical, virtual machine, or cloud VM.
2. Operating System: Windows Server 2022 and above Newer LTS releases are acceptable provided they support .NET Framework 4.8.1 + and IIS 7.5+.
3. File System Access: Administrative rights to create custom folders for web binaries, log archives, and configuration files.

Required Software Stack 

Component Minimum Version Notes
.NET Core 8.0 and above Required for hosting applications using the ASP.NET Core hosting model.
Internet Information Services (IIS) 7.5 IIS role and required features must be installed and configured as described in Section 3.5.
Microsoft SQL Server 2019 The service account used for installation must have permissions to create and manage databases.
SSL Certificate TLS 1.2+ Certificate should be issued by a trusted Certificate Authority (CA) or a valid self-signed certificate for non-production environments.

Hardware Sizing – Pilot

This section outlines the recommended hardware configuration for Pilot, Proof-of-Concept (POC), or limited-scale deployments of the Robility Platform. The following minimum topology is recommended:

Module Unit Description
Server Module 1 Server Hosts the Robility Platform web modules, including RobilityManager, RobilityService, and the platform log file storage location.
Server Module 1 Server Hosts the Microsoft SQL Server database engine. For pilot or small-scale deployments, a shared SQL Server instance may be used.

Hardware Sizing – Production

This section provides the recommended infrastructure sizing for production deployments of the Robility Platform. Resource requirements may vary based on the number of active robots, concurrent workflow executions, transaction volumes, data retention policies, and overall platform utilization. The sizing recommendations below represent the minimum baseline for a production environment and should be scaled appropriately as the deployment grows.

Component CPU Memory (RAM) Storage
Robility Manager Web Tier 8 vCPU 32 GB 250 GB SSD
Robility SQL Database Tier 8 vCPU 64 GB 512 GB SSD

IIS Roles & Features

Robility Manager is hosted on Microsoft Internet Information Services (IIS). Prior to installation, the required IIS Server Roles and Features must be enabled on the target Windows Server to support application hosting, authentication, secure communications, and administration.

The following IIS components should be installed and configured:

Common HTTP Features

These features enable the web server to serve application content and handle standard HTTP requests.

a. Default Document
b. HTTP Errors
c. Static Content

Security

These security components support authentication, authorization, SSL/TLS communication, and access control.

a. Request Filtering
b. Basic Authentication
c. Centralized SSL Certificate Support
d. Client Certificate Mapping Authentication
e. IP and Domain Restrictions
f. URL Authorization
g. Windows Authentication

Management Tools

These tools provide administrative capabilities for managing and maintaining IIS.

a. IIS Management Console
b. IIS Management Scripts and Tools (Optional)

Additional Recommendations

1. Configure HTTPS using a valid SSL/TLS certificate issued by a trusted Certificate Authority (CA).
2. Ensure the IIS Application Pool identity has the necessary permissions to access application files, logs, and configuration directories.
3. Enable IIS logging for troubleshooting, auditing, and operational monitoring.
4. Apply the latest Windows Server and IIS security updates before deployment.

Note: All required IIS roles and features should be installed and verified before commencing the Robility Manager installation process.

Database Prerequisites

1. SQL Server Edition: Standard or Enterprise, version 2019 or higher.
2. Database: An empty database named ‘Robility’ to be pre-created.
3. Service Account: Dedicated SQL login with database creation, db_owner, and DDL permissions.

Information to be collected and shared with the Robility Support team:

a. Server name / instance
b. Database name
c. User ID (must have database create permission)
d. Password 

Networking, DNS & SSL

1. Domain Name: A fully qualified domain such as ‘Robility.companyname.com’ to be registered in the customer DNS server, pointing to the IIS web server.
2. SSL Certificate: A trusted CA-issued certificate (preferred) or a self-signed certificate bound to the FQDN in IIS for HTTPS communication.
3. Inbound Ports: 443 (HTTPS) open from all Designer and Runner endpoints to the Manager server. Port 80 may remain open during initial validation only.
4. Outbound Ports: 443 from Manager to Blob Storage, license server, and CDN endpoints (see Section 6).

Mail Server

RobilityManager triggers notifications, password resets, and workflow alerts via SMTP. The mail relay must support modern authentication (OAuth 2.0 / token-based). Provide:

1. SMTP host and port
2. Authentication type and credentials / app password
3. From-address (e.g., noreply-robility@companyname.com) provisioned in the mail tenant

Storage

RobilityManager uses Storage for platform files, features, and uploads. Provision a storage account and provide:

1. Azure
2. AWS
3. GCP or DB

Storage Allocation for RobilityManager

Asset Size Comments
Core Binaries 2500 MB – 2750 MB Web application binaries deployed on the IIS server, including all platform components and supporting libraries required for execution.
Log Files 300 MB Max (30 Files) Log files are limited to a maximum size of 10 MB per file per day. Older log files are automatically archived and purged using a FIFO (First-In, First-Out) retention policy to control storage utilization.

End-User Browser Requirements

RobilityManager web console is supported on the following browsers from any user machine that needs portal access:

1. Microsoft Edge – latest and stable
2. Google Chrome – latest and stable
3. Internet Explorer 11 (for legacy compatibility)

Security, Identity & Account Requirements

1. Service Accounts: Pre-provisioned service accounts for IIS application pool, SQL Server connection, and Runner robot logon. Document each account with intended scope and rotation policy.
2. Firewall Rules: Approved inbound 443 from Designer/Runner subnets to Manager; outbound 443 from Manager and all clients to Azure CDN and Sutherland endpoints (Section 6).
3. Endpoint Protection: Antivirus / EDR exclusions configured for the Robility install paths, log folders, and binaries on Manager, Designer, and Runner machines. Coordinate with the Infosec team for the exclusion list.
4. Group Policy: Ensure that GPOs do not block .NET Framework, IIS WCF activation, or unattended logon required by Runner.
5. SSL / TLS: TLS 1.2 enabled on the OS; legacy TLS 1.0/1.1 may be disabled per customer security baseline.

Licensing

1. Customer ID and Password: Issued by Sutherland for license activation against the Robility license server.
2. License Activation: Performed post-installation through the Manager web console; the Manager server must have outbound HTTPS access to https://licenseserver.sutherlandglobal.com.
3. Initial Admin Sign-up: After license activation, the first administrator user is created through the Sign-up flow on the Manager portal. 

URL Whitelisting

The following URLs must be allow-listed at the proxy, firewall, and endpoint protection layers from both the Manager server and all client machines. These endpoints handle license validation, feature downloads, and product updates.

1. Robility Hub: https://robility.sutherlandglobal.com/Robilityrepository  
2. License App: https://licenseserver.sutherlandglobal.com
3. Document Portal: https://docs.robility.ai/

Azure Deployment Pre-requisites

This document outlines the infrastructure, platform services, and Azure resources required to successfully deploy and operate Robility Manager in a Microsoft Azure environment. It lists the mandatory Azure components, their purpose, and their role in supporting the application’s hosting, data storage, security, and operational requirements, ensuring a secure, scalable, and highly available deployment.

Required Components

Component Description
Azure Subscription Required to provision, deploy, and manage all Azure resources associated with the Robility Manager deployment.
Resource Group A logical container used to organize and manage all Azure resources related to the application deployment.
Azure App Service Plan Defines the compute resources, including CPU, memory, storage, and scaling capabilities, allocated to the Azure App Service hosting the application.
Azure App Service A fully managed Platform-as-a-Service (PaaS) offering used to host and run the ASP.NET Core web application with built-in load balancing, automatic scaling, and high availability.
Azure SQL Managed Instance (MI) A fully managed SQL Server database service used to securely store application data, configuration, and transactional information with built-in high availability, automated backups, and disaster recovery capabilities.
Azure Blob Storage A scalable object storage service used to store workflows, application files, reports, documents, logs, backups, and other unstructured data.
Azure Key Vault A secure secrets management service used to store and protect sensitive information such as database connection strings, API keys, certificates, encryption keys, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

AWS Deployment Prerequisites

This document outlines the infrastructure, platform services, and AWS resources required to successfully deploy and operate Robility Manager in an Amazon Web Services (AWS) environment. 

Required Components

Component Notes
AWS Account Required to provision, deploy, and manage all AWS resources associated with the application.
Elastic Beanstalk Environment A managed application hosting environment used to deploy, run, monitor, and automatically scale the .NET web application.
Supported .NET Runtime The appropriate .NET runtime version required by the application must be installed and configured in the Elastic Beanstalk environment (.NET 8.0 or later).
Amazon RDS (SQL Server) A fully managed relational database service used to store application data, configuration, and transaction data with automated backups, high availability, and disaster recovery options.
Amazon S3 A scalable object storage service used to store application files, documents, reports, images, logs, backups, and other unstructured data.
AWS Secrets Manager A secure secrets management service used to store and manage sensitive information such as database credentials, API keys, connection strings, certificates, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

GCP Deployment Prerequisites

This document outlines the infrastructure, platform services, and Google Cloud Platform (GCP) resources required to successfully deploy and operate Robility Manager in a GCP environment. 

Required Components

Component Notes
GCP Project Required to organize, deploy, and manage all Google Cloud resources associated with the application.
App Engine Flexible Environment A fully managed application hosting platform used to deploy, run, and automatically scale the .NET web application with configurable compute resources. The App Engine Flexible Environment must be enabled for the GCP project.
Supported .NET Runtime The appropriate .NET runtime version required by the application must be available and configured in the App Engine Flexible Environment (.NET 8.0 or later).
Cloud SQL A fully managed relational database service (SQL Server) used to securely store application data, configuration, and transaction data with automated backups and high availability.
Cloud Storage A scalable object storage service used to store application files, documents, reports, images, logs, backups, and other unstructured data.
Secret Manager A secure secrets management service used to store and manage sensitive information such as database credentials, API keys, certificates, encryption keys, connection strings, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

Kubernetes Cluster Prerequisites

This section outlines the Kubernetes infrastructure requirements necessary for deploying and operating Robility Flow in a containerized environment. Robility Flow is designed to run on industry-standard Kubernetes platforms, enabling scalability, high availability, workload isolation, and simplified application lifecycle management. Prior to deployment, the Kubernetes cluster must meet the following version, sizing, storage, and operating system requirements.

Supported Kubernetes Distributions

Robility Flow has been validated and certified on the following Kubernetes distributions. The minimum supported Kubernetes version is 1.27

1. Amazon Elastic Kubernetes Service (EKS) – 1.27 or higher
2. Azure Kubernetes Service (AKS) – 1.27 or higher
3. Google Kubernetes Engine (GKE) – Standard or Autopilot, 1.27 or higher

Pilot / Proof-of-Concept (PoC) Sizing

For pilot, evaluation, and proof-of-concept deployments, a small Kubernetes cluster is sufficient to host Robility Flow services and perform functional validation. A single-node cluster may be used for demonstration purposes; however, a two-node cluster is recommended to provide better resource availability and operational flexibility.

1. Worker nodes: 2 nodes, each with 8 vCPU and 32 GB RAM
2. Storage: 1 storage class backed by SSD-class persistent volumes (minimum 250 GB provisioned)
3. Operating system: Linux (Ubuntu 22.04 LTS, RHEL 9, or Amazon Linux 2023 recommended)

Kubernetes resource requests by service.

Service Replicas (Min → Max) CPU Request Memory Request Notes
RobilityFlow Designer 1 → 3 2 vCPU 4 GB Stateless service and eligible for Horizontal Pod Autoscaling (HPA).
RobilityFlow Runtime 2 → 10 4 vCPU 8 GB Supports Horizontal Pod Autoscaling based on CPU utilization and queue depth.
PostgreSQL 1 Primary + 1 Replica 4 vCPU 8 GB Deployed as a StatefulSet with Persistent Volume Claims (PVC) of 100 GB or higher.
Redis 1 (or 3-Node Cluster) 1 vCPU 2 GB Requires a 10 GB PVC when AOF (Append Only File) persistence is enabled.
Ingress Controller 2 0.5 vCPU 256 MB Configured with anti-affinity rules to ensure replicas are distributed across different nodes for high availability.

Production Sizing 

Production deployments should target a minimum of 3 worker nodes spread across availability zones. Horizontal Pod Autoscaler (HPA) is pre-configured for the Runtime and Designer deployments.

Service Replicas CPU Limit Memory Limit Notes
RobilityFlow Designer 3 2 vCPU 4 GB CDN-cached static assets recommended.
RobilityFlow Runtime 4 – 20 (HPA) 4 vCPU 8 GB Scale on CPU utilization ≥ 70% or based on queue depth.
PostgreSQL (Primary) 1 8 vCPU 32 GB PVC 500 GB SSD; enable WAL archiving for backup and recovery.
PostgreSQL (Replica) 1 – 2 4 vCPU 16 GB Read replica used for reporting and analytical queries.
Redis 3-Node Cluster 2 vCPU 4 GB Cluster mode with AOF persistence and RDB snapshots enabled.
Ingress Controller 3 1 vCPU 512 MB Replicas should be distributed across availability zones for high availability.

Cluster autoscaler or Karpenter (AWS) is recommended for production so that Runtime pods can scale out automatically during peak flow execution periods.

Persistent Storage Classes

At least one Kubernetes StorageClass backed by a block-storage provider must be available and set as default. Required characteristics:

1. Access mode: ReadWriteOnce (RWO) for PostgreSQL and Redis PersistentVolumeClaims
2. Reclaim policy: Retain (recommended for stateful workloads)
3. Volume type: SSD-backed (gp3 on AWS, Premium_LRS on Azure, pd-ssd on GCP)
4. Dynamic provisioning: Enabled via a CSI driver (EBS CSI, Azure Disk CSI, GCP PD CSI)

Container Image Registry

RobilityFlow platform images are distributed through the Robility Hub registry. The cluster must be able to pull images from this registry, or images must be mirrored to a customer-managed OCI registry.

1. Robility Hub registry: https://robilityai.azurecr.io
2. Image pull secrets must be configured in the robilityflow Kubernetes namespace
3. If using a private mirror, ensure images are synced before installation and on each platform update

v.2.3.2

In this release, the following bug has been fixed:

Bug Fix

Addressed an issue where the BringToFront activity did not bring the expected Chrome browser session to the foreground when multiple sessions (Chrome 1, 2, and 3) were selected.

Limitation

1. Multiple windows required. To use this activity, use separate Chrome windows or separate desktop instances (e.g. Chrome 1, Chrome 2, Chrome 3), not multiple tabs within the same window.
2. Tabs are not supported. BringToFront works only in separate Windows and desktop sessions. It is not supported within tabs of a single window or desktop session.

Released Date: 16/04/2026

Home

The Builder Assistant is a conversational interface for creating and configuring platform components such as Agents, Policies, and Compliance Groups. It guides users through the required configuration steps, validates selections, and generates the required artifacts.

The Builder Assistant is available from the Home page.

Capabilities

  • Creating Agents
  • Creating Policies
  • Creating Compliance Groups
  • Framework selection
  • Tool selection
  • Compliance group assignment
  • Policy recommendations
  • Configuration review before creation
  • Downloadable agent packages
  • Thread-based workflow management

Starting a New Thread

To begin:

  1. Navigate to Home.
  2. Click New Thread.
  3. Select the component to create.

Available Options

  • Agent
  • Policy
  • Compliance
  • Other
Note: Only one component can be created within a thread. Complete the current workflow before starting another.
Get Started: Begin creating your agent by following the steps in Creating an Agent .

Create Agent

The Agent Creation workflow allows users to create and configure agents through the Builder Assistant. The assistant guides users through defining the agent purpose, configuring required settings, reviewing the configuration, and generating the agent package.

Agent Creation Workflow

The workflow consists of the following steps:

  1. Define the Agent Purpose
  2. Configure the Agent
  3. Review Configuration
  4. Create Agent
  5. Generated Output
Step 1 – Define the Agent Purpose

Provide a short description of the business objective for the agent.

Example: Automate customer interactions to improve response time and customer satisfaction.

The description should focus on the business outcome rather than implementation details.

Step 2 – Configure the Agent

Configure the required settings for the agent.

Framework

Select the framework used to build the agent.

Supported frameworks include:

  • Google ADK
  • LangChain
  • CrewAI
  • Strands

Tools (Optional)

Select one or more platform tools to extend the agent's capabilities.

  • Multiple tools can be selected.
  • Available tools may vary based on the selected framework.

Compliance Groups (Optional)

Select one or more compliance groups applicable to the agent.

Examples include:

  • HIPAA
  • SOC 2

Policy Recommendations (Optional)

When a compliance group is selected, the Builder Assistant displays recommended policies associated with the selected compliance framework.

Review the recommendations before proceeding.

Step 3 – Review Configuration

Before creating the agent, review the generated configuration summary.

The summary includes:

  • Framework
  • Selected tools
  • Compliance groups
  • Applied policies

Modify the configuration if required, then select Create.

Step 4 – Create Agent

After reviewing the configuration, create the agent using the Builder Assistant.

The system processes the selected configuration and generates the required agent artifacts.

Step 5 – Generated Output

After the agent is created, the Builder Assistant generates a downloadable ZIP package containing:

  • Generated agent source code
  • Configuration files

The generated files can be integrated into the application and deployed.

The following animation demonstrates the steps involved in this process.

Create Agent workflow demonstration

Best Practices

  • Define the business objective before creating an agent.
  • Select only the tools required for the solution.
  • Apply the appropriate compliance groups.
  • Review recommended policies before creating the agent.
  • Validate the configuration before generating the agent package.

Create Agent

The Agent Creation workflow allows users to create and configure agents through the Builder Assistant. The assistant guides users through defining the agent purpose, configuring required settings, reviewing the configuration, and generating the agent package.

Agent Creation Workflow

The workflow consists of the following steps:

  1. Define the Agent Purpose
  2. Configure the Agent
  3. Review Configuration
  4. Create Agent
  5. Generated Output
Step 1 – Define the Agent Purpose

Provide a short description of the business objective for the agent.

Example: Automate customer interactions to improve response time and customer satisfaction.

The description should focus on the business outcome rather than implementation details.

Step 2 – Configure the Agent

Configure the required settings for the agent.

Framework

Select the framework used to build the agent.

Supported frameworks include:

  • Google ADK
  • LangChain
  • CrewAI
  • Strands

Tools (Optional)

Select one or more platform tools to extend the agent's capabilities.

  • Multiple tools can be selected.
  • Available tools may vary based on the selected framework.

Compliance Groups (Optional)

Select one or more compliance groups applicable to the agent.

Examples include:

  • HIPAA
  • SOC 2

Policy Recommendations (Optional)

When a compliance group is selected, the Builder Assistant displays recommended policies associated with the selected compliance framework.

Review the recommendations before proceeding.

Step 3 – Review Configuration

Before creating the agent, review the generated configuration summary.

The summary includes:

  • Framework
  • Selected tools
  • Compliance groups
  • Applied policies

Modify the configuration if required, then select Create.

Step 4 – Create Agent

After reviewing the configuration, create the agent using the Builder Assistant.

The system processes the selected configuration and generates the required agent artifacts.

Step 5 – Generated Output

After the agent is created, the Builder Assistant generates a downloadable ZIP package containing:

  • Generated agent source code
  • Configuration files

The generated files can be integrated into the application and deployed.

The following animation demonstrates the steps involved in this process.

Create Agent workflow demonstration

Best Practices

  • Define the business objective before creating an agent.
  • Select only the tools required for the solution.
  • Apply the appropriate compliance groups.
  • Review recommended policies before creating the agent.
  • Validate the configuration before generating the agent package.

Create Agent Group

The Create Agent Group screen enables you to define and configure a new agent group within a project. Agent groups provide a centralized configuration layer that governs how associated agents operate.

How to Create an Agent Group

Follow the steps below to create an agent group.

1. Agent Group Name

Enter a clear and meaningful name for the agent group. The name should reflect the purpose or function of the agents associated with the group, making it easy to identify and manage.

Examples:

  • Customer Support Agents
  • Claims Processing Agents
  • Task Automation Agents

2. Description

Provide a brief description of the agent group’s purpose and the types of tasks its agents are expected to perform.

This helps users understand the intended use of the group and its associated agents.

3. Adapter

Select the adapter that the agent group will use during execution.

Supported Adapters:

  • LangChain
  • Google ADK
  • CrewAI
  • Strands
Field Description
Adapter Choose an adapter from the available list. The selected adapter determines how the agent group interacts with underlying services and execution environments.

4. Tools Configuration

The Tools Configuration step allows you to manage the tools available to the agent group.

a. Selected Tools

Select built-in and custom tools that agents in the group can use during execution.

b. Blocked Tools

Select tools that should not be available to agents within the group.

Blocking tools helps restrict access to unnecessary, sensitive, or task-irrelevant functionality, ensuring agents use only the tools required for their intended purpose.

c. Custom Tools

Create a new project-scoped custom tool if the required tool is not available.

Click Add Custom Tool to create and register a new tool.

Note: For more information about available tools, tool configuration, and creating custom tools, refer to Tools and Custom Tools.

5. Agent Limits

Set execution boundaries and resource usage limits to manage agent performance and system consumption.

Setting Description
Max Agent Calls Specify the maximum number of agent invocations allowed during execution.
Timeout (sec) Specify the maximum execution time in seconds before the request is terminated.
Input Tokens Specify the maximum number of input tokens that can be processed in a single request.
Output Tokens Specify the maximum number of output tokens that can be generated during execution.

6. Compliance

Assign compliance configurations to ensure agent interactions and outputs follow defined governance and validation rules.

  • Select one or more compliance configurations from the available list.
  • Applied compliance rules are enforced during agent execution.
  • Help ensure agent behavior aligns with organizational and regulatory requirements.

7. Skills

The Skills configuration step allows you to select and manage the skills available to the agent group during execution.

a. Selected Skills

Choose built-in or project-specific custom skills available within the platform.

b. Custom Skills

Create a new project-scoped skill if the required skill is not available.

Click Add Custom Skill to create and register a new skill.

Note: For more information about available skills, skill configuration, and creating custom skills, refer to Skills and Custom Skills.

Newly created skills become available for selection, and the selected skills can be used by agents within the group during execution.

8. Sample Input

Provide a representative request that reflects a real-world scenario the agent is expected to handle.

This allows you to evaluate how the agent processes incoming requests and verify that the configured settings produce the expected behavior.

9. Output

Review the response generated by the agent after processing the sample input.

This helps confirm that the agent behaves as expected and that compliance controls, such as data redaction or blocking, are correctly applied.

10. Detected PII

Review any Personally Identifiable Information (PII) identified in the processed input.

This helps verify that sensitive data is accurately detected and that appropriate data protection measures are applied in line with configured compliance policies.

Save or Cancel

After configuring all required settings:

  • Click Save Agent Group to create and register the agent group within the selected project.
  • Click Cancel to discard the changes and exit without saving.

Example - How to Create a New Agent Group

The following animation demonstrates the steps to create and configure a new agent group.

Create New Agent Group Workflow

Tenancy

In Robility, tenants provide self-contained environments for centrally managing data, resources, users, and configurations, streamlining automation processes within a single platform. Organizations can create multiple tenants with the same structure to address specific business needs.

Who Can Create Multiple Tenants?

The organization admin has the privilege to add multiple tenants under their organization, but this depends on the chosen structure:

a. Multiple-organization, multiple-tenant structure
b. Single-organization, multiple-tenant structure

However, if the admin selects a single-organization, single-tenant structure, they will not be able to create or add additional tenants later. Click here for more details.

Who manages the tenant?

The Tenant Admin is responsible for centralized control, ensuring seamless operations and optimizing automation processes. The Tenant Admin can manage the following features:

1. User Management:
Admins can invite users, assign roles, and manage access rights to ensure appropriate permissions.

2. Configuring Projects
Admins can create and customize multiple projects to meet business needs, including defining scope and aligning resources.

3. Storage and Key Vaults
Admins can manage storage and key vault configurations to securely handle project data, ensuring reliable automation processes.

4. License Management
Admins can procure and manage licenses for Robility products and resources at the tenant level.

5. HarmonyAI Integration
Admins can configure HarmonyAI and integrate it into projects to enhance automation capabilities.

When will tenant expire?

Tenants with a 365-day or 90-day license package will expire at the end of their license period unless renewed. The organization administrator will receive an email notification five days before the license expiration, ensuring sufficient time to take necessary action. Click here for more details.

To avoid disruptions, timely renewal is essential.

Who can renew the license? 

Both the organization administrator and the tenant administrator can renew the license. To ensure uninterrupted operations:

1. Navigate to the “License” page under the Settings menu in the Robility Manager platform.
2. Submit a request for a new license.
3. Review the remaining days of the current license, displayed for reference.

If license expiration affects products such as Robility Designer and Runner, these must also be reactivated. Click here for detailed guidance.

What happens after a tenant expires?

Failure to renew the license will result in:

a. Loss of access for all users and resources within the tenant.
b. Halted automation processes, including bot deployment.

To restore services, administrators should promptly request a license renewal. Follow the steps below to renew:

1. After logging in to the Robility platform, the tenant status will appear as Expired.
2. Click the Renewal button.
3. You will be redirected to the License Request page within the tenant and prompted to submit the renewal request.
4. Click Submit to complete the process.

Multiple Tenants

Organizations can create multiple tenants within the same structure, allowing them to streamline management, enhance efficiency, and maintain uniformity in handling data, resources, and user access across all tenants.

This capability is exclusively available to the organization admin, who can create multiple tenants depends on the selected organizational structure. If the organization adopts a multi-tenant setup—such as:

a. Multi-organization with multiple tenants, or
b. Single organization with multiple tenants

How to add multiple tenants?

The Organization Admin who signs up and creates the platform has the privilege to add multiple tenants for their organization. Admins can seamlessly switch between tenants using the same login credentials without affecting data, settings, or administrative tasks.

When the admin signs up, the first tenant is automatically created with the name provided during the signup process. To add additional tenants to the organization, follow these steps:

1. Login to the platform.
2. Once you logged into the platform, the user will be displayed the list of organizations.
3. Upon clicking on the organization’s name, the list of tenants or the tenant created against it will be displayed.
4. Click on the setting icon parallel to the organization name.
5. Choose “Add Tenant” option.

6. The Add tenant pop up appears on the screen.
7. Enter the Tenant name in the box. Note that the tenant will be created against the organization displayed on the tenant creation screen.

8. Choose the deployment model as “LIVE, STABLE, DEV or BETA version and select the create button.
9. A new database will be setting up for the created tenant. This might take a few minutes to complete.
10. Once the setup has been, the tenant’s name will appear on the list.

The newly added tenant will now be accessible alongside existing tenants, enabling efficient management and seamless transitions. 

Tenant Switch

Users and tenant administrators can easily switch between tenants as needed. Follow these steps to switch to a different tenant:

1. Click on the organization name at the top of the page.
2. On the top left corner, you can see the breadcrumbs displayed as “Robility AI / RPA / Automation / Products” (here “RPA” is the organization name).
3. You will be redirected to the Tenant Selection Choose your desired tenant.

This process ensures a seamless transition between tenants while maintaining data integrity

Tenant Status

All tenants under an organization, whether active, expired or requires renewal, will be displayed in the Tenant List section.

Active Tenants: These appear as clickable hyperlinks, allowing users to navigate directly to the respective tenant’s platform.
Expired Tenants: These remain visible on the list but are inaccessible until the license is renewed. Click here to learn how to renew your license. 
Requires Renewal: This section notifies users to renew the tenant license before it expires. 

Invitation Process

The Tenant Administrator has the privilege to invite users to the platform. The invitation process for each user is secure and automated. 

Robility Manager provides defined roles and access for User, RPA Developer, Tenant Admin in the platform. To get more detailed information about the default roles and permissions, click here

Steps to invite the user to the tenant

Below are the steps to invite the user to the tenant. 

1. On the left-hand side, select the “Invite” option to navigate to the “Manage Users” screen.
2. In the top right corner, click on “Add” to open the pop-up screen for adding users.
3. Enter the user’s email address. By default, the “User” role will be selected.
4. Click the “Invite” button to send an invitation email to the user.
5. The user has now been successfully invited to the tenant.
6. The user’s status will be marked as “Pending invitation” until they accept the invitation.
     a. Once the user’s status changes to “Active,” you can assign the appropriate roles within the tenant.

The tenant admin can invite up to 20 users at once to the platform using the “Add Member” option under the Invite feature.

User Sign-In Process

Once the tenant admin invites you to the platform, you will receive an invitation email from RobilityAI. Follow these steps to accept the invitation and sign in:

1. In the invitation email, click the “Confirm” button containing the invitation link.
2. You will be directed to the RobilityManager page.
3. Enter your first name, last name, and a custom password to complete the sign-in process.
4. After signing in, you will be directed to the “Home” page if you have access to only one tenant.
5. You can now access the platform and start using its features.

Tenant Management

Tenant Management serves as the backbone of efficient automation in Robility. It simplifies operations, ensures secure access, and empowers tenant administrators to oversee all critical aspects of automation. 

Key Functionalities for Tenant Administrators

Tenant administrators have the privilege to manage resources, users, and configurations effectively. The key functionalities include:

1. User Management

2. Project Creation and Management

3. Resource Allocation and Optimization

4. Templates and Marketplace Access

5. License Management

6. Feature and Product Updates

7. Key Vault and Storage configuration

8. IP Configuration and Security

9. Harmony AI Integration

User Management

User management is a centralized section for adding users, assigning roles, and managing access within the tenant. Only the tenant administrators have the privilege to access this section to modify the permissions of the users and ensures secure and efficient access control.

This section uses a Role-Based Access Control (RBAC) system, enabling users to have role-dependent capabilities in Robility Manager. The primary goals of the RBAC system ensure users have the appropriate level of access based on their roles, to streamline access management, and to enhance overall security. For detailed information on default roles and their permissions, click here.

Roles in the platform

Each role comes with predefined permissions that determine what users can access and modify within the platform. The roles are as follows,

1. Tenant Admin: This role has full administrative privileges across the platform, allowing users to configure settings, manage users, and access all platform features. Tenant Admins are responsible for overseeing the platform’s operations and ensuring that everything is set up according to the organization’s needs. 

2. RPA Developer: RPA Developers is intended for users who are responsible for designing and deploying automation workflows with Designer and Runner. 

3. User: The User role typically refers to standard users who interact with the platform without needing access to the administrative or any Robility products. These users can perform tasks assigned to them but have limited access in the platform. 

Learn more about project roles here.

Invitation Process

The Tenant Administrator has the privilege to invite users to the platform. The invitation process for each user is secure and automated. 

Robility Manager provides defined roles and access for User, RPA Developer, Tenant Admin in the platform. To get more detailed information about the default roles and permissions, click here

Steps to invite the user to the tenant

Below are the steps to invite the user to the tenant. 

1. On the left-hand side, select the “Invite” option to navigate to the “Manage Users” screen.
2. In the top right corner, click on “Add” to open the pop-up screen for adding users.
3. Enter the user’s email address. By default, the “User” role will be selected.
4. Click the “Invite” button to send an invitation email to the user.
5. The user has now been successfully invited to the tenant.
6. The user’s status will be marked as “Pending invitation” until they accept the invitation.
     a. Once the user’s status changes to “Active,” you can assign the appropriate roles within the tenant.

The tenant admin can invite up to 20 users at once to the platform using the “Add Member” option under the Invite feature.

User Sign-In Process

Once the tenant admin invites you to the platform, you will receive an invitation email from RobilityAI. Follow these steps to accept the invitation and sign in:

1. In the invitation email, click the “Confirm” button containing the invitation link.
2. You will be directed to the RobilityManager page.
3. Enter your first name, last name, and a custom password to complete the sign-in process.
4. After signing in, you will be directed to the “Home” page if you have access to only one tenant.
5. You can now access the platform and start using its features.

Manage Users

This section allows only tenant administrators to manage user accounts by editing roles, tracking user activity, exporting user lists, and re-inviting users with expired invitations. These actions help maintain control over access and ensure smooth operations.

Modifying the user role 

To modify or assign a user’s role in the tenant, the tenant admin can follow these steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Edit” icon.
4. Select the role to assign or modify for the user. Click here to view the default roles and their permissions.
5. Once selected, click the “Save” button to save the changes.

Track User Activity

To track and view the user activity on the tenant, the tenant admins can follow the below steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Eye” icon.
4. A Pop up will appear on the screen with details of the user track and the action performed by the tenant administrators. 

Exporting User List

This option allows tenant administrators to export the user list into excel from the tenant which includes details such as usernames, email addresses, roles, user’s login time and statuses.

How to export the user list?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. On the top right corner, select the “Excel” icon indicating to export the user details. 

How to re-invite users?

Tenant administrators can re-invite users to the tenant only if their previous invitation has expired. The invitation link expires within 48 hours. Follow the steps below:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. For the user with the status “Expired,” click on the “Mail” icon.
4. A re-invitation will be sent to the user.

License Renewal

Tenant administrators can renew licenses for RPA developers whose licenses have expired, either individually or in bulk. Follow the steps below:

1. On the Invite page, click the License Renew button.
2. A list of expired RPA developer users will be displayed.
3. Select users individually or choose multiple users to renew licenses in bulk.

Note: Licenses can only be renewed if available. If no licenses remain, you must follow the standard process to request licenses from the Settings page. Click here to view.

User Activation & Deactivation

This section is managed by tenant administrators, who have the privilege to oversee user accounts within the tenant. They can grant access to users based on assigned roles or restrict access when needed to maintain security and proper access control within the tenant.

How to deactivate the users?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users with their status will be displayed.
3. At the user details, you will see the “Thumbs Down” icon, indicating the option to deactivate the user.
4. Click on the icon to deactivate the user.
5. Once deactivated, the user will no longer have access to the tenant.

Project Creation

Creating a Project

Each organization has unique automation needs. Based on these requirements, different projects are created, and robots are assigned accordingly. This customization ensures that each project receives the automation support it requires, tailored to the specific tasks and processes of the organization.

How to navigate to the projects?

1. Login to Robility AI™ using your credentials.
a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side menu, click on the “Projects”.
4. Here we can view, manage and perform action of all the projects created under this tenant.

How to add a project?

1. Click on the “Add” from the right-hand side top corner.
2. An “Add project” screen will pop up to fill out the basic information about the project.
3. Fill in all the mandatory fields. Below is a detailed explanation of what each field desribes.

Default Settings

ProjectName: Indicates to specify the name for your project to start automation.

Project Code: Indicates to specify the “Code” for unique identification during the automation.  

Project Description: Indicates to specify the description of what your automation project does.

Project Owner: Indicates to choose the active users to set as owner of the project.

Project Logo: Indicates to choose the “Logo” of your project.  

Skin Color: Customize your project’s skin color with options available. By default, “Charcoal” will be selected.  

Overview

1. Serial number: Shows the number of projects under this tenant.
2. Project Name: Shows the project name created by the client.
3. Description: Shows the description given against the specific project.
4. Robot Status: Shows a number and color code depending on the status of the robot inside a project.
    a. Red: When the robot status shows red with a number, it means that those many numbers of robots are idle.
    b. Green: When the robot status shows green with a number, it means that those many numbers of robots are running.
    c. Yellow: When the robot status shows yellow with a number, it means that those many numbers of robots are in ToCheck.
    d. No Color: When the robot status doesn’t have any number or color code to it, there are no robots assigned to that project.

5. Updated by: Displays the username who has updated the project recently.
6. Updated On: Shows the date in which the project was updated.

7. Action: There are two different actions that can be performed in a project.
    a. Edit: Click on this to make any changes to the project. 
    b. Go: Click on this to get into the project’s command center where we can add the robots to be deployed to the machines.

What can be seen on the command center screen?

1. Dashboard: This screen overviews the status of all the bots under the project, number of machines utilized, and summary of the projects automated from “Interact.”

2. Roles and Users: This menu is used to invite users to the current project and assign different roles based on the work assigned to them.

3. InteractWorkflow: RobilityInteract’ s advanced features make it a powerful tool for businesses seeking to enhance their automation processes. Click here to get more information.

4. Workflow: This menu list downs the workflows published within the “Project” from Designer.

5. Credential Manager: This is useful for keeping the tools or applications credentials always secure. Click on it to configure and start to set up your vault credentials. To get more information, refer the documentation of Credential Manager.

6. DeployRobots: This menu allows the user to map and manage the “Robots” assigned inside the project.

7. License: This menu allows the “Project admin” to request more licenses required for the Project.

8. Scheduler: This menu allows the user to schedule and manage the bots and machines here. 

 

Resources

Resources are the machines allocated for scheduling and executing automation robots. In Robility, the “Resources” menu on the tenant page serves as a centralized interface for managing these machines across all projects within the tenant.

This menu allows you to view, add, and manage resources, ensuring seamless allocation and utilization. When adding resources, you can choose from two types of licenses based on your automation needs.

Types of Licenses

There are two types of licenses available for automation:

1. Unattended Robots – Use this license when the bot operates without user intervention. Each machine can have only one unattended bot, which is ideal for automating repetitive, rule-based tasks that do not require supervision.

2. High-Density Bots – Suitable for machines with multiple users logged in simultaneously, without requiring user intervention. This functions similarly to unattended bots but supports multiple users on the same system. 

Machine Provisioning at the Tenant Level

Users can provision machines at the tenant level rather than assigning them to individual projects, enabling centralized control and efficient resource allocation across multiple projects. The license key required to connect the Runner with Robility Manager on the provisioned machine will be managed at the tenant level, ensuring consistency and eliminating the need for repetitive configuration at the project level.

Multi-Project Machine Assignment

A single machine can be assigned to multiple projects without requiring the removal of resources, enabling flexible utilization across various automation workflows. However, if a machine is actively connected and executing a process in one project, it cannot be used concurrently in another project.

How to add a resource?

Let’s walk through the following steps to add a machine to the manager.

1. Login to RobilityAI Manager using your credentials.
2. Navigate to the “Resources” menu.
3. Click on “Add” from the top right corner to add a new machine.
4. Choose the license type from the license type drop down.
5. Fill in the other mandatory details and click on save.

Overview

1. Serial Number: Shows the number of machines added.
2. Resource: Shows the name of the machine added.
3. Username: Displays the username of the machine added. 
4. Updated By: Shows the track of the person who has updated recently.
5. Status: Indicates the current status of the machine. There are three statuses:
a. Not Connected – The machine has been added but is yet to be provisioned.
b. Not Provisioned – The machine has been added, and the license is connected, but it has not yet been provisioned to any projects.
c. Provisioned – The machine has been added, the license is connected, and it has been successfully provisioned to one or more projects
6. Updated On: Shows the date and time when the machine was added to the manager.
7. License Key Enables users to copy the license key for executing the bot in Runner. The license key will be enabled only when the machine is deployed in the project. 
8. Action: There are two action buttons in the machine screen. 
a. Manage: This option displays another set of action where it allows the user to perform the following,
i. Edit the password of the machine added.
ii. View and remove the projects provisioned when it is in “Idle” state. 
iii. View all the information about the machine details. 
b. Delete: This allows us to remove the machine from the manager.

Click here to learn more about adding the resource to the projects.  

Managing Resources

Manage Machines enables you to configure and oversee machines deployed for automation. The key functions include:

1. License Management – View and manage machine licenses to ensure compliance and efficient utilization.
2. Monitoring and Maintenance – Track machine status, perform maintenance, and troubleshoot issues.
3. Security – Restrict access to authorized users, ensuring secure machine management.

Updating the resource details

In the “Resources” menu, users can modify machine details, including Name, Username, and Password, to ensure accurate resource management. When a machine is updated, the existing license ID is automatically transferred to the new machine, but the license expiry date remains unchanged, ensuring continuity in license validity.

1. Log in to RobilityAI Manager.
2. Go to the “Resources” menu.
3. Select the resource you want to edit.
4. Click the “Manage” button next to the resource.
a. A pop-up window will appear, allowing you to edit the machine details.
b. Modify the name and click “Save” to update the machine.

Removal of resources

The user can also removing/deleting the resources from the tenant, follow the below steps,

1. Login to RobilityAI Manager using your credentials.
a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, you will have the “Resources” menu. Click on it.

4. Select the resource that you want to delete.
5. Now, click on the “Manage” button against the resource.
a. Click on the “Delete” option under the “Action” field and the machine is removed successfully.

Templates

Templates

Templates act as reusable workflows that can be customized and deployed across your automation solutions within the tenant. These pre-built templates offer detailed outlines or processes of automation workflows, providing a structured framework for building specific automation solutions. They serve as starting point for various solutions, allowing users to easily integrate them into their workflows and are beneficial for performing repetitive tasks or actions efficiently.

How to publish the templates through Designer? 

Once the template has been completed, the users can publish the templates in two different options. Private and Public.

To publish the templates privately, follow the below steps,

1. Save the template solution.
2. Navigate to the bottom of the Designer and click on the Publish option.
3. Choose the option as “Private (TenantName)”.
4. Now, under the home menu, go to the Publish option.

5. Mention the solution description and choose the release type either as Major, Minor or Bug.
6. Based on the release type the new version will change accordingly.
7. Enter the release notes for the template and click on Publish.

8. A success message will appear on the screen displaying that your template has been published.

When the user publishes the templates against the tenant’s name, it will be viewable and re-usable only to the users invited to the tenant.

After publishing the templates, it might take a few minutes to upload them to the cloud and to the tenant.

How to check updates, inactive and download the templates?

The published templates will be available in the RobilityManager at “Templates” menu. The templates that are published within the tenant can be accessed and re-used by the invited RPA developers in the tenant. can check if there are any updates available for the published templates in the Robility Manager. 

1. Login to the Robility Manager. 
2. Navigate to the Tenant where the published templates are available. (Only when published privately).

3. Select the “Templates” Menu.
4. Now, click on the “View” button under the “History” field. 
     a. This ‘View’ option provides a list of versions published for each specific template and allows the tenant admin to check for updates, setting inactive status for templates or download the templates.

MarketPlace

MarketPlace

MarketPlace is designed to be the go-to centralized hub for a meticulously curated collection of automation scripts and connectors, meticulously crafted to elevate and expedite your automation projects. Whether you are a seasoned automation professional or a newcomer looking to streamline your processes, MarketPlace offers a diverse array of tools and resources to meet your specific needs.

Our platform brings together a vibrant community of developers, engineers, and automation enthusiasts who contribute their expertise to create a dynamic ecosystem. Each script and connector undergo a rigorous vetting process to ensure quality, reliability, and security. This commitment to excellence ensures that users can confidently integrate these resources into their projects without compromising performance or stability.

Discover an extensive range of automation solutions, spanning various industries and applications. From IT and finance to healthcare and manufacturing, MarketPlace hosts a rich assortment of scripts tailored to address the unique challenges of different sectors. This diversity empowers users to find the perfect automation tools that align with their industry requirements.

The user-friendly interface of MarketPlace facilitates easy navigation, allowing users to quickly search, preview, and download scripts and connectors that suit their project objectives.

In addition to individual scripts and connectors, MarketPlace also features curated collections and bundles that address specific automation needs. These collections streamline the process of finding complementary resources, saving users time and effort in building comprehensive automation solutions.

As automation continues to play a pivotal role in transforming industries, MarketPlace stands as a beacon of innovation and collaboration.

How to download the listings?

All the scripts and solutions added in the Marketplace will be able to access in the Manager, empowering users with a rich library of pre-built components. This library includes integrations that facilitate seamless connections to external services, as well as custom activities, allowing users to incorporate specialized functionalities into their automation workflows.

Follow the below steps to download and integrate the scripts:

1. Launch the RobilityManager.
2. Navigate to the “MarketPlace”.

3. Here chose the specified template that is suitable for your solutions.
4. Here I am choosing the “OpenCV” specified as “Reusable component” and select the “Download” button.

     a. Review the “Terms & Conditions” and then proceed to click on the “Agree” button.
     b. Now, the listing will be downloaded in your local system, you can easily integrate the script in your automations.

Data Retention and Policy

Data Retention enables organizations to store project data for a defined duration to meet operational, compliance, regulatory, and audit requirements. Once the configured retention period expires, the system securely archives or permanently removes the data based on the defined policy, ensuring controlled and structured data lifecycle management. 

Configuration & Management

The retention policy can be configured by the Tenant Administrator at the project level. Each project may have its own retention period based on business or regulatory needs.

Scope of the Policy

The data retention policy specifically governs the storage and retrieval of Interact workflow data only. It does not impact other components inside the Project.

Key Benefits

Controlled Data Storage: Ensures project data is stored only for the required period.
Compliance: Helps meet organizational, security, and audit requirements.
Data Protection: Automatically removes outdated or unnecessary records to safeguard sensitive information.
System Performance: Manages database size efficiently to maintain smooth operations.

Configuring Data Retention

Data retention settings are configured at the project level. Only users with the Tenant Admin role can manage these settings.

Steps to Enable and Configure: 

1. Navigate to the Edit option for the project.
2. Enable the Data Retention option.
3. Configure the retention parameters by selecting values from:
     a.  Archival Days
     b.  Purge Days

Default Settings: Archival Days: 90 and Purge Days: 180

Archival Days

1. Defines the period during which data remains fully accessible for review, reporting, and workflow operations.
2. After the archival period ends, data moves to the purge phase.
3. Configurable values: 30, 60, or 90 days

Purge Days

1. Defines the duration after archival during which data is retained in a purged state before permanent deletion.
2. After this period, data is permanently deleted and cannot be recovered.
3. Configurable values: 120, 160, or 180 days

License Expiry Notification

The License Expiry Notification panel displays licenses that are expired or approaching expiry, grouped into four categories: Tenant, Designer, Resource, and Machine Template.

It provides a consolidated view of license status, enabling administrators to monitor and manage licenses across the respective applications from a single location.

Expiring Soon Criteria

A license is marked as Expiring Soon 7 days prior to its expiry date. Once the expiry date has passed, the license status changes to Expired.

Categories

Category Description
Tenant Displays expired and expiring licenses associated with tenants.
Designer Displays expired and expiring licenses associated with designer accounts.
Resource Displays expired and expiring licenses associated with resources.
Machine Template Displays expired and expiring licenses associated with machine templates.

Each category displays a count badge indicating the number of licenses requiring attention.

Status Indicators

Indicator Status Description
🔴 Dark Red Expired The license expiry date has passed
🟡 Amber Expiring Soon The license will expire within the next 7 days

Closing the Panel

The panel can be closed using the × icon at the top-right or the Close button at the bottom-right.

Settings

Settings

RobilityManager provides real-time monitoring that helps to keep track of the health and state of the system. With the enhanced version, it’s easier to monitor and configure mails,
schedule jobs and have visibility over the logs of the system.

User Tracks
Features & Products
License Management

License Management

Robility® Manager provides centralized control over licenses for all Robility products at the tenant level.

This section offers an overview of acquired and utilized licenses within the tenant. Access is restricted to tenant administrators, who are responsible for acquiring and allocating licenses to projects and developers.

Each tenant is assigned a specific number of licenses, distributed across Designer, Unattended Robot, Attended Robot, High-Density Robot, Service Account, and HarmonyAI.

Here is a breakdown of the specific roles associated with each license type:

1. Designer License – Assigned to users responsible for designing automation workflows and creating processes. This license is granted to users invited as “RPA Developer” on the platform.
2. Unattended Robot License – Enables users to deploy and execute automated processes without human intervention. Ideal for scheduled and autonomous task execution.
3. HarmonyAI License – Provides access to advanced document processing capabilities, enabling intelligent data extraction within automation workflows using Hyperautomation. This section includes licenses for Harmony AI’s GEN AI, Harmony UI Vision, Document Intelligence, ML Models, Robility Copilot.
4. Tenant License – Extends the expiration period of a tenant for ongoing projects. This license is exclusively purchasable by the tenant administrator. 
5. RobilityFlow – Enables users to utilize “Robility flow” for designing automation workflows with Agentic AI. This license is granted to users invited as “RPA Developer” on the platform.

License Types and their accessibility for each role

License Type Tenant Admin RPA Developer User
Robility Designer No Yes No
Unattended Robot Yes Yes Yes
Tenant Yes No No
HarmonyAI Yes Yes Yes
RobilityFlow No Yes No

Steps to procure

The tenant administrator can procure additional licenses at the Settings page. Follow the below steps,

1. Navigate to the “Licenses” under “Settings” menu.
2. On the top – right corner, there is an option as “Buy License”.
3. Click on the option to fill the required details.
4. A new pop-up window appears on the screen.
5. Choose the “license type” from the drop-down menu.
6. Enter the required license count to be requested.
7. Provide a detailed description of the request.
8. Then, click on “Request” option.
9. The license request will be sent to the product team.
10. The licenses will be added to the tenant within 48 hours after request.
11. Once the license has been assigned, you need to “Sync” the licenses here.

What’s the next step?

When the procured license is about to expire for Robility products (Designer and Runner) and if the tenant admin has purchased new licenses, the RPA developer role users must re-activate their license via Robility Manager. Follow the steps below to see the action in detail.

Designer:

  1. The RPA developer role user should log in to their tenant in Robility Manager.
  2. Click on the “Activate” button to enable the activation of the new license.

This activation should be done when the license has expired.

If there are additional licenses and the license has expired for a few users, the tenant admin is requested to re-assign the “RPA developer” role to the user to activate the new license for them.

Runner:

The Runner licenses are provided based on the machine and license type. Upon expiration, the user must follow the steps below:

1. Go to the “Deploy Robots” menu for the specific project in Robility Manager.
2. Select the expired machine and click on the “Remove” button.
3. Navigate to “Resources” at the tenant level.
4. Select the machine that has been removed from the project.
    a. Click on the “Manage” button and then click on the “Delete” button.
    b. Note that the machine will be deleted only when it is not connected to any of the projects.
5. Once the machine has been removed, you must add it again to activate the new license and deploy it in your projects.

Features and Products

Features & Products

There is an array of features and products available on the platform. All the latest versions will be displayed here. You can sync features and products here if they are not visible in the Designer. 

The current tenant’s information is available on this page. This covers all the features and product details of Robility. It features a column called “Version” that displays the installed versions of each product or functionality. The created by and created date columns provide the user’s name and the day and time when the corresponding feature was added, respectively.

How to download the previous versions?

The user can also download the previous versions of the products and features. Click on the “View” button and it will list the previous versions that were released. Select the “Download” option to avail it. 

IP Configuration

IP Configuration

IP configuration, short for Internet Protocol configuration, is a fundamental aspect of network setup and connectivity. In Robility, configuring IP addresses enables users to securely restrict and grant access to their tenant within Robility Manager. This setup allows the configuration of servers and IP addresses to ensure that only authorized users can access the tenant. 

Supported IP Type

The RobilityManager supports only IPv4 type (Internet Protocol version 4) which is a protocol used for identifying and locating devices on a network. It is the fourth version in the evolution of the Internet Protocol and remains the most widely used version for routing traffic on the Internet. Here’s an explanation of IPv4:

1. Address Format: IPv4 addresses are 32-bit numerical addresses expressed in dotted-decimal notation, such as 192.168.1.1. Each decimal in the address represents 8 bits of the 32-bit address, divided into four octets.
2. Unique Identification: IPv4 addresses provide a unique identification for each device connected to a network. This uniqueness is essential for routing data packets correctly to and from devices across the Internet.

Why Configure IP Addresses in Robility Manager?

Security: Limiting access to specific IP addresses helps ensure that only authorized users and machines can access the RobilityManager. This helps prevent unauthorized access or potential cyberattacks.
Compliance: Many industries (like finance or healthcare) require strict compliance with data protection laws. Configuring IP addresses can ensure only approved resources (based on their network location) can interact with sensitive data.
Resource Management: Identifying and configuring IP addresses ensures that automation tasks are executed only within trusted environments, such as Citrix environments, virtual machines (VMs), or corporate networks.

How to configure IP Address in RobilityManager?

1. Log in to Robility Manager using your credentials.
     a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
    a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, select the “Settings” option, which will navigate you to the “Licenses” screen.
4. Navigate to the “IP Configuration” tab on the top. 
5. Here select the “Add” button. 
6. It will populate another window, here the default and supported IP type will be set to IPV4.
7. Then, enter your IP address in the box and click on “Save” button.

Allowed IP addresses and Denied IP addresses

The ‘Allowed IP Addresses’ list comprises the IP addresses that have been configured. Only the IP addresses listed in the ‘Allowed IP Addresses’ list will permit invited users to access RobilityManager.

The ‘Denied IP Addresses’ list consists of IP addresses that have been explicitly prohibited from accessing the RobilityManager. Any IP address included in the ‘Denied IP Addresses’ list will be blocked from accessing RobilityManager.

User Tracks

Keeping track of users’ footprints creates a detailed map of where the user has navigated and which menus, he/she has visited. For instance, if an admin user adds a new user, creates a new role and maps the role, then all the menus and the sub-menus he/she has navigated through will be captured.

This facilitates a sophisticated audit trail to investigate the occurrence of errors, swiftly trace the source of error, as in tracking the one who actually caused it and train them not to repeat it.  This also aids in scrutiny as to the number of users who have and are using RobilityManager. This information aids in understanding how well the product is received and accordingly implement future plans in terms of additional features, pricing, etc.

Follow the below steps to view the list of the user’s track on the Robility Manager:

1. Select the User tracks menu on the left-hand side.
2. The list of users will be displayed with the details of the machine name and the browser type.
3. To view the track, click on the user option under view category.
4. Another pop-up menu appears on the screen displaying the list of detailed map where the user has navigated inside the Robility Manager in the time being. 

Audit Reports

Audit Reports capture all user actions and system events, providing transparency and accountability. They help detect unauthorized activities and support audits and system management.

The Audit Reports feature allows tracking of user activities related to projects. Access to these reports is limited to users with the Tenant Admin role. The following four reports are available:

1. Login / Logout

This report provides details of user login and logout activities. Records are available for the past 8 hours from the time the action was performed.
Details displayed: Username, login and logout time, machine IP address, and browser details (Edge or Chrome).

2. Invalid Attempts

This report displays details of users who have made invalid login attempts. Up to three invalid attempts are recorded; if more than three attempts fail, the account will be locked.
Details displayed: Username, last login time, invalid login attempt count, and last invalid attempt time.

3. VM Add

This report shows details of newly added resources or machine (VMs).
Details displayed: Computer name, action time, action performed by, username, and action.

4. Privileged User Actions

This report displays details of users mapped to projects. It also includes information about users who were inactivated after being mapped to a project.
Details displayed: Username, action date, action performed by, and action.

Info:
1. The number of items displayed per page can be adjusted using the ‘Page Size’ drop-down menu.
2. Reports can be exported to an Excel file.

Logs

The ‘Logs’ section in Robility Manager is where you can find various types of logs available. Here, you can find logs related to the service layer interactions between the application/product and Robility Manager. These logs are helpful for troubleshooting issues that occur from the Robility Manager side.

It provides a detailed insights into the communication and processes happening within Robility Manager, allowing only Tenant administrators to diagnose the issues efficiently. They include:

1. Service Interaction Logs: These logs capture the interactions between Robility Manager and external services or APIs, highlighting any errors or anomalies in data exchange.
2. Error Logs: Error logs document any system errors, exceptions, or failures encountered during the execution of processes or workflows within Robility Manager.
3. Transaction Logs: Transaction logs record the details of transactions processed by Robility Manager, such as workflow executions, data transfers, and system integrations.
4. Performance Logs: Performance logs track the performance metrics of Robility Manager, including response times, resource utilization, and throughput, aiding in performance optimization and capacity planning.

How to navigate to the Logs?

1. Log in to Robility Manager using your credentials.
     a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
    a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, select the “Settings” option, which will navigate you to the “License” screen.
4. Choose the “Logs” screen from the top. 

Types of Application available

1. RobilityManager: This section addresses all the issues and logs encountered while navigating within Robility Manager.
2. Designer: This section deals with all the issues and logs occurring between Robility Manager and Designer, or during Designer activation.
3. Runner: This section addresses all the issues and logs occurring between Robility Manager and Runner, or during Runner activation.
4. Feature: This section addresses all the issues and logs encountered while accessing the “Manage Feature” menu or retrieving the list of features.
5. Credential: This section addresses all the issues and logs encountered while accessing, retrieving, and managing the Credential Manager menu.
6. Interact: This section addresses all the issues and logs encountered while accessing, retrieving, reviewing, and managing the Interact menu.
7. Harmony AI: This section generates all the issues and logs encountered while accessing, retrieving and managing the Harmony AI components.

How to download the logs?

1. Log in to Robility Manager using your credentials.
     a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
    a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, select the “Settings” option, which will navigate you to the “License” screen.
4. Navigate to the “Logs” menu on the top. 

5. Now, select the application from the drop-down and click on “Go” button.
6. The logs will be available for the last 30 days and you will have the download option against every date. 

How to change the log types of each application?

When accessing logs, the default log type is set to ‘Error’; however, if you wish to view log levels other than ‘Error’ by default, follow the steps below: 

1. Log in to Robility Manager using your credentials.
     a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
    a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, select the “Settings” option, which will navigate you to the “License” screen.
4. Navigate to the “Logs” menu on the top. 
5. You will find the “Settings” button adjacent to the “Go” button, click on the button.
    a. Here it displays all the applications available along with the type of log chosen. 
    b. Select the “Action” button against any application, a drop-down option will be available for log value column.
    c. Choose the log type from the drop-down. 
    d. Click on “Save” button.   
6. Now, the log type will be changed. 

LLM Configuration Management

LLM Configuration Management in Robility provides a centralized governance framework to configure, manage, and control access to LLM providers, enabling users and automations to consume configured language models within Robility Manager across the tenant.

Tenant administrators have exclusive permission to manage and modify this configuration. It enables integration with multiple providers by allowing configuration of provider-specific settings and common advanced parameters, ensuring controlled access, consistent behavior, and compliance across all configured providers.

The configured details can be utilized through the Robility Model component within a workflow, which retrieves the configuration dynamically at runtime, eliminating the need to hardcode provider settings or credentials.

Purpose

1. Centralize the configuration of LLM endpoints, API keys, and deployments.
2. Securely store and manage authentication credentials in an encrypted manner. All credentials are stored in the vault configured in the Vault Settings section, enabling seamless injections into automated workflows without hardcoding sensitive data into scripts or configuration files.
3. Enable seamless integration of AI models into workflows.
4. Ensure that updates to provider configurations are applied instantly across all dependent workflows.

Provider Configuration

The Provider Configuration section defines the connection and access details for the selected provider. Fields in the Basic Configuration and Authentication sections vary depending on the provider selected.

1. Basic Configuration

This section defines the core setup needed to identify and connect to the selected provider. The configured values are used to route requests and invoke the appropriate model.

2. Authentication

This section is used to configure the access credentials required by the selected provider. Credentials are validated during request execution to ensure only authorized requests are processed.
All authentication credentials are securely stored in a Key Vault within the Settings page. Use the Robility Model component to retrieve these secrets at runtime during request execution.

3. Advanced Settings

Advanced Settings are common across all providers and are used to control model behavior, request handling, and compliance requirements.

a. Model Parameters
Model Parameters define how the language model generates responses.

1. Temperature — Controls the randomness of the generated response. Defaults to 0.7.
Higher values (0.7 – 1.0): Produce more varied and creative responses.
Lower values (0.0 – 0.6): Result in more consistent and predictable outputs.

2. Max Tokens — Defines the maximum length of the generated response. Once the limit is reached, response generation stops. Defaults to 2048 tokens.
Higher values (2048 – 4096): Allow longer responses but may increase costs or hit model limits.
Lower values (1 – 2047): Reduce costs but may truncate the input or output.

3. Top-p — Controls the diversity of the generated response by limiting the probability distribution of possible tokens. Defaults to 1.
Higher values (0.8 – 1.0): Increase variation and diversity in the response.
Lower values (0.1 – 0.7): Produce more focused and predictable outputs.

b. Network Settings
Network Settings define how requests are routed and managed when communicating with the provider.

1. Timeout (seconds) – Specifies the maximum duration the system waits for a response. The default value is 60 seconds, after which the request is terminated if no response is received. This value can be increased to accommodate longer processing times.
2. Retry Counts – Defines the number of retry attempts in case of request failure. The default value is 3, after which no further attempts are made. This value can be increased if needed.

c. Enterprise Compliance
These settings ensure data handling meets organizational and regulatory requirements.

1. Data Residency Region – Specifies where all data is stored and processed. Once a region is selected, all data remains within that location to meet data privacy and compliance requirements.
2. PII Reduction Enabled – When enabled, personal information such as names, emails, and phone numbers are automatically detected and masked from prompts and responses before processing or storage.
3. Auto Logging Enabled – When enabled, all LLM requests and responses are automatically captured and stored in logs for monitoring, debugging, and auditing.
4. Audit Retention Days – The number of days audit logs and interaction records are kept. After the specified period, the data is permanently purged. Defaults to 90 days.

Configuration Actions

After adding all required details, click Validate. Once validation is successful, click the View option in the added provider row to see the model details, and select Edit to make changes.

Only users with the Tenant Admin role can view and edit the LLM configuration. API keys are masked and accessible only to authorized roles.

Jobs

Job Scheduler

Jobs in Robility Manager refer to automated SQL processes designed to run at predefined times or intervals without requiring manual intervention. These scheduled jobs play a vital role in ensuring the platform operates efficiently by handling critical tasks autonomously. Tenant administrators have the flexibility to configure or deactivate these jobs to align with their specific business needs.

What Are Scheduled Jobs?

Scheduled jobs are pre-configured tasks that the system executes automatically based on a set schedule. These jobs eliminate the need for manual oversight, ensuring that essential operations occur consistently and on time.

Key Functions of Scheduled SQL Jobs

Robility Manager’s scheduled jobs support several operational and administrative processes, including:

1. Robot Allocation: Automates the assignment of robots to tasks or workflows based on predefined criteria.
2. Tenant and Credential Expiration: Monitors expiration dates for tenants and credentials to maintain security and compliance.
3. Product and Feature Synchronization: Keeps product configurations and features updated across the platform.
4. Report Generation: Automates the creation and distribution of reports for analytics, monitoring, and decision-making.
5. License Refresh: Ensures licenses are up-to-date, preventing disruptions due to expired or invalid licenses.

Benefits of Scheduled Jobs

The use of automated jobs in Robility Manager provides several advantages:

1. Scheduled jobs ensure that critical processes occur at the right time and frequency, reducing the risk of missed tasks or delays.
2. By automating repetitive and time-sensitive tasks, jobs free up administrators’ time to focus on strategic priorities.
3. Automation minimizes human involvement, thereby reducing the likelihood of errors caused by oversight or manual input.
4. As the business grows, scheduled jobs can handle increased workloads without requiring additional resources.
5. Automated monitoring and expiration handling enhance data protection and system security.

Key Vault

The Key Vault provides a secure and centralized platform for managing sensitive data — including credentials, encryption keys, and secrets — essential for automation processes. It encrypts and consolidates this information, ensuring it is protected and accessible only by authorized users or automated bots. This approach supports a Zero Trust security model, which is crucial for automation workflows that interact with external APIs, databases, and cloud services.

By default, credential storage is configured to the Robility Manager Instance. Tenant administrators have exclusive permissions to modify this setup and integrate external vault services such as Azure Key Vault, AWS Key Management Service (KMS), and Google Cloud Key Management Service (KMS).

Click here to learn more about the types of credentials that can be stored in the vault.

Supported Third-Party Vault Integrations

Robility enables seamless connections with leading third-party vaults to securely store and manage assets, credentials, and encryption keys, maintaining strong protection throughout the automation lifecycle.

Vault Provider Description and Features Key Highlights
Azure Key Vault A cloud service for securely managing keys, secrets, and certificates with hardware security module (HSM) support.
  • HSM-backed key storage compliant with FIPS standards
  • Role-Based Access Control via Azure AD
  • Detailed audit logging for vault operations
AWS KMS Managed encryption key service integrated with AWS Identity and Access Management (IAM) for secure workflows.
  • FIPS 140-2 validated cryptographic operations
  • Automatic key rotation
  • Fine-grained access control via IAM
Google Cloud KMS Centralized key management with multi-region support and optional Cloud HSM for enhanced security compliance
  • Multi-region geographic key management
  • Key versioning with rotation and disabling
  • Cloud HSM offering with FIPS 140-2 Level 3 compliance

Configuring Third-Party Vaults

Each vault requires specific authentication credentials (such as client IDs, secrets, tokens, or service account keys) unique to the vault provider.

To configure a vault integration:

1. Select the desired third-party vault (Azure Key Vault, AWS KMS, or Google Cloud KMS) in the Robility Manager interface.
2. Enter the required authentication details according to the selected vault’s specifications.
3. Use the Validate button to verify credential accuracy against the vault provider.
4. Once validated, enable the integration by clicking Activate.
5. If validation fails, correct the errors to proceed.
6. After activation, manage credentials within the Vault page for your projects.

Click here to refer to the official Robility documentation for detailed setup guidance. 

This robust Key Vault management ensures critical credential security and operational flexibility for secure, efficient automation workflows. 

How will switching vault providers impact my existing credentials and automation workflows?

Switching vault providers will not automatically transfer your existing credentials from the previous vault. You will need to manually re-add any required credentials to the new vault integration, as stored credentials do not migrate between vaults. However, credentials already configured in the existing vault remain accessible within the Robility Manager and can continue to be retrieved seamlessly even after you switch to a different vault integration.

Regarding automation workflows:

1. You must reconfigure encryption settings to match the new vault provider when switching vaults.
2. Only one vault integration can be active at a time, but you can update or switch configurations at any time without waiting periods.
3. Any credentials used in your automation processes must be properly added and validated in the new vault to avoid disruption.
4. If your vault configuration expires or validations fail post-switch, you’ll need to reconfigure and revalidate the vault to maintain secure access.

How does Robility ensure secure management of secrets across multiple vaults

Robility ensures secure management of secrets across multiple vaults by implementing a robust, multi-layered security architecture combined with strict access controls and comprehensive auditing:

1. Encryption at Rest and In Transit: All secrets stored in the Robility Credential Vault are encrypted using industry-leading AES-256 encryption. Encryption keys are securely generated, managed, and protected within Robility’s infrastructure. Communication between all components (bots, Vault, Manager) uses TLS 1.2, ensuring data is encrypted in transit.

2. Tenant Isolation: Each tenant’s credentials are stored in physically isolated Azure SQL Managed Instances, preventing cross-tenant data access. These databases use Transparent Data Encryption (TDE) to protect data at rest.

3. Role-Based Access Control (RBAC): Access to secrets is governed through a fine-grained RBAC model, ensuring only authorized users and automation processes can read, write, or manage secrets. This enforces the principle of least privilege consistently.

4. Comprehensive Audit Logging: Every interaction with the Vault—storing, accessing, or modifying secrets—is logged. These logs provide transparency, support compliance requirements, and enable security investigations.

5. Support for Multiple Vault Integrations: Robility integrates securely with external vault providers (e.g., Azure Key Vault, AWS KMS, Google Cloud KMS), leveraging their native security features such as HSM-backed keys, automatic key rotation, and fine-grained identity access control.

6. Single Vault Activation with Flexible Switching: While only one vault configuration can be active at a time, Robility allows seamless switching between vault providers with reconfiguration. Credentials remain accessible through the Robility Manager even during transitions, reducing disruption.

7. Zero Trust Security Model: Robility’s design aligns with Zero Trust principles by strictly verifying every access request, encrypting all sensitive data, and enforcing continuous validation and monitoring throughout the automation lifecycle. 

Click here to learn more about the best practices while configuring the credentials. 

File Storage

Robility provides cloud-based file storage to efficiently organize and manage data produced during automation. This includes published workflows, templates, and key file types such as PDFs, Word documents, Excel spreadsheets, images, videos, and audio (.pdf, .doc, .xlsx, .jpg, .png, .mp4, .mp3, etc.).

Storage Integration Options

By default, Robility’s Cloud and Hybrid deployment models connect to Sutherland’s Blob Storage account for flexible and scalable storage. Additionally, all Robility deployment options support seamless integration with third-party storage services, enabling organizations to tailor storage solutions to their needs and scale effectively.

Tenant administrators have full control to customize storage settings, aligning configurations with specific organizational requirements.

Supported Third-Party Storage Providers

Robility integrates with the following cloud storage platforms:

Storage Service Description and Features
Azure Blob Storage
  • Massive scalability for structured and unstructured data
  • Tiered storage (hot, cool, archive)
  • Automated lifecycle management for cost and performance optimization
Amazon S3
  • Scalable storage supporting workloads of any size
  • Acts as a data lake for raw structured and unstructured data
  • Cross-region replication for high availability and disaster recovery
Google Cloud Storage
  • Unified object storage for all data types
  • Multi-regional and dual-regional options ensuring redundancy
  • Fine-grained access control with IAM policies and ACLs

How to Change Your Storage Configuration

1. Log in to Robility Manager and select your tenant.
2. Navigate to the Settings page and open the Storage menu.
3. Select the preferred storage integration option.
4. Enter the required account details and click Validate to verify credentials.
5. After validation, click Connect.
6. A confirmation message will indicate a successful connection. 

How can I switch and configure my preferred storage accounts in Robility?

To switch and configure your preferred storage account in Robility, follow these steps:

1. Access Robility Manager: Log in and select your tenant.
2. Open Storage Settings: Navigate to the Settings page and locate the Storage menu. 
3. Choose Storage Integration: From the available options, select the preferred third-party storage service (e.g., Azure Blob Storage, AWS S3, Google Cloud Storage).
4. Enter Credentials: Provide the required account details for your chosen storage provider and click Validate to verify them. 
5. Connect Storage: After successful validation, click Connect. You will receive a confirmation message upon successful connection. 

Important considerations:

1. You can connect only one storage service at a time but may switch or update configurations whenever required without any waiting period.
2. Data from your previous storage setup will not be migrated automatically; you will need to manually upload any needed files to your new storage account.
3. Files stored in prior storage integrations remain accessible via Robility Manager even after switching.
4. For cost optimization, consider using appropriate storage classes or tiers (such as Hot, Cool, Archive in Azure Blob Storage) based on data usage patterns. You can change these tiers within Azure Storage via the Azure portal under the storage account’s configuration or at the blob level.
5. Use Robility’s built-in Smart Configuration Assistant for recommendations on the best storage option tailored to your automation requirements.

If you need to manage or create a new storage account on platforms like Azure, AWS or Google typical steps include creating a resource group, specifying subscription, region, performance tier, and redundancy, which can be done via the Azure Portal or CLI.

This process ensures flexible, secure, and scalable storage management to support your automation workflows in Robility. 

How does Robility ensure data accessibility and security during storage configuration changes?

Robility ensures data accessibility and security during storage configuration changes through multiple robust measures:

1. Encryption: Customer data is encrypted both in transit and at rest using industry-standard encryption protocols, preventing unauthorized access during data transfers and storage. 
2. Role-Based Access Control (RBAC): Access authorization is strictly managed by tenant administrators who assign fine-grained permissions based on roles. This ensures only authorized personnel can access or modify storage configurations and data. 
3. Audit Logging: Comprehensive audit capabilities track all user actions related to storage and access, ensuring transparency and accountability during configuration changes. 
4. Data Availability: Files from previous storage configurations remain accessible in Robility Manager even after switching storage services, ensuring uninterrupted data access during transitions. 
5. Manual Data Migration: As data is not automatically moved when switching storage, organizations maintain control over file transfers, reducing risks of unintended exposure or loss. 
6. Third-Party Provider Security: Robility leverages secure, enterprise-grade cloud storage platforms (Azure Blob Storage, AWS S3, Google Cloud Storage), each offering features such as multi-factor authentication, fine-grained access policies, data replication, and disaster recovery to maintain data security and availability during changes. 
7. Tenant Customization: Tenant administrators can customize storage configurations to align with organizational security policies, including using customer-managed encryption keys and managed identities when applicable. 

What practices does Robility follow to prevent tampering during storage reconfiguration?

Robility prevents tampering during storage reconfiguration by implementing a combination of strong security practices and controls designed to ensure data integrity and detect unauthorized changes. While not specific to Robility’s internal processes, established tamper-evident techniques such as audit trails, secure seals, and employee training are industry best practices that align with preventing tampering during any storage handling.

Together, these practices create strong safeguards that minimize tampering risks and ensure the integrity and security of data throughout any storage configuration changes within Robility.

Connecting the Runner

Connect to Runner with license key

Let’s see how to connect the Runner by configuring the license key.

1. Copy the license key which is the activation code for the respective robot in runner by clicking on the “Key” button.
2. Launch the runner and enter the copied key to the activation code and click on connect.

Robot status and color codes

The color codes define the status of the ‘Runner’ connected to the project. They are available against each project where the robot is connected.

1. When the robot status shows Blue, it indicates that robots are idle.
2. When the robot status shows Green, it indicates that robots are in running state.

3. When the robot status shows Yellow, it indicates that the robots are in Tocheck state.
4. When the robot status shows Red, it indicates that the robots are in Faulted state
5. When the robot status doesn’t have any number or color code to it, there are no robots assigned to that project.

Execution of robot

Once the activation code has been entered in runner, the bot is ready to run. (Activation code is the key mentioned against the robot)

To execute the bot in the runner,

1. Open the “Deploy Robots” page in the Robility manager.
2. Click on Run against the machine which is in “Idle” state. It gives a message that the robot is initiated successfully.
3. We also get a pop-up message from the system tray where Runner is available as “Request received to run.”
4. Once it is completed, a message is popped up from system tray. “Run completed”.

Once the run is initiated the bot completes the run and executes the assigned workflow in the designated machine. Click here to know more about the status of the Robot. 

Settings

Settings

The Settings page has three sections categorized. They are as follows, 

1. Profile: This section contains the information about the system and Tenant on the Robility Manager.
a. System Name: This is the system name where the runner is scheduled. 
b. Manager URL: Clicking on this link will navigate to the login page of the Robility manager.
c. Connected to: This displays the tenant’s name associated with the Manager and Runner.
d. License Expires on: The license’s expiration date and time are displayed here. Each license has a 90 days expiration date. Here, the time and date are expressed as of the license’s activation.
e. Environment: This displays the environment of the Robility Manager where the Runner is connected to. 

2. Optimization: Click here to know about the optimization configuration. 

3. Product Update: There is a toggle key that enables and disables the auto update. The runner automatically updates to any newly published patch when the auto update key is turned on. When the auto update feature is disabled, a pop-up window notifies the user that an update is available and asks them to upgrade the runner.

Disconnect Runner

To disconnect the bot from the runner, click on from the right-hand side top corner of the screen. A confirmation message to disconnect the runner will appear. Once we click on yes, the current robot will be disconnected from the runner.

Extensions

Robility Extensions are mandatory for utilization of Web Automation feature, allowing bots to interact seamlessly with web applications. These extensions are designed to:

1. Detect and locate all editable UI elements in browsers.
2. Facilitate communication between the Robility application (Designer and Runner) and supported browsers (Google Chrome and Microsoft Edge).
3. Enable bots to perform automation tasks efficiently on web-based applications.

To ensure proper automation, the Robility Extension must be installed and activated in the browser.

How to install the extensions from Robility Designer?

There are two methods to install the extensions from Robility Designer to automate with Web Automation:

During Designer Launch:

When launching Robility Designer, the application automatically checks for the required browser extensions:

1. If the extensions are not detected, a prompt appears requesting installation.
2. Once installed, users must manually enable the extension in their browser settings.
3. Launch Google Chrome or Microsoft Edge after installation, a prompt appears asking for permission to enable the extension.
4. Click “Enable” to activate the extension and allow the automation to function properly.
5. If the prompt does not appear, go to “Extensions” on the browser and enable them manually.

From the Configuration Menu:

If the extensions were not installed during the initial launch, users can manually install them later via Robility Designer:

1. Open Robility Designer.
2. Navigate to the “Configuration” menu on the home screen.
3. Under “Robility Extensions” (on the right-hand side), install the required extensions for your preferred browser.

How to install extensions from Robility Runner?

1. During the installation of Robility Runner, the application validates whether the Robility Automation Extension is available.
2. If the extension is missing, it will be installed automatically without requiring user intervention.
3. However, when launching the browser for the first time, users will see a message prompting them to enable the extension.
4. Click “Enable” to activate it and start using automation on Chrome or Edge.

For troubleshooting steps related to extension installation and automation, click here to view the detailed guide.

Release Notes

v.3.4

Issue

The user was unable to automate actions on a specific website using WebAutomation activities.

Root Cause

Although the feature successfully identified the element, the browser blocked the programmatic action due to a Content Security Policy (CSP) error.

Fix Details

We have resolved the issue by updating the runtime script to handle the JavaScript execution in compliance with CSP restrictions.

v.3.2

Issue

The user is unable to click on a specific element on the webpage.

Root cause

We found that the issue was with the general.css file, which was used to highlight elements. After adding the CSS file, it attempts to search for headers on the web page. Since there are no headers on the current web page, it was throwing a null error.

Fix details

We added the general.css file for overall styling, but the exact name of the CSS file could vary (e.g., main.css, style.css, or base.css). Therefore, we added validations to the style.css file for those extensions and released revised version.

Expected behavior

Since we added the validations to the style.css file, even though the headers are not present on the webpage, the web automation (clicking on a specific element) will work.

Group Policies

There are few group policies that can affect the installation of the Robility extension or even stop the bots to automate the tasks on websites after installation. These policies are often configured by organizations to manage and control which extensions can be installed on their users’ browsers. Below are the specific scenarios where the installation of the Robility extension may be blocked or restricted:

1. ExtensionBlockInstallList Policy: Organizations can configure this policy to block the installation of any extensions on Chrome browsers. When set to True, users cannot install extensions. You can check whether this policy is enabled at “chrome://policy”.  

2. ExtensionForceInstallList: Administrators can configure a list of force-installed extensions using group policy, which overrides user control. If Robility Automation extensions are not included in this list, they will be blocked from being installed. You can check whether this policy at “chrome://policy”.  

3. Extensions Blocked via Device Management: In a managed environment, an administrator may use device management settings to prevent users from adding any extensions or limit them to a pre-approved set of extensions. Follow the below steps to check, 

a. Click on the three-dot menu () in the top-right corner.
b. Scroll down and check if there is a message “Managed by your organization” at the bottom of the menu.

4. User Permissions and Privileges: Restrictions on user might prevent users from installing extensions. Users without admin rights may be blocked from installing any extensions.

a. On Windows, if a user does not have admin rights, they may be unable to install extensions or make system changes.
b. Organizations may configure Group Policy on Windows to prevent certain users from installing extensions.

5. NativeMessagingBlockList: This policy controls which browser extensions can communicate with external applications on a user’s computer. If set to “*”, it blocks all such connections, preventing Robility WebAutomation from working.

To enable automation, IT administrators must allow:

a. Robility Chrome Native App (for Chrome)
b. Robility Edge Native App (for Edge)

6. Chrome Web Store Blocking: If an organization blocks access to the Chrome Web Store or restricts the use of certain URLs or domains, users won’t be able to download and install the Robility extension directly from the store.

7. Security Software or Firewall Settings: Some security software or network firewalls may block installation of extensions from certain sources, including the Chrome Web Store, which could prevent the installation of Robility’s browser extension.

Manual Installation of Extension

To resolve the above-mentioned scenarios, contact your organization’s IT administrator to request access. Until then, administrators can manually install the extension using the browser’s “Load Unpacked” option, allowing temporary installation from a local folder. However, this does not apply to NativeMessaging Host issues. Click here to learn more.

This method is not recommended for long-term solution. Follow the below steps to install an unpacked extension:

Steps to Load Unpacked Extensions in Chrome:

1. Open your Chrome browser and type chrome://extensions/ into the address bar, then press Enter.
2. This will take you to the Extensions management page where you can see all the installed extensions.
3. In the Extensions page, look to the top-right corner, where you’ll see a toggle for Developer mode.
4. Switch this toggle to the “On” position. 
5. Once Developer mode is enabled, you’ll see new buttons appear on the page: Load unpacked, Pack extension and Update.
6. Click on the Load unpacked button, which will open a file picker window to select the folder containing the extension files that you want to install.
7. In the file picker window, navigate to the folder where the unpacked extension is located. The folder should contain the manifest.json file, which is the core file of the extension, along with any other necessary files (such as HTML, CSS, JavaScript, images, etc.).
8. Once the folder is selected, the extension will be installed and immediately visible on the Extensions page (chrome://extensions/).

Important Considerations

1. Manual installation via the “Load Unpacked” option should only be used when explicitly allowed by your organization. If you are unsure about your organization’s policies, it’s always best to check with the IT department or the team responsible for managing browser configurations.

2. No Automatic Updates: Unlike extensions installed from the Chrome Web Store, unpacked extensions will not automatically update. You will need to manually update the files in the folder and reload the extension each time an update is made.

Troubleshooting Steps

This page highlights the most common issues that may affect the functionality of the Robility Automation extension installed on Chrome and Edge browser and provides step-by-step solutions to help users diagnose and resolve them efficiently.

Exception with Open Web Browser Activity: Browser Not Responding

The “Open Web Browser” activity may throw an exception “Browser Not Responding. Close and reopen the browser” if the CPU utilization is high. In some cases, the activity may fail, but the browser might still launch. When CPU usage is high, system resources are heavily utilized, causing the browser take longer to launch, leading to a timeout or failure in the activity. Click here to know about the minimum system requirements for Robility. 

How to resolve this?

1. Optimize CPU Utilization: Ensure that CPU usage is stable. If necessary, verify that the system meets the hardware requirements for running Robility Designer and Runner.
2. Modify Activity Properties: In the “Open Web Browser” activity, set the “WaitForReady” property to “Complete” and increase the wait time to allow the browser to launch properly. 

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions are removed automatically 

If the Robility Automation extension is removed automatically after installation, it may need to be reinstalled manually. This issue can occur due to various factors as below, 

1. User Profile Reset: If your browser profile is reset or corrupted, it may result in the removal of installed extensions.
2. IT Security Policies: Many organizations enforce group policies that restrict or remove extensions.

Click here to know how to install the extension. 

How to Resolve This Issue?

1. Manually reinstall the extension if it has been removed.
2. Verify browser settings to ensure extensions are allowed.
3. Whitelist Robility Automation in security software or IT policies.
4. Check with your IT administrator if the extension is being removed due to organizational policies.

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions May Be Corrupted

If the Robility Automation extension displays the message “Extension may be corrupted,” it means the browser has detected potential issues that may affect its functionality. This could be due to security risks, firewall restrictions, or a corrupted installation.

Possible Causes:

1. Browser Security Alerts: Chrome and other browsers automatically check for extension integrity. If they detect unusual behavior or incomplete files, they may flag the extension as corrupted.
2. Firewall or Antivirus Interference: Certain security policies or firewall settings may block extensions, causing them to malfunction.
3. Incomplete Installation or Browser Updates: A failed installation or an interrupted browser update can corrupt the extension files.
4. Third-Party Software Conflicts: Some browser extensions or installed applications may interfere with Robility Automation, leading to corruption warnings.

How to Check and Fix the Issue?

1. Open Chrome Extensions by navigating to “Chrome:extensions”
2. Locate the Robility Automation extension and if marked as corrupted, you will see an option to “Repair” the extension.
3. Click the “Repair” button to allow Chrome to reinstall and fix the extension automatically.
4. Restart the browser and check if the issue is resolved.
5. Ensure your firewall, antivirus, or endpoint security is not blocking or restricting the extension.
6. If repairing does not resolve the issue, try removing and reinstalling the Robility Automation extension.

If the issue continues, contact your IT administrator for further troubleshooting.

Activity is not working properly, please close and re-open the browser and try again

If you encounter the message “Activity is not working properly, please close and re-open the browser and try again” while executing the robot, follow these steps to resolve the issue.

Step 1: Check If Extensions Are Installed and Enabled

The first step is to ensure that the Robility Automation extension is installed and enabled in your browser. If the extensions are not enabled, follow the instructions here to learn how to install them.

Step 2: Verify Native Messaging Host Functionality

If the extensions are installed and enabled but the issue persists, we need to check whether the Native Messaging Hosts are running. 

What is Native Messaging Host?

The Native Messaging Host is a communication port that enables interaction between the browser extension and the Robility activities. In Robility, the Native Messaging Hosts are:

a. RobilityChromeNativeApp (for Chrome)
b. RobilityEdgeNativeApp (for Edge)

Step 3: How to Check If the Robility NativeApp is Running

To verify that the Native Messaging Host is functioning properly, follow these steps:

1. Open Task Manager and navigate to the “Details” tab.
2. Check if RobilityChromeNativeApp.exe (for Chrome) or RobilityEdgeNativeApp.exe (for Edge) is running.
3. If the Native App is running or unavailable, move to the “Extensions” tab in your browser.
4. Enable “Developer Mode” at the top of the page.
5. Find the “RobilityAutomation” extension and click on the “Service Worker” link.
6. A new DevTools window will open, displaying the Native Messaging app logs.
7. If the log shows “Failed to connect”, it means the communication port is disabled, preventing the activities from working.

Note: The Native Messaging Host may be blocked by group policies in your organization. Click here to learn more about group policies.

Step 4: Checking the Native Messaging Host in the Registry Editor

We also need to check the Registry Editor because it contains essential configuration data for both the extension and its communication with Robility activities. If the registry entries are missing or misconfigured, it could prevent the extension from properly connecting with Robility activities.

Here are the two key registry entries you need to locate:

1. Extension ID – lgnoojafhdgcpllpgolgpmjjdejnneom (Robility Automation). This entry ensures that the extension is correctly installed in the browser.
2. Robility.Runtime.Automation – Facilitates communication between the extension and Robility activities.

Where to Find These Entries:

1. Verify Extension Installation: Navigate to: HKEY_USERS → Unique SID (e.g., S-1-5-21-2144601217-6038991-817656539) → SOFTWARE → Google → Browser → Extensions → lgnoojafhdgcpllpgolgpmjjdejnneom. This confirms that the extension is installed correctly in the browser.
2. Verify Extension-Activity Communication: Navigate to: HKEY_CURRENT_USER → SOFTWARE → Browser → Chrome → NativeMessagingHosts → Robility.Runtime.Automation.This ensures proper communication between the extension and Robility activities

Step 5: What to Do If Registry Entries Are Missing?

If the registry entries for RobilityAutomation or Robility.Runtime.Automation are missing:

1. Reinstall the Robility Extension: Reinstalling the extension ensures that these registry entries are created automatically. If the entries are not present after reinstalling, it indicates an issue with the installation process, and you may need to troubleshoot further with Robility Support team.

2. Check Group Policies: In some cases, group policies in your organization may prevent the registry entries from being created. Contact your IT administrator to ensure that these policies allow the installation and configuration of the required registry keys.

Home Menu

The Home tab provides a variety of tools and options designed to assist users in creating and managing workflows effectively. Below is a detailed overview of the available menus and their functionalities.

New

1. The New menu enables users to create a fresh workflow or solution within the Designer.
2. Selecting the New Solution option allows users to start a new solution. Upon selection, a pop-up window appears prompting the user to provide essential details such as the solution name, solution description, workflow name, workflow description, and the file path to save the solution.
3. To create a New Workflow, users can select the corresponding option. A pop-up window will appear with pre-filled details, including the workflow name, workflow description, and the file path where the workflow should be saved. 

Open

The Open menu allows users to access workflows, whether within the same solution, across different solutions, or from templates. This feature streamlines the process of retrieving previously saved solutions or workflows while enabling the extraction of encrypted packages that have been published, ensuring smooth access to their content.

Open a Solution or Workflow: Users can open existing solutions or workflows by selecting this option. The process mirrors opening an existing solution or template. Simply click on the option and choose the required workflows from the designated folder.

Save 

The Save option will be enabled at the beginning of the workflow creation and whenever users make a change in the workflow. The workflow will be saved automatically as the
user has already entered the location path while creating. The user can save a particular or the current workflow by clicking on the Save workflow and if the user wants to save
all the workflows at one go, then click on Save all workflows.

Click here to refer how does publish works. 

Execution & Features

Execution

The Execution section provides users with various options to run or manage their workflows efficiently. These options offer flexibility and control over how workflows are executed, debugged, or stopped. Below is a detailed explanation of the available choices:

1. Workflow: This drop-down menu lists all the workflows available within the current solution. Users can easily navigate through the list, select the workflow they wish to execute, and proceed with the desired operation. This feature simplifies workflow management, ensuring quick access to the desired process.

2. Run as Debug: Selecting this option executes the workflow in debug mode. Debug mode is a critical tool for troubleshooting and refining workflows. It allows users to monitor each step of execution, identify errors or inefficiencies, and make necessary adjustments. This feature is especially useful during the development phase, where precision and accuracy are paramount.

3. Run: This option runs the selected workflow in standard execution mode. Unlike debug mode, this provides a streamlined execution path, ideal for testing or deploying finalized workflows. It ensures that the workflow is carried out as designed without the additional overhead of step-by-step debugging.

4. Stop: This option halts the execution of the currently selected workflow. It is particularly useful in scenarios where an error occurs during execution or if the workflow needs to be aborted for any reason. The Stop feature ensures users have full control over workflow operations, minimizing disruptions or unintended consequences.

Manage Features

The Manage Features screen offers a centralized location for viewing, managing, and updating features available for the Designer. This section is designed to enhance the user experience by providing seamless access to the tools and functionalities that support automation processes. Here are the details of the key functionalities:

1. Installed Features: This section lists all the features currently installed in the Designer. It helps users keep track of the capabilities already integrated into their setup, ensuring they can make the most of available tools.

2. Updates: This highlights any installed features that have updates available. Keeping features up-to-date is crucial for maintaining optimal performance, fixing bugs, and accessing new enhancements. This option ensures users can stay current with minimal effort.

3. New Features: This area showcases the latest features available for the Designer. It allows users to explore and integrate new tools that can expand the Designer’s capabilities, providing opportunities to innovate and improve workflows.

4. Browse for Features: The Browse option enables users to locate and add features stored locally on their systems. This flexibility allows for a customized setup, where users can incorporate features that suit their specific needs or workflows.

Clear

The Clear option provides a comprehensive set of cleanup features designed to optimize your workflow and solution. Over time, as workflows evolve, various unused elements such as variables, workflows, and arguments etc., may accumulate, leading to unnecessary clutter and possible runtime issues. This option allows users to remove such unused components, ensuring the solution remains organized, efficient, and error-free.

1. Clear Unused Variables: Removes variables that are declared but not referenced anywhere in the workflow.

2. Clear Unused Workflows: Deletes workflow files that are no longer being invoked or utilized within the main automation solution.

3. Clear Unused Arguments: Eliminates arguments that are defined in workflows but not passed or used, reducing confusion and ensuring data flow accuracy.

4. Clear Unused Dependencies: Removes and uninstalls packages and their dependencies that are not being used within the main automation solution.

5. Clear Unused Sequences: Removes unused sequences from the main automation solution.

Advance & Settings

Search Functionality

The Search feature is designed to enhance user productivity by providing a streamlined and user-friendly way to locate and interact with various elements within the Designer. It offers three distinct search options to cater to different user needs:

1. Add Activity: This option allows users to seamlessly add activities to their workflow. It displays a list of all activities associated with the installed features in the Designer. Users can simply select the desired activity from the list, and it will be directly added to the workflow, streamlining the design process.

2. Search by Display Name: This option enables users to locate activities within the current workflow based on their display names. These names can either be the default activity names or custom names assigned by the user. Selecting a name from the dropdown will navigate the user directly to the corresponding activity within the workflow, ensuring quick access and efficient editing.

3. Search by Variable/Argument Name: With this feature, users can search for any variable or argument utilized within the current workflow. By selecting the Search by Variable/Argument Name option, users can locate and highlight the activity where the variable or argument is being used. This functionality simplifies debugging and enhances clarity in complex workflows.

Form Builder

The Form Builder tab, located within the home menu, provides users with a powerful tool to create custom forms directly within the Designer. This feature is designed to streamline the process of building interactive forms for automation workflows. If the Form Builder is not yet installed in your environment, clicking on this tab will automatically begin the installation process. During installation, the required components are downloaded and set up, ensuring that the feature is available for use.

Once the installation is complete, the tab will refresh, and you can easily click on it again to launch the Form Builder interface. This opens a dedicated window where users can design and configure their forms, specifying fields, actions, and conditions for a seamless user experience in automation processes.

The Form Builder tool allows users to create complex forms with ease, leveraging a wide range of customization options, including field types, validation rules, and interactive elements. Whether you need to collect data from users, enable inputs for automation, or create customized workflows, the Form Builder offers all the necessary features for efficient form creation.

Logs

The Logs option in the Home menu offers two essential features: Open Logs and Log Settings, designed to help users monitor and troubleshoot workflows effectively.

Open Logs

The Open Logs feature provides direct access to the log files stored in the system. By clicking this option, users can view detailed logs related to workflow execution. These logs capture important information about the system’s activities, including timestamps, error messages, warnings, and other critical data. Accessing these logs is crucial for troubleshooting, identifying system performance issues, or simply reviewing the outcomes of automated processes. Users can filter and analyze log data to gain insights into how their workflows are performing, making it easier to detect errors or optimize workflows for improved efficiency.

Log Settings

The Log Settings feature allows users to customize the log level for their workflow execution. By adjusting the log settings, users can control how much information is captured and displayed during the execution process. This feature provides five different log levels, each suited for specific use cases. Here’s a detailed breakdown of each:

1. Trace

Purpose: The Trace log level is the most detailed level of logging. It captures fine-grained information about the execution of specific portions of the code. This level is primarily used for tracing function calls, variable states, and other minute details that are helpful for diagnosing subtle or complex issues.
When to Use: Trace logs are typically used during development or debugging phases to understand the flow of the automation process at a very granular level. It’s particularly helpful for developers who need to trace the execution step-by-step to pinpoint the cause of problems.

2. Debug

Purpose: The Debug log level is used to record messages specifically related to the debugging process. This log level helps developers by capturing information that provides insight into how code is executing, without overwhelming them with excessive details.
When to Use: Use this level during development to capture useful debug messages. It’s ideal when you’re testing new workflows or troubleshooting development-stage issues and want to monitor the workflow’s behavior in real-time.

3. Info

Purpose: The Info log level records general informational messages that don’t indicate errors. These messages provide context about the workflow’s execution, such as progress updates, completion confirmations, or routine status updates.
When to Use: Info logs are best for capturing events that represent normal operation, such as successfully completing tasks or reaching checkpoints. This level allows users to understand the general flow of the workflow without being distracted by unnecessary details.

4. Error

Purpose: The Error log level is designed to capture serious issues that impact the workflow’s functionality. This level logs critical errors that may prevent the process from continuing or result in workflow failure.
When to Use: Error logs are essential when a workflow encounters a fault that stops its execution. It’s particularly important to monitor this level during production or mission-critical workflows, as it helps identify and address major issues promptly.

5. Warn

Purpose: The Warn log level captures warnings related to potential issues or deviations from the expected behavior that do not necessarily stop the workflow from running. These warnings are meant to alert users to conditions that could become problems in the future, such as slow performance or minor exceptions.
When to Use: Use Warn logs when you suspect there might be an issue that doesn’t require immediate action but should be monitored. For example, a workflow might be running slower than expected, or a deprecated feature might be used—Warn logs help catch such conditions before they escalate.

Run from this Activity

Run from This Activity is a workflow execution option that allows users to start a workflow from a selected activity instead of executing the entire workflow from the beginning. This feature supports efficient development, testing, and debugging by enabling users to target and validate specific sections of a workflow without repeating previously completed steps.

How It Works

When a user selects an activity and triggers the Run from This Activity option, the workflow engine skips all preceding activities and begins execution from the selected point. The workflow then continues to execute sequentially from that activity onward until it either completes successfully or encounters an error.

a. The Run from This Activity option is available only for activities that are connected to a node within the workflow.
b. Activities that are not connected to any node will not have this option enabled and cannot be executed using this feature.

During execution, the Debug Watcher panel automatically opens and displays the variables, arguments, and properties of the currently executing activity.

Debug Watcher

The Debug Watcher is a dedicated debugging panel in Robility Designer that provides real-time visibility into the internal state of a workflow during a debug session. It allows users to monitor and inspect variables, arguments, and activity properties as the workflow executes step by step, making it an essential tool for identifying issues, validating logic, and ensuring the workflow behaves as expected.

Sections in Debug Watcher

1. Variables – Displays all variables defined in the workflow along with their current runtime values during execution.

Each entry includes:
a. Variable Name – The name of the variable. 
b. Variable Type – The data type of the variable, such as Boolean, String, or Int32.
c. Value – The current runtime value of the variable.
This section helps track how variable values change as activities are executed.

2. Arguments – Displays all arguments passed into or out of the workflow during execution.

Each entry includes:
a. Argument Name – The name of the argument.
b. Argument Type – The data type of the argument.
c. Value – The current runtime value of the argument.
This section is useful for debugging workflows that are invoked by other workflows and rely on input or output arguments.

3. Properties of the Selected Activity – Displays the input and output properties of the currently executing activity.

Each entry includes:
a. Property Name – The name of the property.
b. Property Type – Indicates whether the property is an input (InArgument) or output (OutArgument) and displays its data type.
c. Value – The current value assigned to the property.
This section helps verify that the correct values are being passed into and returned from each activity during execution.

Visual Indicators
During execution, Robility Designer provides real-time visual feedback to help users track workflow progress:
Yellow – Indicates the activity that is currently being executed.
Green – Indicates activities that have completed successfully.
This color-coded highlighting provides a clear visual trail of workflow execution, making it easier to monitor progress and identify the current execution state.

Key Benefits

1. Saves Time: Eliminates the need to rerun the entire workflow when only a specific section needs to be tested or validated.
2. Improves Debugging: Allows developers to isolate and focus on a particular activity or workflow section without interference from earlier steps.
3. Enhances Development Efficiency: Especially useful when working with large or complex workflows containing numerous activities.
4. Targeted Validation: Enables precise testing of specific automation logic without rerunning previously completed steps.

Important

Activities that depend on variables, application states, or outputs generated by earlier steps may require those dependencies to be available before execution. If the selected starting activity relies on data or conditions established by preceding activities, those prerequisites must be manually configured or ensured before triggering Run from This Activity. Failure to do so may result in errors or unexpected behavior.

Immediate Window

The Immediate Window allows you to evaluate expressions, inspect runtime variables, and execute supported commands while a workflow is paused during debugging. It provides access to the current execution context, enabling you to validate logic, troubleshoot issues, and inspect runtime values without modifying the workflow or restarting the debugging session.

How It Works

The Immediate Window is available only during an active debugging session when workflow execution is paused, such as at a breakpoint or while stepping through activities.

To use the Immediate Window:

1. Start debugging the workflow.
2. Pause execution at a breakpoint or use a step action.
3. Open the Immediate Window.
4. Enter an expression or supported command.
5. Press Enter to evaluate the expression and view the result.

Running a Workflow in Debug Mode

1. Right-click the activity where you want the workflow to pause and select Toggle Breakpoint.
2. Run the workflow. 
3. A confirmation dialog appears asking: Do you want to run the workflow in Debug Mode?
4. Click Yes to start debugging or No to cancel.
5. When the workflow reaches the breakpoint, execution is paused, allowing you to inspect and evaluate runtime data.

Workspace

Workspace

The Workspace is the central area where users build and manage their workflows. It serves as the canvas for creating and executing automation tasks. In the workflow, users can perform various actions by adding activities. These activities are easily dragged and dropped from the Toolbox onto the workspace, where they are arranged to form the sequence of tasks the robot will execute.

The Workspace is positioned between the Toolbox and Properties panels in the Designer, providing a seamless and intuitive environment for users to design, test, and modify their workflows. This layout ensures that users have quick access to all the necessary tools and settings, streamlining the process of building effective and efficient automations.

Add Try Catch

Robility offers a feature that allows users to encapsulate activities within the “TryCatch” structure with a single click. The “Add Try catch” functionality simplifies the process of adding a try-catch block to an activity. By right-clicking on the activity and selecting the “Add Try catch” option, the activity will be encapsulated within the try-catch block.

This feature significantly streamlines error handling and enhances the robustness of automation workflows. The “TryCatch” structure is a crucial element for managing exceptions and ensuring smoother execution of activities.

The simplicity of adding a try-catch block with just a right-click on the activity provides an efficient way to enhance the resilience of automation workflows. It enables users to define specific actions to be taken in case of exceptions, facilitating effective debugging and troubleshooting.

Benefits

1. Error Resilience: The primary benefit is enhanced error resilience. By encapsulating a sequence of activities within a Try-Catch block, the workflow can gracefully handle exceptions without abruptly terminating the automation process.
2. Effective Debugging: When an exception occurs within the Try block, the Catch block captures and handles the error. This facilitates effective debugging, as developers can identify and troubleshoot issues more efficiently.
3. Graceful Handling of Exceptions: The Try-Catch structure allows developers to define specific actions to be taken in case of different types of exceptions. This ensures a more controlled and graceful response to unexpected errors.
4. Prevention of Unintended Termination: Without a Try-Catch structure, a single exception in the workflow could lead to the termination of the entire automation process. Surrounding critical activities with Try-Catch prevents such unintended terminations.
5. Controlled Flow of Execution: The Try-Catch structure provides a controlled flow of execution. Even if an exception occurs, the workflow can proceed with defined actions or recovery mechanisms specified in the Catch block.
7. Efficient Troubleshooting: For large and complex workflows, the Try-Catch structure facilitates efficient troubleshooting. Developers can isolate and address issues within specific activities, making it easier to identify and resolve problems.

How to utilize this feature in the workflow?

1. Drag and drop any activity to the workflow.
2. Add or pass the required inputs.
3. Now, right click on the activity and choose “Add Try Catch” option.
4. The activity will be encapsulated inside the try catch block.

Publish

Publishing automation bots provides users with the ability to store their solutions in the cloud, offering seamless access and execution through the Runner. By publishing bots to the cloud or locally, users can ensure that they are always working with the most up-to-date versions of their automation. This flexibility allows for efficient deployment and management of automation processes, regardless of the location of the solution. Whether it’s for local execution or cloud-based execution, the solution remains easily accessible, ensuring smooth workflows and up-to-date performance.

Once the automation bots are published, they are available under the Workflow Menu in the Manager. This central hub allows users to quickly retrieve and execute their solutions, making it convenient to manage different versions and configurations of their automation projects. Whether you’re deploying a new automation or updating an existing one, publishing provides a streamlined way to keep everything current and accessible for efficient operation.

Version Control

Version control helps the developer to save the solutions for best practices. This allows developers to have a record of their workflow versions and to easily revert back to an older version if needed. It helps the users to simplify the iteration tracking against each robot.

How does the version control work?

The version control functions with the release type chosen at the time of publishing the solutions. The solutions are published as three types – Major, Minor and Bug.

Major

The Major type allows the user to enable when there has been a major change in the functionality done in the workflows. The version number of the solution will be changed to the next serial number. For e.g., (from 1.0.0. to 2.0.0).

Properties

Solution Name: The solution name will be generated automatically. The user will not be able to edit the name.
Solution Description: Provide a solution description for what automation has it been developed, and it uses.
Current Version: The current version of the solution will appear here. It will be disabled to edit.
Release Type: Three radio buttons Major, Minor and Bug will be available. Choose Major when there is whole functionality change, and the version number will be changed. For e.g., (from 1.0.0. to 2.0.0).
New Version: The new version will appear here based on the release type chosen. It will be disabled to edit. When Major type is chosen, the version number will be changed to next series. For e.g., (from 1.0.0. to 2.0.0).
Release Notes: Enter the release notes of each version and the type of changes that has been implemented in the new version.

Minor

The Minor type allows the user to enable when there has been some minor change in the functionality implemented in the workflows. The version number of the solution will have minor change in the serial number. For e.g., (from 1.0.0 to 1.1.0).

Properties

Solution Name: The solution name will be generated automatically. The user will not be able to edit the name.
Solution Description: Provide the solution description for what automation has it been developed, and it uses.
Current Version: The current version of the solution will appear here. It will be disabled to edit.
Release Type: Three radio buttons Major, Minor and Bug will be available. Choose Minor when there is minor functionality change, and the version number will be changed. For e.g., (from 1.0.0. to 1.1.0).
New Version: The new version will appear here based on the release type chosen. It will be disabled to edit. When Minor type is chosen, the version number will be changed to next series. For e.g., (from 1.0.0. to 1.1.0).
Release Notes: Enter the release notes of each version and the type of changes that has been implemented in the new version.

Bug

The Bug type allows the user to enable when there have been minor bug fixes implemented in the workflows. The version number of the solution will be increased orderly. For e.g., (from 1.0.0 to 1.0.1).

Properties

Solution Name: The solution name will be generated automatically. The user will not be able to edit the name.
Solution Description: Provide the solution description for what automation has it been developed, and it uses.
Current Version: The current version of the solution will appear here. It will be disabled to edit.
Release Type: Three radio buttons Major, Minor and Bug will be available. Choose Minor when there is minor functionality change and the version number will be changed. For e.g., (from 1.0.0. to 1.1.0).
New Version: The new version will appear here based on the release type chosen. It will be disabled to edit. When Minor type is chosen, the version number will be changed to next series. For e.g., (from 1.0.0. to 1.1.0).
Release Notes: Enter the release notes of each version and the type of changes that has been implemented in the new version.

Publish Solutions

Solutions can be published both locally and to the Robility Manager, providing flexibility in deployment. By default, the publish type for solutions is set to “This PC” in the Designer.

1. Streamlined Sharing and Reuse: This publishing feature simplifies the process, allowing users to easily share and reuse automation templates across various teams and projects, promoting collaboration and consistency.

2. Centralized Management with Robility Manager: Publishing to Robility Manager offers the benefits of centralized management, monitoring, and version control. This ensures that the latest versions of automation bots are always accessible, enabling teams to maintain up-to-date workflows and improve efficiency.

3. Local Deployment for Development and Testing: Local deployment provides the advantage of rapid testing and execution within a controlled environment. This is particularly useful during development and troubleshooting, as it allows users to quickly iterate on and refine automation solutions before, they are deployed to production

Publishing the solutions locally

Follow the below steps to publish it locally.

1. Once the development has been completed, save the solution.
2. The publish option will be available under the Home menu.
3. Before publishing, select the publish type from the Designer taskbar.
4. By default, the type will be selected as “This PC”.
5. Navigate to the Home menu and click on the “Publish” button.
6. Fill in all the details like solution description, release notes and choose the release types.
7. Enter a location path to save it locally.
8. Now click on the Publish button, your solution will be published locally.

Publishing the solutions to the cloud

Follow the below steps to publish it to the Robility Manager.

1. Once the development has been completed, save the solution.
2. The publish option will be available under the Home menu.
3. Before publishing, select the publish type from the Designer taskbar.
4. Select the publish type as “Projects” and select the project under which the solution needs to be published.
5. Navigate to the Home menu and click on the “Publish” button.
6. Fill in all the details like solution description, release notes and choose the release type.
7. Now click on the Publish button. 
8. If the solution has not been scanned yet, you will be prompted to run a scan. You can choose to either run or skip the scan, and the solution will still be published to the cloud. 

Click here to learn about security scan. 

Publish Templates

Users can publish their own templates for reuse by others or for deployment in automation. The goal of publishing templates is to allow all users within the tenant, with access to different projects, to collaborate easily and deploy automation. Templates can be published either to your tenant or to the Marketplace in Robility Manager. Private templates will be available only to users within your tenant, while templates published in the Marketplace will be accessible across all tenants within Robility Manager.

Publishing the template as Private

Solutions built will be published to “Your Robility Tenant” for your development use. These templates will be marked as private and be available to all users across “Your Robility Tenant”.

To publish the templates privately, follow the below steps,

1. Save the template solution.
2. Navigate to the bottom of the Designer and click on the Publish option.
3. Choose the option as “TenantName”.
4. Now, under the home menu, go to the Publish option.

5. Mention the solution description and choose the release type either as Major, Minor or Bug.
6. Based on the release type the new version will change accordingly.
7. Enter the release notes for the template and click on Publish.
8. A success message will appear on the screen displaying that your template has been published.

All templates published as “Private” will be saved “Your Robility Tenant” and be available for development use instantly.

Publishing the templates as Public

Solutions built will be published to the Robility Enterprise cloud for other clients to use. These templates will be publicly available for all users across Robility Enterprise Platform.

To publish the templates publicly, follow the below steps:

1. Save the template solution.
2. Navigate to the bottom of the Designer and click on the Publish option.
3. Choose the option as “Public(MarketPlace)”.
4. Now, under the home menu, go to the Publish option.

5. Mention the solution description and choose the release type either as Major, Minor or Bug.
6. Enter the release notes for the template and click on Publish.
7. A success message will appear on the screen displaying that your template has been published.

When the user publishes the templates across the tenant, it will be viewable and re-usable to all the users invited to the platform.

All templates published as “Shared” will be saved in the Robility Enterprise Cloud and synced to your Robility Tenant in 60 mins automatically. You will be able to use them once the sync is completed.

Desktop Automation

About

Robility® offers an intuitive and interactive feature that allows users to automate desktop-based applications. Commonly automated desktop applications include ERP systems, CRM tools, file management systems, Microsoft applications, and more. Desktop Automation enables the robot to capture elements and perform specified actions within the application. These activities are similar to web automation, with the key difference being that the robot operates on desktop/Windows applications.

Integration with Desktop Automation UIA3

Desktop Automation will be installed and integrated alongside the Desktop Automation UIA3 feature. Both features offer the same list of activities, with UIA3 providing more advanced technology. Desktop Automation UIA3 is more compatible and accurate in capturing the “Automation ID,” which Desktop Automation may sometimes struggle to detect.

Neither feature supports SAP applications unless “GUI scripting” for SAP has been enabled. But don’t worry—we offer another feature that helps you automate SAP applications. Click here to learn more.

Common Activities

Desktop Automation and Desktop Automation UIA3 share few common activities, such as “Launch Application,” “Get Attributes All,” and “Get Full Window Title.” These activities do not have any dependencies and can be easily combined and automated with other activities.

Dependencies

Desktop Automation may not support some applications, or specific elements might not be detected; in such cases, only the application itself will be detected. For better accuracy in detecting and identifying elements, Desktop Automation UIA3 may be necessary for certain applications.

In other scenarios, neither feature may support automation if the “Automation ID” attribute is indicated as “Not supported” in the application. The “Automation ID” is crucial for automating both desktop UIA and UIA3 activities. You can use the “Spy Explorer” option or the “UIA3 Spy Window” to check whether the element has an automation ID.

The robot will perform the specific action only if the “Automation ID” is supported for the element in the application.

Use Case

Here are some practical scenarios where Desktop Automation can be effectively utilized:

Report Generation: Automate the creation of reports in various formats (e.g., Excel, PDF) by extracting and consolidating data from multiple desktop applications.

Data Validation: Ensure data accuracy by cross-referencing information from different sources and flagging any discrepancies or inconsistencies.

HR and Employee Onboarding: Streamline employee onboarding processes, including account creation, document submission, and completion of training modules.

Data Entry: Automate repetitive data entry tasks, such as transferring information from one section to another within an application.

Release Notes

v.2.3.5

This release includes enhancements that improve interaction flexibility and control.

Enhancements

1. Offset X and Y Support
The Click and Set Text activities now support Offset X and Offset Y properties, allowing you to specify the click position relative to the target UI element.

Note: Downgrading the latest Desktop Automation package may result in missing activities.
 
Released Date: 08/07/2026

v.2.3.2

In this release, the following bug has been fixed:

Bug Fix

Addressed an issue where the BringToFront activity did not bring the expected Chrome browser session to the foreground when multiple sessions (Chrome 1, 2, and 3) were selected.

Limitation

1. Multiple windows required. To use this activity, use separate Chrome windows or separate desktop instances (e.g. Chrome 1, Chrome 2, Chrome 3), not multiple tabs within the same window.
2. Tabs are not supported. BringToFront works only in separate Windows and desktop sessions. It is not supported within tabs of a single window or desktop session.

Released Date: 16/04/2026

v.2.3.1

In this release, the following bug has been fixed:

Bug Fix

Fixed an issue where the LaunchApplication activity under Desktop Automation was not displaying logs when SkipOnError was set to True.

Released Date: 28/03/2026

v.2.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.2.8

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.2.2.1

This release includes a bug fix to improve functionality and user experience.

Bug Fix

The resize option in the ApplicationActions activity was not functioning properly. This issue has now been resolved.

Robility Spy

The Robility Spy Window provides various components designed to simplify the selection of elements within an application. This makes the automation setup process more intuitive and efficient.

How to Use?

1. To start:  To initiate the automation process, you need to identify and interact with the elements involved. The Robility Spy plays a crucial role in this by helping you efficiently select and configure these elements.

2. Selecting Elements: Begin by choosing the element in the application that you wish to automate. The Spy Window will assist in highlighting and selecting this element.

3. Understanding Attributes: Each element within an application is associated with several attributes. The Robility Spy helps you identify and select the necessary attribute for the specific element you are targeting.
Example: If you need to automate a button, click, the attribute might be its “ID” or “Name,” depending on how the button is defined in the application.

4. Automatic Attribute Selection: When you click on an element within the Spy Window, default attributes are automatically selected. This feature typically covers most automation scenarios, ensuring that you have the essential attributes for successful automation.

Default Attributes

The Robility Spy Window for Desktop Automation automatically selects certain default attributes. These attributes are mandatory for the successful automation of desktop applications. The default attributes include:

a. App: Specifies the root directory path of the application.
b. Cls: Represents the class name of the detected application.
c. Title: Indicates the window title of the element within the application.
d. ApplicationName: Provides the name of the detected application.
e. Id: Refers to the unique ID of the UIA (User Interface Automation) element.
f. Name: Shows the name assigned to the UIA element.
g. Cls: Identifies the class of the UIA element.

Configuring Attributes

1. Variable Assignment: You can assign variables to these attributes in the “ExecuteBy” section to dynamically adjust the automation process.

2. Hardcoding Values: Alternatively, you can hardcode default values for any of these attributes, depending on your specific automation needs.

BringToFront

BringToFront

The ‘BringToFront’ activity helps you bring the application into focus when it has been minimized during runtime.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality. 

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

WindowState: This parameter allows you to configure the application behavior.
Maximize: Maximizes the application.
Restore: Restores the application.
None: Does not perform any action.
By default, the ‘Maximize’ option will be selected.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Tips:

1. Enable the “UIA3” functionality when you have employed “DesktopAutomationUIA3” activities in the workflow. 
2. If “UIA3” is enabled, and there are no “UIA3” activities used in the workflow, it will not execute properly. 

CheckAppState

CheckAppState

This activity helps the user to check the state of a desktop application by verifying the specified element in it. It enables automation processes based on the availability or disappearance of a particular element on the application, enhancing the control and flexibility of your automation workflows.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in the “String” datatype.

WaitFor: Indicates to choose the event of the action to be performed.
Element to appear: It will wait for the detected element to appear in the UI on the webpage until the wait time provided.
Element to vanish: It will wait for the detected element to vanish from the UI on the webpage until the wait time provided.

WaitTime: It helps the user to add a delay for activity execution, either to wait for the element to appear or to disappear. The format of the delay here is milliseconds. The property provides 5,10,15,30 milliseconds in the drop-down. You can also provide the time in milliseconds.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Version: It specifies the version of the web automation feature in use.

Represents mandatory fields to execute the workflow.

Use Case

Let’s start with the example provided in the “Click” activity. (Click here to refer to the activity). In this example, we are automating the “Calculator” application. In the following scenario, I will check whether the application is accessible and available for automation.

 Steps to build the bot

1. Create a new solution or open an existing solution.
2. Install the latest feature of DesktopAutomation from the Manage features.
3. Drag and drop the “CheckAppState” activity to the workflow and set it as start node.
4. Double click on the activity to choose the element.
a. Here I have already launched the Calculator application.
b. Click on the “Select Element” option to detect the application.
c. Navigating to the application and detecting over the application.
d. Now, here I am not considering other attributes and going forward with default selected attributes.

e. Click on “Save” button, the attributes will be auto filled in the properties.
5. Now, select the “WaitFor” property as “Element to appear” since we are verifying the availability of the application. And I am choosing “WaitTime” as “10”. 
6. Now, if the calculator application is on the screen, the bot will continue to perform the next steps provided in the “Click” activity.
7. Next, In the “Target appear” we are adding the “WriteLog” activity to write a message.
a. In the “InputString” , provide the input as “Application is launched successfully!”.
b. Now, choose the log level as “Info” from the drop- down.
8. Here, in the “Target does not appear” area, I am adding the same “Writelog” activity to write the failure message. 
9. Now, save and execute the workflow.  

CloseApplication

Close Application

This activity helps you close the desktop-based application at runtime.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:* Gets auto-filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.
UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality.

UseWindowsTitle: This parameter helps you take action based on the window title. By default, this option will be checked.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds. By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Tips:

1. Enable the “UIA3” functionality when you have employed “DesktopAutomationUIA3” activities in the workflow. 
2. If “UIA3” is enabled, and there are no “UIA3” activities used in the workflow, it will not execute properly. 

Click

The click event allows users to interact with applications by clicking on specified target elements.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

Offset X: Specifies the horizontal offset, in pixels, for the click position relative to the target UI element. A positive value moves the click position to the right, and a negative value moves it to the left. The default value is 0.

Offset Y: Specifies the vertical offset, in pixels, for the click position relative to the target UI element. A positive value moves the click position downward, and a negative value moves it upward. The default value is 0.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

Action_by:* This parameter helps you trigger the action that needs to be performed. It has two options:
Native: Once the action is captured in the spy window, it is executed in the background of the code.
Human: Once the element is found, the trigger’s action will be performed as per the ‘Human’ option. By default, ‘Native’ will be chosen.

Click_type: When the ‘Native’ option is chosen, the default action of the trigger will be selected, and it will not be enabled for editing. The click type will be enabled when we choose the ‘Human’ option from the ‘ActionBy’ parameter. It has two options:
Single Click – Allows you to perform a single-click action.
Double Click – Allows you to perform a double-click action.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

Mouse_button: When the ‘Native’ option is chosen, the default action of the trigger will be selected, and it will not be enabled for editing. The click type will be enabled when we choose the ‘Human’ option from the ‘ActionBy’ parameter. It has two options:
LeftClick: Allows you to perform a left-click action as on the mouse button.
RightClick: Allows you to perform a Right-click action as on the mouse button.
MiddleButton: Allows you to perform the “Scroll” button click on the mouse button

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Tips:

When the “Native” action is chosen, the “Single click” and “left click” will be chosen as default trigger action to be performed. 

ExpandCollapse

ExpandCollapse

This action allows you to expand or collapse the menu of the selected application on the desktop.

Properties

INPUT

Action: * This parameter allows you to trigger the action that needs to be performed and offers two options:
Expand: This option indicates expanding the ‘Menu’ to view the available options.
Collapse: This option indicates collapsing the ‘Menu’ to hide the options. By default, it is set to the ‘Expand’ option.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:* Gets auto-filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.
UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds. By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

FindChildren

FindChildren

This activity helps the user to retrieve a collection of child UI elements from the specified element. It is particularly useful for scenarios where the user needs to interact with multiple child elements within a parent UI element, such as extracting data from a table, navigating through a list of items, or performing actions on a set of buttons or input fields.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in the “String” datatype.

Scope: This parameter indicates the scope for collecting UI child elements.
Children: It retrieves the collection of immediate child elements from the parent element.
Descendants: It also retrieves the descendants of the parent UI element, including all nested child elements.

WaitTime: It helps the user to add a delay to start the execution of the further activity. The format of the delay here is milliseconds. By default, it will be set to 10000. When the option is left blank, no delay is considered.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It specifies the version of the web automation feature in use.

OUTPUT

Children: This parameter displays the output of the activity as a collection of UI child elements retrieved from the detected element.
The values returned by this parameter are of the “LIST<UIChildren>” datatype. Please refer to the document below for guidance on declaring the variable.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

What is referred to as Child & Descendants UI elements?

Child UI Elements: These are the direct elements within a parent element. For example, in a file explorer window (the parent), each file or folder displayed is a child element of that window.
Descendants: These refer to the values or elements nested further inside child elements. For instance, if the child element is a folder, the files or subfolders inside that folder are its descendants.

Hence, child elements are directly within the parent, while descendants go one step deeper, being contained within the child elements.

How to view the output from the activity?

The “FindChildren” activity provides the output in the “List<UIChildren>” format. This list includes the following four types as output:

  1. AutomationName – Provides the “name” of the detected element during the execution of the bot.
  2. AutomationID – It indicates the unique identification for the detected element to identify it and making easier to interact with it. It returns the “AutomationID” as output. When there is no AutomationID, it will be returned as null value.
  3. ClassName – It indicates the “Class” of the detected element and returns the output. When there is no  ClassName available, it will be returned as null value.
  4. UIChildren – It provides the count of the UI child and descendant elements associated with the parent element.

If you want to view any of the above types as output, you need to specify this along with the ‘ForEach’ variable. For example, “Item.AutomationName”.

Tips

1. The “UIchildren” output is used to view the number of child and descendants’ elements associated with parent element.
2. If you need to view the output as “UIChildren”, please choose the “Scope” as “Descendants” in the “FindChildren” properties. Since, it is used to retrieve all the child and its descendant’s count as output.
3. To view the output as “UIChildren”, you need to mention the value as “Item.UIchildren.Count.ToString”.
4. If the values of the above fields contain special XML entity characters, they need to be replaced and assigned before executing the activity.

5. For example, if the detected element contains “&” symbol in the name, replace the value as “Replace(“&”,”&amp”) along with the variable name.

ExtractTable

This activity helps to extract the “Table” from the desktop applications. The extracted “Table” can then be manipulated and used in a variety of ways, such as data analysis or creating reports. This makes it easier for users to work with and access data stored in desktop applications.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Datatable: It helps to view the output as extracted range in “Datatable” format. It returns values in “Datatable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetText

GetText helps you extract values from specific elements or controls within the desktop application’s user interface.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Text:* The extracted value is stored in the declared variable as a string. This parameter returns the value in “String” datatype.(Check the workflow to see how to store the extracted value in the variable.)

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetAttributesAll

This activity helps to extract all the “Attributes” and its corresponding “Values” from the detected application on the desktop.

The extracted attributes can be used in subsequent activities for further processing. It also helps to validate the element before performing any action.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

AttributesAndPatterns: This parameter helps to view the output of the activity, displaying all “Attributes” with their corresponding values from the detected application. It returns the values in a “Datatable” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Tips

Null value will be returned if the chosen “Attribute” type does not contain any value.

GetFullWindowTitle

This activity helps you retrieve the window title of the desktop-based application for use in further validation steps within the workflow.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

FullWindowTitle: It helps to view the output of the activity, displaying the specified “window’s” title for the spied element. It returns the values in a “String” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

LaunchApplication

The “launchApplication” activity assists you in launching any type of desktop application.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetAttributes

This activity helps to extract the specified “Attribute’s value” from the detected UI element from the desktop applications. It provides a list of “Attributes” options for the detected element to choose from. The extracted attributes can be used in subsequent activities for further processing. It also helps to validate the UI element before performing any action.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Attributes:* This parameter helps to view the output of the activity, displaying all “Attributes” with their corresponding values for the spyed element. It returns the values in a “Datatable” data type.

AttributesValue: It helps to view the output of the activity, displaying the specified “Attribute’s value” for the spied element. It returns the values in a “String” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

TIPS

1. The single attribute and its values can be extracted using the “String” property in the activity.
2. Using the “Data_table” property, all the attributes from the list provided in the activity can be extracted for the detected element.
3. Null value will be returned if the chosen “Attribute” type does not contain any value.

ListOfAttributes

The following are the list of attributes that are available in the “GetAttributes” activity. The following attributes and it values can only be extracted from the “detected element”.

1. Accelerator key: It refers to the “Keyboard” shortcut keys or the modifiers (CTRL, SHIFT AND ALT) available for the “spied element.” if any key is enabled for the element, it will be returned as output. When there is no accelerator key, it will be returned as null value.
2. Access key: It refers to shortcut key configured along with the “Spied element” and returns the output of the activity as a single character that is available, if any. When there is no accelerator key, it will be returned as null value.
3. AutomationID: It indicates the unique identification for the detected element to identify it and making easier to interact with it. It returns the “AutomationID” as output. When there is no AutomationID, it will be returned as null value. 
4. ClassName: It indicates the “Class” of the detected element and returns the output. When there is no ClassName available, it will be returned as null value.
5. ControlType: It refers to the “Input” type of the “detected element” and returns the output of the activity.
6. Framework ID: Indicates the “Framework” of the application that is suitable for the detected element and returns the output.
7. HasKeyboardFocus: Indicates whether the “KeyboardFocus” is enabled is for the detected element. It helps to validate before providing the “keyboard” input to the detected element. It returns the output in “Boolean Format”.
a. True: Indicates that the “Detected element” is enabled for providing “Keyboard” inputs.
b. False: Indicates that the “Detected element” is not enabled for providing the “keyboard” inputs.
8. HelpText: It provides the “text” or “information” that provides the explanations for the “detected element.” It returns the output as the text. When there is no “HelpText” available,  it will be returned as null value.
9. IsContentElement: Provides whether the “detected element” is content of user interface or non-content or decorative element. It returns the “Boolean” datatype.
a. True: Specifies the “detected element” is a content of user interface that contains text, form fields, buttons etc.,
b. False:  Specifies the “detected element” is a non-content or decorative element such as images used for styling or spacing.
10. IsControlElement: Provides whether the “detected element” is the control type element. It returns the output as “Boolean” datatype.
a. True: Specifies the “detected element” is a control element.
b. False: Specifies that the “detected element” is not a control element.
11. IsEnabled: indicates that the “detected element” is enabled or disabled during the execution of the bot. it returns the values in “Boolean” datatype.
a. True: Indicates the “detected element” is enabled to perform action during the execution of the bot.
b. False: Indicates the “detected element” is disabled to perform action during the execution of the bot.
12. IsKeyboardFocusable: Indicates whether the “detected element” is keyboard focusable. It returns the value in “Boolean” datatype.
a. True: Specifies that the “detected element” is keyboard focusable.
b. False: Specifies that the “detected element” is not keyboard focusable.
13. IsOffScreen: It facilitates to provide whether the “detected element” is visible on the screen during the execution of the bot. It returns the value in “Boolean” datatype.
a. True: Specifies that the “detected element” is visible.
b. False: Specifies that the “detected element” is not visible.
14. IsPassword: indicates that the “Detected element” is a password type control or not during the execution of the bot. It returns the value in “boolean” datatype.
a. True: Specifies that the “detected element” is password type.
b. False: Specifies that the “detected element” is not password type.
15. LocalizedControlType: It facilitates to provide the “text” or “description” of the detected element’s control type.
16. Name: Provides the “name” of the detected element during the execution of the bot.
17. Orientation: It facilitates to provide the “orientation” format of the detected element. It returns the value as “Horizontal” or “Vertical” format.
18. ProcessID: It facilitates to retrieve the “Process ID” of the “Application or Process” that is detected for automation. The “Process ID” can be seen in the “Task Manager” as “PID” column against the processes. It returns the value in “Integer” datatype.
19. ExpandCollapsePattern.ExpandCollapseState: It refers that the “detected element” have “expandable or collapsible” elements such as tree views, menu’s section or sections either visible or hidden. It returns the output of the activity as,
a. Expanded: Indicates that the “detected element” is expandable and visible.
b. Collapsed: Indicates that the “detected element” is collapsed and hidden.

SetText

This activity allows you to set values in a specific field within a desktop-based application during runtime.

Properties

INPUT

Action_by:  Specifies the actions to be performed in the application during the execution. Select the actions from the drop-down.
Native: Action is performed by the bot and the details are entered character wise.
Human: Action is performed by a human
Paste: Action is performed by the bot and the details are entered in a copy paste format.

ClearAndType: Specifies to clear and type the text in the selected application if it already has values. By default, the value is False.
True, will clear the data in the existing field and enter the new value.
False, will not clear the existing data and the new value will get appended.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

DelayBetweenChar It helps the user to add a delay between the characters. The delay duration here is in milliseconds. By default, it is set to “150” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:  Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

Offset X: Specifies the horizontal offset, in pixels, for the click position relative to the target UI element. A positive value moves the click position to the right, and a negative value moves it to the left. The default value is 0.

Offset Y: Specifies the vertical offset, in pixels, for the click position relative to the target UI element. A positive value moves the click position downward, and a negative value moves it upward. The default value is 0.

Text:Specify the “Input” variable” which has stored the input values to be provided in the “SecureString”value. This field accepts only the variables in “SecureString” format.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow. 

ApplicationExist

The ‘Application Exist’ activity helps you determine whether the application exists at runtime. Based on the result of the ‘Application Exist’ activity, validation will be added to the workflow for further steps.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Tips

1. Enable the “UIA3” functionality when you have employed “DesktopAutomationUIA3” activities in the workflow. 
2. If “UIA3” is enabled, and there are no “UIA3” activities used in the workflow, it will not execute properly. 

ApplicationActions

Application Actions

The “ApplicationActions” activity assists you in minimizing, maximizing, closing, moving, resizing, and rotating the application

Properties

INPUT

Action_by: Specify which action needs to be taken:
Minimize: This option helps you minimize the application.
Maximize: This option helps you maximize the application.
Close: This option helps you close the application.
Move: This option helps you move the application.
Resize: This option helps you resize the application.
Rotate: This option helps you rotate the application.By default, it will be set to the ‘Minimize’ option.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

DelayBetweenChar It helps the user to add a delay between the characters. The delay duration here is in milliseconds. By default, it is set to “150” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality.

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

MOVE

XPos: Provide an X coordinate for horizontal movement of the application. Decimal numbers are acceptable. Leaving the option blank will result in no action required.

YPos: Indicate a Y coordinate for vertical movement of the application. Decimal numbers are acceptable. Leaving the option blank will result in no action required.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

RESIZE

WindowHeight: Specify the desired window height for resizing the application. Decimal numbers are acceptable. Leaving the option blank will result in no action required.

WindowWidth: Specify the desired window width for resizing the application. Decimal numbers are acceptable. Leaving the option blank will result in no action required.

ROTATE

RotateDegrees: Specify the degree of rotation for the application. Decimal numbers are acceptable. Leaving the option blank will result in no action required.

Represents mandatory fields to execute the workflow.

Tips:

1. Enable the “UIA3” functionality when you have employed “DesktopAutomationUIA3” activities in the workflow. 
2. If “UIA3” is enabled, and there are no “UIA3” activities used in the workflow, it will not execute properly. 

Robility Spy

The Robility Spy Window provides various components designed to simplify the selection of elements within an application. This makes the automation setup process more intuitive and efficient.

How to Use?

1. To start:  To initiate the automation process, you need to identify and interact with the elements involved. The Robility Spy plays a crucial role in this by helping you efficiently select and configure these elements.

2. Selecting Elements: Begin by choosing the element in the application that you wish to automate. The Spy Window will assist in highlighting and selecting this element.

3. Understanding Attributes: Each element within an application is associated with several attributes. The Robility Spy helps you identify and select the necessary attribute for the specific element you are targeting.
Example: If you need to automate a button, click, the attribute might be its “ID” or “Name,” depending on how the button is defined in the application.

4. Automatic Attribute Selection: When you click on an element within the Spy Window, default attributes are automatically selected. This feature typically covers most automation scenarios, ensuring that you have the essential attributes for successful automation.

Default Attributes

The Robility Spy Window for Desktop Automation automatically selects certain default attributes. These attributes are mandatory for the successful automation of desktop applications. The default attributes include:

a. App: Specifies the root directory path of the application.
b. Cls: Represents the class name of the detected application.
c. Title: Indicates the window title of the element within the application.
d. ApplicationName: Provides the name of the detected application.
e. Id: Refers to the unique ID of the UIA (User Interface Automation) element.
f. Name: Shows the name assigned to the UIA element.
g. Cls: Identifies the class of the UIA element.

Configuring Attributes

1. Variable Assignment: You can assign variables to these attributes in the “ExecuteBy” section to dynamically adjust the automation process.

2. Hardcoding Values: Alternatively, you can hardcode default values for any of these attributes, depending on your specific automation needs.

Azure

Introduction

The Azure package in Robility encompasses a set of activities designed to interact with Microsoft Azure cloud services. Azure is a comprehensive cloud platform that offers a wide range of services for computing, storage, networking, databases, machine learning, AI, and more. The Azure package activities in Robility facilitate automation of tasks and workflows involving Azure resources. 

These activities leverage Azure APIs and functionalities to perform tasks such as provisioning resources, managing storage, deploying applications, monitoring Azure services, and executing actions based on Azure triggers or events.

Azure activities package

The Azure package in Robility incorporates advanced AI capabilities through services like Azure AI Form Recognizer and Microsoft Computer Vision. These services enable intelligent automation by leveraging machine learning algorithms and computer vision technology.

1. Azure AI Form Recognizer: This service allows users to automate data extraction from structured and unstructured documents such as invoices, receipts, forms, and reports. The Azure AI Form Recognizer activities in Robility facilitate the extraction of key information such as text, numbers, dates, and tables from documents, making it easier to process and analyze large volumes of data.

2. Microsoft Computer Vision: The integration of Microsoft Computer Vision services within the Azure package enables automation of image analysis tasks. Users can automate the detection, recognition, and classification of objects, text, and scenes in images and videos. This is particularly useful for applications involving image processing, content moderation, and visual data analysis.

AzureAIFormRecogniser

Introduction

Azure Form Recognizer, a cloud-based Azure Applied AI Service looks at your forms and documents, extracts text and data from them, maps field relationships as key-value pairs, and gives you a structured output. This structured output can be used to create data pipelines and automate processes. It can also be used to quickly access data and create reports, which can be used to make better decisions.

Benefits

1. Efficient Data Extraction: Azure Form Recognizer streamlines the extraction of text and data from diverse forms and documents, reducing manual data entry efforts and improving accuracy.

2. Structured Output: The service provides structured outputs in the form of key-value pairs, making it easier to integrate extracted data into existing systems and workflows.

3. Data Pipeline Automation: Azure Form Recognizer facilitates the creation of data pipelines, automating the processing and extraction of information from documents, leading to faster and more efficient workflows.

4. Process Automation: By leveraging the structured output from Azure Form Recognizer, businesses can automate processes such as invoice processing, document categorization, and data validation, enhancing operational efficiency.

5. Data Accessibility: The structured data output enables quick access to relevant information, empowering users to make data-driven decisions and respond promptly to business needs.

Use Cases

1. Invoice Processing: Automate the extraction of invoice details such as vendor information, invoice numbers, and line-item data from scanned invoices, streamlining accounts payable processes.

2. Expense Reporting: Automatically extract expense details from receipts and expense reports, speeding up reimbursement processes and ensuring accurate record-keeping.

3. Document Classification: Classify documents based on their content and extract key information for categorization and routing within document management systems.

3. Survey Analysis: Analyze survey forms to extract responses, sentiment analysis, and trends, facilitating insights for decision-making and improving customer satisfaction.

4. Healthcare Forms Processing: Automate the extraction of patient information, medical records, and insurance details from healthcare forms, improving patient care coordination and administrative efficiency.

Release Notes

v.1.0.5

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AzureAIScope

Microsoft Azure AI-powered document extraction service understands your forms. FormRecognizer applies advanced machine learning to accurately extract text, key/ value pairs and tables from documents. With just a few samples, Form Recognizer tailors its understanding to your documents. Turn forms into usable data at a fraction of the time and cost, so you can focus more time acting on the information rather than compiling it. You need an Azure subscription to use the AzureAIFormRecogniser activities.

Important

To create an Azure account, Click on the following link. Create Your Azure Free Account Today | Microsoft Azure

Create a cognitive services resource using your subscribed azure account.

You will get an end point and two account keys like below,
Sample End point: https://westus2.api.cognitive.microsoft.com Sample Account key- “1b******395******4ae********f7”

Properties

AUTHENTICATION

AccountKey:* Enter the account key received at the time of account creation.

EndPoint:* Specify the Endpoint received at the time of account creation.

MISC

Body: This auto populates once an activity is dropped into the scope

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIForm recognizer feature in use.

* Represents mandatory fields to execute the workflow.

TrainModel

To use the Form Recognizer custom model, you provide your own training data to the Train Custom Model operation, so that the model can train the same to your industry-specific forms. This section demonstrates how to train a model with your own data. A trained model can output structured data that includes the key/value relationships in the original form document.

Properties

INPUT

IncludeSubFolder: * Specify if the input should include the sub folders.

Prefix: * Add the folder name and subfolder name in which the training data is uploaded.

SourceURl:* Specify the SAS URL generated. Refer below on how to generate the same.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use

OUTPUT

ModelLocation: This is not a mandatory field. However, to view the model location we must declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

StatusCode:*  This is not a mandatory field. However, to view the status of the trained model, we must declare a variable here.

* Represents mandatory fields to execute the workflow.

Creating a SAS URL

To create a SAS URL, follow the steps below:

1.Open the Microsoft Azure Storage explorer
2.Click on the connections on the left-hand side and do the following steps.

3. Once you click on get shared access signature, there is an account key that is displayed which is the source URL in the Input segment.

GetModelInfo

This activity is used to get the model info from the train model activity. The Get model info activity gives us the model ID which is used to analyze custom forms.

Properties

INPUT

ModelLocationUrl:* Specify the model location URL which was derived in the output box of the train model activity.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to see the model info declare a variable here to see the output in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeBusinessCards

This activity is used to extract important contact information like the first name, last name, company name, etc., from business cards that are printed in English.

Properties

INPUT

InputImagePath:* Specify the path of the business card image file.

InputReceiptType: Specify the type of the receipt image if it’s a file or URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed business card, a variable must be created here, to view the result in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeReceipts

Receipts are inevitable in any business and is an acknowledgment of a payment received for a product or service provided by the organization. Receipts are valuable, when requested to return or refund a purchase. Moreover, A receipt is used to authenticate the validity of purchase for tax purposes. Therefore, it is very important that such vital data are accessible instantaneously. Now, users need not spend hours obtaining information, such as Line items, merchant name & address, phone number, transaction date, subtotal, etc., from such receipts. The Analyze receipt activity will fetch the required details in a fraction of a second and fraction of the cost when compared to retrieving receipt information manually.

This activity is used to extract details such as purchase data, shipping address and any other details about the purchase or service for a product from the input receipt.

Properties

INPUT

InputImagePath:*Specify the path of the image file which has the receipt in it.

InputReceiptType: Choose if the receipt is an image or a URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed receipt, a variable must be created here, to view the result in an output box.

Result:* Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeLayouts

This activity is used to extract important data that is in the form of tables as well as text from the given input document to accelerate business processes without manual effort and its subsequent human errors.

Properties

INPUT

InputImagePath:* Specify the path of the image file which has to be processed.

InputReceiptType: Choose if the receipt is an image or a URL.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed layout, a variable must be created here, to view the result in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

AnalyzeCustomForms

This activity is used to analyze custom forms for which we have trained a model and then give the output based on that.

Properties

INPUT

InputFormPath:*Specify the path of the file which has to be analyzed.

ModelID:* Specify the model ID of the trained model derived from the get model info.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to view the result of the analyzed custom form, a variable must be created here, to view the result in an output box.

Result :*Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

MicrosoftComputerVision

Introduction

Microsoft Computer Vision is a cloud-based service that utilizes advanced machine learning algorithms to analyze and extract information from images and videos. In the realm of Robility, Computer Vision plays a vital role in automating tasks that involve visual recognition, interpretation, and decision-making based on visual inputs.

Benefits

1. Automated Image Processing: Computer Vision enables bots to process and analyze images automatically, reducing manual intervention and improving processing speed.
2. Enhanced Accuracy: The advanced algorithms of Computer Vision enhance accuracy in image recognition and interpretation, leading to more reliable automation outcomes.
3. Versatile Application: It can be applied across various industries and use cases, from invoice processing to document classification, quality control, and object identification.
4. Integration: Microsoft Computer Vision seamlessly integrates with Robility, enhancing their capabilities in handling visual data and enabling more sophisticated automation workflows.
5. Scalability: The cloud-based nature of Computer Vision allows for scalable image processing, accommodating large volumes of visual data in automation processes.

Use Cases

1. Visual Verification: Incorporate Computer Vision for visual verification tasks, such as confirming the presence of specific elements in graphical user interfaces (GUI) or web pages during automation.
2. Object Detection: Identify and locate objects within images or screenshots, enabling bots to interact with applications based on visual cues.
3. Receipt Processing: Automate the extraction of details like date, merchant, and total amount from scanned receipts using Computer Vision, streamlining expense reporting and reimbursement processes.
4. Signature Verification: Use Computer Vision to verify signatures on documents, contracts, or forms, ensuring authenticity and compliance with verification requirements.

Release Notes

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

MicrosoftVisionScope

The Microsoft vision scope is used as an authentication for all the activities in the package. An azure subscription is required to use the Microsoft computer vision scope activities. To create an azure account click https://azure.microsoft.com/en-gb/free/

Properties

INPUT

ServiceUrl:* Specify the service Url of the computer vision activity.

SubscriptionKey:* Specify the subscription key of the computer vision activity.

MISC

Body: This auto populates once an activity is dropped into the scope

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Microsoft computer vision feature in use.

*Represents Mandatory field to execute the workflow

AnalyzeImage

This activity can analyze an image and generate a human-readable sentence that describes its contents. The algorithm actually returns several descriptions based on different visual features, and each description is given a confidence score. The final output is a list of descriptions ordered from highest to lowest confidence.

Properties

INPUT

ImagePath:* Specify the image path for the image to be analyzed within double quotes.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output a variable has to be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field

*Represents mandatory field to execute the workflow.

ExtractHandwrittenText

This activity is used to detect text content in an image using latest recognition models and converts the identified text into a machine-readable character stream. It’s optimized for text-heavy images (such as documents that have been digitally scanned) and for images with a lot of visual noise. It will determine which recognition model to use for each line of text, supporting images with both printed and handwritten text.

Properties

INPUT

ImagePath:* Specify the image path for the image from which the handwritten text needs to be extracted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the extracted text a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field

*Represents Mandatory field to execute the workflow.

ExtractPrintedText

This activity is used to detect text content in an image using latest recognition models and converts the identified text into a machine-readable character stream. It’s optimized for text-heavy images (such as documents that have been digitally scanned) and for images with a lot of visual noise. It will determine which recognition model to use for each line of text, supporting images with both printed and handwritten text.

Properties

INPUT

ImagePath:*Specify the image path for the image from which the printed text needs to be extracted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output:Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the extracted text a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow.

FaceDetection

This activity is used to detect faces within an image.

Properties

INPUT

ImagePath:* Specify the image path for the image from which the handwritten text needs to be extracted. This is a mandatory field for execution of the workflow.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the analyzed image, a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow.

GenerateThumbnail

A thumbnail is a reduced-size representation of an image. Thumbnails are used to represent images and other data in a more economical, layout-friendly way. The Computer Vision API uses smart cropping, together with resizing the image, to create intuitive thumbnails for a given image.

Properties

INPUT

Height:* Specify the required height of the thumbnail image. Recommended is 50.

ImagePath:Specify the path of the image for which a thumbnail must be generated.

Width:* Specify the required width of the thumbnail image. Recommended is 50.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OPTION

SmartCropping: Specify true if the given aspect ratio differs from the input image. This accepts only Boolean values. This is not a mandatory field.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image.This is not a mandatory field. However, to see the path of the generated thumbnail a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow

AzureAIScope

Microsoft Azure AI-powered document extraction service understands your forms. FormRecognizer applies advanced machine learning to accurately extract text, key/ value pairs and tables from documents. With just a few samples, Form Recognizer tailors its understanding to your documents. Turn forms into usable data at a fraction of the time and cost, so you can focus more time acting on the information rather than compiling it. You need an Azure subscription to use the AzureAIFormRecogniser activities.

Important

To create an Azure account, Click on the following link. Create Your Azure Free Account Today | Microsoft Azure

Create a cognitive services resource using your subscribed azure account.

You will get an end point and two account keys like below,
Sample End point: https://westus2.api.cognitive.microsoft.com Sample Account key- “1b******395******4ae********f7”

Properties

AUTHENTICATION

AccountKey:* Enter the account key received at the time of account creation.

EndPoint:* Specify the Endpoint received at the time of account creation.

MISC

Body: This auto populates once an activity is dropped into the scope

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIForm recognizer feature in use.

* Represents mandatory fields to execute the workflow.

MicrosoftComputerVision

Introduction

Microsoft Computer Vision is a cloud-based service that utilizes advanced machine learning algorithms to analyze and extract information from images and videos. In the realm of Robility, Computer Vision plays a vital role in automating tasks that involve visual recognition, interpretation, and decision-making based on visual inputs.

Benefits

1. Automated Image Processing: Computer Vision enables bots to process and analyze images automatically, reducing manual intervention and improving processing speed.
2. Enhanced Accuracy: The advanced algorithms of Computer Vision enhance accuracy in image recognition and interpretation, leading to more reliable automation outcomes.
3. Versatile Application: It can be applied across various industries and use cases, from invoice processing to document classification, quality control, and object identification.
4. Integration: Microsoft Computer Vision seamlessly integrates with Robility, enhancing their capabilities in handling visual data and enabling more sophisticated automation workflows.
5. Scalability: The cloud-based nature of Computer Vision allows for scalable image processing, accommodating large volumes of visual data in automation processes.

Use Cases

1. Visual Verification: Incorporate Computer Vision for visual verification tasks, such as confirming the presence of specific elements in graphical user interfaces (GUI) or web pages during automation.
2. Object Detection: Identify and locate objects within images or screenshots, enabling bots to interact with applications based on visual cues.
3. Receipt Processing: Automate the extraction of details like date, merchant, and total amount from scanned receipts using Computer Vision, streamlining expense reporting and reimbursement processes.
4. Signature Verification: Use Computer Vision to verify signatures on documents, contracts, or forms, ensuring authenticity and compliance with verification requirements.

Release Notes

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

MicrosoftVisionScope

The Microsoft vision scope is used as an authentication for all the activities in the package. An azure subscription is required to use the Microsoft computer vision scope activities. To create an azure account click https://azure.microsoft.com/en-gb/free/

Properties

INPUT

ServiceUrl:* Specify the service Url of the computer vision activity.

SubscriptionKey:* Specify the subscription key of the computer vision activity.

MISC

Body: This auto populates once an activity is dropped into the scope

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Microsoft computer vision feature in use.

*Represents Mandatory field to execute the workflow

AnalyzeImage

This activity can analyze an image and generate a human-readable sentence that describes its contents. The algorithm actually returns several descriptions based on different visual features, and each description is given a confidence score. The final output is a list of descriptions ordered from highest to lowest confidence.

Properties

INPUT

ImagePath:* Specify the image path for the image to be analyzed within double quotes.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output a variable has to be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field

*Represents mandatory field to execute the workflow.

ExtractHandwrittenText

This activity is used to detect text content in an image using latest recognition models and converts the identified text into a machine-readable character stream. It’s optimized for text-heavy images (such as documents that have been digitally scanned) and for images with a lot of visual noise. It will determine which recognition model to use for each line of text, supporting images with both printed and handwritten text.

Properties

INPUT

ImagePath:* Specify the image path for the image from which the handwritten text needs to be extracted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the extracted text a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field

*Represents Mandatory field to execute the workflow.

ExtractPrintedText

This activity is used to detect text content in an image using latest recognition models and converts the identified text into a machine-readable character stream. It’s optimized for text-heavy images (such as documents that have been digitally scanned) and for images with a lot of visual noise. It will determine which recognition model to use for each line of text, supporting images with both printed and handwritten text.

Properties

INPUT

ImagePath:*Specify the image path for the image from which the printed text needs to be extracted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output:Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the extracted text a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow.

FaceDetection

This activity is used to detect faces within an image.

Properties

INPUT

ImagePath:* Specify the image path for the image from which the handwritten text needs to be extracted. This is a mandatory field for execution of the workflow.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image. This is not a mandatory field. However, to see the output of the analyzed image, a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow.

GenerateThumbnail

A thumbnail is a reduced-size representation of an image. Thumbnails are used to represent images and other data in a more economical, layout-friendly way. The Computer Vision API uses smart cropping, together with resizing the image, to create intuitive thumbnails for a given image.

Properties

INPUT

Height:* Specify the required height of the thumbnail image. Recommended is 50.

ImagePath:Specify the path of the image for which a thumbnail must be generated.

Width:* Specify the required width of the thumbnail image. Recommended is 50.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Microsoft computer vision feature in use.

OPTION

SmartCropping: Specify true if the given aspect ratio differs from the input image. This accepts only Boolean values. This is not a mandatory field.

OUTPUT

Output: Declare a variable here to see the result of the analyzed image.This is not a mandatory field. However, to see the path of the generated thumbnail a variable must be declared here.

Result: Define a Boolean value to validate the success state of the activity. This is not a mandatory field.

*Represents Mandatory field to execute the workflow

Azure

Robility’s integration with Microsoft Azure automates a wide range of tasks, enhancing resource management, deployment automation, service monitoring, and seamless integration of Azure services into your workflows. By leveraging these powerful capabilities, organizations can streamline their IT operations, ensuring scalability, security, and efficiency in cloud-based processes. The key features include:

Azure Blob Storage: Robility automates the management of unstructured data in Azure Blob Storage, facilitating tasks like file uploads, downloads, and data manipulation within automation workflows. This integration ensures efficient data management across systems and enhances cloud storage, enabling businesses to manage large volumes of data seamlessly.

Azure Key Vault: The Azure Key Vault integration in Robility allows for the secure storage and management of sensitive data such as API keys, passwords, and certificates. By automating the retrieval and management of secrets, this feature reduces the risk of exposure and ensures compliance with security standards. Robility centralizes secret management, helping businesses maintain high security in their automation processes and prevent unauthorized access to critical information.

Azure Virtual Machines (VM): With Robility’s Azure VM integration, businesses can automate the provisioning, configuration, and management of virtual machines. This feature supports resource optimization and cost efficiency by automating the entire VM lifecycle, including creation, start/stop operations, and monitoring. Through this integration, Robility helps businesses optimize virtual machine management within their automation workflows, ensuring efficient use of cloud resources and improving operational flexibility.

AzureBlob

Introduction

Azure Blob storage is a cloud-based storage solution optimized for storing massive amounts of unstructured data, such as text and binary data. Within Robility, Azure Blob storage provides activities that work seamlessly under the Azure Scope, allowing bots to interact with Azure Blob containers and manage data efficiently.

Benefits

1. Scalable Storage: Azure Blob storage offers scalable storage solutions, allowing organizations to store and manage large volumes of unstructured data without worrying about storage limitations.

2. Cost-Effective: It provides cost-effective storage options, enabling organizations to pay only for the storage capacity they use, reducing overall storage costs.

3. Secure and Reliable: Azure Blob storage offers built-in security features such as encryption, access controls, and data redundancy, ensuring data security and reliability.

4. Integration with Azure Services: It seamlessly integrates with other Azure services, enabling automated data management workflows and seamless data exchange between systems.

5. Data Management: Azure Blob storage facilitates efficient data management, including storage, retrieval, deletion, and archival of data, enhancing data governance and compliance.

Use Cases

1. Data Archival: Use Azure Blob storage activities in Robility to archive data from automation processes, ensuring data integrity and compliance with data retention policies.

2. Document Storage: Store and manage documents, images, and files generated during automation processes in Azure Blob containers, providing a centralized repository for document management.

3. Data Backup and Recovery: Automate backup and recovery processes using Azure Blob storage, ensuring data resilience and disaster recovery capabilities for automation workflows.

4. Data Transfer: Use Azure Blob storage activities to transfer data between Robility and Azure Blob containers, enabling seamless data exchange and integration between systems.

5. Project-Based Data Management: Create Azure Blob containers for specific automation projects, store project-related data, and delete containers once projects are completed, ensuring efficient data organization and management.

Release Notes

v.1.0.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

Azure Scope

Azure Blob storage is Microsoft’s object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that doesn’t adhere to a particular data model or definition, such as text or binary data.

Important

Create a free account before you login –
https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal

An account name and an account key is generated. This has to be confidential and used only for self-purpose. After signing into the portal, create a storage account. A storage account provides a unique namespace in Azure for our data. Every object that you store in Azure storage has an address that includes your unique account name as in the following example. http://mystorageaccount.blob.core.windows.net

Properties

AUTHENTICATION

AccountKey:Specify the account key for the Azure account.

AccountName:*Specify the Azure account name.

MISC

Body: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

* Mandatory fields to execute the workflow.

Once the AccountKey and AccountName is added, drag, and drop any of the activities from the AzureBlob feature to execute.

Create Container

This activity is used to connect to Microsoft Azure blob storage to create containers that help download and upload files. A container organizes a set of blobs, like the directory in a file path system. A storage blob can include number of containers, and the containers can create “n” number of files.

Properties

INPUT

ContainerName:* Specify a name for the container to be created.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been created, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Example

The following example illustrates on how we can use the create container activity to create a container in the Microsoft azure blob storage. Here we are going to create a container “azuretest1” in the azure blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the create container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be created within double quotes. Here it is“Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it isTesting.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g.,Testing.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and creates a container in the Azure blob storage.

Delete Container

This activity is used to delete an existing container in the Microsoft Azure Blob storage.

Properties

INPUT

ContainerName:* Specify the name of the container to be deleted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been deleted, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Mandatory fields to execute the workflow.

Example

The following activity illustrates on how we can use the delete container activity from a list of containers stored in the Azure blob storage. Here we are going to delete the container “azuretest1” from the blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the delete container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be deleted within double quotes. Here it is “Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it is Deleted.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Deleted.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and deletes the specified container from the azure blob storage.

Get Container Details

This activity is used to get the list of files available in the specific container. The output is taken as a list of string.

Properties

INPUT

ContainerName:* Specify the name of the container for which the details are required.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Filelist: This is not a mandatory field. However, to see the details in a container, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Use Case

The following activity illustrates on how we can use the get container details activity to get the details inside a specific container. Here we are going to get the details from the container “azb”.

Steps to execute the bot

1. Drag and drop an azure scope activity to the workflow.
2. Enter the account name and account key.
3. Drag and drop the get container details activity within the Azure scope.
4. Click on the activity.
5. Enter a name of the container for which the details are required. Here it is azb.
6. Enter the declared variable in the output box of the output segment. Here it is Text
7. Drag and drop a writelog activity below the azure scope.
8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Text(0).ToString (Refer tips)
9. Enter the log level as “Info.”
10. Execute the activity.

The bot executes the workflow and extracts the details from the specified container and displays the output using the write log activity.

Download File

This activity is used to download a specific file from a specific container.

Properties

INPUT

ContainerName:* Specify the name of the container from which the file has to be downloaded.

DownloadFileName:* Specify the name of the file which has to be downloaded from the container.

OutputFilePath:* Specify the path in which the file has to be downloaded.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Output: This is not a mandatory field. However, to view the file name downloaded from the container, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Use Case

The following activity illustrates on how we are going to use the download activity to download the file “APJ.PNG” from the container “azb”.

Steps to execute the bot

1. Drag and drop an azure scope activity to the workflow.
2. Enter the account name and account key.
3. Drag and drop the download activity within the Azure scope.
4. Click on the activity.

5. Enter the name of the container from which the file has to be downloaded within double quotes.Here it is “azb”.
6. Enter the declared variable in the output box of the output segment. Here it is Testing.
7. Drag and drop a writelog activity below the azure scope.
8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Testing.ToString.
9. Enter the log level as “Info”.

10. Execute the activity.

The bot executes the activity and downloads the APJ.PNG file to the path mentioned.

AzureKeyVault

Introduction

Azure Key Vault Integration in Robility is a feature that enhances the security and compliance of automation workflows. By incorporating Azure Key Vault, ensures the secure storage and management of sensitive information, such as credentials and secrets, within a centralized and protected environment. This integration allows Robility users to securely access and manage these secrets, supporting robust security practices and compliance with industry standards in their automation tasks

Limitations

Robility’s integration with Azure Key Vault is limited to creating, retrieving, and deleting “Secrets.” Operations involving “Keys and Certificates” are not currently supported.

Pre-requisites

1. Create a resource to configure the Key vault in Azure before starting the automation with Robility. Click here to view the details.
2. Ensure the Key Vault is configured in Azure before you begin automation with Robility. Users accessing the Azure Key Vault requires specific roles:
a. Key Vault Reader: Allows reading secrets in the Key Vault.
b. Key Vault Contributor: Enables managing the Key Vault and its contents, such as adding and removing secrets.
c. Key Vault Administrator: Grants complete access, including the ability to set access policies and manage all contents.
3. To access the Azure Key Vault through software applications, your application must be registered with Azure. This registration enables secure interaction between your application and the Key Vault.

Secrets

It refers to the storage and management of sensitive data such as passwords, API keys, and connection strings, which are accessed only by authorized users.
Below is the sensitive information that can be stored and managed inside Azure Key Vault services:

1. Passwords: Secure storage of passwords for applications, databases, or services.
2. Connection Strings: Storage of connection strings for databases, APIs, or other services.
3. API Keys: Management of API keys used for accessing various services or resources.
4. Tokens: Storage of tokens used for authentication and authorization.
5. Configuration Settings: Management of sensitive configuration settings for applications.

Benefits

1. Secure Storage of Credentials: Azure Key Vault keeps your credentials like passwords and API keys in a safe, central place. This reduces the risk of them being exposed or accessed by unauthorized people.
2. Encrypted Configuration Settings: With Azure Key Vault, you can store sensitive settings securely, making sure that only authorized bots or users can access this important information.
3. Key Management for Encryption: The service simplifies managing encryption keys, helping ensure that your data stays safe and encrypted when it’s sent or stored, boosting both security and compliance.
4. Integration with Platforms: Azure Key Vault makes it easier for bot developers to access and manage the credentials and keys needed for their projects. This streamlines their workflows and cuts down on the complexity of handling sensitive information.
5. Secure Parameter Passing: When automating tasks, Azure Key Vault helps safely transmit and retrieve parameters, ensuring that your sensitive data is protected throughout the process.

Release Notes

v.1.0.2

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AzureServiceScope

The “AzureServiceScope” acts as a centralized authentication environment for Azure services. In this scope, users are required to provide common values necessary for authenticating and accessing Azure services. Once entered, these values apply to all associated activities, eliminating the need for separate authentication steps with each Azure service interaction. This approach not only enhances efficiency but also ensures consistency by avoiding repetitive access procedures for each service.

Common values

Once you’ve registered and configured your resource with Azure services, you’ll receive important credentials as outlined below. If you haven’t completed your registration and configuration, please click here to do so.

1. Client ID: This is a Globally Unique Identifier (GUID) for each application registered with Azure services. It acts as a unique key, allowing your application to identify and authenticate itself during bot execution.
2. Client Secret: This is a password or key used in conjunction with the Client ID to authenticate the application. You can refer here for instructions on how to view the Client ID and secret key.
3. Subscription ID: The unique identifier for the Azure subscription under which your Key Vault is created.
4. Tenant ID: Identifies the Azure AD instance (or tenant) where your application is registered, also referred to as the Directory ID in Key Vault contexts.

Properties 

INPUT

ClientID *: This parameter indicates to provide the Client ID for your application registered within the Azure services. It is used to identify and authenticate to the Azure services during bot execution.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

ClientSecret *: This parameter indicates to provide the Client secret for your application registered within the Azure services. It usually represents the password or key that is used along with Client ID to authenticate to the Azure services during bot execution.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

SubscriptionID *: This parameter indicates to provide the Subscription ID of your key vault registered within the Azure services. Refer the image below in documentation for reference.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

TenantID *: This parameter indicates to provide the Tenant ID for your application registered within the Azure services. Refer the image below in documentation for reference. It represents the “Directory ID” of the key vault created in the Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Configuration

When you have created and configured the Key Vault in the Azure portal, you can find the Subscription ID and Tenant ID. Refer to the image below for details.

Here’s an example of how the activity is used in the workflow –

In the following example, using my Azure Key Vault credentials, I am going to access my Key Vault in Azure. I have hardcoded the following values into string variables:

1. Client ID
2. Client Secret
3. Subscription ID
4. Tenant ID

Steps to build the bot:

1. Create a new solution.
2. Install the latest version of “AzureKeyVault” from the Manage Features menu.
3. Drag and drop the “AzureServiceScope” activity into the workflow and set it as start node.
    a. Here, I am using this activity to authenticate with the Key Vault in Azure services.
4.I have provided the parameters “Client ID,” “Client Secret,” “Subscription ID,” and “Tenant ID” in variables.

5.To continue the workflow, refer to the “CreateSecret” activity’s documentation.

CreateSecret

This activity assists the user in creating a new secret within your Azure Key Vault using the Key Vault URI. It must be placed within the body of the AzureServiceScope activity. Click here to refer to the Secrets.

Limitations

1. Creating a new secret using this activity does not permit setting ‘activation’ and ‘expiration’ dates for your secret values.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter indicates to provide the name of the secret that identifies your credentials in the specified key vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

SecretValue*:  This parameter is used to provide the value for the secret that will be created in the specified Key Vault. 

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

CreatedStatus*: It provides the result of the status of the secret created in the key vault in Azure. It returns values in “Boolean.”

True: Indicates that the provided secret value has been created successfully in the specified key vault.
False: Indicates that the provided secret value creation has been unsuccessful due to an unexpected error.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Example

Click here to find the key vault URI in Azure services portal.

Let’s explore how this activity operates:

1. Place the “CreateSecret” activity inside the “AzureServiceScope” activity, which will serve as a parent activity for all associated activities in AzureKeyVault.
a. Create a secret value in your Key Vault using this method.     
b. Specify the value as a variable in the “KeyVaultUri” property.
c. For the “SecretName” property, I am providing the value “TestApplicationCredential1.
     i. This will be the name used to identify secret values.
d. Next, in the “SecretValue” property, I am going to provide the value as below:
     i. Username: ABC0123
    ii. Password: Pass0123.
   iii. This is the value of your credentials that you are going to store in the Key Vault.
e. Navigate to the “CreatedStatus” property to define a variable for monitoring the status of the secret created in the Key Vault. 
    i. There are two methods to define a variable:
   ii. Method 1 – Select the “CreatedStatus” property within the “CreateSecret” activity and enter the variable name “CreatedS.” Then, use the shortcut “Ctrl+Q” to create the variable.
  iii. Method 2 – Go to the Variables pane, enter the name “CreatedS.” In the “Variable Type” column, choose “Boolean” from the dropdown menu, as the output will be either True or False.
2. Set the remaining properties to their default values.
3. Insert the “WriteLog” activity adjacent to the “CreateSecret” activity in the workflow.
a. Provide the input string as “Secret Created: ” + CreatedS.ToString().
b. Select the log level as “Info.”
4. Save the workflow and initiate execution to view the results. The bot will create a new secret in your Azure Key Vault using the provided values.

GetSecret

This activity helps you retrieve secret values from the Key Vault in Azure. Ensure this activity is included within a designated parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter indicates to provide the name of the secret that identifies your credentials in the specified key vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

SecretValue*: This parameter enables you to observe the output of the activity, displaying the ‘secret values’ retrieved from the specified secret name. The output is returned in the ‘String’ datatype.

* Represents mandatory fields to execute the workflow.

Example

Click here to find the key vault URI in Azure services portal.

Let’s explore how this activity operates:

1. Now, insert the “GetSecret” activity within the “AzureServiceScope” activity.
    a. In the “KeyVaultUri” property, use the variable “Vault_URI” as the value.
    b. Next, navigate to the “SecretName” property and set the value to “TestApplicationCredential1” to retrieve its values.
        i. This is the secret name that I previously created in the “CreateSecret” example.
    c. Now, move to the “SecretValue” in the output section of the properties panel and set a variable to capture the retrieved credentials.
        i. Refer the create secret activity to know how to declare the variable.
2. Leave all other properties set to their default values.
3. Add the “WriteLog” activity adjacent to the “GetSecret” activity in the workflow.
    a. For this, use the input string “Secret Values: ” + Secret_V.”
    b.  Select “Info” as the log level.
4. Save and execute the workflow.
The bot will pull the secret values from the specified secret name within the Azure Key Vault.

DeleteSecret

This activity enables you to remove a specific secret from a designated Key Vault in Azure. Ensure it is used within the appropriate scope activity.

Pre- Requisites

Before removing secrets from your Key Vault, please consider the following guidelines:

1. For Permanent Deletion:

a. Ensure “Purge Protection” is disabled when creating your Key Vault if you wish to permanently delete credentials immediately.
b. With “Purge Protection” disabled, you can use the “Permanent” delete option to eliminate secrets immediately without a recovery period.

2. To Recover Deleted Credentials:

a. The “Retention Period” set during the creation of your Key Vault determines how long you can recover deleted credentials.
b. By default, this period lasts 90 days, but you can choose a different duration if needed.
c. Keep in mind that if “Purge Protection” is enabled, you can only recover deleted secrets during the retention period

3. For more details, click here.

Properties 

INPUT

DeleteType: This parameter indicates the deletion type for your credentials.

Recover: Opting for this allows the user to recover deleted credentials within the configured retention period.
Permanent: Opting for this allows the user to permanently remove deleted credentials from your Key Vault.

For more details, refer the pre-requisites.
By default, the option will be set to “Recover.”

KeyVaultURI: *This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be deleted from the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedStatus*: It provides the result of the status of the secret deleted in the key vault in Azure. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow. 

GetDeleteSecret

This activity enables you to recover the values of secrets that have been deleted from the Azure Key Vault. Ensure this activity is included within a designated parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedOn*: This parameter allows you to view the output of the activity, which represents the “date” of the secret deleted from the provided secret name. It returns the values in the “DateTime” data type.

RecoveryID*: This parameter allows you to view the output of the activity, which represents the “RecoveryID” of the deleted secret from the provided secret name. It returns the values in the “String” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetDeleteSecrets

This activity enables you to retrieve all deleted secrets linked to a specified Key Vault URI in Azure. Ensure this activity is used within a specific parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedSecrets*: This parameter allows you to view the output of the activity, which represents all the deleted secrets in the specified key vault URI in a “table”. It returns the values in the “DataTable” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

 

RecoverDeletedSecret

This activity enables you to recover a deleted secret from a specified Key Vault in Azure. Ensure this activity is used within a scope activity.

Limitations

1. To recover or permanently delete (purge) secrets, you must have the necessary permissions. Click here to refer.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

RecoverLevel*: This parameter allows the user to view the status of deleted secrets in the specified Key Vault in Azure. It returns values as follows:

Recoverable: Indicates that the deleted secret in the Key Vault is recoverable and can be purged.
Failure: Indicates that the specified deleted secret in the Key Vault cannot be recovered or purged.
It returns the value in “String” datatype. 

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

 

Click here to find the key vault URI in Azure services portal.

AzureVM

Introduction

These activities enable IT Departments to easily automate important Azure operations in their workflows like managing Resource Groups, Storage Accounts, and Virtual Machines.
Microsoft Azure Virtual Machines (VMs) provide scalable compute capacity in the cloud. VMs are on-demand, scalable, and customizable, and can be used for a variety of purposes such as hosting applications, running enterprise workloads, or developing and testing software.

Pre-requisites

Before using Azurevm with the Robility platform, users must first enable outbound connections with the AzureVm platform to create and retrieve the API required for authentication. Depending on the authentication type you select, you will need one of the following credentials:

1.  Client ID
2. Client Secret
3. Tenant ID
4. Subscription ID

 And token URL with every API request.

How to establish a connection?

1. Login to the Robility Manager platform.
2. Navigate to your tenant and choose the desired project.
3. Click on the “App Integrations”.
4. Search and navigate to “AzureVM” from the list of pre-built connections available.
5. Click on it and choose the authentication type.
6. Enter the required credentials and click on “Connect”.

7. Once your credentials have been provided, the list will be added in the “Connections”.

Now, you will be able to automate the activities.

Delete

The Delete VM operation is used to remove an existing virtual machine (VM) from the Azure environment. This operation can also handle associated resources such as disks and snapshots based on the specified properties.

Properties

INPUT

DeleteAssociatedDisks: Indicates whether to delete the disks associated with the virtual machine along with the VM. When checked (true), all disks attached to the VM will be deleted. If unchecked (false), the disks will not be deleted and will remain in the resource group.

DeleteSnapshots: Indicates whether to delete any snapshots associated with the VM’s disks. When checked (true), all snapshots linked to the VM’s disks will be deleted. If unchecked (false), the snapshots will remain in the resource group.

WaitForCompletion: Indicates whether to wait for the deletion process to complete before returning control. When checked (true), the system will wait until the VM and specified resources are fully deleted before completing the operation. If unchecked (false), the system will return immediately after initiating the delete request, and you will need to manually check the status.

VirtualMachineName*: Specifies the name of the virtual machine you want to delete. This field supports only strings and String variables.

WaitIntervalSeconds: Specifies the interval (in seconds) between checks for completion if WaitForCompletion is enabled. This field allows the system to poll for the deletion status at regular intervals until the operation is complete.

MISC

DisplayName: The display name of the activity or operation. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIndicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM and specified resources were successfully deleted or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Ensure that you understand the implications of deleting associated disks and snapshots, as this action is irreversible.
2. The WaitForCompletion property controls whether the system will wait for the entire delete process to finish. If enabled, the system will check for completion at intervals specified by WaitIntervalSeconds.
3. Deleting a VM will remove it and potentially its associated resources, so ensure that any important data is backed up before performing the delete operation.

GetList

The Get List operation is used to retrieve a list of all virtual machines (VMs) within a specified resource group in the Azure environment. This operation provides a summary of VMs, including their names and basic details.

Properties

INPUT

ResourceGroupName*: Specifies the name of the resource group from which to retrieve the list of virtual machines. This field supports only strings and String variables.

Misc

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

Output

Result: t provides the ability to view the execution status of the activity. It returns values in “Boolean.” 
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

VMList: Provides a list of virtual machines within the specified resource group. Each item in the list includes basic details such as the VM’s name and status.

Represents mandatory fields to execute the workflow

Notes

1. The VMList output provides an overview of all VMs in the resource group, which can be useful for management, monitoring, and reporting.
2. This operation retrieves a snapshot of the current state of VMs within the resource group and does not modify any resources.

GetVM

The Get VM operation is used to retrieve information about a Specific existing virtual machine (VM) in the Azure environment. This operation provides details about that specified VM configuration, status, and other relevant properties.

Properties

INPUT

Name*: Specifies the name of the virtual machine whose details you want to retrieve. This field supports only strings and String variables.

ResourceGroupName*: Specifies the name of the resource group that contains the virtual machine. This field supports only string.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation.

Status: Provides detailed information about the specified virtual machine. This field contains various details such as the VM’s status, configuration, size, operating system, and any associated resources.

Represents mandatory fields to execute the workflow

Notes

1. The output provides a comprehensive overview of the VM’s details, which can be useful for monitoring, troubleshooting, and management purposes.
2. This operation does not modify the VM; it is solely for retrieving and displaying information about the VM.

Create

Creates a new virtual machine from a disk or image on Azure environment.

Properties

INPUT

AdminPassword*:  Specifies the password for the provided username. This field supports only SecureString variables.

AdminUsername*; Specifies the administrator’s username for the virtual machine. This field supports only strings and String variables.

AzureRegion*: Establishes the Azure region (which is an area within a geographical place, containing one or more datacenters) of the virtual machine. If not specified, the region from the resource group is used. If a custom image is provided, then it uses the region specified for the image. This field supports only strings and String variables. The possible values are listed in the below drop-down list. More information about the Region parameter’s possible values can be found here.

ComputerName*: Specifies the name of the computer. This field supports only strings and String variables.

Disk:* Specifies the disk of the virtual machine.

DNSName: Specifies the name label of the DNS. This field supports only strings and String variables.

Image: *Specifies the virtual machine image. Make sure to input a value for one of the following parameters: Disk or Image. If both parameters are set, then only Disk is taken into consideration.

ImageLicensed :Specifies the use of an Azure or on-premises license. The possible values are AzureLicensedWindowsClient, and WindowsServer. The default value is AzureLicensed.

Name: *Specifies the name of the new virtual machine. This field supports only strings and String variables.

OSDiskType:* Specifies the OS disk type. This value is ignored if the virtual machine is created from disk. The possible values are StandardLRSPremiumLRSStandardSSDLRS, and UltraSSDLRS. The default value is StandardLRS.

ResourceGroupName:* Specifies the name of the resource group. This field supports only strings and String variables.

Size:Specifies the size of the virtual machine. The possible values are listed in the below drop-down list.

SSHPublicKey:* Specifies the SSH public key. This field supports only SecureString variables.

MISC

DisplayName: The display name of the activity. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the activity.

OUTPUT

Result: Gives the success status of the activity.

Represents mandatory fields to execute the workflow.

Notes

1. Make sure to input a value for one of the following parameters: Passwordor SSHPublicKey. If both parameters are set, then only SSHPublicKeyis taken into consideration.

Restart

The Restart VM operation is used to restart an existing virtual machine in the Azure environment. This operation stops and then starts the VM, which can be useful for applying updates or resolving issues.

Properties

INPUT

VirtualMachine:* Specifies the name of the virtual machine you want to restart. This field supports only string.

WaitForCompletion: When the value is True, waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is True.

MISC

DisplayName: The display name of the activity or operation. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chose

VersionIndicates the version of the activity.

Output

Result: Provides the success status of the operation. This field indicates whether the VM was successfully restarted or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Restarting a VM involves stopping and then starting it. During this process, the VM will be temporarily unavailable.
2. The VM must be in a running state before you can restart it. If the VM is stopped or deallocated, it will need to be started first.

Shutdown

The Shutdown VM operation is used to shut down an existing virtual machine (VM) in the Azure environment. This operation is typically used to turn off a VM without deallocating it, meaning that the VM remains in the resource group and its configuration is preserved, including its public IP address if applicable.

Properties

INPUT

WaitForCompletion: When the value is True, it waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is False.

VirtualMachine*: Specifies the name of the virtual machine you want to shut down. This field supports only strings and String variables.

WaitIntervalSeconds: Specifies how long to wait (in seconds) for the activity to run before an error is thrown. If not set, the activity runs until completion. It is executed only when the WaitForCompletion parameter has the value True.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully shut down or if there were any issues during the operation.

* Represents mandatory fields to execute the workflow

Notes

1. Shutting down a VM does not deallocate it, which means the VM retains its public IP address (if any) and is still billed for its reserved resources. This is different from stopping the VM, which deallocates it and can release associated resources.

Stop

The Stop VM operation is used to stop an existing virtual machine (VM) in the Azure environment. This operation can be useful for conserving resources or performing maintenance.

Properties

INPUT

ReservePublicIPAddress: Indicates whether to retain the public IP address associated with the virtual machine when stopping it. When checked (true), the public IP address will be reserved and associated with the VM when it is restarted. If unchecked (false), the public IP address may be released, and a new IP address might be assigned when the VM is started again.

WaitForCompletion: When the value is True, it waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is True.

VirtualMachine*: Specifies the name of the virtual machine you want to stop. This field supports only strings.

WaitIntervalSeconds:  Specifies the interval (in seconds) between checks for completion if WaitForCompletion is enabled. This field allows the system to poll for the stop status at regular intervals until the operation is complete.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

ResultProvides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation. It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Notes 

1. When ReservePublicIPAddress is checked (true), the public IP address will be retained for the VM, ensuring that the same IP address is assigned when the VM is restarted. This is important for scenarios where a static IP address is needed.
2. The WaitForCompletion property controls whether the system waits for the VM to stop fully before completing the operation. If enabled, the system will check for completion at intervals specified by WaitIntervalSeconds.
3. Stopping a VM will deallocate it, releasing its compute resources but not necessarily its associated public IP address unless ReservePublicIPAddress is set to false.

Start

The Start operation is used to start an existing virtual machine in the Azure environment. This action is typically performed to power on a VM that has been stopped or deallocated.

Properties

INPUT

VirtualMachine:* Specifies the name of the virtual machine you want to start. This field supports only String variables. Example: “MyVM”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Skiponerror: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It specifies the version of the AzureVm feature in use.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully started or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Ensure that the virtual machine is in a stopped or deallocated state before attempting to start it. If the VM is already running, this operation will have no effect.

Azure Scope

Azure Blob storage is Microsoft’s object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that doesn’t adhere to a particular data model or definition, such as text or binary data.

Important

Create a free account before you login –
https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?tabs=azure-portal

An account name and an account key is generated. This has to be confidential and used only for self-purpose. After signing into the portal, create a storage account. A storage account provides a unique namespace in Azure for our data. Every object that you store in Azure storage has an address that includes your unique account name as in the following example. http://mystorageaccount.blob.core.windows.net

Properties

AUTHENTICATION

AccountKey:Specify the account key for the Azure account.

AccountName:*Specify the Azure account name.

MISC

Body: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

* Mandatory fields to execute the workflow.

Once the AccountKey and AccountName is added, drag, and drop any of the activities from the AzureBlob feature to execute.

AzureKeyVault

Introduction

Azure Key Vault Integration in Robility is a feature that enhances the security and compliance of automation workflows. By incorporating Azure Key Vault, ensures the secure storage and management of sensitive information, such as credentials and secrets, within a centralized and protected environment. This integration allows Robility users to securely access and manage these secrets, supporting robust security practices and compliance with industry standards in their automation tasks

Limitations

Robility’s integration with Azure Key Vault is limited to creating, retrieving, and deleting “Secrets.” Operations involving “Keys and Certificates” are not currently supported.

Pre-requisites

1. Create a resource to configure the Key vault in Azure before starting the automation with Robility. Click here to view the details.
2. Ensure the Key Vault is configured in Azure before you begin automation with Robility. Users accessing the Azure Key Vault requires specific roles:
a. Key Vault Reader: Allows reading secrets in the Key Vault.
b. Key Vault Contributor: Enables managing the Key Vault and its contents, such as adding and removing secrets.
c. Key Vault Administrator: Grants complete access, including the ability to set access policies and manage all contents.
3. To access the Azure Key Vault through software applications, your application must be registered with Azure. This registration enables secure interaction between your application and the Key Vault.

Secrets

It refers to the storage and management of sensitive data such as passwords, API keys, and connection strings, which are accessed only by authorized users.
Below is the sensitive information that can be stored and managed inside Azure Key Vault services:

1. Passwords: Secure storage of passwords for applications, databases, or services.
2. Connection Strings: Storage of connection strings for databases, APIs, or other services.
3. API Keys: Management of API keys used for accessing various services or resources.
4. Tokens: Storage of tokens used for authentication and authorization.
5. Configuration Settings: Management of sensitive configuration settings for applications.

Benefits

1. Secure Storage of Credentials: Azure Key Vault keeps your credentials like passwords and API keys in a safe, central place. This reduces the risk of them being exposed or accessed by unauthorized people.
2. Encrypted Configuration Settings: With Azure Key Vault, you can store sensitive settings securely, making sure that only authorized bots or users can access this important information.
3. Key Management for Encryption: The service simplifies managing encryption keys, helping ensure that your data stays safe and encrypted when it’s sent or stored, boosting both security and compliance.
4. Integration with Platforms: Azure Key Vault makes it easier for bot developers to access and manage the credentials and keys needed for their projects. This streamlines their workflows and cuts down on the complexity of handling sensitive information.
5. Secure Parameter Passing: When automating tasks, Azure Key Vault helps safely transmit and retrieve parameters, ensuring that your sensitive data is protected throughout the process.

Release Notes

v.1.0.2

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AzureServiceScope

The “AzureServiceScope” acts as a centralized authentication environment for Azure services. In this scope, users are required to provide common values necessary for authenticating and accessing Azure services. Once entered, these values apply to all associated activities, eliminating the need for separate authentication steps with each Azure service interaction. This approach not only enhances efficiency but also ensures consistency by avoiding repetitive access procedures for each service.

Common values

Once you’ve registered and configured your resource with Azure services, you’ll receive important credentials as outlined below. If you haven’t completed your registration and configuration, please click here to do so.

1. Client ID: This is a Globally Unique Identifier (GUID) for each application registered with Azure services. It acts as a unique key, allowing your application to identify and authenticate itself during bot execution.
2. Client Secret: This is a password or key used in conjunction with the Client ID to authenticate the application. You can refer here for instructions on how to view the Client ID and secret key.
3. Subscription ID: The unique identifier for the Azure subscription under which your Key Vault is created.
4. Tenant ID: Identifies the Azure AD instance (or tenant) where your application is registered, also referred to as the Directory ID in Key Vault contexts.

Properties 

INPUT

ClientID *: This parameter indicates to provide the Client ID for your application registered within the Azure services. It is used to identify and authenticate to the Azure services during bot execution.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

ClientSecret *: This parameter indicates to provide the Client secret for your application registered within the Azure services. It usually represents the password or key that is used along with Client ID to authenticate to the Azure services during bot execution.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

SubscriptionID *: This parameter indicates to provide the Subscription ID of your key vault registered within the Azure services. Refer the image below in documentation for reference.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

TenantID *: This parameter indicates to provide the Tenant ID for your application registered within the Azure services. Refer the image below in documentation for reference. It represents the “Directory ID” of the key vault created in the Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Configuration

When you have created and configured the Key Vault in the Azure portal, you can find the Subscription ID and Tenant ID. Refer to the image below for details.

Here’s an example of how the activity is used in the workflow –

In the following example, using my Azure Key Vault credentials, I am going to access my Key Vault in Azure. I have hardcoded the following values into string variables:

1. Client ID
2. Client Secret
3. Subscription ID
4. Tenant ID

Steps to build the bot:

1. Create a new solution.
2. Install the latest version of “AzureKeyVault” from the Manage Features menu.
3. Drag and drop the “AzureServiceScope” activity into the workflow and set it as start node.
    a. Here, I am using this activity to authenticate with the Key Vault in Azure services.
4.I have provided the parameters “Client ID,” “Client Secret,” “Subscription ID,” and “Tenant ID” in variables.

5.To continue the workflow, refer to the “CreateSecret” activity’s documentation.

CreateSecret

This activity assists the user in creating a new secret within your Azure Key Vault using the Key Vault URI. It must be placed within the body of the AzureServiceScope activity. Click here to refer to the Secrets.

Limitations

1. Creating a new secret using this activity does not permit setting ‘activation’ and ‘expiration’ dates for your secret values.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter indicates to provide the name of the secret that identifies your credentials in the specified key vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

SecretValue*:  This parameter is used to provide the value for the secret that will be created in the specified Key Vault. 

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

CreatedStatus*: It provides the result of the status of the secret created in the key vault in Azure. It returns values in “Boolean.”

True: Indicates that the provided secret value has been created successfully in the specified key vault.
False: Indicates that the provided secret value creation has been unsuccessful due to an unexpected error.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Example

Click here to find the key vault URI in Azure services portal.

Let’s explore how this activity operates:

1. Place the “CreateSecret” activity inside the “AzureServiceScope” activity, which will serve as a parent activity for all associated activities in AzureKeyVault.
a. Create a secret value in your Key Vault using this method.     
b. Specify the value as a variable in the “KeyVaultUri” property.
c. For the “SecretName” property, I am providing the value “TestApplicationCredential1.
     i. This will be the name used to identify secret values.
d. Next, in the “SecretValue” property, I am going to provide the value as below:
     i. Username: ABC0123
    ii. Password: Pass0123.
   iii. This is the value of your credentials that you are going to store in the Key Vault.
e. Navigate to the “CreatedStatus” property to define a variable for monitoring the status of the secret created in the Key Vault. 
    i. There are two methods to define a variable:
   ii. Method 1 – Select the “CreatedStatus” property within the “CreateSecret” activity and enter the variable name “CreatedS.” Then, use the shortcut “Ctrl+Q” to create the variable.
  iii. Method 2 – Go to the Variables pane, enter the name “CreatedS.” In the “Variable Type” column, choose “Boolean” from the dropdown menu, as the output will be either True or False.
2. Set the remaining properties to their default values.
3. Insert the “WriteLog” activity adjacent to the “CreateSecret” activity in the workflow.
a. Provide the input string as “Secret Created: ” + CreatedS.ToString().
b. Select the log level as “Info.”
4. Save the workflow and initiate execution to view the results. The bot will create a new secret in your Azure Key Vault using the provided values.

GetSecret

This activity helps you retrieve secret values from the Key Vault in Azure. Ensure this activity is included within a designated parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter indicates to provide the name of the secret that identifies your credentials in the specified key vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

SecretValue*: This parameter enables you to observe the output of the activity, displaying the ‘secret values’ retrieved from the specified secret name. The output is returned in the ‘String’ datatype.

* Represents mandatory fields to execute the workflow.

Example

Click here to find the key vault URI in Azure services portal.

Let’s explore how this activity operates:

1. Now, insert the “GetSecret” activity within the “AzureServiceScope” activity.
    a. In the “KeyVaultUri” property, use the variable “Vault_URI” as the value.
    b. Next, navigate to the “SecretName” property and set the value to “TestApplicationCredential1” to retrieve its values.
        i. This is the secret name that I previously created in the “CreateSecret” example.
    c. Now, move to the “SecretValue” in the output section of the properties panel and set a variable to capture the retrieved credentials.
        i. Refer the create secret activity to know how to declare the variable.
2. Leave all other properties set to their default values.
3. Add the “WriteLog” activity adjacent to the “GetSecret” activity in the workflow.
    a. For this, use the input string “Secret Values: ” + Secret_V.”
    b.  Select “Info” as the log level.
4. Save and execute the workflow.
The bot will pull the secret values from the specified secret name within the Azure Key Vault.

DeleteSecret

This activity enables you to remove a specific secret from a designated Key Vault in Azure. Ensure it is used within the appropriate scope activity.

Pre- Requisites

Before removing secrets from your Key Vault, please consider the following guidelines:

1. For Permanent Deletion:

a. Ensure “Purge Protection” is disabled when creating your Key Vault if you wish to permanently delete credentials immediately.
b. With “Purge Protection” disabled, you can use the “Permanent” delete option to eliminate secrets immediately without a recovery period.

2. To Recover Deleted Credentials:

a. The “Retention Period” set during the creation of your Key Vault determines how long you can recover deleted credentials.
b. By default, this period lasts 90 days, but you can choose a different duration if needed.
c. Keep in mind that if “Purge Protection” is enabled, you can only recover deleted secrets during the retention period

3. For more details, click here.

Properties 

INPUT

DeleteType: This parameter indicates the deletion type for your credentials.

Recover: Opting for this allows the user to recover deleted credentials within the configured retention period.
Permanent: Opting for this allows the user to permanently remove deleted credentials from your Key Vault.

For more details, refer the pre-requisites.
By default, the option will be set to “Recover.”

KeyVaultURI: *This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be deleted from the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedStatus*: It provides the result of the status of the secret deleted in the key vault in Azure. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow. 

GetDeleteSecret

This activity enables you to recover the values of secrets that have been deleted from the Azure Key Vault. Ensure this activity is included within a designated parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedOn*: This parameter allows you to view the output of the activity, which represents the “date” of the secret deleted from the provided secret name. It returns the values in the “DateTime” data type.

RecoveryID*: This parameter allows you to view the output of the activity, which represents the “RecoveryID” of the deleted secret from the provided secret name. It returns the values in the “String” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetDeleteSecrets

This activity enables you to retrieve all deleted secrets linked to a specified Key Vault URI in Azure. Ensure this activity is used within a specific parent activity.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DeletedSecrets*: This parameter allows you to view the output of the activity, which represents all the deleted secrets in the specified key vault URI in a “table”. It returns the values in the “DataTable” data type.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

 

RecoverDeletedSecret

This activity enables you to recover a deleted secret from a specified Key Vault in Azure. Ensure this activity is used within a scope activity.

Limitations

1. To recover or permanently delete (purge) secrets, you must have the necessary permissions. Click here to refer.

Properties 

INPUT

KeyVaultURI*: This parameter specifies the “Vault URI” for your Key Vault created in Azure services. It’s used to authenticate the specific Azure Key Vault between Robility and Azure services.

This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MethodType: This parameter specifies the method type of the execution mode.

Normal: It allows the bot to execute the activity completely before proceeding to the next activity.

Async: It allows the bot to run the activity in the background without causing any disruption to the user interface (UI) performance. It is ideal for scenarios where the activity can continue running independently, when there is no immediate activity for further execution.

By default, the method type is set to “Normal”.

SecretName*: This parameter specifies the name of the secret for which the secret values should be retrieved from the deleted section of the specified Azure Key Vault.

It accepts values in “String” datatype. You can either hardcode the values in “String” format or provide the value in String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

RecoverLevel*: This parameter allows the user to view the status of deleted secrets in the specified Key Vault in Azure. It returns values as follows:

Recoverable: Indicates that the deleted secret in the Key Vault is recoverable and can be purged.
Failure: Indicates that the specified deleted secret in the Key Vault cannot be recovered or purged.
It returns the value in “String” datatype. 

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

 

Click here to find the key vault URI in Azure services portal.

Overview

Introduction

MarketPlace is designed to be the go-to centralized hub for a meticulously curated collection of automation scripts and connectors, meticulously crafted to elevate and expedite your automation projects. Whether you are a seasoned automation professional or a newcomer looking to streamline your processes, MarketPlace offers a diverse array of tools and resources to meet your specific needs.

Our platform brings together a vibrant community of developers, engineers, and automation enthusiasts who contribute their expertise to create a dynamic ecosystem. Each script and connector undergoes a rigorous vetting process to ensure quality, reliability, and security. This commitment to excellence ensures that users can confidently integrate these resources into their projects without compromising
performance or stability.

Discover an extensive range of automation solutions, spanning various industries and applications. From IT and finance to healthcare and manufacturing, MarketPlace hosts a rich assortment of scripts tailored to address the unique challenges of different sectors. This diversity empowers users to find the perfect automation tools that align with their industry requirements.

The user-friendly interface of MarketPlace facilitates easy navigation, allowing users to quickly search, preview, and download scripts and connectors that suit their project objectives.

In addition to individual scripts and connectors, MarketPlace also features curated collections and bundles that address specific automation needs. These collections streamline the process of finding complementary resources, saving users time and effort in building comprehensive automation solutions.

As automation continues to play a pivotal role in transforming industries, MarketPlace stands as a beacon of innovation and collaboration.

Benefits of MarketPlace

1. Rich Repository of Automation Resources: The Marketplace is a comprehensive repository that offers a wide array of automation scripts and connectors, providing users with a rich selection of resources to meet their automation needs.
2. Time Efficiency: Users, whether experienced professionals or beginners, can save time by accessing pre-built automation solutions available on the Marketplace. This accelerates the development and implementation of automation projects.
3. Community Collaboration: The platform fosters a vibrant community of developers, engineers, and automation enthusiasts. This collaborative environment encourages the sharing of expertise and knowledge, contributing to the growth and enhancement of the automation ecosystem.
4. Quality Assurance:  Each script and connector undergoes a rigorous vetting process, ensuring high quality, reliability, and security. Users can trust that the resources available on the Marketplace meet industry standards and best practices.
5. Ease of Use: The user-friendly interface of the Marketplace simplifies navigation, allowing users to easily search, preview, and download scripts and connectors. This simplicity enhances the overall user experience.
6. Thorough Security Check: Scripts and connectors available on the Marketplace undergo thorough security vetting to ensure they adhere to best practices and do not pose security risks. This helps in maintaining the integrity and security of automation projects.
7. Licensing Compliance: Marketplace resources often come with clear licensing information, outlining the terms and conditions for usage. Users can understand the licensing requirements before integrating any script or connector into their automation processes, ensuring compliance and legal usage.

Listing types

Re-usable components: It could be a script, module, or activity that is made available for users to discover, download, and incorporate into their automation designs. These components are designed to serve specific functions or tasks and can be conveniently reused across different workflows, saving time and effort in development.

Library: It facilitates the upload of DLLs; a library refers to a curated collection of dynamic link libraries (DLLs) or compiled code modules that users can access and integrate into their projects. DLLs are binary files containing code and data that multiple programs can use simultaneously. This library serves as a repository for DLLs that are either created by the community, third-party developers, or the platform itself to be beneficial for others.

Integration: It helps to facilitate interoperability between the automation environment and a variety of external tools, APIs, or software solutions. This interoperability is crucial for creating comprehensive automation workflows. Integration listings typically come with configurable options, allowing users to tailor the integration to their specific needs and customize how the automation platform interacts with external services.

Custom activity:It refers to a task-specific module or script created by users. These activities, developed by either the user or third-party contributors, can be added to automation workflows for personalized functionality, enhancing the capabilities of the platform.

License Types

In Robility’s Marketplace the users need to upload the license along with their listings in the marketplace for transparency, legal clarity, and to establish the terms under which others can use, modify, and distribute their software or content. The following are the type of license that are supported by the Marketplace:

1. Custom License: A custom license is a user-defined set of terms and conditions governing the use, distribution, and modification of software or content. Unlike standard, widely adopted licenses, a custom license is crafted by the creator to suit specific requirements, providing a flexible approach to sharing intellectual property while retaining control over its use.
2. MIT License: The MIT License is an open-source license known for its simplicity and permissiveness. It allows users to freely use, modify, distribute, and sublicense the software, often with minimal restrictions. Users are typically required to include the original copyright notice and disclaimer in any substantial portions of the software.
3. Apache License 2.0: The Apache License 2.0 is an open-source license that provides more comprehensive terms than the MIT License. It permits users to use, modify, distribute, and sublicense the software,both for commercial and non-commercial purposes. The license includes an express grant of patent rights from contributors to users and requires modifications to be clearly marked.
4. 3-Clause BSD License: The 3-Clause BSD License, also known as the New BSD License or Modified BSD License, is an open-source license that allows users to freely use, modify, and distribute the software for both commercial and non-commercial purposes. It requires users to include the original copyright notice, a disclaimer, and the license text in any substantial portions of the software or documentation.

ControlFlow

Introduction

Control flow in the Robility refers to the sequencing and arrangement of actions and decisions within an automation process. It is a fundamental feature that allows developers to define the order of execution and decision-making logic within an automation process, enabling the robot to perform tasks systematically and respond to different scenarios.

Usecase

1. Sequential Execution: It is used to create a step-by-step sequence of actions and ensures that tasks are completed in a specific order.

2. Conditional Logic: Use the “If” activity to introduce conditional branching. For example, you can check if a specific condition is met before executing a particular set of actions, allowing your robot to adapt to different scenarios.

3. Looping: Robility provides various loop activities, such as “For Each,” “While,” and “Do While,” to iterate through collections or repeat actions until a specific condition is satisfied. This is useful for processing lists of items or handling repetitive tasks.

4. Switch Case: The “Switch” activity is helpful when you need to select a specific path based on the value of a variable. It simplifies decision-making and routing within your workflow.

5. Parallel Processing: Robility enables parallel execution of activities using the “Parallel” activity. This is useful for scenarios where you want to perform multiple tasks concurrently, improving automation efficiency.

6. PickBranch: It is useful in scenarios where you want to monitor multiple conditions or events simultaneously and react to the first one that occurs.

DoWhile

This activity allows the user to execute a sequence of actions to be repeatedly executed as long as a specified condition meets true. In other words, it creates a loop where the associated activities are executed repeatedly until the condition specified within the activity becomes false.

Properties

MISC

Condition:* This indicates the condition to be met while the sequence of actions is executed. You can either provide the values hardcoded in “Boolean” format or enter the values in “Boolean” datatype. This field accepts the values in “Boolean” datatype.

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Represents mandatory fields to execute the workflow.

Example

Here’s an example of how the activity works –

In the following example, I am about to perform the counter variable condition where the bot meets the value “10”, the execution will be completed. Here I have already created a variable “Counter” in “Integer” datatype and assigned default value as “1”.

Steps to execute the bot

1. Open an existing solution or create a new solution as “ControlFlow”.
2. The ControlFlow feature will be available in the toolbox on the installation of the Designer.
3. Drag and drop the “DoWhile” activity to the workflow and set it as start node.
4. Here I am using this activity to execute the sequence of actions in loop until the specified condition is met.
5. Double click on the activity.
6. Here, I am adding the “Assign” activity into the “Body” of “DoWhile” activity.
a. Providing the “Counter” variable created already in the “TO” field.
b. Now, providing the value as “Counter + 1”.
7. Now, I am adding the “WriteLine” activity inside the body of the “DoWhile” activity.
a. Here I am providing the value as “Counter.ToString” in the “Text” field of the activity to write the number.
b. The “.ToString” is advised to use along with any other data types other than string format. It converts any data type into string.
8. Now, Here I am specifying the condition as “Counter =10” in the box.
9. Save and execute the workflow.

The bot executes the workflow and when it reaches the condition, since it gets the value of 1=10 according to the condition, which is false, it aborts the workflow and gives, and output of the counter is 1.

ForEach

This activity helps the user to enable the iteration over elements in a collection, such as an array or a list. It executes a specified set of actions for each value in the collection variable/argument, allowing for efficient processing of multiple items without the need for manual iteration.

Properties

Display Name: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

TypeArgument:* It indicates the “datatype” of each value in the collection of variable / argument. Choose only specific datatype of variable from the drop-down menu, avoiding selections of lists, collections, or arrays of types.

Values:* Indicates to provide the “variable” or “argument” name with a collection of values. This should match the datatype selected.

*  Represents mandatory fields to execute the workflow.

If

This activity helps the user to make decisions based on a specified condition. It provides a way to create branching logic, enabling the robot to adapt dynamically based on the outcome of the condition evaluation.

Key characteristics

The If-Else activity evaluates a specified condition. If the condition is true, the activities within the “Then” section are executed. If the condition is false, the activities within the “Else” section (if provided) are executed.

The “Then” section represents the set of activities to be executed if the condition is true. The “Else” section (optional) represents the set of activities to be executed if the condition is false.

If needed, If-Else activities can be nested, allowing for more complex decision-making structures within the workflow. This is achieved by placing an additional If-Else activity within the “Then” or “Else” section of another.

Properties

MISC

Condition: This indicates the condition to be met while the sequence of actions is executed. You can either provide the values hardcoded in “Boolean” format or enter the values in “Boolean” datatype. This field accepts the values in “Boolean” datatype.

DisplayName: *Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Represents mandatory fields to execute the workflow

Example

Here’s an example of how the activity is used in the workflow –

In the following example, I am going to automate a simple use case with “WebAutomation” to find out whether the element exists on the page and proceed further with “IfElse” activity.  Here I am using the “ https://www.sutherlandglobal.com/ link to detect the “ContactUs” button.

Steps to execute the bot

1. Open an existing solution or create a new workflow.
2. Install the “WebAutomation” feature from the “Manage” features.

3. Drag and drop the “ElementExist” activity to the workflow and set it as start node.
4. Here I have already launched to the website.
5. Double click on the activity to detect the element.
a. Here, choose the “Select Element” option.
b. Detecting over the “ContactUs” button.
c. Once you have chosen the button, the element’s value will be stored in the “Spy” window, along with an “image” of the application.
d. If you wish to add or remove any attributes, you can edit the “Attributes Editor.”   In this case, we are not making any changes in the “Editor.”
e. Once you click on the “Save” button, the element’s values will be stored in the activity window.
6. Now, navigating to the “ExistStatus” in the properties to declare a variable to view the output of the activity.
a. There are two methods to store the spied value in the variable.
b. Method 1: Double-click on the variable parameter “ExistStatus” in the “Output” section and enter a name that helps you easily identify it in the flow. Here, I’m using the name “Exists” and using the shortcut key “Ctrl+Q” to create the variable.
c.  Method 2: Click on the variable pane, enter your preferred name (here, I’m using “Exists”), and choose the data type as “Boolean” since the output value accepts the boolean data type.
7. Then, adding the “If” activity from the “ControlFlow” feature.
a. Here I am using this activity to check whether the value exists when the website is launched, based on the output, the bot will make decisions.
b. Double click on the activity and here I am providing the “Condition” as “Exists”.
8. Now, In the “Then” branch, I am adding a write log to write the success message if the element exists on the website.
9. In the “Else” branch, I am adding the “BrowserControl” activity from the “WebAutomation” feature.
a. Here I am providing the “URL” as the website URL –https://www.sutherlandglobal.com/.
b. Choosing the “ActionType” as “Refresh” from the drop-down as here I am trying to refresh the browser if the element is not found.
10. Now, save and execute the workflow.

Parallel

This feature enables users to execute workflows in an asynchronous mode. These actions facilitate concurrent task execution, eliminating the need to wait for one task to finish before starting another. Typically, tasks are executed synchronously, meaning they only progress to the next step when the current execution process is finished.

The parallel activity aids in executing tasks in scenarios where automation requires waiting for external resources or services, such as web requests or file operations. It enables your workflow to continue processing other activities while waiting for these operations to be completed.

Properties

MISC

CompleteCondition: This parameter enables you to execute tasks based on a Boolean value condition. Specify either ‘True’ or ‘False’ here.
True: Executes the first-found activity and cancels the execution of other activities.
False: Executes all the sequence of activities one by one without delays. If ‘True/False’ is not provided, it will default to the ‘False’ functionality.

Display Name: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Pick

This activity helps the user to efficiently handle multiple asynchronous events and execute the corresponding actions based on the first trigger that occurs. Unlike the Parallel activity, it doesn’t allow different sets of activities to run concurrently rather it responds to first trigger that occurs among multiple triggers.

Properties

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

PickBranch

This activity refers to a specific set of activities executed within the “Pick” activity. Each trigger in the Pick activity is linked to a Pick Branch, defining a series of actions to be performed when the trigger condition is met. It can be used only inside the “Pick” activity.

Properties

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

Triggers:

A trigger is a specified condition that, when evaluated as true, initiates the execution of a particular Pick Branch within the Pick activity.

Triggers in the Pick activity are designed to monitor and respond to changes in conditions, events, or variables. Each trigger is associated with a specific Pick Branch, and the first trigger that becomes true will activate its corresponding branch.

Action:

An action refers to a set of sequential activities or steps defined within a Pick Branch These activities outline the specific actions or operations to be performed when the associated trigger condition is met.

Actions inside a Pick Branch define the workflow logic that should be executed in response to the triggering event. They can include tasks such as data processing, user interface interactions, logging, or any other operation required to handle the specific scenario associated with the trigger.

PickWithTwoBranchesFactory

This activity is similar to the “PickBranch” activity but here it provides two branches by default. Each trigger in the Pick activity is linked to a Pick Branch, defining a series of actions to be performed when the trigger condition is met.

Properties

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

Sequence

This activity is used to represent a linear set of actions executed in a specific order. It is a container for a series of activities that are executed sequentially, one after the other.

Properties

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

ForEach

This activity helps the user to enable the iteration over elements in a collection, such as an array or a list. It executes a specified set of actions for each value in the collection variable/argument, allowing for efficient processing of multiple items without the need for manual iteration.

Properties

Display Name: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

TypeArgument:* It indicates the “datatype” of each value in the collection of variable / argument. Choose only specific datatype of variable from the drop-down menu, avoiding selections of lists, collections, or arrays of types.

Values:* Indicates to provide the “variable” or “argument” name with a collection of values. This should match the datatype selected.

*  Represents mandatory fields to execute the workflow.

Activity Builder

Robility’s Custom Activity Builder is an exclusive feature that allows developers to create reusable activities using Microsoft Visual Studio. This enables users to create their own activities that can be integrated into automation workflows in Robility Designer. The integration with Visual Studio makes it easy for developers to build and deploy packages for their custom activities

Why do we need custom activities?

In Robility Designer, when you want to create specific functionalities using an activity, utilize the Robility Custom Activity Builder. It not only allows you to create specific functionalities within existing features in Robility Designer but also enables you to create new activities that perform specific tasks within the workflow.

Pre-requisites

To build and integrate the custom activity into the Robility Designer, below are the requirements.

1. Visual Studio Enterprise 2022
2. Familiar Knowledge with code development.
3. Robility Designer.

Extension

The Robility Activity extension for Visual Studio is a crucial tool for developers creating custom activities. It streamlines the development process and simplifies packaging and deployment. By leveraging this extension, developers can create robust, reusable, and maintainable custom activities that can be integrated with Robility Designer.

Installation steps:

1. Open a new or existing project in Visual Studio.
2. On the top of the menu, choose “extensions” and click on “Manage extension”.
3. From the “Manage extension” window, search for “Robility Activity Builder” and install it.
4. Once installed, the extension will be available in the “Extensions” menu as “Robility”.
5. Click on the “Robility” to add and define the activities. 

Setup in Visual Studio

To set up Robility Custom activity in the visual studio. Follow the below steps,

1. Create a new project.
2. Under the “Templates”, search for “Robility Custom activity” and choose the template.

Default code template

When you create a custom activity using Visual Studio, the default code template typically includes a few essential components to get you started. This default code template will be created only when you define the activities and properties for it. These components generally consist of the following:

1. Namespace Declarations: Includes the necessary namespaces for the activity.
2. Class Definition: A class that inherits from CodeActivity to make sure that the activity runs synchronously.
3. Execution Method: An overridden Execute method where you define the logic of your activity.
4. Activity Arguments: Definitions for input and output arguments that your activity will use.
    a. InArgument and OutArgument are used to define the input and output parameters of the activity.
    b. Execute method contains the core logic that will be executed when the activity runs.
    c. Category and Required Argument attributes are used to specify the metadata for the activity’s arguments.

Articles

Use Case

Creating an activity

Overview:

We are going to create an activity for the extraction of specific data from a JSON file within an automation solution. Previously, achieving this extraction required a workflow comprising 4 to 5 steps; however, with this custom activity, the process becomes more efficient and direct.

Use Case:

In this scenario, the activity reads a JSON file and extracts a specific value from it.

Steps to build the custom activity

1. Once you have created a project with “Robility Custom Activity” builder template, now navigate to the “Menu” bar.2
2. Click on the “Extensions” and choose the “Robility” from the drop-down menu.
3. Select the “Add Activity” to build and create a custom activity for our use case.
    a. A window labeled as “Add Activities” will appear on the screen.

4. Upon selecting the “Create” option, you will be navigated to define the activities name for the feature that we are about to create.
    a. In this case, we are creating only one activity and let’s name it as “Json Reader”.
    b. Click on the “Add” option and enter the name in the box.
    c. Let’s provide a description of the activity as “Helps to extract specific details from the provided JSON input.
    d. If you want to add multiple activities, click on “Add” button and define them.

Creating Properties

This is the most crucial step where we define the basic structure for the properties required for the activity. These properties determine how the input and output values should be provided.

A. Define Input Properties:

Input properties specify the data that the activity will receive. In this use case, we require the following input properties,

1. InputText – This is used to provide the input JSON text value in “String” format from which the specified extracted value needs to be retrieved.
2. ExtractionValue – This is used to provide the “Value” that needs to be extracted from the JSON input text.

Now, let’s see how to define these properties.

1. To launch the “Define Properties” window, select the “Edit” option under the property in the define activities window.
2. Now, click on the “Add” button to create the property.
    a. Enter the property name as “InputText”.
    b. In the description, you can provide the properties description. Here the value is, “Provide the input JSON value in String format”.
    c. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input. The direction needs to be set as “IN”.
    d. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    e. Make this property as “Mandatory” by toggling the “required” option.

3. Now, let’s define the next property, “ExtractionValue”.
    a. Click on the “Add” button at the bottom of the window.
    b. Enter the property name as “ExtractionValue”.
    c. In the description, you can provide the properties description. Here the value is, “Provide the value that needs to be extracted from the JSON value in String format”.
    d. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input. The direction needs to be set as “IN”.
    e. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    f. Make this property as “Mandatory” by toggling the “required” option.

B. Define Output Properties:

Output properties specify the data that the activity will provide as result. In this use case, we require the following output property,

1. JsonValue – This is used to return the value that is provided as input from the JSON text value in “String” format.

Now, let’s see how to define these properties.

1. In the “Define Properties” window, click on the “Add” button and in the “Category” list, choose the value as “Output”.
    a. Enter the property name as “OutText”.
    b. In the description, you can provide the properties description. Here the value is, “Declare a variable to view the output in String format”.
    c. Now, move to the next field, “Direction”. Since this property is used to retrieve the value as input, the direction needs to be set as “OUT”.
    d. Next, in the “TYPE” field defines the datatype of the property that needs to be accepted when the user provides the input value. Here choose the value as “String”.
    e. Make this property as “Mandatory” by toggling the “required” option.

C. Provide the custom code:

Once you select the “Finish” button, the activity’s code with all the properties will be created. In that code, you can add the custom logic that needs to be performed. Let’s see how to input your custom code:

1. In the “Code Editor,” you can view the default code template with all the activity arguments defined.
2. In the “Execution” section, you will see “Add your logic here.” In that area, provide your code. 
    a. Refer to the attached code.
    b. Now, you can save the code.

D. Create the nuget package:

1. Now, right click on the “Solution” name in the solution explorer.
2. Choose “Build” option to create the nuget package.
3. The path where the nuget package will be saved will be available in the below toolbox.

E. Utilizing the activity in Robility Designer:

Let’s use the created package in the Designer to view how the activity works.

1. Launch the designer and create a solution.
2. Click on the “ManageFeatures” option in the Designer to install our package.
3. Navigate to the “Browse” option.
    a. This option is used to install the nuget package that aren’t available in the Designer.
    b. Here we are using this option to install our nuget package.
    c. Now, browse and install the package, the feature will be available in the “Toolbox”.

5. Drag and drop the activity and pass the required input in the properties.

Below is the sample output of the execution of the activity,

CSV Automation

CSV Automation in Robility refers to the automation processes to handle tasks involving CSV files. This can include tasks such as reading, writing, transforming, and processing data contained in CSV files. This automation is primarily built to work exclusively with CSV (Comma-Separated Values) files, which can be,

Reading Data: Extracting data from CSV files for use in other processes or systems. This involves parsing the CSV file to convert its content into a structured format that can be manipulated within Robility.
Writing Data: Saving data into CSV files from various sources. This includes exporting data from databases, application outputs, or processed data into a CSV file format, ensuring that the data is organized and accessible.

What is a CSV File?

CSV (Comma-Separated Values) is a simple file format used to store tabular data, such as spreadsheets or databases. Each line in a CSV file corresponds to a row in the table, and each value within that line is separated by a comma, pipe, caret, semicolon and tab. The CSV format is widely used because of its simplicity and ease of integration with various data processing tools.

Benefits

  1. Increased Efficiency: Automates repetitive tasks such as data extraction and reporting, reducing the time and effort required.
  2. Error Reduction: Minimizes manual data entry errors by automating data handling processes, leading to more accurate results.
  3. Consistency: Ensures uniform data processing and output, as automation follows predefined rules and workflows.
  4. Scalability: Handles large volumes of data efficiently, making it easier to process and manage extensive datasets.
  5. Integration: Facilitates easy integration with other systems and tools, allowing for seamless data exchange and processing.

Use Cases

  1. Data Migration: Automating the transfer of data between different systems or databases using CSV files as intermediaries.
  2. Reporting: Generating reports from data stored in CSV files and formatting them for presentation or analysis.
  3. Data Validation and Cleansing: Automating the process of checking and cleaning data in CSV files to ensure quality and accuracy.
  4. Inventory Management: Updating inventory records by automating the import and export of CSV files containing stock data.
  5. Customer Data Integration: Synchronizing customer information between CRM systems and other applications using CSV files for data exchange.
  6. Financial Reconciliation: Automating the reconciliation of financial records by processing CSV files containing transaction data.

Release Notes

v.1.0.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

Append

This activity allows the user to append the input datatable to the specified CSV file. It allows you to write the input data after the last line of the current data in the file.

Properties

INPUT

AppendData:* This parameter indicates you to specify the input datatable that is required to append in the existing specified CSV file.
It accepts input in “Datatable” datatype. 

You can either hardcode the values in “Datatable” format or provide the values in “Datatable” format variable.  

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header.

Ignorequotes: If this option is enabled, the quotes in the data will be ignored during the reading process.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

AppendStatus: It helps the user to view the status of the data appended in the provided CSV file. It returns values in “Boolean”.

True: Indicates that the data has been appended successfully without any errors.
False: Indicates that the data has not been appended successfully due to an unexpected error being thrown.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow.

ReadCSV

This activity helps the user to read and extract data from the specified CSV file. It is helpful when you want to extract the data in tabular format for further processing with Excel automation feature. 

Properties

INPUT

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

ReadData:* This parameter retrieves the output of the activity as extracted data in “DataTable” format. It returns the values in the “DataTable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow

Here’s an example of how the activity is used in the workflow –

In the following steps, I have utilized a sample CSV file which contains a list of customer details extracted from the organization’s website. Using this activity, we are going to read the value from the CSV file and extract them in a tabular format.

1. Create a new solution.
2. Install the feature “CSV Automation” from the manage features option.
3. Now, add the “ReadCSV” activity into the workflow.
a. This activity helps the user to read and extract the data in the CSV file in tabular format.
b. Navigating to the “Datatable” in the properties to declare a variable to view the output.
   i. There are two ways to create a variable –
   ii. Method 1 – Click on the “Datatable” property within the “ReadRanges” activity and enter the variable name. In this case, we are using “Table.” Then, press “Ctrl+Q,” which is a shortcut key to create a variable.
   iii. Method 2 – Click on the Variables pane and enter the name ” Table.” Then, in the “Variable Types” column, select “Browse for Types” from the dropdown menu.
   iv. The .Net window for data types will appear on the screen, enter the type of datatype as “System.Data.Datatable” and then click “OK” button.
5. Next, add the “Table viewer” activity to view the extracted output.
a. Add the input table value as “TABLE”.
b. Provide a title for the table.
6. Save and execute the workflow.

WriteCSV

This activity allows the user to write an input DataTable value to the specified CSV file. It is widely used to export the tabular data into CSV format for data storage and interchange.

Properties

INPUT

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header. 

IgnoreQuotes: If this option is enabled, the quotes in the data will be ignored during the reading process. 

WriteData:* This parameter specifies the input DataTable value that needs to be written to the CSV file. It accepts the values in the “Datatable” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

WriteStatus: It provides the ability to view the status of the data written in the CSV file. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.

False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow

Click here to view how the activity is used in the workflow. 

Use Case

The user receives a CSV file to which they need to append data. The data will be extracted from the website using the “HTMLTableToDataTable” activity. Once the data has been appended, we will read the CSV file using the “ReadCSV” activity to verify that the data has been successfully appended.

Here’s how we can achieve the task,

1. Drag and drop the “OpenWebBrowser” activity into the workflow and set it as start node.
a. Here we are using this activity to open the website to extract the datatable.
b. In this case, let’s use a sample website “https://datatables.net/examples/styling/bootstrap4”. 
c. Double click on the activity and provide the above URL in the “URL” property. 

2. Now, Add the “HtmlTabletoDatatable” activity next to the “OpenWebBrowser”.
a. Here we are using this activity to extract the data in a tabular format from the website and return the output in “Datatable” datatype.   
b. Double click on the activity and choose the “Select Element” option to spy the table value from the website. Click here to refer
c. Next move to the “Datatable” in the properties to view the output of the activity.
d. Refer the steps here to learn how to declare a variable in Datatable format.

3. Add the “AppendCSV” activity next to the “ExceltoDatatable” activity.
a. Here we are using this activity to append the converted excel data into the CSV file.
b. I have already created a CSV file to write the input data.
c. Double click on the activity and click on the “Browse file” option to choose the CSV file.
d. Navigate to the “AppendData” to provide the input datatable that has been extracted from the website.
e. Here the variable is “DT”. 

4. Now, add the “Read” activity from the CSV Automation and place it next to the “Append” activity
a. Here we are using this activity to read the CSV data from the existing file.
b. Double click on the activity and provide the “FilePath”. 
c. In this case, we are using the CSV file where we have appended the data.
d. Navigate to the “ReadData” in the output properties panel to declare a variable to view the output in tabular format.
e. Here we are declaring the variable as “RD_CSV”. 

5. Now, you can add the “Tableviewer” activity to view the output for the read data from CSV file.

Append

This activity allows the user to append the input datatable to the specified CSV file. It allows you to write the input data after the last line of the current data in the file.

Properties

INPUT

AppendData:* This parameter indicates you to specify the input datatable that is required to append in the existing specified CSV file.
It accepts input in “Datatable” datatype. 

You can either hardcode the values in “Datatable” format or provide the values in “Datatable” format variable.  

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header.

Ignorequotes: If this option is enabled, the quotes in the data will be ignored during the reading process.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

AppendStatus: It helps the user to view the status of the data appended in the provided CSV file. It returns values in “Boolean”.

True: Indicates that the data has been appended successfully without any errors.
False: Indicates that the data has not been appended successfully due to an unexpected error being thrown.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow.

DatatableAutomation

DataTable Automation in Robility provides a versatile way to organize, analyze and manipulate tabular data, known as datatables. Integrate DataTable Automation in your workflows to enhance and enrich data-driven automation. This documentation serves a comprehensive guide to understanding and implementing DataTable Automation within your automation workflows.
Before delving into automation, acquire the skills to import data from diverse sources like CSV files, databases, and websites into data tables for subsequent processing. 
The following inputs are intended for the “Datatable” automation and can be utilized: 

1. “HTML Table” can be extracted as response from “Websites”.
2. “Datasets” can be returned as output response from the “Rest” or “Json” activity.
3. Range can be extracted from the excel sheet.
4.In “Database” automation, we can extract the response as “datatable” output.
5. In “WebAutomation” and “Desktop” automation we can extract the “Attributes” and its “elements as “Datatables”.
6. In “PDF” automation, the “Tables” from the pdf can be extracted as response.

UseCase

Below are the use cases where the “Datatable” Automation can be useful in Robility.

• Data Transformation: Use it to structure raw data into a Datatable by removing duplicates, handling missing values, and eliminating unnecessary ones.
• Data Comparison: Utilize “DataTable” automation to validate and compare data extracted from Excel sheets, updating values as needed.
• Data Parsing: Extracted values from Excel sheets can be filtered to retain specific rows and update the sheet.
• Data Validation: To optimize memory usage, clear extracted “DataTables” from Excel sheets before proceeding to the next step in automation.
• Data Troubleshooting: Troubleshoot extracted “Datatable” to ensure the accuracy of values extracted from websites.
• Data Merging and Joining: Automate the merging or exclusion of values in similar extracted “Datatable” from websites using “Datatable” automation.

Release Notes

v.1.4.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.4.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.3.9

This release includes an enhancement to the Merge Datatable activity under the Datatable Automation feature.

Behavior Improvements

  • When MissingSchemaAction is set to Error, the activity throws an error only if SkipOnError is set to False.
  • When SkipOnError is set to True, errors are skipped and the workflow continues without interruption.

v.1.3.7

In this release, new activities have been added to Datatable Automation to improve data comparison, modification, and text manipulation within DataTables, enabling more efficient and controlled data handling in workflows.

New Activities

1. Compare DatatableAllows users to compare two DataTables and identify differences based on defined matching criteria. 

2. Update Row ItemEnables users to update specific column values within a DataTable row that matches the given conditions. This simplifies in-place data updates without the need for complex looping or manual row handling.

3. Find and Replace in DatatableAllows users to search for a specific value or pattern within a DataTable and replace it with a new value. This activity is useful for data cleansing, standardization, and bulk text updates across rows and columns.

v.1.2.8

In this release, new activities have been introduced under the Datatable Automation feature to simplify workflow creation and enhance flexibility.

New Activities

1. Generate DataTable From Text: Allows users to create a DataTable at runtime from structured text input such as CSV or delimited data, enabling quick and dynamic data generation within workflows.

2. Lookup DataTable: Enables users to search for a specific value in a DataTable and retrieve the corresponding value from another column in the same row, simplifying data lookup operations.

3. Build DataTable: Used to design and configure a DataTable with defined columns and optional rows during design time using an interactive DataTable Wizard.

AddNewColumn

It helps the user to add/ update with a “new column” to the “Existing input datatable” during the runtime.

Properties

INPUT

Datatable:Enter the “Input datatable” variable where the input data is stored. This parameter helps you to add a new column. This field only accepts the “datatable” data type.

Datatype:Select the data type which is required to be added in  the “Column”.
Int: It accepts only the “Integer” datatype. (For e.g., 1,2,3).
String: It accepts only the “String” datatype (For e.g., sample).
DateTime: It accepts only the “DateTime” datatype. (For e.g., 01/01/2001 12:00 AM).
Double: It accepts only the “Double” datatype. It refers to the floating-point and decimal values.  (For e.g., 123.456 or -3.145).

DefaultValue:Indicate the “Default value” that should be automatically filled for the column values. This value will be consistent for all rows in the column.
You can only assign “default values” to the columns; it’s not possible to add multiple values. This field only accepts the “string” data type.

Name:Provide the “Header” for the column to be inserted into the table. This field only accepts the “string” data type.

Position:Indicate the “Position” for the column where it should be inserted. This refers to the “index” position to which the column needs to be added. This field only accepts the “int” data type.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

Represents mandatory fields to execute the workflow

AddNewRow

This activity helps to add or update with a “New row” to the “Existing input data table” during the runtime.

Properties

INPUT

AddEmptyRow: To include an “Empty row” in the existing “Input datatable,” select this option. When not selected, the empty row won’t be added.

DataTable: Enter the “Input datatable” variable where the input data is stored. This parameter helps you to add a new column. This field only accepts the “datatable” data type.

InputArray: Provide the necessary “Input values” for the “New Row.” These values should be specified using the “Array of Object” datatype. (For example: {“JOHN,32, Manager”}) You can employ either the “InputArray (hardcoded value)” or the “InputDataRow (variable)” option to introduce a new row.
This field only accepts the “Array of Object” datatype. If left empty, it will operate with the “InputDataRow” field if provided.

InputDataRow: Designate the “Data row” variable where the input values for the row are stored. This field exclusively accepts the “DataRow” datatype for the variable. If left empty, it will operate with the “InputArray” field if provided.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version:  It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow. 

Build Datatable

This activity is used to create a DataTable with configurable rows and columns. It allows users to define the table structure by specifying column names, data types, and optionally adding initial rows of data for use within automation workflows.

Properties

Input

Datatable Wizard *:

Used to define the structure and content of the DataTable by configuring its columns and optional data rows.

Column Name: Specifies the name of the column to be added to the DataTable.

Data Type: Allows you to select the data type for the column from the dropdown list (e.g., String, Int32, Boolean, DateTime).

Allow Null: Specifies whether the column can contain null values.

Auto Increment: Enables automatic incrementation of numeric values for each new row (applicable for numeric columns only).

Default Value: Specifies the default value to be assigned if no data is provided for that column.

Unique: Indicates whether all values in the column must be unique.

Max Length: Defines the maximum number of characters allowed in the column (applicable for String datatype).

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Datatable: Returns the output as a structured table format with the input provided.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

Represents mandatory fields to execute the workflow.

Note: 

This activity cannot be used at runtime to dynamically pass values for building a DataTable. To create or generate a DataTable during runtime, use the Generate Table From Text activity instead.

ClearTable

This activity assists the user in clearing the “Data” from the designated “Datatable.” It facilitates the resetting of the “Datatable” to its original state, primarily for troubleshooting purposes, especially when the execution is within a loop.

Properties

INPUT

DataTable:* Enter the “Input datatable” variable where the input data is stored. This parameter helps you to clear the data. This field only accepts the “datatable” data type.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow

Compare Datatable

This activity helps the user to compare between two datatables and provides the updated, modified or findings as result.

Properties

Input

Compare Type: Specifies how the rows in the DataTable are compared during matching or lookup operations.

Full: Compares all columns in the DataTable. A row is considered a match only when every column value is identical between the compared rows.
Primary Key: Compares rows using only the primary key column(s). If the primary key matches, the row is considered a match, even if other column values are different.

Ignore Case: When enabled, it ignores letter casing while searching. Uppercase and lowercase letters are treated the same when matching values.

Ignore Order: Compares rows without considering their position in the DataTable. Even if the rows appear in a different order, they are still treated as matching based on the comparison type.

Key Columns: Specifies the columns used to identify and match values and accepts the list of column names in List of String format.

Source Datatable*: Specifies the source DataTable that contains the values to be matched.

Target Datatable*: Specifies the target DataTable where the matching values will be searched.

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Added Rows: Returns the rows that exist in the target table but not in the source table in a structured DataTable format.

Modified Rows: Returns the rows that have changed when comparing the target table against the source table in a structured DataTable format.

Removed Rows: Returns the rows that were present in the source table but are missing in the target table in a structured DataTable format

Unchanged Rows: Returns the rows that are identical in both the source and target tables in a structured DataTable format..

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

DatasetViewer

The activity can be executed only in debug mode. It helps the user to view the “Dataset values” in a table format.

DataSet vs DataTable

“Datatables” are employed to store data comprising “Rows and Columns” and cannot accommodate multiple datatable values. On the other hand, a “Dataset” is utilized to contain multiple “data tables” with distinct relationships.

Properties

INPUT

ExpirySecs: Indicate the duration in seconds for which the dataset table should be displayed.
Provide the time value in seconds. The default setting is “10 seconds.”This field only accepts the “Integer32” datatype.

InputDataset:*  Enter the “Input dataset” variable where the input data is stored. This parameter helps you to view the input from the table. This field only accepts the “dataset” data type.

MessageTitle:* Specify the “Title” for the “Dataset” table. This field accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.ZNone: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow.

DatatableToHtmlFile

This activity helps the user to convert the “datatable” to “Html file.” The HTML file can be used for further analysis or visualization.

Properties

INPUT

AuthorName:Enter the desired “File Name” where the converted table should be saved. This field only accepts the “String” datatype.

Datatable:  Enter the “Input datatable” variable where the input data is stored. This parameter helps you to convert the “datatable” to “Htmlfile”. This field only accepts the “datatable” data type.

FilePath: Provide the “File path” for storing the converted “HTML file,” along with the desired file name.

For example: “C:\Users<Username>\Desktop\Notes\Sample”. This field only accepts the “string” datatype.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow.

FilterTable

This activity can be used to filter a “specific value” either by restricting or excluding the “Rows or columns” from the “Input datatable.”

Properties

INPUT

ColumnFilterMode: It gets auto filled once the option is selected in the “Filter Wizard” window. Select the options from the drop-down to filter the “column.”
Keep: It enables to display only the specified “Column and its values”.
Remove: It enables to remove only the specified “Column value” from the table.

InDatatable:* Enter the “Input datatable” variable where the input data is stored. This parameter helps you to filter the “Rows/ Columns” from the table. This field only accepts the “datatable” data type.

RowFilterMode: It gets auto filled once the option is selected in the “Filter Wizard” window. Select the options from the drop-down to filter the row.
Keep: It enables to display only the specified “Row and its values.”
Remove: It enables to remove only the specified “Row value” from the table.

MISC

Display Name: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

FilterRowQuery: It gets auto filled once the “Row’s values” are specified in the filter wizard box. It indicates “Query” to the filter the rows from the table. This field accepts only “String” datatype. When left blank, it will throw an exception to provide the “RowQuery” if either the “Rows” or “Columns” are not specified.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.

Version: It specifies the version of the Datatable automation feature in use

OUTPUT

OutDatatable:* It helps to view the output of the activity after filtering the rows and columns in a “Datatable” datatype. (Refer the steps below to create a variable)

*Represents Mandatory field to execute the workflow

Filter Wizard

1. Drag and drop the “Filter” activity from the Datatable Automation.
2. Double click on the activity and choose the “Filter wizard” option. 
3. The filter wizard will have two tabs such as “Filter rows” and “Limit columns”.
a. Limit columns:
    i. It enables column filtering, either restricting the view to specified columns or excluding specified columns from the table. This tab has two options,

    ii.  Keep – This option displays only the specified columns.
   iii. Remove– This option eliminates the specified columns. 
   iv. Specify the “Column” name from the “Input Datatable”. Multiple columns can be filtered by choosing the “+” button to add more columns from the table.

   v.  Select either to keep or remove the columns.
   vi. Once done, click on “OK” button.

b. Filter Rows: It enables row filtering, either restricting the view to specified rows or excluding the specified rows from the table.
     i. This tab has two options,
    ii. Keep – This option displays only the specified rows.
c. Remove– This option eliminates the specified rows.
i. Specify the “Column” name from the “Input Datatable”.

Operations available in Filter wizard:

  1. Choose the operation from the drop-down.
  2. < : It validates to check whether the provided “ColumnName” is lesser than the specified “RowValue”.
  3. >: It validates to check whether the provided “ColumnName” is greater than the specified  “RowValue”.
  4. <= : It validates to check whether the provided “ColumnName” is lesser than or equal to the specified “RowValue”.
  5. >= : It validates to check whether the provided “ColumnName” is greater than or equal to the specified “RowValue”.
  6. = : It validates to check whether the provided “ColumnName” is equal to the specified “RowValue”.
  7. != : It validates to check whether the provided “ColumnName” is not equal to the specified “RowValue”.
  8. IsEmpty: It validates to check whether the provided “ColumnName” is empty.
  9. IsNotEMPTY: It validates to check whether the provided “ColumnName” is not empty.
  10. StartsWith: It validates to check whether the provided “ColumnName” starts with the specified value.
  11. EndsWith: It validates to check whether the provided “ColumnName” ends with the specified value.
  12. Contains: It validates to check whether the provided “ColumnName” contains with the specified value.
  13. DoesNotStartwith: It validates to check whether the provided “ColumnName” does not starts with the specified value.
  14. DoesNotEndWith: It validates to check whether the provided “ColumnName” does not ends with the specified value.
  15. DoesNotContain: It validates to check whether the provided “ColumnName” does not contains the specified value.
    i.  Multiple columns can be filtered by choosing the “+” button to add more columns from the table.
    ii. Select either to keep or remove the columns.
    iii.Once done, click on “OK” button.

Find or Replace

This activity allows users to search for a specified value in the input datatable and replace it with another value.

Properties

INPUT

Input Datatable: Specifies to provide the input datatable to search within the provided range in the sheet.

Match Case: Ensures that the search matches the case (uppercase or lowercase) of the provided value exactly.

Operation: Specifies the operation to be performed in the Datatable.
Available options:

a. Find:Finds and returns the first matching value.
b. Find All:Finds and returns all matching values.
c. Replace: Finds and replaces the first matching value.
d. Replace All: Finds and replaces all matching values.

Find Value*: Specifies the input value to be searched within the datatable. Accepts values in String datatype.

Replace Value*: Specifies the value to replace the found text with. This parameter is applicable only when Replace or Replace All is selected. Accepts values in String datatype.

Column Names*: Specifies to provide the column name where the operation is to be performed in comma separated values. Accepts values in String datatype.

e.g.( Name, Age, City)

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Count: Returns the number of matched values found in the input DataTable in type of Int32.

Found Location: Returns the row index or column index where the first matched value is found in String format.

Found Locations: Returns all row or column indexes where the matched values are found in List of String datatype.

Updated Datatable: Returns the output with the updated values in a structured table format.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

 

Generate Datatable from Text

This activity creates a DataTable in a structured format from the provided raw text. It helps organize the data and allows users to customize it as needed.

Properties

Fixed formatting option

Column Sizes: Specifies the width of the column if required. E.g., “12,13,14”. This option will be enabled only when the “Fixed width column” is used.

Formatting Options

Column Separator: Specifies how columns in the input data are separated. Options available in the dropdown:

Space – Separates columns with a space.
Tab – Separates columns with a tab.
New Line – Places each column on a new line.
Comma (,) – Separates columns with a comma.
Colon (:) – Separates columns with a colon.
Semicolon (;) – Separates columns with a semicolon.
Equals (=) – Separates columns with an equals sign.

Csv Parsing: Enable this option when the input data are separated by comma values. Set True to enable the option and False to skip it. You can also configure them from the Generate Table Wizard by checking the corresponding boxes.

New Line Separator: Specifies how rows in the input data are separated. Options available:

Space – Separates rows with a space.
Tab – Separates rows with a tab.
New Line – Places each row on a new line.

Input

Input: Specifies the input data in the sample input area. Accepts values in String format.

You can provide text values either as a hardcoded string or as a variable.

Note: File paths are not allowed as input.

Misc

Display Name: The display name of the activity. This can be customized to make workflows easier to understand and troubleshoot.

SkipOnError: Accepts a Boolean value (True or False).

True: Continues executing the workflow even if an error occurs.

False: Stops the workflow when an error occurs.

None: If left blank, the default behavior is the same as False.

Output

DataTable: Returns the output as a DataTable, converting the provided input into a structured table.

Table Options

(For the properties below, set True to enable the option and False to skip it. You can also configure them from the Generate Table Wizard by checking the corresponding boxes.)

Auto Detect Types: Automatically detects the data types of column values.

Ignore First Column: Ignores the values in the first column of the input data.

Include Column Headers: Uses the first row of the input as column headers.

Limitations

The column separator and new line separator accept values in String format in the property window, such as:

1. “comma” or “,”
2. “
“[newline]”

When using symbols, only single characters (; , =) are allowed. Therefore, values like \n or \t are not supported.

Example

Let’s look at an example of how to generate a DataTable from text. Assume we have a text file containing unstructured data about the number of tickets. Using the “Generate datatable from text” activity, we are going to create a structured table.

Follow the steps below:

1. Drag and drop the Read Text activity into the workflow.

a. In the File path property, provide the path of the input text file.
b. In the Output section, declare a variable to store the extracted text.

2. Add the Generate DataTable from Text activity into the workflow.

a. In the Input property, assign the variable created in the Read Text activity.
b. Set the CSV Parsing property to True, and in the Column separator property, specify Comma.
c. In the Output section, declare a variable to store the resulting DataTable.

3. Finally, add a Table Viewer activity to the workflow and provide the DataTable variable created above as input.

The bot extracts the content from the text file and passes it to the Generate DataTable activity to create a DataTable from scratch. Click here to view the sample file.

Using Generate Table Wizard for formatting

The Generate Table Wizard feature allows users to easily create and preview a DataTable from a given sample input. It provides options to define the table’s structure, format, and alignment, ensuring the generated DataTable is accurate and ready for use in the workflow.

To access the wizard, double-click on the activity and select the “Options” button, now you can enter your input data and customize the formatting.

Key Steps:

1. Enter your sample data or paste existing content into the input area.
2. Use the available formatting tools to adjust column alignment, headers, and delimiters for structured output.
3. Click the Preview button to visualize how your DataTable will appear before generating it.
4. Once completed with the formatting, save the changes to generate a clean and properly structured DataTable.

Additional Notes:

1. Refer to the Properties panel for detailed descriptions of the options available in the Wizard.
2. If the format is set to CSV, only the Column Separator option will be available.
3. If the format is set to Custom, both Column Separator and New Line Separator options will be available.
4. If the format is set to Fixed Width Columns, the Column Widths option will be available.

Troubleshooting steps

Using Custom Data in Generate DataTable from Text

1. If your input text does not follow a standard format like CSV, you can define your own custom separators.
2. Use the Column Separator property to specify how values in each row are divided (e.g., ;, or tab).
3. Use the New Line Separator property to specify how each row of data is separated (e.g., \n for line breaks).
4. You can set these values directly in the Properties panel or through the Generate DataTable Wizard.

Example:
If your text looks like this:

ID Name Department 

1 John Finance 

2 Emma HR 

a. Set Column Separator = space
b. Set New Line Separator = \n

This will generate a structured DataTable with the correct columns and rows.

Handling Improperly Formatted Text (via Variable)

When you pass text from a variable into the Generate DataTable from Text activity, the output depends on how the text is formatted. If the format is not proper (e.g., inconsistent separators, extra spaces, or line breaks), the DataTable may not generate correctly.

How to Correct It:

1. Ensure the text in the variable uses a consistent structure (e.g., all values separated by commas, pipes, or tabs).
2. Use activities to Replace, Trim to remove unwanted spaces, extra lines, or incorrect characters.
3. If your text doesn’t use commas, configure the Column Separator and New Line Separator properties with the correct delimiters.

Note: You don’t need to customize every time manually. Once you define separators or clean the text, the activity will generate the table consistently.

1. “Column” already belongs to the datatable – occurs when,

a. Your input text or raw CSV data contains the same column name more than once.
b. The Generate DataTable from Text activity automatically tries to create DataTable columns, but DataTables don’t allow duplicate names.

How to correct it:

a. Always make sure the input data has unique column names.
b. If the source data contains duplicate columns, rename or manually check them before converting into a DataTable.

JoinDatatable

This activity can be used to join two tables with similar data columns from the input tables.

Properties

INPUT

DataTable1: *Specify the “datatable” variable where the input data is stored. This parameter helps you to provide the first “datatable” to join the values. This field accepts only “Datatable” datatype.

DataTable2: *Specify the “datatable” variable where the input data is stored. This parameter helps you to provide the second “datatable” to join the values. This field accepts only “Datatable” datatype.

JoinType:* Choose options from the dropdown to select the join type.
Full: Joins all rows from two tables regardless of whether the specified condition is met. Null values are added if data is not available in the datatable.
Left: Joins values meeting the condition from the second datatable. Null values are added to “Datatable1” if no values match the rows from “Datatable2”.
Inner: Joins all values from both tables and removes rows that don’t meet the condition. (For more details, refer to the document below.)

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

DataTable:* It helps to view the output of the activity after joining the rows in a “Datatable” datatype. (Refer the steps below to create a variable).

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.

* Represents mandatory fields to execute the workflow.

Utilization of Join Table Wizard:
1. Double click on the activity and provide the input datatable for “Datatable1”.
2. Specify the input datatable for “Datatable2”.
3. Click on the three lines adjacent to the “DataTable1” and choose the “Edit wizard” option
4. The wizard contains three sections-
a. To provide “Input” datatables and choose the “Join Type.”
b. To provide the “Output” datatable to view the joined table.
c. To specify the “Condition” that needs to be met while joining the tables.
5. In the condition section, you need to start “=” operation as default.
a. The following are the conditions that are available,
<: It validates to check whether the provided “ColumnName” is lesser than the specified “ColumnName” in the DataTable2.
>: It validates to check whether the provided “ColumnName” is greater than the specified “ColumnName” in the DataTable2.
<=: It validates to check whether the provided “ColumnName” is lesser than or equal to the specified “ColumnName” in the DataTable2.
>=: It validates to check whether the provided “ColumnName” is greater than or equal to the specified “ColumnName” in the DataTable2.
=: It validates to check whether the provided “ColumnName” is equal to the specified “ColumnName” in the DataTable2.
6. Specify the “Output datatable” variable and click on “Save”.

Lookup Datatable

This activity allows the user to search for a specific value within a provided DataTable and retrieve the corresponding value from a specified target column in the same row.

Properties

Input

DataTable: *Specifies the input DataTable from which the lookup operation will be performed.

Lookup Value: *Specifies the value to be searched within the specified lookup column. Accepts values in String datatype

Lookup Column

The properties below let you specify the column to search the value from. Provide any one of the following.

Column: Specifies the DataColumn object where the column name is stored. Accepts values in DataColumn datatype.

Column Name: *Specifies the name of the column in which the lookup needs to be performed. Accepts values in String datatype.

Column Number: Specifies the index position of the column within the input DataTable. Accepts values in Int32 datatype. The index position starts from

Target Column

The properties below specify the target column from which the value should be retrieved for the matched lookup value. Provide any one of the following.

Column: Specifies the DataColumn object where the target column name is stored. Accepts values in DataColumn datatype.

Target Column Name: *Specifies the name of the column from which the value should be retrieved. Accepts values in String datatype.

Column Number: Specifies the index position of the target column within the input DataTable. Accepts values in Int32 datatype. The index position starts from 0.

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Cell value: Returns the value retrieved from the corresponding target column for the specified lookup value. The output is returned in String datatype.

Row Index: Returns the row index of the identified cell value from the target column. The output is returned in Int32 datatype.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

* Represents mandatory fields to execute the workflow.

MergeTable

The Merge Datatable activity allows users to merge two datatable variables into a single output datatable. This activity supports schema-based control over how the merge handles differences in table structure and duplicate data.

Purpose
The purpose of the Merge Datatable activity is to:
       1. Combine data from two datatables into one.
       2. Handle schema differences between datatables.
       3. Control how duplicate and mismatched data is processed

Properties

INPUT

MissingSchemaAction*: Specifies the action to perform when there are schema differences while merging the datatables.
Select one of the following options from the drop-down list:
 a. Add: Merges all data from both datatables, even if the number of columns differs. Any missing columns are added automatically.
 b. Error: Merges the datatables only if their schemas match. If any schema mismatch is detected, the activity throws an error.
 c. Ignore: Ignores non-common columns and merges only the data that exists in both datatables.
 d. AddWithKey: Merges the datatables based on a validated primary key to avoid duplicate rows.

Table1*: Represents the Source Datatable. Provide the input datatable variable that contains the data to be merged into Table2.
Table2*: Represents the Destination Datatable. Provide the input datatable variable into which Table1 will be merged.
Note: Table1 and Table2 fields accept only the Datatable data type.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.
SkipOnError: Determines whether the workflow should continue execution if the activity encounters an error. This property accepts Boolean values.
True – Continues execution to the next activity
False – Stops the workflow if an error occurs
None – Defaults to False behavior
Version: It specifies the version of the Datatable automation feature being used.

OUTPUT

Table: Returns the merged result as a Datatable.
Result: Indicates the execution status of the activity. It returns the values in Boolean format.
True – The activity executed successfully
False – The activity failed due to an error

* Represents mandatory fields required to execute the workflow.

How It Works

1. Table1 is treated as the source datatable. 
2. Table2 is treated as the destination datatable.
3. The merge operation is performed based on the selected MissingSchemaAction.
4. The final merged data is returned as a single output datatable.

OutputTable

This activity helps the user to convert the “Datatable” into “String” datatype.

Properties

INPUT

Table:* Enter the “Input datatable” variable where the input data is stored. This parameter helps you to convert the “datatable” to “String”. This field only accepts the “datatable” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.

Text:* It helps to view the output of the activity as the converted table in the “String” format. (Refer the steps below to create a variable).

* Represents mandatory fields to execute the workflow.

RemoveColumn

This activity helps to remove a specified “Column” from the “Input datatable.”

Properties

INPUT

ColumnName:* Enter the “Column name” to remove from the “Input datatable.” Provide the column name within double quotes or input the variable in “string” datatype where the column name is stored. This field only accepts data in “String” datatype. If left blank, it will work with the “DataColumn” field if provided.

Datacolumn:* Enter the “Data column” where the input is stored to remove from the table. You can employ either the “ColumnName (hardcoded value)” or the “DataColumn (variable)” option to remove a column. This field accepts only “Datacolumn” datatype.
If left blank, it will work with the “DataColumn” field if provided.

DataColumnIndex:*  Specify the “Index” position of the data column within the “Datatable” that you want to remove. The index position starts from 0. This field accepts only “Integer” datatype. 

Datatable:* Enter the “Input datatable” variable where the input data is stored. This parameter helps you to remove the “Column” from the “datatable”. This field only accepts the “datatable” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow.

RemoveDuplicateRow

This activity helps to remove the “duplicate row” from the input “datatable.”

Properties

INPUT

Table:*  Enter the “Input datatable” variable where the input data is stored. This parameter helps you to remove the “Duplicate rows” from the “datatable”. This field only accepts the “datatable” data type.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

Represents mandatory fields to execute the workflow.

RemoveRow

This activity helps the user to remove a specified “Row” from the “input datatable.”

Properties

INPUT

Datarow:* Enter the “Data Row” variable where the input is stored to remove from the table. You can employ either the “Datarow (variable)” or the “DataRowIndex (hardcoded value)” option to remove a column. This field accepts only “DataRow” datatype. If left blank, it will work with the “DataRowIndex” field if provided.

DataRowIndex:Specify the “Index” position of the data row within the “Datatable” that you want to remove. The index position starts from 0. This field accepts only “Integer” datatype.  If left blank, it will work with the “DataRow” field if provided.

Datatable:*  Enter the “Input datatable” variable where the input data is stored. This parameter helps you to remove the “Row” from the “datatable”. This field only accepts the “datatable” data type. 

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow.

 

Sort

This activity helps the user to sort the column’s value in the table either in ascending or descending order.

Properties

INPUT

Column Name: *Enter the “Column name” to sort from the “Input datatable. “Provide the column name within double quotes or input the variable in “string” datatype where the column name is stored.
This field only accepts data in “String” datatype.

SortAs:* This option determines the sorting order for the “Columns.” Choose the order from the dropdown:
Ascending: Sorts in ascending order from smallest to largest or A to Z based on values.
Descending: Sorts in descending order from largest to smallest or Z to A based on values.

Table:*  Enter the “Input datatable” variable where the input data is stored this parameter helps you to sort the “Column” from the “datatable”.
This field only accepts the “datatable” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

SortDt:*  It helps to view the output of the activity as the “Sorted” columns in a “Datatable” datatype. (Refer the steps below to create a variable).

* Represents mandatory fields to execute the workflow.

TableViewer

This activity assists in displaying the records of the “datatable” in a tabular format. It is useful for debugging purposes, enabling users to review the values within the “datatable” before the workflow progresses. This helps in identifying errors or incorrect data within the datatable.

Properties

INPUT

ExpirySecs: Indicate the duration in seconds for which the dataset table should be displayed. Provide the time value in seconds. The default setting is “5 seconds.” This field only accepts the “Integer32” datatype.

InputTable:* Enter the “Input datatable” variable where the input data is stored. This parameter helps you to view the “datatable”.
This field only accepts the “datatable” data type.

MessageTitle:* Specify the “Title” for the “Dataset” table. This field accepts only “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can also be customized to help in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow.

Update row item

This activity allows the user to update the value of a specific row in the specified DataTable.

Properties

Input

DataTable*: Specifies the input DataTable in which the row value must be updated. It accepts values in  DataTable variable.

Row*: Specifies the DataRow to be updated and accepts values in DataRow variable where the new value will be applied.

Value*: Specifies the new value to be assigned. It accepts a String data type, and you can provide the value directly in string format.

Misc

Display Name: The display name of the activity. This can be customized to make workflows easier to understand and troubleshoot.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Datatable: Returns the output with the updated row in a structured table format with the input provided.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

* Represents mandatory fields to execute the workflow.

How to Get DataRow?

The Update Row Item activity requires an input of type DataRow. To retrieve a DataRow variable, follow the steps below:

  1. Create or obtain a DataTable variable. Use activities that generate or extract a DataTable.
  2. Add a For Each Row activity to iterate through the DataTable. This loop provides each row as a DataRow variable.
  3. Use the DataRow variable within the loop as the input for the Update Row Item activity.

 

AddNewColumn

It helps the user to add/ update with a “new column” to the “Existing input datatable” during the runtime.

Properties

INPUT

Datatable:Enter the “Input datatable” variable where the input data is stored. This parameter helps you to add a new column. This field only accepts the “datatable” data type.

Datatype:Select the data type which is required to be added in  the “Column”.
Int: It accepts only the “Integer” datatype. (For e.g., 1,2,3).
String: It accepts only the “String” datatype (For e.g., sample).
DateTime: It accepts only the “DateTime” datatype. (For e.g., 01/01/2001 12:00 AM).
Double: It accepts only the “Double” datatype. It refers to the floating-point and decimal values.  (For e.g., 123.456 or -3.145).

DefaultValue:Indicate the “Default value” that should be automatically filled for the column values. This value will be consistent for all rows in the column.
You can only assign “default values” to the columns; it’s not possible to add multiple values. This field only accepts the “string” data type.

Name:Provide the “Header” for the column to be inserted into the table. This field only accepts the “string” data type.

Position:Indicate the “Position” for the column where it should be inserted. This refers to the “index” position to which the column needs to be added. This field only accepts the “int” data type.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version: It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

Represents mandatory fields to execute the workflow

Get Started

Robility Activities are the core building blocks of Robility Designer, designed to simplify and streamline automation processes. These activities enable users to define and execute tasks efficiently by integrating various functionalities into a cohesive workflow.

Each activity is purpose-built to handle specific tasks, such as data extraction, integration with external systems, file management, or decision-making processes. Robility’s intuitive interface and activity library make it accessible for both technical and non-technical users, enabling them to design workflows with minimal effort.

With features like error handling, logging, and debugging tools integrated into the activity framework, users can ensure their processes are reliable and optimized for performance. By leveraging Robility Activities, businesses can achieve greater efficiency, reduce manual errors, and accelerate their digital transformation journey.

Discover the activities tailored to meet your automation needs. 

Group Policies

There are few group policies that can affect the installation of the Robility extension or even stop the bots to automate the tasks on websites after installation. These policies are often configured by organizations to manage and control which extensions can be installed on their users’ browsers. Below are the specific scenarios where the installation of the Robility extension may be blocked or restricted:

1. ExtensionBlockInstallList Policy: Organizations can configure this policy to block the installation of any extensions on Chrome browsers. When set to True, users cannot install extensions. You can check whether this policy is enabled at “chrome://policy”.  

2. ExtensionForceInstallList: Administrators can configure a list of force-installed extensions using group policy, which overrides user control. If Robility Automation extensions are not included in this list, they will be blocked from being installed. You can check whether this policy at “chrome://policy”.  

3. Extensions Blocked via Device Management: In a managed environment, an administrator may use device management settings to prevent users from adding any extensions or limit them to a pre-approved set of extensions. Follow the below steps to check, 

a. Click on the three-dot menu () in the top-right corner.
b. Scroll down and check if there is a message “Managed by your organization” at the bottom of the menu.

4. User Permissions and Privileges: Restrictions on user might prevent users from installing extensions. Users without admin rights may be blocked from installing any extensions.

a. On Windows, if a user does not have admin rights, they may be unable to install extensions or make system changes.
b. Organizations may configure Group Policy on Windows to prevent certain users from installing extensions.

5. NativeMessagingBlockList: This policy controls which browser extensions can communicate with external applications on a user’s computer. If set to “*”, it blocks all such connections, preventing Robility WebAutomation from working.

To enable automation, IT administrators must allow:

a. Robility Chrome Native App (for Chrome)
b. Robility Edge Native App (for Edge)

6. Chrome Web Store Blocking: If an organization blocks access to the Chrome Web Store or restricts the use of certain URLs or domains, users won’t be able to download and install the Robility extension directly from the store.

7. Security Software or Firewall Settings: Some security software or network firewalls may block installation of extensions from certain sources, including the Chrome Web Store, which could prevent the installation of Robility’s browser extension.

Manual Installation of Extension

To resolve the above-mentioned scenarios, contact your organization’s IT administrator to request access. Until then, administrators can manually install the extension using the browser’s “Load Unpacked” option, allowing temporary installation from a local folder. However, this does not apply to NativeMessaging Host issues. Click here to learn more.

This method is not recommended for long-term solution. Follow the below steps to install an unpacked extension:

Steps to Load Unpacked Extensions in Chrome:

1. Open your Chrome browser and type chrome://extensions/ into the address bar, then press Enter.
2. This will take you to the Extensions management page where you can see all the installed extensions.
3. In the Extensions page, look to the top-right corner, where you’ll see a toggle for Developer mode.
4. Switch this toggle to the “On” position. 
5. Once Developer mode is enabled, you’ll see new buttons appear on the page: Load unpacked, Pack extension and Update.
6. Click on the Load unpacked button, which will open a file picker window to select the folder containing the extension files that you want to install.
7. In the file picker window, navigate to the folder where the unpacked extension is located. The folder should contain the manifest.json file, which is the core file of the extension, along with any other necessary files (such as HTML, CSS, JavaScript, images, etc.).
8. Once the folder is selected, the extension will be installed and immediately visible on the Extensions page (chrome://extensions/).

Important Considerations

1. Manual installation via the “Load Unpacked” option should only be used when explicitly allowed by your organization. If you are unsure about your organization’s policies, it’s always best to check with the IT department or the team responsible for managing browser configurations.

2. No Automatic Updates: Unlike extensions installed from the Chrome Web Store, unpacked extensions will not automatically update. You will need to manually update the files in the folder and reload the extension each time an update is made.

Latest Updates

Robility Platform Updates – Jul’26 Platform Updates

Robility Flow

Outlook Components
Automate email operations within workflows to improve communication and streamline email handling.
Read more.

Project-Level Model Provider Configuration
Configure model providers separately for each project, improving flexibility and control over AI settings.
Read more.

Save File Component – DataFrame Support
Convert DataFrame data into table format when saving PDF and DOCX files, improving document formatting and readability.
Read more.

Get Credentials – Enhanced Output
Retrieve username and password values through component outputs for easier credential handling.
Read more.

Robility Manager

Admin Console
Monitor and manage Unattended Runner machines from a centralized console, improving operational visibility and simplifying remote administration.
Read more.

Microsoft SharePoint
Seamlessly manage SharePoint sites, files, folders, and documents within Robility automation workflows using Microsoft Graph API.
Read More

Robot – Move to Idle
Restore locked robots to an Idle state with a single action, reducing downtime and making robots available for task execution more quickly.
Read more.

Automated API Key Management
Automatically renew Flow API keys for scheduled workflows, ensuring uninterrupted execution and eliminating manual key renewal.
Read more.

Transaction Report Download
Download transaction reports directly from email notifications in Excel format, enabling faster reporting, analysis, and sharing of execution results.
Read more.

Robility Activities

Microsoft Outlook 365 Calendar
Automate calendar management and scheduling activities to improve productivity and streamline Outlook calendar workflows.
Read more.

Robility Runner

Runner Troubleshoot (UI Automation)
Runner can now automatically capture screenshots when Desktop, Image, and Web automation activities fail. This provides visual context for troubleshooting, reduces debugging effort, and accelerates issue resolution.
Read more.

Jul'26 Release

The July 2026 release delivers new capabilities across automation operations, workflow development, new integration, reporting, and AI governance, it enables to manage enterprise automation with greater visibility, control, and efficiency.

AUTOMATION GOVERNANCE

Centralized Runner Diagnostics

Robility Manager provides centralized management of machines hosting unattended runners, giving operations teams complete visibility and control from a single console. With remote diagnostics, real-time health monitoring, log management, and administrative capabilities, organizations can accelerate issue resolution, minimize operational downtime, and eliminate the need for direct machine access—ensuring resilient, uninterrupted automation at scale.

Dynamic Troubleshooting

Accelerate issue resolution for UI Automation activities with advanced Runner Troubleshooting. When enabled, Robility Runner automatically captures the application screen whenever an exception occurs and attaches it to the exception details, providing immediate visibility into the point of failure for faster root cause analysis and improved automation reliability.

WORKFLOW DEVELOPMENT

See Every Execution

Robility Designer introduces Execution Trial, providing complete visibility into workflow execution before production. Trace every activity, identify bottlenecks, and evaluate workflow health to optimize automations, reduce production risks, and deliver more reliable workflows.

Immediate Window in Debug Watcher

The new Immediate Window in Debug Watcher enables developers to evaluate workflow inputs and expressions in real time during debugging without adding temporary logging activities, reducing troubleshooting effort and accelerating development.

ENTERPRISE INTEGRATION

Expand Microsoft 365 Automation

Robility expands Microsoft 365 automation with Calendar and Outlook capabilities across Robility Activities and Flow. Automatic refresh token management eliminates manual token renewal, ensuring reliable Microsoft 365 automation with reduced administrative effort.

REPORTING

Secure. Simple. Accessible.

Authorized users can securely access reports directly from notification emails through Robility Manager authentication, eliminating manual report distribution while maintaining secure access.

FLOW ENHANCEMENTS

Centralize AI Configuration

Robility Flow introduces project-level Model Provider Configuration, allowing AI providers to be managed at the project level. Dedicated project configurations and project-level permissions provide greater governance while supporting project-specific AI requirements.

Release Date: 25.07.2026

May'26 Release

Robility Platform Updates – May 2026 Release

New Features & Enhancements

Robility Manager

Microsoft 365 Integration
Robility’s Microsoft 365 integration brings Outlook directly into your automation layer. Trigger workflows from incoming emails, extract data, and process attachments using built-in activities without manual intervention or external connectors.

Read More.

Machine Template

Machine Templates provide a standardized way to configure and manage automation environments across multiple machines. Eliminate repetitive setup, reduce configuration inconsistencies, and scale automation seamlessly across your infrastructure.

Read More

Centralise. Manage. Deploy.

Managing AI models without central control introduces security risks and operational inconsistency. Robility’s LLM Configuration provides a tenant-level control plane where authorized administrators can manage and distribute AI models and embeddings securely. Credentials remain fully protected, ensuring flows consume AI capabilities without exposure.  

Read More

Run on Time. Every Time.

Robility’s time-based scheduling ensures every flow executes exactly when required, fully unattended and without any dependency on operator availability. Every run is automatically logged and traceable, giving organisations complete confidence that time-critical operations are always delivered on time and on record. 

Read More

DataTable Timestamp

Enhanced Datatable capabilities at Robility flow enable efficient handling of large datasets directly within automation flows. This reduces dependency on external storage while improving performance for data-intensive processes.

Read More

Server Stability

Enhancements to the execution engine ensure large and complex workflows run reliably without interruptions. These improvements address the root causes of delays, enabling consistent performance even under high workloads.

Read More

Mar'26 Release

Robility Platform Updates – March 2026 Release

New Features & Enhancements

Centralized AI Management, Simplified Control

LLM Configuration now supports multiple providers within a unified framework. API keys, endpoints, and model settings are managed centrally with secure storage and built-in governance, enabling consistent and compliant AI usage across environments.

Real-Time Automation with Queue-Based Triggers

Robility Flows now support queue-based triggers, allowing workflows to execute automatically when new transactions arrive. This removes reliance on manual or scheduled triggers and enables real-time processing of high-volume data.

Reliable Process Control

The Kill Process activity enables forceful termination of unresponsive applications, helping prevent stalled executions and ensuring automation continues smoothly in long-running scenarios.

Structured Data, Consistent Handling

Build Collection introduces the ability to initialize typed collections such as strings or integers. Data types are inferred from the first element, ensuring consistency and predictable workflow behavior.

Smarter Email Organization

Set Email Category allows emails to be tagged with one or more categories, improving classification, filtering, and grouping within mailboxes for better organization and retrieval.

Stronger, More Stable Automation Environment

Modern Desktop Automation has been upgraded with the latest stable package versions, improving performance, enhancing security, and ensuring compatibility across workflows for a more reliable automation experience.

Feb'26 Release

Robility Platform Updates – February 2026 Release

New Features & Enhancements

Twilio Record Access, Simplified Retrieval

Instantly retrieve detailed Twilio records — Calls, Messages, and Media, using a unique SID. Boost workflow visibility and enable faster, more reliable processing across all communication use cases.

Centralized Runner Setup with Machine Templates

Machine Templates make Robility Runner setup effortless with a unified framework for registration, configuration, and deployment. Enjoy consistent provisioning, simplified onboarding, and dependable execution across all environments.

Optimized Logging, Improved Reliability

Robility now runs on NLog 6.0.7 across Designer, Activities, and Runner for enhanced performance and stability. Reduced memory usage, structured logs, and sharper diagnostics ensure faster troubleshooting and reliable workflow execution.

Jan'26 Release

Robility Platform Updates – January 2026 Release

New Features & Enhancements

From Dedicated Servers to Dynamic Pooling

Robility Machine Templates shift infrastructure from fixed, one-to-one machine assignments to dynamic resource pooling. Multiple automations execute across available machines, removing host dependencies and enabling elastic scaling.

Secured Credentials. Built for Compliance.

The Vault in Robility Manager now enforces project-level, role-based access. Only authorized administrators can access or modify keys, tokens, and credentials—reducing exposure risk and supporting compliance requirements without disrupting approved workflows.

Centralized AI Stack

Robility Manager now provides centralized LLM configuration management across all flow projects. Store API keys, endpoints, and model settings in one encrypted vault, accessible only to tenant administrators.

Complete Traceability

Robility Manager transforms operational data into actionable insight with end-to-end traceability across the data lifecycle.

Authentication & Security

Robility Manager’s TOTP-based MFA protects logins using time-based, locally generated codes to verify identity before access is granted.

Your Data, Your Control

Robility Manager now introduces archival and purge policies for project-level data—retaining Interact workflow data to meet regulatory needs and removing outdated data to reduce cost and risk.

Enhanced Workflows. Better Results.

Robility Activities expand with new capabilities: Merge Table enhancements for seamless consolidation, Refresh Pivot Table for automated Excel analysis, and Export to PDF for professional Word document delivery.

Debug Faster. Rapid Resolution.

Robility Designer now traces exceptions directly to the exact failing activity during design-time execution. In complex flowcharts or long automation chains, errors automatically highlight and navigate to the failing step in seconds.

Nov'25 Release

Robility Platform Updates – November 2025 Release

New Features & Enhancements

Robility Flow – New Components

Robility Flow adds new components including File Download, Webex, Interact Get & Update, File Read & Save, Multi-Condition Router, and new Data Table actions to add columns, insert rows, update rows, and retrieve rows. These additions expand workflow capabilities and make data handling easier.

Enhanced File System Structure

The file system is now refined to operate based on Tenant, Project, or Local settings, offering clearer organization and better control. This enhancement improves how files are managed across environments.

Data Table Management (Preview)

Data Table management now supports project-based operations, including Create, List, Delete, and Rename. This provides better organization and simplifies how table structures are maintained within projects.

Clear Unused Sequence, Imports & Dependencies

Robility Designer now identifies and removes unused sequences, imports and dependencies, helping teams reduce clutter and streamline workflows. This improves maintainability and keeps automations clean and efficient.

Workflow Analyzer

The enhanced Workflow Analyzer applies advanced rules to simplify complex workflows and reduce development effort. It gives better visibility and control, helping teams build more consistent automation designs.

Auto Interact Activities via Co-Pilot

The Interact Workflow Assistant automatically generates complete Interact workflows, removing the need to manually create activities, define JSON structures, or map fields. This streamlines setup and speeds up building form-based automations.

Formatting Feature – New Activities

The Formatting feature now includes new activities such as ModifyDate, FindStartEndWeekMonthYear, AddSubtractDatePeriod, FindNextPreviousDayOfWeek, FormatValue, and ChangeType. These additions help handle date, value, and type formatting more efficiently within workflows.

Core Activities – New Additions

Core activities now include MultiAssign and StartProcess, enabling clearer variable handling and easier process initiation. These additions strengthen workflow structure and simplify essential automation steps.

Excel – New Activities

Excel automation introduces DuplicateSheet and FindAndReplaceExcel to simplify sheet management and content updates. These activities reduce manual steps and make spreadsheet operations more efficient.

List – New Activity

A new SortList activity is added under List operations, allowing quick sorting of list items within workflows. This improves data organization and enhances list-based processing.

Queue-Based Trigger Implementation

Robility Scheduler now automatically triggers transactions from selected queues to available machines while respecting blackout dates. This improves processing efficiency, minimizes delays, and ensures controlled execution during non-working periods.

Blackout Dates for Time-Based Triggers

Users can now define blackout dates for all schedulers to prevent jobs from running on non-working days. Blackout dates can also be uploaded through an Excel file using the provided template for consistent formatting.

AI-Powered Interact Pre-Configuration – Beta
The Interact layer is enhanced with AI to automatically generate and apply project configurations without manual steps. This beta phase introduces a guided setup to help you quickly build automation projects using AI or pre-built templates.

Secured Login with PIN

Robility Manager now supports PIN-based authentication, sending a PIN to the user’s registered email during login. This adds an extra layer of security and ensures safer platform access.

Resource Changes – Vault

Resources are now stored in the vault based on the tenant’s configured storage type, ensuring secure and compliant data handling. This provides consistent protection aligned with each tenant’s configuration.

Workflow Analyzer Integration

Workflow Analyzer data is now displayed directly in the Project → Workflow tab for each published version. This allows users to review workflow details without manually opening or inspecting the JSON file.

Workflow Scan Logs in Robility Manager

Robility Manager now displays Workflow Scan Logs for each workflow version, enabling users to review scan results even after publication. This improves traceability and supports ongoing workflow compliance.

Analytics Tile Search

Analytics tile search is added across Invite Users, Project, Resource, Templates, and Deploy Robots pages. This helps users quickly locate analytics tiles and navigate large lists more efficiently.

Oct'25 Release

Robility Platform Updates – October 2025 Release

New Features & Enhancements

1. Robility Flow
Robility Flow now includes new components, project import and export options, and the flexibility to create projects within a tenant or in local. Along with a refined log structure and improved UI, the platform ensures smoother, more efficient automation.

2. Prevent Duplicate transactions
Automatically detect and manage duplicate transactions with the new Reference Field, keeping your data accurate and reliable without manual effort. Read More.

3. Prioritize the transactions
Assign urgency levels to transactions with the Priority feature, ensuring critical cases are handled first and improving operational efficiency. 

4. Simplified Renewal Process
Renew tenants and RPA developer licenses individually or in bulk with ease, reducing administrative delays and keeping your team productive. Read More.

5. Build, Debug, optimize
The enhanced Debug feature shows real-time input and output for each activity, making it easy to trace data flow, identify issues, and optimize performance. Read More.

6. Cut Complexity, Boost Efficiency
The new Repeat Number of Times and Custom Assign activities automate repetitive tasks and give precise control over data—simplifying workflows and preventing errors. Read More

7. Automation with Java
Integrate Java-based processes directly into workflows to automate complex tasks efficiently and gain greater flexibility. 

8. Simplify List Handling
New List Activities let you easily initialize, read, append, and update lists without complicated syntax, reducing workflow complexity and speeding up automation. Read More

9. Faster, Smarter Resource Management
The Modern Grid Control gives a clear overview and greater control on Resources and Templates pages, making management faster and simpler. Read More

10. Enhanced Workflow Usability
Zoom in and out of your workflow design pane for better visibility and control, even on the most complex workflows. Read More

Aug'25 Release

Robility Platform Updates – Aug 2025 Release

New Features & Enhancements

1. UI Enhancements
Experience a cleaner, more intuitive interface across Robility Designer and Robility Manager, featuring simplified navigation, improved layout for simplified user management and provides better visibility into overall data.

2. Designer & Runner – Enhanced Security
We have strengthened the validation during connection and communication between Designer/Runner and Robility Manager, ensuring secure and reliable automation.

3. Collection – Filter Collection Activity
Simplify your workflow by reducing multiple automation steps into a single activity that filters and returns only the specified data. Read More. 

4. Manager Activities
A new set of activities to configure and retrieve your credentials (token, PIN & key, and JWT token) directly from Robility Manager. This centralizes credential management and enhances security without requiring workflow changes. Read More.

5. Close Browser
Easily terminate browser applications with multiple tabs using the Close Browser activity, eliminating the need to force-close the browser. Read More.

Jul'25 Release

Robility Platform Updates – July 2025 Release

New Features & Enhancements

1. Advanced Scheduler with Cron Expressions
Define complex and highly flexible automation schedules using advanced Cron Expressions. This feature ensures precise and reliable task execution, fully aligned with operational requirements. Read More

2. Secure Asset Management
Eliminate hardcoded values in workflows by storing API keys, credentials, and environment-specific configurations in a secure, centralized vault. Access is tightly controlled so only authorized bots and users can retrieve these assets, ensuring both security and compliance across deployments. Read more. 

3. FIFO/LIFO Queue Processing
Choose between First-In-First-Out (FIFO) or Last-In-First-Out (LIFO) models for queue task execution. This flexibility allows workflows to prioritize tasks based on business needs.

4. Third-Party Storage & Vault Integration
Seamlessly integrate with AWS S3 and Google Cloud Storage and vault for secure and scalable data management. Maintain compliance with your infrastructure and security policies while extending capabilities.

5. Enhanced Reporting & Analytics
Gain actionable insights into automation performance with new dashboard widgets and detailed reports. Track bot performance, task completion rates, and ROI to enable data-driven decisions and continuous optimization.

6. UI Enhancements
Experience a cleaner, more intuitive interface across Robility Designer and Robility Manager, featuring simplified navigation, improved layout, and faster development workflows for greater productivity.

7. GenAI – Content Generation
Leverage GenAI to create dynamic, context-aware content for automation. From crafting intelligent responses to generating summaries and structured data, this feature introduces human-like interaction within workflows. Read More.

8. Salesforce – Search Records Activity
Quickly retrieve Salesforce records based on custom search criteria for faster decision-making and seamless CRM integration. Read More.

9. Manager – Get Asset Activity
Access runtime assets configured in Robility Manager directly from workflows. Securely retrieve credentials, tokens, and configurations to reduce manual effort and streamline execution. Read More

Flows

In Robility flow, flows represent the complete pipeline of how data moves and gets processed across connected components. A flow is essentially the visual workflow you design on the canvas by dragging, dropping, and linking components together. Each flow starts with an input (like a user query, file, or external request), passes through a sequence of core components (data processing, logic, model calls, or tool usage), and ends with an output that returns the final result.

Flows can be simple, such as connecting a prompt input directly to a language model, or highly complex, involving loops, conditional branches, external API calls, and agents for dynamic decision-making. They can be run interactively for testing, served through APIs, or embedded into applications—making them flexible for both experimentation and production use.

In short, flows are the orchestrated pathways that bring components, agents, and tools together into a working system that delivers intelligent, end-to-end automation. 

How Flows Work

1. Starting Point (Inputs) – Every flow begins with one or more input components. These can be direct user prompts, uploaded files, database queries, or external API calls. The input acts as the entry point of data into the workflow.

2. Processing Stage (Core Components) – Once the data enters the flow, it moves through a chain of core components. These may include:

a. Data Processing (splitting, cleaning, embedding text, structuring data).

b. Logic Control (routers, conditionals, or loops to handle branching scenarios).

c. Language Model Calls (passing prompts and context to an LLM for reasoning or generation).

3. Dynamic Decisions (Agents) – For more complex workflows, flows can integrate agents. Agents dynamically decide which tools or components to invoke, creating a layer of autonomy within the flow.

4. External Integrations (Tools & APIs) – Flows can call external services or APIs through tool components. For example, a flow could retrieve real-time data from a knowledge base, perform calculations, or connect to third-party systems like Google Sheets or databases.

5. Output Generation – Finally, the flow delivers results via output components. This could be a direct response in natural language, a structured dataset, a visualization, or even an automated action like sending an email or updating a record in a system.

Use the visual editor

Robility flow’s visual editor lets you design, test, and share flows—visual representations of application logic built from modular components. Each component reflects a specific step in your workflow.

With its drag-and-drop interface, Robility flow enables you to create sophisticated AI-powered workflows without writing complex code. You can seamlessly integrate various resources such as prompts, large language models (LLMs), data sources, agents, MCP servers, and other tools or connectors.

Workspace

The Workspace is your main canvas for creating flows. Here, you’ll add components, configure their behavior, and connect them to build out your workflow logic.

Workspace Interactions and Gestures

1. Pan View: Click and drag any empty space in the Workspace to move horizontally or vertically.
2. Rearrange Components: Drag and drop components to reposition them visually.
3. Modify Component Connections: To adjust the logical relationships between components, modify their edges or ports. (Refer to the Components Overview for more details.)
4. Lock Layout: Click Lock to fix the current position of components on the canvas.
5. Zoom Options:

a. Use your mouse wheel or trackpad to scroll up/down.
b.
Click Zoom In or Zoom Out.
c. Click Fit to Zoom to automatically scale the canvas to fit your entire flow.

6. Add Notes: Use Add Note to insert text boxes for comments or documentation purposes.

When your flow includes an Agent component, the Playground allows you to observe the agent’s tool calls and outputs in real time. This helps you understand how the agent makes decisions and uses its tools.

To explore how an agentic flow operates, create a flow using the Simple Agent template and open it in the Playground. For more information, see Test flows in the Playground.

Sharing and Integration Options

The Share menu offers multiple ways to integrate and distribute your flow outside the Robility environment:

1. API Access: Use auto-generated Python, JavaScript, or curl snippets to integrate your flow with external applications.
2. Export: Download your flow as a JSON file for local storage or version control.
3. MCP Server: Make your flow available as a tool for clients compatible with the MCP protocol.
4. Embed into Site: Seamlessly embed your flow into HTML, React, or Angular-based web applications.
5. Shareable Playground: Provide others with access to your Playground interface for demonstration or collaboration purposes.

Note: The Shareable Playground option is intended for previewing and testing, not for deploying flows in production environments.

Build Flows

A flow represents the logical sequence of an application workflow. It receives input, processes it, and produces output through a set of configurable components. Each component corresponds to a specific task in your application, such as connecting to a data source or invoking an AI model.

Robility flows are fully serializable meaning they can be saved and reloaded from the file system where Robility Flow is installed.

Quick Start Tip

To quickly get started with flow creation and execution, refer to the Robility Flow Quickstart guide.

Creating a Flow

You can create flows in Robility Flow using the following methods via the user interface:

1. Blank Flow: From the Projects page, select a project and click New Flow to start from scratch.
2. Flow from Template: Choose a project and select New Flow to create a flow using pre-defined templates.

What are templates?

Templates are pre-built flows that you can use as a starting point for your own flow. They range from basic flows with a few components to complex flows with many components and sub-flows.

For example, the Basic Prompting template demonstrates a small flow that passes both chat input and pre-defined instructions (as a prompt) to an LLM. In contrast, the Vector Store RAG template consists of two sub-flows that demonstrate how to create a Retrieval Augmented Generation (RAG) chatbot. One sub-flow populates the vector store with contextually relevant data and embeddings, and the other sub-flow queries the vector store for similar data to answer user questions.

You can also contribute templates to the Langflow codebase.

3. Import a Flow from local: You can load an existing local flow file directly during the new flow creation process.

You can also create a flow with the Robility flow API, but the Robility flow team recommends using the visual editor until you are familiar with flow creation. 

Creating a Flow in Robility Manager

All flows are mapped to a specific project within Robility Manager, enabling seamless automation and access to project-level resources such as Vault, API keys, Data Tables, and File Manager.

You can either create a new workflow or use an existing workflow that has already been published in Robility Manager. 

Adding Components to a Flow

Flows are built using components, which are modular nodes representing individual tasks. You can add and configure components in the Robility Flow visual editor.

Steps:

1. Drag and Drop: Use the Components panel to drag components into your flow workspace.
2. Configure: Set up each component by defining its configuration properties. These may include inputs, outputs, parameters, and credentials.
3. Connect Components: Use edges (ports) to connect components. These ports define the type of data transferred between nodes, for example, text strings or structured objects.

For more information on component types, configuration, and support port types, refer to the Components Overview section.

Run a flow

Once your flow is designed, you can:

1. Test in the Playground: Validate the prototype by executing it in a safe, interactive environment.
2. Trigger via API: Use the Robility Flow API to programmatically invoke flows.
3. Explore Advanced Options: Configure custom dependencies or containerize your flow for deployment.

For production readiness or external access, refer to the Robility Flow Deployment Overview for guidance on setting up an MCP (Managed Control Plane) server.

Flow graphs

When a flow runs, Robility Flow builds a Directed Acyclic Graph (DAG) from the components and their connections. The system then:

1. Calls each component’s def_build function to validate and initialize it.
2. Sorts nodes based on dependency order.
3. Executes each node sequentially, passing the output to downstream components.

This architecture ensures efficient and predictable execution.

Manage flows in projects

The Projects page serves as your main hub for managing flows.

Organize Flows

Projects act as containers to group related flows. The default project is Starter Project, but you can create new ones as needed.

Project Operations

1. View Flows: Select a project from the Projects list.
2. Create Flows: Use the methods outlined in Creating a Flow.
3. Edit Flow Details: Click More on a flow and select Edit Details.
4. Delete Flow: Select Delete from the More menu.
5. Serve as MCP Tools: See Using Robility Flow as an MCP Server.

To create a new project, click Create New Project.

Version History

The Version History feature enables users to save and restore different versions of flow. This functionality supports change tracking and allows reverting to previously saved states when required.

Saving a Flow Version

Steps

1. Open the flow to be saved.
2. In the Flow Editor sidebar, select Version History.
3. Under Current (Working Version), click Save.
4. In the confirmation prompt, select Publish to save the current flow as a new version.

Outcome
 1.
A new version (for example, v1) is added to the Version History list.
 2.
Each version is recorded with a timestamp.
 3.
The version is marked as Published, indicating that it has been successfully saved.

Restoring a Saved Version

Steps

1. Open Version History from the Flow Editor sidebar.
2. Select the version to be restored from the version list.
3. If necessary, select Publish current draft to Manager to preserve the current draft before proceeding.
4. Click Restore.

Outcome

1. The selected version becomes the active draft on the canvas.
2. The restored version remains available within the Version History list.
3. The version retains its Published status.

Additional Information

1. Saving a version creates a restore point without interrupting the current workflow.
2. Restoring a version replaces the current draft in its entirety.
3. It is recommended to publish the current draft before restoring another version to prevent unintended data loss.

Edit Flow Details

You can update a flow’s description and manage its lock state from the Projects page.

Edit Flow Information

1. Navigate to the Projects page.
2. Locate the flow you want to update.
3. Click More, then select Edit Details.
4. Update the Description as needed.
5. (Optional) Enable the Lock option to restrict further edits to the flow.
6. Click Save to apply your changes.

Lock and Unlock a Flow

1. When a flow is locked, it cannot be modified.
2. To unlock a flow, open it in the editor. A Flow Locked dialog appears on the canvas. Click the dialog to unlock the flow.

The Lock Status indicates whether a flow is currently locked or unlocked. This status is for reference only while editing and cannot be changed directly from the Edit Details panel.

Flow storage and logs

By default, Robility Flow stores flows and logs locally:

Edit Flow Details

You can update a flow’s description and manage its lock state from the Projects page.

Edit Flow Information

1. Navigate to the Projects page.
2. Locate the flow you want to update.
3. Click More, then select Edit Details.
4. Update the Description as needed.
5. (Optional) Enable the Lock option to restrict further edits to the flow.
6. Click Save to apply your changes.

Lock and Unlock a Flow

1. When a flow is locked, it cannot be modified.
2. To unlock a flow, open it in the editor. A Flow Locked dialog appears on the canvas. Click the dialog to unlock the flow.

The Lock Status indicates whether a flow is currently locked or unlocked. This status is for reference only while editing and cannot be changed directly from the Edit Details panel.

Flow storage and logs

By default, Robility Flow stores flows and logs locally:E

Platform Path
macOS /Users/<username>/.Robility flow/cache
Windows C:\Users\<username>\AppData\Roaming\com.Robility flow\cache
OSS (uv install) <venv_path>/lib/python3.12/site-packages/Robility flow/cache
OSS (git clone) <repo_path>/src/backend/base/Robility flow/cache

You can customize these locations:

  • Flow Storage: Set ROBILITY_FLOW_CONFIG_DIR
  • Log File Storage: Set ROBILITY_FLOW_LOG_FILE

Run Flows

In Robility flow, running flows refers to the process of executing a designed workflow so that it can produce results based on real inputs. Once a flow has been built by connecting components, tools, and agents, it can be run either within the Robility flow interface for testing or deployed externally for integration into applications.

Trigger flows with Robilityflow API

After you build a flow, you probably want to run it within an application, such as a chatbot within a mobile app or website.

Robility flow provides several ways to run flows from external applications:

a. Trigger flows with the Robility flow API
b. Add an embedded chat widget to a website
c. Serve flows through a Robility flow MCP server

Although you can use these options with an isolated, local Robility flow instance, they are typically more valuable when you have deployed a Robility flow server or packaged Robility flow as a dependency of an application.

Use the Robility flowAPI to run flows

Robility flow API is the primary way to access your flows and Robility flow servers programmatically.

Try it

For an example of a script that calls the Robility flowAPI, see the Quickstart.

Generate API code snippets

To help you embed Robility flowAPI requests in your scripts, Robility flow automatically generates Python, JavaScript, and curl code snippets for your flows. To get these code snippets, do the following:

1. In Robility flow, open the flow that you want to embed in your application.
2. Click Share, and then select API access.

These code snippets call the /v1/run/$FLOW_ID endpoint, and they automatically populate minimum values, like the Robility flowserver URL, flow ID, headers, and request parameters.

3. Optional: Click Input Schema to modify component parameters in the code snippets without changing the flow itself.
4. Copy the snippet for the language that you want to use.
5. Run the snippet as is or use the snippet in the context of a larger script.

For more information and examples of other Robility flowAPI endpoints, see Get started with the Robility flowAPI.

Robility flow API authentication

In Robility flow most API endpoints require authentication with a Robility flowAPI key.

Code snippets generated in the API access pane include a script that checks for a ROBILITYFLOW_API_KEY environment variable set in the local terminal session. This script doesn’t check for Robility flow API keys set anywhere besides the local terminal session.

For this script to work, you must set a ROBILITYFLOW_API_KEY variable in the terminal session where you intend to run the code snippet, such as export ROBILITYFLOW_API_KEY=”sk…”.

Alternatively, you can edit the code snippet to include an x-api-key header and ensure that the request can authenticate to the Robility flowAPI.

For more information, see API keys and authentication and Get started with the Robility flowAPI.

Input Schema (tweaks)

Tweaks are one-time overrides that modify component parameters at runtime, rather than permanently modifying the flow itself. For an example of tweaks in a script, see the Quickstart.

In the API access pane, click Input Schema to add tweaks to the request payload in a flow’s code snippets.

Changes to a flow’s Input Schema are saved exclusively as tweaks for that flow’s API access code snippets. These tweaks don’t change the flow parameters set in the workspace, and they don’t apply to other flows.

Adding tweaks through the Input Schema can help you troubleshoot formatting issues with tweaks that you manually added to Robility flow API requests.

For example, the following curl command includes a tweak that disables the Store Messages setting in a flow’s Chat Input component:

curl --request POST \
  --url "http://ROBILITYFLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID" \
  --header "Content-Type: application/json" \
  --header "x-api-key: ROBILITYFLOW_API_KEY" \
  --data '{
  "input_value": "Text to input to the flow",
  "output_type": "chat",
  "input_type": "chat",
  "tweaks": {
    "ChatInput-4WKag": {
      "should_store_message": false
    }
  }
}'

Use a flow ID alias

If you want your requests to use an alias instead of the actual flow ID, you can rename the flow’s /v1/run/$FLOW_ID endpoint:

1. In Robility flow, open the flow, click Share, and then select API access.
2. Click Input Schema.
3. In the Endpoint Name field, enter an alias for your flow’s ID, such as a memorable, human-readable name.

The name can contain only letters, numbers, hyphens, and underscores, such as flow-customer-database-agent.

4. To save the change, close the Input Schema pane.

The automatically generated code snippets now use your new endpoint name instead of the original flow ID, such as url = “http://localhost:7868/api/v1/run/flow-customer-database-agent”.

Embed a flow into a website

For each flow, Robility flow provides a code snippet that you can insert into the <body> of your website’s HTML to interact with your flow through an embedded chat widget.

Get a Robility flow-chat snippet

To get a flow’s embedded chat widget code snippet, do the following:

1. In Robility flow, open the flow you want to embed.
2. Click Share, and then select Embed into site.
3. Copy the code snippet and use it in the <body> of your website’s HTML. For more information, see Embed the chat widget with React, Angular, or HTML.
4. Add the api_key prop to ensure the widget has permission to run the flow, as explained in Configure the Robility flow-chat web component.

The chat widget is implemented as a web component called Robility flow-chat that is loaded from a CDN. For more information, see the robilityflow-embedded-chat repository.

For example, the following HTML embeds a chat widget for a Basic Prompting template flow hosted on a Robility flow server deployed on ngrok:

<html>

  <head>
    <script src="https://cdn.jsdelivr.net/gh/robilityflow-ai/robilityflow-embedded-chat@main/dist/build/static/js/bundle.min.js"></script>
  </head>

  <body>
    <robilityflow-chat
      host_url="https://c822-73-64-93-151.ngrok-free.app"
      flow_id="dcbed533-859f-4b99-b1f5-16fce884f28f"
      api_key="$ROBILITYFLOW_API_KEY"
    ></robilityflow-chat>
  </body>

</html>

When this code is deployed to a live site, it renders as a responsive chatbot. If a user interacts with the chatbot, the input triggers the specified flow, and then the chatbot returns the output from the flow run.

Embed the chat widget with React, Angular, or HTML

The following examples show how to use embedded chat widget in React, Angular, and plain HTML.

a. React
b. Angular
c. HTML

To use the chat widget in your React application, create a component that loads the widget script and renders the chat interface:

1. Declare your web component, and then encapsulate it in a React component:


// Declaration of robilityflow-chat web component

declare global {
  namespace JSX {
    interface IntrinsicElements {
      "robilityflow-chat": any;
    }
  }
}

// Definition for robilityflow-chat React component

export default function ChatWidget({ className }) {
  return (
    
); }

2. Place the component anywhere in your code to render the chat widget.

In the following example, the React widget component is located at docs/src/components/ChatWidget/index.tsx, and index.tsx includes a script to load the chat widget code from the CDN, along with the declaration and definition from the previous step.


import React, { useEffect } from "react";

// Component to load the chat widget script

const ChatScriptLoader = () => {
  useEffect(() => {
    if (!document.querySelector('script[src*="robilityflow-embedded-chat"]')) {
      const script = document.createElement("script");
      script.src =
        "https://cdn.jsdelivr.net/gh/robilityflow-ai/robilityflow-embedded-chat@main/dist/build/static/js/bundle.min.js";
      script.async = true;
      document.body.appendChild(script);
    }
  }, []);

  return null;
};

// Declaration of robilityflow-chat web component

declare global {
  namespace JSX {
    interface IntrinsicElements {
      "robilityflow-chat": any;
    }
  }
}

// Definition for robilityflow-chat React component

export default function ChatWidget({ className }) {
  return (
    
); }

3. Import the robilityflow-chat React component to make it available for use on a page. Modify the following import statement with your React component’s name and path:

import ChatWidget from ‘@site/src/components/ChatWidget’;

4. To display the widget, call your robilityflow-chat component in the desired location on the page. Modify the following reference for your React component’s name and the desired className:

<ChatWidget className=”my-chat-widget” />

Configure the robilityflow-chat web component

To use the embedded chat widget in your HTML, the robilityflow-chat web component must include the following minimum inputs (also known as props in React):

a. host_url: Your Robility flow server URL. Must be HTTPS. Don’t include a trailing slash (/).
b. flow_id: The ID of the flow you want to embed.
c. api_key: A Robility flowAPI key. This prop is recommended to ensure the widget has permission to run the flow.

The minimum inputs are automatically populated in the Embed into site code snippet that is generated by Robility flow.

You can use additional inputs (props) to modify the embedded chat widget. For a list of all props, types, and descriptions, see the robilityflow-embedded-chat README.

Example: Robility flowAPI key propExample: Style propsExample: Session ID propExample: Tweaks prop

 

Example: Style Props

There are many props you can use to customize the style and positioning of the embedded chat widget. Many of these props are of type JSON, and they require specific formatting, depending on where you embed the Robilityflow-chat web component.

In React and plain HTML, JSON props are expressed as JSON objects or stringified JSON, such as \{"key":"value"\}:

<Robilityflow -chat
host_url="https://c822-73-64-93-151.ngrok-free.app"
flow_id="dcbed533-859f-4b99-b1f5-16fce884f28f"
api_key="$ROBILITYFLOW_API_KEY"
chat_window_style='{
"backgroundColor": "#1a0d0d",
"border": "4px solid #b30000",
"borderRadius": "16px",
"boxShadow": "0 8px 32px #b30000",
"color": "#fff",
"fontFamily": "Georgia, serif",
"padding": "16px"
}'
window_title="Custom Styled Chat"
height="600"
width="400"
></Robilityflow -chat>
 

For Angular applications, use property binding syntax to pass JSON props as JavaScript objects. For example:

import { Component } from '@angular/core';

@Component({
selector: 'app-root',
template: `
<div class="container">
<h1>Robilityflow Chat Test</h1>
<Robilityflow -chat
host_url="https://c822-73-64-93-151.ngrok-free.app"
flow_id="dcbed533-859f-4b99-b1f5-16fce884f28f"
api_key="$ROBILITYFLOW_API_KEY"
[chat_window_style]='{"backgroundColor": "#ffffff"}'
[bot_message_style]='{"color": "#000000"}'
[user_message_style]='{"color": "#000000"}'
height="600"
width="400"
chat_position="bottom-right"
></Robilityflow -chat>
</div>
`,
styles: [`
.container {
padding: 20px;
text-align: center;
}
`]
})
export class AppComponent {
title = 'Robilityflow Chat Test';
}

The following example adds a custom session ID to help identify flow runs started by the embedded chat widget:

<Robilityflow-chat
host_url="https://c822-73-64-93-151.ngrok-free.app"
flow_id="dcbed533-859f-4b99-b1f5-16fce884f28f"
api_key="$ROBILITYFLOW_API_KEY"
session_id="$SESSION_ID"
></Robilityflow-chat>

Serve flows through a Robility flow MCP server

Each Robility flow project has an MCP server that exposes the project’s flows as tools that MCP clients can use to generate responses.

In addition to serving flows through Robility flow MCP servers, you can use Robility flow as an MCP client to access any MCP server, including Robility flow MCP servers.

Interactions with Robility flow MCP servers happen through the Robility flow API’s /mcp endpoints.

Run flows with the OpenAI Responses compatible endpoint

Robilityflow includes an OpenAI Responses API-compatible endpoint at /api/v1/responses that allows you to use existing OpenAI client libraries and code with minimal modifications.

Trigger flows with webhooks

You can use the Webhook component to start a flow run in response to an external event.

With the Webhook component, a flow can receive data directly from external sources. Then, the flow can parse the data and pass it to other components in the flow to initiate other actions, such as calling APIs, writing to databases, and chatting with LLMs. If the input isn’t valid JSON, the Webhook component wraps it in a payload object so that it can be accepted as input to trigger the flow.

The Webhook component provides a versatile entrypoint that can make your flows more event-driven and integrated with your entire stack of applications and services. For example:

1. Use an LLM to analyze the sentiment and content of customer feedback or survey responses.
2. Receive notifications from a monitoring system, and then trigger automated responses based on alert type and severity.
3. Integrate with e-commerce platforms to process orders and update inventory.

Configure the Webhook component

To use the Webhook component in a flow, do the following:

1. In Robility flow, open the flow where you want to use the Webhook component. 
2. Add a Webhook component and a Parser component to your flow.

These two components are commonly paired together because the Parser component extracts relevant data from the raw payload received by the Webhook component.

3. Connect the Webhook component’s Data output to the Parser component’s Data input.
4. In the Parser component’s Template field, enter a template to parse the raw payload into structured text.

In the template, use variables for payload keys in the same way you would define variables in a Prompt Template component.

For example, assume that you expect your Webhook component to receive the following JSON data:

{

  “id”: “”,

  “name”: “”,

  “email”: “”

}

Then, you can use curly braces to reference the JSON keys anywhere in your parser template:

ID: {id} – Name: {name} – Email: {email}

5. Connect the Parser component’s Parsed Text output to the next logical component in your flow, such as a Chat Input component.

If you want to test only the Webhook and Parser components, you can connect the Parsed Text output directly to a Chat Output component’s Text input. Then, you can see the parsed data in the Playground after you run the flow.

6. From the Webhook component’s Endpoint field, copy the API endpoint that you will use to send data to the Webhook component and trigger the flow.

Alternatively, to get a complete POST /v1/webhook/$FLOW_ID code snippet, open the flow’s API access pane, and then click the Webhook curl tab. You can also modify the default curl command in the Webhook component’s curl field. If this field isn’t visible by default, click the Webhook component, and then click Controls in the component’s header menu.

7. Send a POST request with data to the flow’s webhook endpoint to trigger the flow.

The following example sends a payload containing id, name, and email strings:

curl -X POST “http://localhost:7860/api/v1/webhook/FLOW_ID” \

    -H “Content-Type: application/json” \

    -H “x-api-key: ROBILITYFLOW_API_KEY” \

    -d ‘{“id”: “12345”, “name”: “alex”, “email”: “alex@email.com”}’

A successful response indicates that Robility flow started the flow. The response doesn’t include the output for the entire flow, only an indication that the flow started.

{

  “message”: “Task started in the background”,

  “status”: “in progress”

}

8. To view the flow’s most recent parsed payload, click the Parser component, and then click Inspect output. For the preceding example, the parsed payload would be a string like ID: 12345 – Name: alex – Email: alex@email.com.

Troubleshoot flows with Webhook components

Use the following information to help address common issues that can occur with the Webhook component.

Validate data received by the Webhook component

To troubleshoot a flow with a Webhook component and verify that the component is receiving data, you can create a small flow that outputs only the parsed payload:

1. Create a flow with WebhookParser, and Chat Output components. 
2. Connect the Webhook component’s Data output to the Parser component’s Data input. 
3. Connect the Parser component’s Parsed Text output to the Chat Output component’s Text input. 
4. Edit the Parser component to set Mode to Stringify.

This mode passes the data received by the Webhook component as a string that is printed by the Chat Output component.

5. Click Share, select API access, and then copy the Webhook curl code snippet. 
6. Optional: Edit the data in the code snippet if you want to pass a different payload.
7. Send the POST request to trigger the flow.
8. Click Playground to verify that the Chat Output component printed the JSON data from your POST request.

Parser component build failure

The Parser component can fail to build if it doesn’t receive data from the Webhook component or if there is a problem with the incoming data.

If this occurs, try changing the Parser component’s Mode to Stringify so that the component outputs the parsed payload as a single string. Then, you can examine the string output and troubleshoot your parsing template, or work with the parsed data in string form.

Human-in-the-Loop

Human-in-the-Loop (HITL) pauses a flow, creates a checkpoint, and waits for a human decision.

After you approve or reject the proposed action, the flow run resumes from the checkpoint using the selected branch. The previously completed steps are not executed again.

To include a HITL gate in a flow, add a Human Input component, or configure your Agent component to require approval for agent tools.

For example, imagine you’re building an agent that drafts Python code, and one of its tools can commit code to Git.

The Human Input component pauses the flow where you place the component, and creates one output branch per configured User Action. Place the component after the code generation steps, where a human selects an Approve or Reject user action. If a human selects Approve, the flow continues to the commit step, and if a human selects Reject, the flow sends the draft back for revision. For more information, see the Human Input component.

The Agent tool approval enables Requires approval on the Git commit tool only. The run pauses when the agent tries to call that tool, but doesn’t add a branch. For more information, see Require approval for agent tools.

Test Flows

The Playground in Robility flow is an interactive space where you can test how your LLM-based flow behaves in real-time. It’s especially useful for experimenting with prompts, reviewing memory, checking output, and verifying how agentic flows use tools to respond to various inputs.

Whether you’re building a chatbot, digital assistant, or any tool that involves an LLM, the Playground helps you quickly prototype, debug, and improve your flow’s logic.

How to Run a Flow in the Playground

1. Open your flow.
2. Click Playground in the toolbar.
3. If your flow uses a Chat Input component, type your prompt or use voice mode to begin a chat session and trigger the flow.

Important Notes

1. If you don’t see a message input field, check that your flow includes a Chat Input connected (directly or indirectly) to a Language Model or Agent.
2. The Playground supports flows designed around LLMs with the following components:

a. Chat Input
b. Language Model / Agent
c. Chat Output

3. If your flow triggered differently (e.g., via webhook, file upload, or standard text input), you can use the Robility flow API to trigger the flow. You can then view the LLM processing in the Playground if the flow uses one.

Reviewing Agent Logic

When your flow includes an Agent component, the Playground displays the tools used by the agent along with the output from each tool. This allows you to track how the agent operates and better understand the reasoning behind its responses.

For instance, if the agent uses a connected fetch content tool to perform a web search, the Playground will show that tool’s execution and its results, helping you visualize the agent’s decision-making process in real-time.

View Chat History

The Playground lets you review message logs from your flow’s chat sessions, showing details like timestamps, message content, and sender information.

To access the logs:

1. Go to the Playground sidebar.
2. Find the chat session you want to review.
3. Click Options and select Message Logs.

Modify memories in the Playground

To help debug and test your flows, you can edit or delete individual messages in message logs. For example, you might want to delete messages that you sent while testing a component that is no longer part of your flow.

You can also delete entire chat sessions from the sidebar: click  Options, and then select Delete.

Modifying memories influences the behavior of the chatbot responses if you continue the chat session or if you preserve memories over multiple chat sessions.

Editing message logs edits Robility flow’s internal messages table, which is the default chat memory storage. For more information about managing sessions and chat memory in Robility flow, see Use custom session IDs and Memory management options.

View and Explore Message Logs

The Playground allows you to inspect the full chat history of any session, including timestamps, message content, and who sent each message.

To view message logs:

1. In the Playground sidebar, find the chat session.
2. Click OptionsMessage Logs.
3. Click any cell to view the full contents of that message.

Edit or Delete Messages and Sessions

You can directly modify messages in the Playground to help test and debug your flows.

1. Edit or delete individual messages in the message log to adjust memory or remove irrelevant test data.
2. Delete entire chat sessions from the sidebar:
a. Click OptionsDelete.

Changing the message log edits Robility flow’s internal memory table, which may affect how the chatbot responds if you continue the session or reuse its memory across multiple sessions.

To learn more, see Memory Management Options and Using Custom Session IDs.

Custom Session IDs

By default, Robility flow uses the flow ID as the session ID, meaning all chats in a flow are grouped under one long conversation.

You can set a custom session_id to:

1. Separate sessions in multi-user or multi-instance scenarios.
2. Preserve chat context across multiple flow runs.
3. Debug more effectively by identifying individual sessions.
4. Avoid memory overlap between distinct interactions.

Ways to Set a Custom Session ID

1. In the Visual Editor:

a. Click the component (input/output) where you want to set the session ID.
b. Open the Controls menu in the header.
c. Enable Session ID and close the menu.
d. Enter your custom session ID.

2. Via the Robility flow API:
Pass session_id as a parameter when triggering flows.

Pro Tip: Use variables instead of hardcoded session IDs in production.
Examples:

a. Use a user ID to tie sessions to specific users.
b. Use a UUID to generate a unique session per interaction.

Share a Flow’s Playground

The Shareable Playground is for testing only. It’s not meant for embedding flows into production apps. For that, use the Robility flow API.

You can generate a public URL for a specific flow’s Playground, allowing others to test the flow without installing Robility flow or using an API key.

To Share a Playground:

1. Open the flow you want to share.
2. Click Share → Enable Shareable Playground.
3. Click Shareable Playground again to open it.
4. Copy the URL (e.g., https://your-server/playground/<FLOW_ID>).
5. Share the link with others so they can try your flow directly.

Users accessing the shared Playground can interact with the chat interface and see results—perfect for quick collaboration or demos. 

Publishing to Manager

This option is available only for flows created within a Robility Manager–connected project. It allows you to publish the flow to Robility Manager, making it accessible for other users in the same project to view and use. 

To publish the flow:

1. Open the flow you want to publish.
2. Click Share → Publish to Manager.
3. Provide the required details and click “Publish To Manager”.

Import and export flows

Robility Flow allows you to export flows for backup, reuse, or sharing, and import flows to quickly load and run pre-built automations.

Exporting a Flow

You can export individual flows in the following ways:

1. Export from projects: From the Projects page, locate the flow, click More, then select Export.
2. Export by sharing: While editing a flow, click Share > Export.
3. Export with the Robility flow API: Programmatically via the API endpoint: GET /flows/download.

Exported flows are downloaded to your local machine as JSON files named FLOW_NAME.json. If you export an entire project, the JSON files are packaged in a zip archive. For more information, see Robility flow JSON file contents.

Save with My API Keys

When exporting from the Projects page or Share menu, you can select Save with my API keys to export the flow and any defined API key variables. Non-API key variables are included in the export regardless of the Save with my API keys setting.

When you or another user imports the flow to another Robility flow instance, that instance must have Robility flow global variables with the same names and valid values in order to run the flow successfully. If any variables are missing or invalid, those variables must be created or edited after importing the flow.

Import a flow

You can import Robility flow JSON files from your local machine in the following ways:

1. Import to projects: On the Projects page, click Upload a flow, and then select the Robility flow JSON file to import.
2. Import anywhere: Drag and drop Robility flow JSON files from your file explorer into your Robility flow window to import a flow from any Robility flow page.
3. Import with the Robility flow API: To import one Robility flow JSON file, use the /flows/upload/ endpoint. To import a zip archive of Robility flow JSON files, use the /projects/upload endpoint.

Run an imported flow

Once imported, your flow is ready to use. If the flow contains any global variables, make sure your Robility flow instance has global variables with the same names and valid values. For more information, see Save with my API keys.

Robility flow JSON file contents

An exported flow is downloaded to your local machine as a JSON file named FLOW_NAME.json.

Robility flow JSON files contain nodes and edges that describe components and connections, and additional metadata that describe the flow.

Nodes

Nodes represent the components that make up the flow. For example, this object represents a Chat Input component:

{
  "data": {
    "description": "Get chat inputs from the Playground.",
    "display_name": "Chat Input",
    "id": "ChatInput-jFwUm",
    "node": {
      "base_classes": [
        "Message"
      ],
      "description": "Get chat inputs from the Playground.",
      "display_name": "Chat Input",
      "icon": "MessagesSquare",
      "template": {
        "input_value": {
          "display_name": "Text",
          "info": "Message to be passed as input.",
          "value": "Hello"
        },
        "sender": {
          "value": "User",
          "options": [
            "Machine",
            "User"
          ]
        },
        "sender_name": {
          "value": "User"
        },
        "should_store_message": {
          "value": true
        }
      }
    },
    "type": "ChatInput"
  },
  "position": {
    "x": 689.5720422421635,
    "y": 765.155834131403
  }
}

Each node has a unique identifier in the format of NODE_NAME-UUID, such as ChatInput-jFwUm.

Entrypoint nodes, such as the ChatInput node, are the first node executed when running a flow.

Edges

Edges represent the connections between nodes.

The connection between the ChatInput node and the OpenAIModel node is represented as an edge:

{
  "className": "",

  "data": {
    "sourceHandle": {
      "dataType": "ChatInput",
      "id": "ChatInput-jFwUm",
      "name": "message",
      "output_types": [
        "Message"
      ]
    },

    "targetHandle": {
      "fieldName": "input_value",
      "id": "OpenAIModel-OcXkl",
      "inputTypes": [
        "Message"
      ],
      "type": "str"
    }
  },

  "id": "reactflow__edge-ChatInput-jFwUm{œdataTypeœ:œChatInputœ,œidœ:œChatInput-jFwUmœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-OcXkl{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-OcXklœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",

  "source": "ChatInput-jFwUm",

  "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-jFwUmœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",

  "target": "OpenAIModel-OcXkl",

  "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-OcXklœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
}

This edge shows that the ChatInput component outputs a Message type to the target node, which is the OpenAIModel node. The OpenAIModel component accepts the Message type at the input_value field.

Additional metadata and project information

Additional information about the flow is stored in the root data object.

Metadata and project information including the name, description, and last_tested_version of the flow:

{
  "name": "Basic Prompting",
  "description": "Perform basic prompting with an OpenAI model.",
  "tags": [
    "chatbots"
  ],
  "id": "1511c230-d446-43a7-bfc3-539e69ce05b8",
  "last_tested_version": "1.0.19.post2",
  "gradient": "2",
  "icon": "Braces"
}

Visual information about the flow defining the initial position of the flow in the workspace:

{
  "viewport": {
    "x": -37.61270157375441,
    "y": -155.91266341888854,
    "zoom": 0.7575251406952855
  }
}

Notes are comments that help you understand the flow within the workspace. They may contain links, code snippets, and other information. Notes are written in Markdown and stored as node objects.

{
  "id": "undefined-kVLkG",
  "node": {
    "description": "## 📖 README\nPerform basic prompting with an OpenAI model.\n\n#### Quick Start\n- Add your **OpenAI API key** to the **OpenAI Model**\n- Open the **Playground** to chat with your bot.\n..."
  }
}

Playground

The Playground is a built-in interactive testing environment that lets you execute, inspect, and iterate on your workflow directly from the canvas, before deploying it to production. It provides real-time feedback on agent behavior, model responses, and data flow across components, making it the primary surface for development-time validation and debugging.

Think of the Playground as a safe sandbox: you can send inputs, observe outputs, manipulate session memory, and refine logic without any risk to live deployments.

Prerequisites

Before opening the Playground, ensure your workflow meets the following requirements:

1. Chat Input /Chat Output component Must be present and connected in the flow.
2. All components connected No orphaned nodes; the execution path must be complete.

Note: Both the Chat Input and Chat Output components must be present for the Playground to function fully.

a.If only the Chat Output is added, the Playground will not display an option to enter and send a message, only the Run option will be available.
b. If only the Chat Input is added, the query sent to the agent will be visible, but the response will not be displayed.

Accessing the Playground

To open the Playground:

1. Build or load your workflow on the canvas.
2. Click the Playground button in the top-right corner of the canvas.
3. The Playground panel will open alongside your canvas.

Key Capabilities

1. Live workflow execution – Enter text or data and run it through your workflow immediately.
2. Dynamic output preview – View model or agent responses as they are generated.
3. Conversation tracking – Inspect system instructions, user messages, and responses to analyze workflow logic.
4. Session memory control – Modify or clear messages and session history to simulate varied context scenarios.

 a. Tool invocation visibility – When your workflow includes an Agent component, the Playground displays each tool the agent called, the inputs passed, and the output returned, giving you full transparency into agent decision-making.
b. Prompt iteration – Modify system prompts, model parameters, and component settings on the fly and immediately re-run to observe the impact.
c. Intermediate output inspection – Trace data as it moves through each component to isolate where unexpected behavior originates.
d. Session history logs – Access structured logs per session, including timestamps, sender identity, and full message content, for detailed post-run analysis.
e. Memory manipulation – Delete or modify past messages to test how the agent responds to altered context, useful for evaluating memory sensitivity and fallback behavior.

Testing a Workflow

To test a workflow in the Playground, follow the steps below:

1. Open your workflow: Create a new flow or load an existing one in the canvas. Make sure all components are properly connected before proceeding.
2. Launch the Playground: Click the Playground button in the top-right corner of the canvas to switch to the interactive testing environment.
3. Provide an input: Type your text or query into the Chat Input component. This will serve as the starting point for workflow execution.
4. Execute the workflow: Submit the input to trigger processing. The workflow will run through all linked components in sequence.
 5. Review the results: Once execution is complete, the output and any intermediate responses will appear within the Playground interface for you to review and evaluate.

Exploring Results

Once the workflow runs, the Playground provides several controls to help you inspect and evaluate its behavior:

a. history: Review all messages exchanged during the session to trace the reasoning path and understand how the workflow arrived at its outputc..
b. Detailed logs: Access a full record of each message, including timestamps, sender details, and content, for complete traceability.
c. Adjust memory: Edit or delete individual messages or the entire session history to observe how changes in context affect the workflow’s output.
d. Start new sessions: Create a separate session to test alternative scenarios or inputs without affecting or overwriting existing session data.
e. Remove sessions: Permanently delete a session to clear its memory and start fresh with a clean state.

Viewing Chat History

To view message logs for a Playground session:

1. In the Playground sidebar, locate the chat session you want to examine.
2. Click Options next to the session.
3. Select Message Logs to review timestamps, content, and sender details.

To rename a session, click the (…) icon next to the session name and select Rename to update the name of that session.

Best Practices

1. Include chat components: Add Chat Input and Chat Output to your workflow for interactive validation.
2. Test incrementally: Run portions of the workflow in isolation to identify and resolve issues faster.
3. Iterate on prompts: Refine system instructions, prompts, and model settings based on observed output behavior.

Important Notes

a. The Playground is intended for development, experimentation, and debugging, not for production deployment.
b. If the workflow contains an Agent component, the Playground displays the tools invoked by the agent and the output from each tool, providing visibility into how and why the agent arrived at its final response.

Freeze

The Freeze feature allows you to preserve the output of a component and reuse it in subsequent executions. When a component is frozen, it and its upstream dependencies are skipped during execution, and the previously generated output is reused.

This is useful when the component output is stable and does not need to change across runs, helping improve performance and reduce unnecessary computation.

How It Works

When a component is frozen:

1. The last successful output is stored
2. The component does not execute again in future runs
3. Downstream components continue execution using the stored output
4. All upstream components are also frozen automatically.

Purpose

Use Freeze to:

1. Avoid repeated execution of stable components
2. Reduce cost from repeated API calls or model usage
3. Improve execution speed by skipping unchanged steps
4. Maintain consistent inputs for testing and debugging

How to Freeze a Component

To freeze a component:

1. Select any component in the workspace for the workflow
2. Click the (…) option available on the component header
3. Select Freeze option to freeze all upstream components.

Once enabled, the component reuses its last output of the last component instead of executing it again.

Behavior

1. Frozen Component

a. Output is treated as immutable
b. Component execution is skipped for the freeze component
c. Stored output of the last component is passed to downstream nodes

2. Upstream Components

a. Automatically frozen along with the selected component
b. Do not execute during subsequent runs
c. Entire upstream chain remains unchanged

3. Downstream Components

a. Continue to execute normally
b. Use frozen output as input

4. Empty Component Handling

If a component is frozen without any previous output:

a. The component executes once
b. The output is stored
c. Subsequent runs use the stored output

5. Unfreezing Behavior

A component is automatically unfrozen when, any configuration or parameter is modified. 

1. On the next execution, the component runs again
2. A new output is generated and stored

Loop Component Limitation

Freeze does not apply to loop components:

a. Loop components execute multiple times during a run
b. They must always execute to function correctly 
c. Their outputs cannot be reused using Freeze

When to Use Freeze

Benefits of Using Freeze Limitations of Freeze
Skips re-running stable components Not suitable for dynamic or frequently changing data
Reduces execution time Cannot be used with real-time API responses
Saves cost on model/API calls Not suitable for components reading live data
Helps in debugging with consistent inputs Does not work with loop or iterative components
Enables faster iteration during development Cannot be used when fresh output is required

Robility Flow Assistant 

Robility Flow Assistant is an AI-powered assistant available directly within the canvas that simplifies workflow creation through natural language interactions.

The assistant understands the structure and context of the currently active flow, enabling it to:

a. Recommend appropriate components.
b. Generate workflow elements.
c. Answer platform-related questions.
d. Guide users during workflow design.

Each request sent to Robility Flow Assistant is processed through a dedicated server-side workflow that runs independently of the flow currently open in the canvas. This separate execution model ensures reliable processing, consistent responses, and uses its own language model to provide assistance.

Limitation: Robility Flow Assistant supports a maximum input length of 780 characters per request.

Create a Custom Component with Robility Flow Assistant

This example demonstrates how to use Robility Flow Assistant to generate a custom component that transforms a paragraph into a simple bullet-point summary.

Step 1: Enter a Prompt

Provide a prompt describing the custom component you want to generate.

Example Prompt:

Create a custom component named Paragraph Summarizer that accepts a paragraph as input and returns a message-style output. The component should split the paragraph into individual sentences and convert each sentence into a bullet point. Ensure proper whitespace and formatting cleanup, gracefully handle empty or invalid inputs, use typed methods, and include appropriate error handling for robustness.

Step 2: Generate the Component

Robility Flow Assistant generates the component code based on your prompt.

Note: Since the code is AI-generated, the output may vary and may not exactly match the example shown in this documentation.

import re
import logging
from typing import List

from lfx.custom import Component
from lfx.io import MessageTextInput, MessageTextOutput


class ParagraphSummarizer(Component):
    """
    Converts a paragraph into a simple bullet-point summary.
    """

    display_name = "Paragraph Summarizer"
    description = "Splits a paragraph into sentences and returns a bullet-point summary."

    inputs = [
        MessageTextInput(
            name="text_input",
            display_name="Text Input",
            info="Enter a paragraph to summarize.",
        ),
    ]

    outputs = [
        MessageTextOutput(
            name="output_text",
            display_name="Summary Output",
            method="summarize_text",
        )
    ]

    def summarize_text(self) -> str:
        try:
            text = self.text_input

            if not isinstance(text, str) or not text.strip():
                return "Please provide a valid paragraph."

            sentences = self._split_sentences(text)
            bullets = self._format_bullets(sentences)

            return "\n".join(bullets)

        except Exception as e:
            logging.error(f"Error in ParagraphSummarizer: {str(e)}")
            return "Error while generating summary."

    def _split_sentences(self, text: str) -> List[str]:
       olor:#b294bb;">return [
            s.strip()
            for s in re.split(r"(?<=[.!?]) +", text)
            if s.strip()
        ]

    def _format_bullets(self, sentences: List[str]) -> List[str]:
        return [f"• {sentence}"for sentence in sentences]

Step 3: Save the Component

a. Copy the generated code into the Custom Component Code editor.
b. Click Check & Save.
c. After successful validation, the component becomes available in the canvas and can be reused like any other custom component.

Tutorials

Tutorials in Robility Flow offer hands-on, step-by-step guides for building AI-powered applications and integrating Robility Flow’s capabilities into real-world solutions. Each tutorial targets a specific use case, such as building a vector RAG chatbot, creating a file-ingesting chatbot, connecting applications to agents, or linking applications to MCP servers — and walks through the essential steps needed to configure a working implementation.

By following these guided examples, you’ll see how components, agents, files, retrieval systems, and external applications come together within a complete solution. Tutorials bridge the gap between individual concepts and practical application, helping you move confidently from learning Robility Flow’s building blocks to deploying functional AI-driven solutions.

Create a vector RAG chatbot

This tutorial demonstrates how you can use Robility flow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database and then chat with the data.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key
c.
Install the Robility flow JavaScript client 
d. Be familiar with vector search concepts and applications, such as vector databases and RAG.

Create a vector RAG flow

1. In Robility flow, click New Flow, and then select the Vector Store RAG template.

About the Vector Store RAG template:

This template has two flows.

The Load Data Flow populates a vector store with data from a file. This data is used to respond to queries submitted to the Retriever Flow.

Specifically, the Load Data Flow ingests data from a local file, splits the data into chunks, loads and indexes the data in your vector database, and then computes embeddings for the chunks. The embeddings are also stored with the loaded data. This flow only needs to run when you need to load data into your vector database.

The Retriever Flow receives chat input, generates an embedding for the input, and then uses several components to reconstruct chunks into text and generate a response by comparing the new embedding to the stored embeddings to find similar data.

2. Add your OpenAI API key to OpenAI Embeddings components. 
3. Optional: Replace both Astra DB vector store components with a Chroma DB or another Vector Store component of your choice. This tutorial uses Chroma DB.

The Load Data Flow should have FileSplit TextEmbedding Model, vector store (such as Chroma DB), and Chat Output components:

The Retriever Flow should have Chat InputEmbedding Model, vector store, ParserPromptLanguage Model, and Chat Output components:

The flows are ready to use. Continue the tutorial to learn how to use the loading flow to load data into your vector store and then call the chat flow in a chatbot application.

Load data and generate embeddings

To load data and generate embeddings, you can use the visual editor or the /v2/files endpoint.

The visual editor option is simpler, but it is only recommended for scenarios where the user who created the flow is the same user who loads data into the database.

In situations where many users load data or you need to load data programmatically, use the Robility flow API option.

a. Visual editor

b. Robility flow API

1. In your RAG chatbot flow, click the File component, and then click File.
2. Select the local file you want to upload, and then click Open. The file is loaded to your Robility flow server.
3. To load the data into your vector store, click the Vector Store component, and then click Run component to run the selected component and all prior dependent components.

When the flow runs, the flow ingests the selected file, chunks the data, loads the data into the vector store database, and then generates embeddings for the chunks, which are also stored in the vector store.

Your database now contains data with vector embeddings that an LLM can use as context to respond to queries, as demonstrated in the next section of the tutorial.

Chat with your flow from a JavaScript application

To chat with the data in your vector database, create a chatbot application that runs the Retriever Flow programmatically.

This tutorial uses JavaScript for demonstration purposes.

1. To construct the chatbot, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file, and then replace the placeholders with the information you gathered in the previous step:

const readline = require('readline');

const { Robility flow Client } = require('@datastax/Robility flow-client');

const API_KEY = 'ROBILITY FLOW_API_KEY';

const SERVER = 'ROBILITY FLOW_SERVER_ADDRESS';

const FLOW_ID = 'FLOW_ID';

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// Initialize the Robility flow client

const client = new Robility flow Client({
  baseUrl: SERVER,
  apiKey: API_KEY
});

async function sendMessage(message) {
  try {
    const response = await client.flow(FLOW_ID).run(message, {
      session_id: 'user_1'
    });

    // Use the convenience method to get the chat output text

    return response.chatOutputText() || 'No response';

  } catch (error) {
    return `Error: ${error.message}`;
  }
}

function chat() {
  console.log('🤖 Robility flow RAG Chatbot (type "quit" to exit)\n');

  const ask = () => {
    rl.question('👤 You: ', async (input) => {

      if (['quit', 'exit', 'bye'].includes(input.trim().toLowerCase())) {
        console.log('👋 Goodbye!');
        rl.close();
        return;
      }

      const response = await sendMessage(input.trim());

      console.log(`🤖 Assistant: ${response}\n`);

      ask();
    });
  };

  ask();
}

chat();

The script creates a Node.js application that chats with the content in your vector database using the chat input and output types to communicate with your flow. The chat mode maintains conversation context across multiple messages, enabling a continuous interaction. If you use text input and output types instead, each request is processed as an independent text string without preserving conversation context.

3. Save and run the script to send the requests and test the flow.

Result

The following is an example response from this tutorial’s flow. Due to the nature of LLMs and variations in your inputs, your response might be different.

👤 You: Do you have any documents about engines?

🤖 Assistant: Yes, the provided text contains several warnings and guidelines related to engine installation, maintenance, and selection. It emphasizes the importance of using the correct engine for specific applications, ensuring all components are in good condition, and following safety precautions to prevent fire or explosion. If you need more specific information or details, please let me know!

👤 You: It should be about a Briggs and Stratton engine.

🤖 Assistant: The text provides important safety and installation guidelines for Briggs & Stratton engines. It emphasizes that these engines should not be used on 3-wheel All-Terrain Vehicles (ATVs), motor bikes, aircraft products, or vehicles intended for competitive events, as such uses are not approved by Briggs & Stratton.

If you have any specific questions about Briggs & Stratton engines or need further information, feel free to ask!

Create a chatbot that can ingest files

This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.

For example, you could upload a contract and ask, “What are the termination clauses in this agreement?” Or upload a resume and ask, “Does this candidate have experience with marketing analytics?”

The main focus of this tutorial is to show you how to provide files as input to a Robility flow, so your chatbot can use the content of those files in its responses.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create a flow that accepts file input

To ingest files, your flow must have a File component attached to a component that receives input, such as a Prompt Template or Agent component.

The following steps modify the Basic Prompting template to accept file input:

1. In Robility flow, click New Flow, and then select the Basic Prompting template. 
2. In the Language Model component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

3. To verify that your API key is valid, click Playground, and then ask the LLM a question. The LLM should respond according to the specifications in the Prompt Template component’s Template field. 
4. Exit the Playground and then modify the Prompt Template component to accept file input in addition to chat input. To do this, edit the Template field, and then replace the default prompt with the following text:

ChatInput:

{chat-input}

File:

{file}

Tips

You can use any string to name your template variables. These strings become the names of the fields (input ports) on the Prompt Template component.

For this tutorial, the variables are named after the components that connect to them: chat-input for the Chat Input component and file for the File component.

1. Add a File component to the flow, and then connect the Raw Content output port to the Prompt Template component’s file input port. To connect ports, click and drag from one port to the other.

You can add files directly to the File component to pre-load input before running the flow, or you can load files at runtime. The next section of this tutorial covers runtime file uploads.

At this point your flow has five components. The Chat Input and File components are connected to the Prompt Template component’s input ports. Then, the Prompt Template component’s output port is connected to the Language Model component’s input port. Finally, the Language Model component’s output port is connected to the Chat Output component, which returns the final response to the user.

Send requests to your flow from a Python application

This section of the tutorial demonstrates how you can send file input to a flow from an application.

To do this, your application must send a POST /run request to your Robility flow  server with the file you want to upload and a text prompt. The result includes the outcome of the flow run and the LLM’s response.

This example uses a local Robility flow  instance, and it asks the LLM to evaluate a sample resume. If you don’t have a resume on hand, you can download fake-resume.txt.

Points to note

For help with constructing file upload requests in Python, JavaScript, and curl, see the Robility flow File Upload Utility.

1. To construct the request, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. FILE_COMPONENT_ID: The UUID of the File component in your flow, such as File-KZP68. To find the component ID, open your flow in Robility flow, click the File component, and then click Controls. The component ID is at the top of the Controls pane. 
d. CHAT_INPUT: The message you want to send to the Chat Input of your flow, such as Evaluate this resume for a job opening in my Marketing department.
e. FILE_NAME and FILE_PATH: The name and path to the local file that you want to send to your flow.
f. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a Python file, and then replace the placeholders with the information you gathered in the previous step:

# Python example using requests

import requests
import json

# 1. Set the upload URL

url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v2/files/"

# 2. Prepare the file and payload

payload = {}

files = [
    ('file', ('FILE_PATH', open('FILE_NAME', 'rb'), 'application/octet-stream'))
]

headers = {
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

# 3. Upload the file to Robility Flow

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

# 4. Get the uploaded file path from the response

uploaded_data = response.json()
uploaded_path = uploaded_data.get('path')

# 5. Call the Robility Flow run endpoint with the uploaded file path

run_url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID"

run_payload = {
    "input_value": "CHAT_INPUT",
    "output_type": "chat",
    "input_type": "chat",
    "tweaks": {
        "FILE_COMPONENT_ID": {
            "path": uploaded_path
        }
    }
}

run_headers = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

run_response = requests.post(run_url, headers=run_headers, data=json.dumps(run_payload))

robility_flow_data = run_response.json()

# Output only the message

message = None

try:
    message = robility_flow_data['outputs'][0]['outputs'][0]['results']['message']['data']['text']
except (KeyError, IndexError, TypeError):
    pass

print(message)

This script contains two requests.

The first request uploads a file, such as fake-resume.txt, to your Robility flow  server at the /v2/files endpoint. This request returns a file path that can be referenced in subsequent Robility flow  requests, such as 02791d46-812f-4988-ab1c-7c430214f8d5/fake-resume.txt

The second request sends a chat message to the Robility flow  flow at the /v1/run/ endpoint. The tweaks parameter includes the path to the uploaded file as the variable uploaded_path, and sends this file directly to the File component.

3. Save and run the script to send the requests and test the flow.

The initial output contains the JSON response object from the file upload endpoint, including the internal path where Robility flow stores the file. Then, the LLM retrieves the file and evaluates its content, in this case the suitability of the resume for a job position.

Next steps

To continue building on this tutorial, try these next steps.

Process multiple files loaded at runtime

To process multiple files in a single flow run, add a separate File component for each file you want to ingest. Then, modify your script to upload each file, retrieve each returned file path, and then pass a unique file path to each File component ID.

For example, you can modify tweaks to accept multiple File components. The following code is just an example; it isn’t working code:

# Set multiple file paths

file_paths = {
    "FILE_COMPONENT_1": uploaded_path_1,
    "FILE_COMPONENT_2": uploaded_path_2
}

def chat_with_flow(input_message, file_paths):
    """Compare the contents of these two files."""

    run_url = f"{ROBILITY_FLOW_SERVER_ADDRESS}/api/v1/run/{FLOW_ID}"

    # Prepare tweaks with both file paths

    tweaks = {}

    for component_id, file_path in file_paths.items():
        tweaks[component_id] = {
            "path": file_path
        }

You can also use a Directory component to load all files in a directory or pass an archive file to the File component.

Upload external files at runtime

To upload files from another machine that isn’t your local environment, your Robility flow server must first be accessible over the internet. Then, authenticated users can upload files to your public Robility flow server’s /v2/files/ endpoint, as shown in the tutorial.

Preload files outside the chat session

You can use the File component to load files anywhere in a flow, not just in a chat session.

In the visual editor, you can preload files to the File component by selecting them from your local machine or Robility flow file management.

For example, you can preload an instructions file for a prompt template, or you can preload a vector store with documents that you want to query in a Retrieval Augmented Generation (RAG) flow.

For more information about the File component and other data loading components, see Data components.

Connect applications to agents

This tutorial shows you how to connect a JavaScript application to a Robility flow agent.

With an agent, your application can use any connected tools to retrieve more contextual and timely data without changing any application code. The tools are selected by the agent’s internal LLM to solve problems and answer questions.

Prerequisites

a. Create a Robility flow API key
b. Install the Robility flow JavaScript client
c. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create an agent flow

The following steps modify the Simple Agent template to connect a Directory component and a Web Search component as tools for an Agent component. The Directory component loads all files of a given type from a target directory on your local machine, and the Web Search component performs a DuckDuckGo search. When connected to an Agent component as tools, the agent has the option to use these components when handling requests.

1. In Robility flow, click New Flow, and then select the Simple Agent template. 
2. Remove the URL and Calculator tools and then add Directory and Web Search components to your flow. 
3. In the Directory component’s Path field, enter the directory path and file types that you want to make available to the Agent component.

In this tutorial, the agent needs access to a record of customer purchases, so the directory name is customer_orders and the file type is .csv. Later in this tutorial, the agent will be prompted to find email values in the customer data.

You can adapt the tutorial to suit your data and save it in a customer_orders folder on your local machine.

4. In the Directory and Web Search components’ header menus, enable Tool Mode so you can use the components with an agent. 
5. Connect the Directory and Web Search components’ Toolset ports to the Agent component’s Tools port. 
6. In the Agent component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

7. To test the flow, click Playground, and then ask the LLM a question, such as Recommend 3 used items for john.smith@example.com, based on previous orders.

Given the example prompt, the LLM would respond with recommendations and web links for items based on previous orders in customer_orders.csv.

The Playground prints the agent’s chain of thought as it selects tools to use and interacts with functionality provided by those tools. For example, the agent can use the Directory component’s as_dataframe tool to retrieve a DataFrame, and the Web Search components perform_search tool to find links to related items.

Add a Prompt Template Component to the flow

In this example, the application sends a customer’s email address to the Robility flow agent. The agent compares the customer’s previous orders within the Directory component, searches the web for used versions of those items, and returns three results.

1. To include the email address as a value in your flow, add a Prompt Template component to your flow between the Chat Input and Agent components. 
2. In the Prompt Template component’s Template field, enter Recommend 3 used items for {email}, based on previous orders. Adding the {email} value in curly braces creates a new input in the Prompt Template component, and the component connected to the {email} port is supplying the value for that variable. This creates a point for the user’s email to enter the flow from your request. If you aren’t using the customer_orders.csv example file, modify the input to search for a value in your dataset.

At this point your flow has six components. The Chat Input component is connected to the Prompt Template component’s email input port. Then, the Prompt Template component’s output is connected to the Agent component’s System Message input port. The Directory and Web Search components are connected to the Agent component’s Tools port. Finally, the Agent component’s output is connected to the Chat Output component, which returns the final response to the application.

Send requests to your flow from a JavaScript application

With your flow operational, connect it to a JavaScript application to use the agent’s responses.

1. To construct a JavaScript application to connect to your flow, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file and then replace the placeholders with the information you gathered in the previous step. If you’re using the customer_orders.csv example file, you can run this example as-is with the example email address in the code sample. If not, modify the const email = “isabella.rodriguez@example.com” to search for a value in your dataset.

import { RobilityFlowClient } from "@datastax/robilityflow-client";

const ROBILITY_FLOW_SERVER_ADDRESS = "ROBILITY_FLOW_SERVER_ADDRESS";
const FLOW_ID = "FLOW_ID";
const ROBILITY_FLOW_API_KEY = "ROBILITY_FLOW_API_KEY";

const email = "isabella.rodriguez@example.com";

async function runAgentFlow(): Promise<void> {
    try {
        // Initialize the Robility Flow client
        const client = new RobilityFlowClient({
            baseUrl: ROBILITY_FLOW_SERVER_ADDRESS,
            apiKey: ROBILITY_FLOW_API_KEY
        });

        console.log(`Connecting to Robility Flow server at: ${ROBILITY_FLOW_SERVER_ADDRESS}`);
        console.log(`Flow ID: ${FLOW_ID}`);
        console.log(`Email: ${email}`);

        // Get the flow instance
        const flow = client.flow(FLOW_ID);

        // Run the flow with the email as input
        console.log("\nSending request to agent...");

        const response = await flow.run(email, {
            session_id: email // Use email as session ID for context
        });

        console.log("\n=== Response from Robility Flow ===");
        console.log("Session ID:", response.sessionId);

        // Extract URLs from the chat message
        const chatMessage = response.chatOutputText();

        console.log("\n=== URLs from Chat Message ===");

        const messageUrls =
            chatMessage.match(/https?:\/\/[^\s"')\]]+/g) || [];

        const cleanMessageUrls = [...new Set(messageUrls)].map(url => url.trim());

        console.log("URLs from message:");

        cleanMessageUrls.slice(0, 3).forEach(url => console.log(url));

    } catch (error) {
        console.error("Error running flow:", error);

        // Provide error messages
        if (error instanceof Error) {
            if (error.message.includes("fetch")) {
                console.error(
                    "\nMake sure your Robility Flow server is running and accessible at:",
                    ROBILITY_FLOW_SERVER_ADDRESS
                );
            }

            if (error.message.includes("401") || error.message.includes("403")) {
                console.error("\nCheck your API key configuration");
            }

            if (error.message.includes("404")) {
                console.error(
                    "\nCheck your Flow ID - make sure it exists and is correct"
                );
            }
        }
    }
}

// Run the function

console.log("Starting Robility Flow Agent...\n");

runAgentFlow().catch(console.error);

3. Save and run the script to send the request and test the flow.

Your application receives three URLs for recommended items based on a customer’s previous orders in your local CSV, all without changing any code.

4. To quickly check traffic to your flow, open the Playground. New sessions are named after the user’s email address. Keeping sessions distinct helps the agent maintain context. For more on session IDs, see Session ID. 

Next steps

For more information on building or extending this tutorial, see the following:

Model Context Protocol (MCP) servers

Connect to MCP servers from your application

This tutorial shows you how to connect MCP servers to your applications using Robility flow ‘s MCP Tools component.

The Model Context Protocol (MCP) helps agents integrate with LLMs through MCP clients and MCP servers. Specifically, MCP servers host tools that agents (MCP clients) use to complete specialized tasks. MCP servers are connected to MCP clients like Cursor. Then, you interact with the client, and the client uses tools from the connected servers as needed to complete your requests.

You can run Robility flow as an MCP client and an MCP server:

1. Use Robility flow as an MCP client: When run as an MCP client, an Agent component in a Robility flow  flow can use connected components as tools to handle requests. You can use existing components as tools, and you can connect any MCP server to your flow to make that server’s tools available to the agent.

2. Use Robility flow as an MCP server: When run as an MCP server, your flows become tools that can be used by an MCP client, which could be an external client or another Robility flow flow.

In this tutorial, you will use the Robility flow MCP Tools component to connect multiple MCP servers to your flow, and then you’ll use a Python application to run your flow and chat with the agent programmatically.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create an agent flow

1. In Robility flow, click New Flow, and then select the Simple Agent template. 
2. In the Agent component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

3. To test the flow, click Playground, and then ask the LLM Is it safe to go hiking in the Adirondacks today?

This query demonstrates how an LLM, by itself, might not have access to information or functions designed to address specialized queries. In this example, the default OpenAI model provides a vague response, although the agent does know the current date by using its internal get_current_date function.

Today is July 11, 2025.

To determine if it’s safe to go hiking in the Adirondacks today, you should check the current weather conditions, trail advisories, and any local alerts (such as bear activity or flooding).

Would you like a detailed weather forecast or information on trial conditions for the Adirondacks today?

To improve the response, you can connect MCP servers to your flow that provide specialized tools for the agent to use when generating responses. In the next part of this tutorial, you’ll connect an MCP server that provides the agent with real-time weather information so that it can generate a more specific response.

Add an MCP Tools component

There are many MCP servers available online that offer different tools for different tasks. To use an MCP server with an MCP client, you must make the server available to the client. With all MCP clients, there are several ways to do this:

a. Install the server locally.
b. Use uvx or npx to fetch and run a server package.
c. Call a server running remotely, like those available on Smithery.

This tutorial demonstrates how to install a weather server locally with uv pip install, and how to use npx to run the geolocation server package. Your MCP server’s requirements may vary.

In Robility flow , you use the MCP Tools component to connect a specific MCP server to a flow. You need one MCP Tools component for each MCP server that you want your flow to use.

1. For this tutorial, install a weather MCP server on your local machine with uv and Python:

uv pip install mcp_weather_server

Make sure you install the server in the same Python environment where Robility flow is running:

a. Robility flow in a virtual environment: Activate the environment before installing the server.
b. Robility flow Docker image: Install the server inside the Docker container.
c. Robility flow Desktop or system-wide Robility flow OSS: Install the server globally or in the same user environment where you run Robility flow.

2. In your Simple Agent flow, remove the URL and Calculator tools, and then add an MCP Tools component. 
3. Click the MCP Tools component, and then click Add MCP Server.
4. In the Add MCP Server pane, provide the server startup command and arguments to connect the weather MCP server to your flow. For this tutorial, use either the JSON or STDIO option.

Robility flow runs the command to launch the server when the agent determines that it needs to use a tool provided by that server.

Notice that both configurations provide the same information but in different formats. This means that if your MCP server repository only provides a JSON file for the server, you can still use those values with the STDIO option.

JSON

To provide the MCP server configuration as a JSON object, select JSON, and then paste the server configuration into the JSON field:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": [
        "-m",
        "mcp_weather_server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

STDIO

To provide the MCP server configuration in a GUI format, select STDIO, and then enter the MCP server configuration values into the given fields:

Name: weather 
Command: python
Arguments:
 -m
mcp_weather_server

5. Click Add Server and then wait for the Actions list to populate. This means that the MCP server is successfully connected.

With this weather server, the MCP Tools component also adds an optional City field. For this tutorial, don’t enter anything in this field. Instead, you will add a geolocation MCP server in the next step, which the agent will use to detect your location.

6. Click the MCP Tools component, enable Tool Mode in the component’s header menu, and then connect the component’s Toolset port to the Agent component’s Tools port.

At this point your flow has four connected components:

a. The Chat Input component is connected to the Agent component’s Input port. This allows users to flow to be triggered by an incoming prompt from a user or application. 
b. The MCP Tools component with the weather MCP server is connected to the Agent component’s Tools port. The agent may not use this server for every request; the agent only uses this connection if it decides the server can help respond to the prompt. 
c. The Agent component’s Output port is connected to the Chat Output component, which returns the final response to the user or application.

7. To test the weather MCP server, click Playground, and then ask the LLM Is it safe to go hiking in the Adirondacks today?

The Playground shows you the agent’s logic as it analyzes the request and selects tools to use.

Ideally, the agent’s response will be more specific than the previous response because of the additional context provided by the weather MCP server. For example:

The current weather in Lake Placid, a central location in the Adirondacks,

is foggy with a temperature of 17.2°C (about 63°F).

If you plan to go hiking today, be cautious as fog can reduce visibility

on trails and make navigation more difficult.

This is a better response, but what makes this MCP server more valuable than just calling a weather API?

First, MCP servers are often customized for specific tasks, such as highly specialized actions or chained tools for complex, multi-step problem solving. Typically, you would have to write a custom script for a specific task, possibly including multiple API calls in a single script, and then you would have to either execute this script outside the context of the agent or provide it to your agent in some way.

Instead, the MCP ensures that all MCP servers are added to agents in the same way, without having to know each server’s specific endpoint structures or write custom integrations. The MCP is a standardized way to integrate many diverse tools into agentic applications. You don’t have to learn a new API or write custom code every time you want to use a new MCP server.

Additionally, you can attach many MCP servers to one agent, depending on the problems you want your application to solve. The more servers you add, the more specialized context the agent can use in its responses. In this tutorial, adding the weather MCP server already improved the quality of the LLM’s response. In the next section of the tutorial, you will add an ip_geolocation MCP server so the agent can detect the user’s location if they don’t specify a location in their prompt.

Add a geolocation server

The Toolkit MCP server includes multiple MCP tools for network monitoring, including IP geolocation. It isn’t extremely precise, but it doesn’t require an API key.

Note that this tool returns the IP geolocation of your Robility flow server, so if your server is deployed remotely, consider alternative approaches for getting user-specific location data, such as browser geolocation APIs.

This MCP server can be started with one npx command, which downloads and runs the Toolkit MCP server Node registry package without installing the package locally.

To add the Toolkip MCP server to your flow, do the following:

1. Add another MCP Tools component to your flow, click the component, and then click Add MCP Server.
2. Select STDIO.
3. For Name, enter ip_geolocation.

Points to note

The tool name and description help the agent select tools. If your agent is struggling to select tools, make sure the names and descriptions are clear and human readable.

4. For Command, enter npx@cyanheads/toolkit-mcp-server. 
5. Click Add Server and then wait for the Actions list to populate. This means that the MCP server is successfully connected. 
6. Click the MCP Tools component, enable Tool Mode in the component’s header menu, and then connect the component’s Toolset port to the Agent component’s Tools port.

Your flow now has an additional MCP Tools component for a total of five components.

Create a Python application that connects to Robility flow

At this point, you can open the Playground and ask about the weather in your current location to test the IP geolocation tool. However, geolocation tools are most useful in applications where you or your users want to ask about the weather from different places around the world.

In the last part of this tutorial, you’ll learn how to use the Robility flow API to run a flow in a script. This could be part of a larger application, such as a mobile app where users want to know if the weather is good for a particular sport.

When you use the Robility flow API to run a flow, you can change some aspects of the flow without changing the code. For example, you can add more MCP servers to your flow in Robility flow and then use the same script to run the flow. You can use the same input or a new input that prompts the agent to use other tools.

1. For this tutorial’s Python script, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a Python file, and then replace the placeholders with the information you gathered in the previous step:

import requests
import os

url = "ROBILITY_FLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID"  # The complete API endpoint URL for this flow

# Request payload configuration

payload = {
    "output_type": "chat",
    "input_type": "chat",
    "input_value": "What's the weather like where I am right now?"
}

# Request headers

headers = {
    "Content-Type": "application/json",
    "x-api-key": "ROBILITY_FLOW_API_KEY"
}

try:
    # Send API request

    response = requests.request("POST", url, json=payload, headers=headers)
    response.raise_for_status()  # Raise exception for bad status codes

    # Parse and print only the message text

    data = response.json()
    message = data["outputs"][0]["outputs"][0]["results"]["message"]["text"]

    print(message)

except requests.exceptions.RequestException as e:
    print(f"Error making API request: {e}")

except ValueError as e:
    print(f"Error parsing response: {e}")

except (KeyError, IndexError) as e:
    print(f"Error extracting message from response: {e}")

Notice that this script uses a different prompt than the previous Playground examples. In this script, the input_value asks about the weather in the user’s current location without providing any hints about the user’s location, such as a particular city.

Additionally, this script includes parsing code to extract the LLM’s reply from the entire Robility flow API response. You will want to use similar extraction in your own applications because the Robility flow  API response includes metadata and other information that isn’t relevant to the reply passed to the user.

3. Save and run the script to send the request and test the flow.

The agent uses the ip_geolocation tool to detect the requester’s location, and then it uses the weather tool to retrieve weather information for that location. For example:

The weather in Waynesboro, Pennsylvania, is currently overcast with a temperature of 23.0°C (about 73.4°F).

If you need more details or have any other questions, feel free to ask!

Remember, the ip_geolocation tool used in this tutorial uses your Robility flow server’s location, which can be different from your actual location. 

Next steps

To continue building on the concepts introduced in this tutorial, see the following:

1. Use Robility flow as an MCP client
2.
Use Robility flow Agents
3. Use Robility flow as an MCP server

Create a chatbot that can ingest files

This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.

For example, you could upload a contract and ask, “What are the termination clauses in this agreement?” Or upload a resume and ask, “Does this candidate have experience with marketing analytics?”

The main focus of this tutorial is to show you how to provide files as input to a Robility flow, so your chatbot can use the content of those files in its responses.

Prerequisites

a. Create a Robility flow API key
b. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create a flow that accepts file input

To ingest files, your flow must have a File component attached to a component that receives input, such as a Prompt Template or Agent component.

The following steps modify the Basic Prompting template to accept file input:

1. In Robility flow, click New Flow, and then select the Basic Prompting template. 
2. In the Language Model component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

3. To verify that your API key is valid, click Playground, and then ask the LLM a question. The LLM should respond according to the specifications in the Prompt Template component’s Template field. 
4. Exit the Playground and then modify the Prompt Template component to accept file input in addition to chat input. To do this, edit the Template field, and then replace the default prompt with the following text:

ChatInput:

{chat-input}

File:

{file}

Tips

You can use any string to name your template variables. These strings become the names of the fields (input ports) on the Prompt Template component.

For this tutorial, the variables are named after the components that connect to them: chat-input for the Chat Input component and file for the File component.

1. Add a File component to the flow, and then connect the Raw Content output port to the Prompt Template component’s file input port. To connect ports, click and drag from one port to the other.

You can add files directly to the File component to pre-load input before running the flow, or you can load files at runtime. The next section of this tutorial covers runtime file uploads.

At this point your flow has five components. The Chat Input and File components are connected to the Prompt Template component’s input ports. Then, the Prompt Template component’s output port is connected to the Language Model component’s input port. Finally, the Language Model component’s output port is connected to the Chat Output component, which returns the final response to the user.

Send requests to your flow from a Python application

This section of the tutorial demonstrates how you can send file input to a flow from an application.

To do this, your application must send a POST /run request to your Robility flow  server with the file you want to upload and a text prompt. The result includes the outcome of the flow run and the LLM’s response.

This example uses a local Robility flow  instance, and it asks the LLM to evaluate a sample resume. If you don’t have a resume on hand, you can download fake-resume.txt.

Points to note

For help with constructing file upload requests in Python, JavaScript, and curl, see the Robility flow File Upload Utility.

1. To construct the request, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. FILE_COMPONENT_ID: The UUID of the File component in your flow, such as File-KZP68. To find the component ID, open your flow in Robility flow, click the File component, and then click Controls. The component ID is at the top of the Controls pane. 
d. CHAT_INPUT: The message you want to send to the Chat Input of your flow, such as Evaluate this resume for a job opening in my Marketing department.
e. FILE_NAME and FILE_PATH: The name and path to the local file that you want to send to your flow.
f. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a Python file, and then replace the placeholders with the information you gathered in the previous step:

# Python example using requests

import requests
import json

# 1. Set the upload URL

url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v2/files/"

# 2. Prepare the file and payload

payload = {}

files = [
    ('file', ('FILE_PATH', open('FILE_NAME', 'rb'), 'application/octet-stream'))
]

headers = {
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

# 3. Upload the file to Robility Flow

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

# 4. Get the uploaded file path from the response

uploaded_data = response.json()
uploaded_path = uploaded_data.get('path')

# 5. Call the Robility Flow run endpoint with the uploaded file path

run_url = "http://ROBILITY_FLOW_SERVER_ADDRESS/api/v1/run/FLOW_ID"

run_payload = {
    "input_value": "CHAT_INPUT",
    "output_type": "chat",
    "input_type": "chat",
    "tweaks": {
        "FILE_COMPONENT_ID": {
            "path": uploaded_path
        }
    }
}

run_headers = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'x-api-key': 'ROBILITY_FLOW_API_KEY'
}

run_response = requests.post(run_url, headers=run_headers, data=json.dumps(run_payload))

robility_flow_data = run_response.json()

# Output only the message

message = None

try:
    message = robility_flow_data['outputs'][0]['outputs'][0]['results']['message']['data']['text']
except (KeyError, IndexError, TypeError):
    pass

print(message)

This script contains two requests.

The first request uploads a file, such as fake-resume.txt, to your Robility flow  server at the /v2/files endpoint. This request returns a file path that can be referenced in subsequent Robility flow  requests, such as 02791d46-812f-4988-ab1c-7c430214f8d5/fake-resume.txt

The second request sends a chat message to the Robility flow  flow at the /v1/run/ endpoint. The tweaks parameter includes the path to the uploaded file as the variable uploaded_path, and sends this file directly to the File component.

3. Save and run the script to send the requests and test the flow.

The initial output contains the JSON response object from the file upload endpoint, including the internal path where Robility flow stores the file. Then, the LLM retrieves the file and evaluates its content, in this case the suitability of the resume for a job position.

Next steps

To continue building on this tutorial, try these next steps.

Process multiple files loaded at runtime

To process multiple files in a single flow run, add a separate File component for each file you want to ingest. Then, modify your script to upload each file, retrieve each returned file path, and then pass a unique file path to each File component ID.

For example, you can modify tweaks to accept multiple File components. The following code is just an example; it isn’t working code:

# Set multiple file paths

file_paths = {
    "FILE_COMPONENT_1": uploaded_path_1,
    "FILE_COMPONENT_2": uploaded_path_2
}

def chat_with_flow(input_message, file_paths):
    """Compare the contents of these two files."""

    run_url = f"{ROBILITY_FLOW_SERVER_ADDRESS}/api/v1/run/{FLOW_ID}"

    # Prepare tweaks with both file paths

    tweaks = {}

    for component_id, file_path in file_paths.items():
        tweaks[component_id] = {
            "path": file_path
        }

You can also use a Directory component to load all files in a directory or pass an archive file to the File component.

Upload external files at runtime

To upload files from another machine that isn’t your local environment, your Robility flow server must first be accessible over the internet. Then, authenticated users can upload files to your public Robility flow server’s /v2/files/ endpoint, as shown in the tutorial.

Preload files outside the chat session

You can use the File component to load files anywhere in a flow, not just in a chat session.

In the visual editor, you can preload files to the File component by selecting them from your local machine or Robility flow file management.

For example, you can preload an instructions file for a prompt template, or you can preload a vector store with documents that you want to query in a Retrieval Augmented Generation (RAG) flow.

For more information about the File component and other data loading components, see Data components.

Third Party Licenses

This document outlines the third-party and open-source software components (“Third-Party Software”) used by the Robility Platform, including (but not limited to) Robility Manager, Robility Designer, Robility Runner, Robility Flow, and related tools and services.

1. Each Third-Party Software component remains the property of its respective owner.

2. Each component is licensed to you under its own license terms, as referenced in the table below.

3. Where required by those licenses, Robility (Sutherland) will provide the corresponding source code or license texts through the links indicated below or upon request.

4. Use of the Robility Platform constitutes acceptance of the terms applicable to these Third-Party Software components, in addition to Robility’s own license agreement.

Note: This list may be updated periodically as the Robility Platform adds, removes, or modifies components. 

Click on each product to download the list of third-party software and licenses.

1. Robility Designer and Runner 

2. Robility Activities

3. Robility Manager

Demos and Videos

Machine Template

A Machine Template provides a standardized way to onboard and manage Robility Runner deployments across multiple host machines using a single template configuration. Instead of performing machine-by-machine setup, each Runner instance uses the template configuration to register and establish connectivity with Robility Manager automatically.

Machine Templates are recommended for golden image deployments, pooled or auto-scaled VMs, VDI/Citrix environments, and other scenarios where machines are frequently created, refreshed, or replaced.

Automation executes on available/online machines associated with the template. If a machine is unavailable, execution will start when a compatible machine becomes available.

Pre-requisites

1. A Machine Template must be created in Robility Manager.
2. The generated Machine Template XML must be downloaded.
3. The XML must be placed in the required folder under the Robility Runner installation path.

Limitations

1. Machine Template support adding up to 200 users per template from the Resource page in Robility Manager.

Key Features

1. Centralized template configuration: Define connection and execution settings once in Robility Manager and apply them across multiple machines.
2. Scalable onboarding: Enable rapid provisioning for pooled or dynamically created machines without per-machine setup.
3. Automatic registration and connection: Robility Runner reads the Machine Template XML from the standard location and connects to Robility Manager automatically.
4. Resilient connectivity: Runner supports periodic reconnect attempts when connectivity is interrupted or the Runner state changes.
5. Standardized provisioning: Ensures a consistent Runner setup across multi-user and multi-machine environments.

Where Machine Templates Apply

Machine Templates are recommended for environments where machines are shared, frequently recreated, or non-persistent, and you need consistent unattended onboarding without per-machine configuration.

1. VDI/Citrix-hosted environments: Where Runner instances run on centrally hosted machines and must be provisioned consistently across sessions.
2. Pooled / auto-scaled / non-persistent VMs: Where machines are frequently created, refreshed, or replaced and require repeatable onboarding.
3. Multi-user Windows servers: Where Runner instances run under separate Windows accounts to maintain isolation and permissions.
4. Unattended automation deployments: Where Runner instances must run reliably without interactive user login.

Step 1 — Create a Machine Template in Robility Manager

1. Log in to Robility Manager. 
2. In the left panel, go to Resources.
3. Click + Add and select Machine Template.
4. Provide the following details:
           a. Machine Template Name: Enter a unique name
               (example: Invoice_Automation_Template).
           b. Domain: Specify the domain where machines and bot users are registered.
           c. User Accounts: Add the bot execution user(s) (example: Bot_admin).
           d. Password: Enter the password required for unattended execution
               (as applicable).
5. To add additional bot users, click the + (Add) icon and enter the usernames and passwords.
6. Click Save.

After saving, Robility Manager generates the Machine Template XML for Runner onboarding.

Step 2 — Configure the Machine Template on Robility Runner (Golden Image / Host Machines)

2.1 Download the XML from Robility Manager  

1. In Robility Manager, locate the created Machine Template.
2. Download the XML shown next to the template.

2.2 Copy the XML to the Runner installation path  

1. Navigate to the Robility Runner installation path using one of the following methods:
         a.Right-click the Robility Runner shortcut and select Open file location
            OR
         b. Open the path directly using Run: C:\Program Files (x86)\RobilityRunner
2. Create a folder named exactly: MachineTemplate
3. Copy the downloaded XML file and paste it into: 
    …\RobilityRunner\MachineTemplate\
4. Restart Robility Runner (recommended).

Runner detects the XML and connects successfully within ~60 seconds.

Step 3 — Deploy Robots using Automation Ops (Robility Manager)

Automation Ops deploys robots by mapping a published solution to a Machine Template and one or more user accounts for execution.

Deploying the Robot

1. Go to Automation Ops → Robot tab.
2. Click + Add.
3. Provide the deployment details:
          a. License Type: Select Machine Template.
          b. Machine Template: Select the template to map for execution.
          c. Username: Select the user account(s) under which the robot will execute
              (multiple users can be selected).
          d. Solution Name: Select the published solution (example: Solution_1).
          e. Version: Select the required solution version (example: 1.2.4).
4. Click Deploy/Save to complete deployment.

Once deployed, Robility Runner uses the Machine Template XML stored in the MachineTemplate folder to connect and execute under the selected template and user accounts.

Articles

Auto Logon

Auto Logon enables a machine to automatically sign in to a specified Windows user account. Instead of requiring manual login after every system startup, restart, or when the machine returns to a locked state, the system automatically restores the configured user session. This ensures the machine is ready for automation without requiring manual intervention.

This feature is particularly useful in automation environments where workflows interact with desktop applications or UI-based automations that require an active Windows session. If the machine is at the login screen, such automations cannot proceed until a user signs in.

Auto Logon manages the Windows user session and helps ensure that the machine remains available for automation workflows.

Auto Logon provides the following capabilities:
    • Automatically signs in to the configured Windows user account.
    • Restores the user session after machine restarts or when the session is locked.
    • Enables UI-based automation that requires an active desktop environment.
    • Helps maintain a consistent session environment for automation workflows.

Auto Logon is commonly used in the following scenarios:

• Remote Access Environments (RDP)
When machines are accessed through Remote Desktop, sessions may become locked or return to the login screen. Auto Logon ensures the machine signs in automatically so that automation workflows can continue to run.
• Dedicated Automation Machines or Virtual Machines
Automation machines and virtual machines may restart as part of infrastructure maintenance or system updates. Auto Logon ensures that the system automatically restores the user session after startup, making the machine ready for automation.
• Image-Based Automation Workflows
Workflows that rely on image recognition or screen-based interactions require a stable desktop session. Auto Logon helps establish the session using the configured display settings, which helps maintain consistency during automation execution.

It is important to note that Auto Logon manages the Windows user session, not the machine’s connection to the Manager. A machine may remain connected to the Manager, but UI-based automations still require an active user session for execution.

Prerequisites

Before using Auto Logon, ensure the following conditions are met:

• Auto Logon Configuration
Workflow execution begins only after the Auto Logon feature successfully restores the user session.
• Remote Desktop Protocol (RDP)
Remote Desktop Protocol (RDP) must be enabled on the machine to support remote automation scenarios. This allows the Runner to establish a remote session and execute workflows.
• User Account Permissions
The user account configured for the machine must have permission to log in through RDP. The user should belong to the Remote Desktop Users group or have equivalent access rights.
• Single Active Session per User
Multiple users can be configured for Auto Logon on the same machine. However, only one active session per user is allowed at a time. If multiple sessions exist for the same user, Auto Logon or Auto Unlock may not function as expected.

Resolution Behavior in VDI Environments

Auto Logon creates a Windows user session and applies the resolution and scaling settings configured for the workflow. This helps provide a consistent display environment for automation, particularly for workflows that rely on image-based activities.

However, depending on the VDI platform configuration, the desktop resolution may still change after the session is created. In many cases, the VDI infrastructure manages the display settings and may override the resolution applied during Auto Logon.

This may occur in situations such as:

• Dynamic resolution allocation
Some VDI platforms adjust the desktop resolution based on the client device used to access the virtual desktop.
• No active client session
When no client device is connected, the VDI environment may fall back to a default resolution.
• Session recreation
In some cases, the VDI platform creates a new session instead of unlocking the existing one, which can reset the display settings.
• Display protocol policies
Certain remote display protocols may enforce their own resolution settings.

Since image-based automation relies on a stable screen layout, any change in resolution or display scaling may affect execution.

Recommendation: For environments that depend on image-based automation, configure a fixed resolution and consistent display scaling within the VDI platform to maintain a stable execution environment.

Limitations
Manual unlocking of the machine through RDP may not apply the resolution settings configured for the workflow.

Machine Remains Locked for an Extended Period

If the machine remains unused for a long period, the system may enter a locked state (Windows lock screen). When this occurs, UI-based automation workflows may not run automatically.

In such situations, the connection between the Manager and Runner may also be interrupted, which stops the bot from executing workflows. When the Runner becomes unavailable, the Manager may display a warning message such as: “The machine was not last seen for 15 minutes.”

To restore automation, the machine may need to be manually unlocked.

Steps to Restore the Session

1. Log in to the machine manually using the required credentials.
2. Ensure the machine is active and properly connected to the Manager.
3. Once the Runner reconnects automatically (usually within 60 seconds), you can initiate the bot to run again if required.

v.1.3.9

This release includes an enhancement to the Merge Datatable activity under the Datatable Automation feature.

Behavior Improvements

  • When MissingSchemaAction is set to Error, the activity throws an error only if SkipOnError is set to False.
  • When SkipOnError is set to True, errors are skipped and the workflow continues without interruption.

Release Notes

v.1.0.5

This release includes the following bug fix:

Bug Fixes

Encrypt File
Fixed an issue in the Encrypt File activity where incorrect error messages (“Input file not found” and “Encryption has failed. Please make sure you use the same algorithm and key for both encryption and decryption operations”) were displayed. The messages have now been updated to reflect the actual cause of the failure.

Released Date: 20/04/2026

v.1.0.4

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.2

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.6

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.3.1

In this release, the following bug has been fixed:

Bug Fix

Fixed an issue where the LaunchApplication activity under Desktop Automation was not displaying logs when SkipOnError was set to True.

Released Date: 28/03/2026

v.3.2.7

In this release, we have introduced a new activity and enhancement in the following:

New Activities

Set Email Categories – It allows assigning categories to emails, enabling better organization and classification of messages within the mailbox.

Enhancement

Read – Read activity “Number of Mails” input property limit has been increased to 1000, allowing more emails to be fetched in a single execution.

Released Date: 25/03/2026

Deployment Pre-requisites

This document outlines the deployment prerequisites and infrastructure requirements necessary for the successful installation, configuration, and operation of the Robility Platform within a customer environment. The objective is to ensure that all hardware, software, network, security, and licensing dependencies are identified and validated before deployment activities begin.

The scope of this document covers the four core Robility Platform components:

1. Robility Manager – A server-side web application that serves as the central orchestration platform for managing automation workflows, scheduling robots, processing transactions, monitoring operations, and controlling user access.
2. Robility Designer – A development environment used by automation developers to design, build, test, debug, and publish automation workflows.
3. Robility Runner – An execution client installed on robot machines that runs published automation workflows and reports execution status back to Robility Manager.
4. Robility AI Services – A workflow automation platform that enables users to create, manage, and execute business processes, integrations, and AI-driven workflows using a visual low-code development environment. 

Component Architecture Overview

The Robility Platform follows a distributed, three-tier architecture designed to provide scalability, security, and centralized management of automation operations. The platform consists of a web-based management layer, execution and development clients, and a database layer for data persistence.

Robility Manager is hosted on a Windows Server environment using Internet Information Services (IIS) and utilizes Microsoft SQL Server as its backend database for storing platform configurations, workflow metadata, execution logs, transaction data, and user information.

Robility Designer is installed on developer workstations and is used to create, test, and publish automation workflows. Robility Runner is deployed on designated robot machines to execute published workflows and report execution status back to the platform.

Robility Flow is a cloud-based workflow orchestration and automation platform that enables users to build, manage, and execute business processes, integrations, and AI-powered workflows through a visual low-code interface.

All platform components communicate securely with Robility Manager over HTTPS, ensuring encrypted data transmission, centralized orchestration, and secure access to platform resources.

Component Role Deployment Location
RobilityManager Web platform hosting orchestration, scheduling, transactions, monitoring, and administrative functions. Windows Server (IIS)
RobilityDesigner Workflow design studio used by RPA developers to build, test, and publish automation workflows. Developer Workstation
RobilityRunner Runtime agent responsible for executing published automation workflows and robots. Robot Endpoint (1 per Robot)
SQL Server Platform database that stores configuration data, transactions, logs, audit information, and system metadata. Dedicated Database Server
Cloud Storage Stores platform binaries, feature packages, transaction files, documents, user uploads, and other platform-generated content. AWS S3, Azure Blob Storage, Google Cloud Storage, or Database Storage

Robility Manager

This section outlines the server infrastructure, operating system, software, and access requirements necessary for the successful installation and operation of Robility Manager. These prerequisites must be validated and available before deployment activities commence to ensure a stable, secure, and supported platform environment. 

Operating System & Platform

1. Server Type: Windows Server – on-premises physical, virtual machine, or cloud VM.
2. Operating System: Windows Server 2022 and above Newer LTS releases are acceptable provided they support .NET Framework 4.8.1 + and IIS 7.5+.
3. File System Access: Administrative rights to create custom folders for web binaries, log archives, and configuration files.

Required Software Stack 

Component Minimum Version Notes
.NET Core 8.0 and above Required for hosting applications using the ASP.NET Core hosting model.
Internet Information Services (IIS) 7.5 IIS role and required features must be installed and configured as described in Section 3.5.
Microsoft SQL Server 2019 The service account used for installation must have permissions to create and manage databases.
SSL Certificate TLS 1.2+ Certificate should be issued by a trusted Certificate Authority (CA) or a valid self-signed certificate for non-production environments.

Hardware Sizing – Pilot

This section outlines the recommended hardware configuration for Pilot, Proof-of-Concept (POC), or limited-scale deployments of the Robility Platform. The following minimum topology is recommended:

Module Unit Description
Server Module 1 Server Hosts the Robility Platform web modules, including RobilityManager, RobilityService, and the platform log file storage location.
Server Module 1 Server Hosts the Microsoft SQL Server database engine. For pilot or small-scale deployments, a shared SQL Server instance may be used.

Hardware Sizing – Production

This section provides the recommended infrastructure sizing for production deployments of the Robility Platform. Resource requirements may vary based on the number of active robots, concurrent workflow executions, transaction volumes, data retention policies, and overall platform utilization. The sizing recommendations below represent the minimum baseline for a production environment and should be scaled appropriately as the deployment grows.

Component CPU Memory (RAM) Storage
Robility Manager Web Tier 8 vCPU 32 GB 250 GB SSD
Robility SQL Database Tier 8 vCPU 64 GB 512 GB SSD

IIS Roles & Features

Robility Manager is hosted on Microsoft Internet Information Services (IIS). Prior to installation, the required IIS Server Roles and Features must be enabled on the target Windows Server to support application hosting, authentication, secure communications, and administration.

The following IIS components should be installed and configured:

Common HTTP Features

These features enable the web server to serve application content and handle standard HTTP requests.

a. Default Document
b. HTTP Errors
c. Static Content

Security

These security components support authentication, authorization, SSL/TLS communication, and access control.

a. Request Filtering
b. Basic Authentication
c. Centralized SSL Certificate Support
d. Client Certificate Mapping Authentication
e. IP and Domain Restrictions
f. URL Authorization
g. Windows Authentication

Management Tools

These tools provide administrative capabilities for managing and maintaining IIS.

a. IIS Management Console
b. IIS Management Scripts and Tools (Optional)

Additional Recommendations

1. Configure HTTPS using a valid SSL/TLS certificate issued by a trusted Certificate Authority (CA).
2. Ensure the IIS Application Pool identity has the necessary permissions to access application files, logs, and configuration directories.
3. Enable IIS logging for troubleshooting, auditing, and operational monitoring.
4. Apply the latest Windows Server and IIS security updates before deployment.

Note: All required IIS roles and features should be installed and verified before commencing the Robility Manager installation process.

Database Prerequisites

1. SQL Server Edition: Standard or Enterprise, version 2019 or higher.
2. Database: An empty database named ‘Robility’ to be pre-created.
3. Service Account: Dedicated SQL login with database creation, db_owner, and DDL permissions.

Information to be collected and shared with the Robility Support team:

a. Server name / instance
b. Database name
c. User ID (must have database create permission)
d. Password 

Networking, DNS & SSL

1. Domain Name: A fully qualified domain such as ‘Robility.companyname.com’ to be registered in the customer DNS server, pointing to the IIS web server.
2. SSL Certificate: A trusted CA-issued certificate (preferred) or a self-signed certificate bound to the FQDN in IIS for HTTPS communication.
3. Inbound Ports: 443 (HTTPS) open from all Designer and Runner endpoints to the Manager server. Port 80 may remain open during initial validation only.
4. Outbound Ports: 443 from Manager to Blob Storage, license server, and CDN endpoints (see Section 6).

Mail Server

RobilityManager triggers notifications, password resets, and workflow alerts via SMTP. The mail relay must support modern authentication (OAuth 2.0 / token-based). Provide:

1. SMTP host and port
2. Authentication type and credentials / app password
3. From-address (e.g., noreply-robility@companyname.com) provisioned in the mail tenant

Storage

RobilityManager uses Storage for platform files, features, and uploads. Provision a storage account and provide:

1. Azure
2. AWS
3. GCP or DB

Storage Allocation for RobilityManager

Asset Size Comments
Core Binaries 2500 MB – 2750 MB Web application binaries deployed on the IIS server, including all platform components and supporting libraries required for execution.
Log Files 300 MB Max (30 Files) Log files are limited to a maximum size of 10 MB per file per day. Older log files are automatically archived and purged using a FIFO (First-In, First-Out) retention policy to control storage utilization.

End-User Browser Requirements

RobilityManager web console is supported on the following browsers from any user machine that needs portal access:

1. Microsoft Edge – latest and stable
2. Google Chrome – latest and stable
3. Internet Explorer 11 (for legacy compatibility)

Security, Identity & Account Requirements

1. Service Accounts: Pre-provisioned service accounts for IIS application pool, SQL Server connection, and Runner robot logon. Document each account with intended scope and rotation policy.
2. Firewall Rules: Approved inbound 443 from Designer/Runner subnets to Manager; outbound 443 from Manager and all clients to Azure CDN and Sutherland endpoints (Section 6).
3. Endpoint Protection: Antivirus / EDR exclusions configured for the Robility install paths, log folders, and binaries on Manager, Designer, and Runner machines. Coordinate with the Infosec team for the exclusion list.
4. Group Policy: Ensure that GPOs do not block .NET Framework, IIS WCF activation, or unattended logon required by Runner.
5. SSL / TLS: TLS 1.2 enabled on the OS; legacy TLS 1.0/1.1 may be disabled per customer security baseline.

Licensing

1. Customer ID and Password: Issued by Sutherland for license activation against the Robility license server.
2. License Activation: Performed post-installation through the Manager web console; the Manager server must have outbound HTTPS access to https://licenseserver.sutherlandglobal.com.
3. Initial Admin Sign-up: After license activation, the first administrator user is created through the Sign-up flow on the Manager portal. 

URL Whitelisting

The following URLs must be allow-listed at the proxy, firewall, and endpoint protection layers from both the Manager server and all client machines. These endpoints handle license validation, feature downloads, and product updates.

1. Robility Hub: https://robility.sutherlandglobal.com/Robilityrepository  
2. License App: https://licenseserver.sutherlandglobal.com
3. Document Portal: https://docs.robility.ai/

Azure Deployment Pre-requisites

This document outlines the infrastructure, platform services, and Azure resources required to successfully deploy and operate Robility Manager in a Microsoft Azure environment. It lists the mandatory Azure components, their purpose, and their role in supporting the application’s hosting, data storage, security, and operational requirements, ensuring a secure, scalable, and highly available deployment.

Required Components

Component Description
Azure Subscription Required to provision, deploy, and manage all Azure resources associated with the Robility Manager deployment.
Resource Group A logical container used to organize and manage all Azure resources related to the application deployment.
Azure App Service Plan Defines the compute resources, including CPU, memory, storage, and scaling capabilities, allocated to the Azure App Service hosting the application.
Azure App Service A fully managed Platform-as-a-Service (PaaS) offering used to host and run the ASP.NET Core web application with built-in load balancing, automatic scaling, and high availability.
Azure SQL Managed Instance (MI) A fully managed SQL Server database service used to securely store application data, configuration, and transactional information with built-in high availability, automated backups, and disaster recovery capabilities.
Azure Blob Storage A scalable object storage service used to store workflows, application files, reports, documents, logs, backups, and other unstructured data.
Azure Key Vault A secure secrets management service used to store and protect sensitive information such as database connection strings, API keys, certificates, encryption keys, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

AWS Deployment Prerequisites

This document outlines the infrastructure, platform services, and AWS resources required to successfully deploy and operate Robility Manager in an Amazon Web Services (AWS) environment. 

Required Components

Component Notes
AWS Account Required to provision, deploy, and manage all AWS resources associated with the application.
Elastic Beanstalk Environment A managed application hosting environment used to deploy, run, monitor, and automatically scale the .NET web application.
Supported .NET Runtime The appropriate .NET runtime version required by the application must be installed and configured in the Elastic Beanstalk environment (.NET 8.0 or later).
Amazon RDS (SQL Server) A fully managed relational database service used to store application data, configuration, and transaction data with automated backups, high availability, and disaster recovery options.
Amazon S3 A scalable object storage service used to store application files, documents, reports, images, logs, backups, and other unstructured data.
AWS Secrets Manager A secure secrets management service used to store and manage sensitive information such as database credentials, API keys, connection strings, certificates, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

GCP Deployment Prerequisites

This document outlines the infrastructure, platform services, and Google Cloud Platform (GCP) resources required to successfully deploy and operate Robility Manager in a GCP environment. 

Required Components

Component Notes
GCP Project Required to organize, deploy, and manage all Google Cloud resources associated with the application.
App Engine Flexible Environment A fully managed application hosting platform used to deploy, run, and automatically scale the .NET web application with configurable compute resources. The App Engine Flexible Environment must be enabled for the GCP project.
Supported .NET Runtime The appropriate .NET runtime version required by the application must be available and configured in the App Engine Flexible Environment (.NET 8.0 or later).
Cloud SQL A fully managed relational database service (SQL Server) used to securely store application data, configuration, and transaction data with automated backups and high availability.
Cloud Storage A scalable object storage service used to store application files, documents, reports, images, logs, backups, and other unstructured data.
Secret Manager A secure secrets management service used to store and manage sensitive information such as database credentials, API keys, certificates, encryption keys, connection strings, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

Robility Flow

This document defines the deployment prerequisites required to install and operate the RobilityFlow Platform in a customer environment. It consolidates the infrastructure, software, network, security, and licensing requirements that must be in place before installation activities begin.

RobilityFlow is Robility’s AI-assisted workflow orchestration platform built on a containerised, cloud-native architecture. It enables business and technical users to visually design, publish, and execute multi-step automated flows that can integrate with enterprise systems, REST APIs, databases, and large-language-model (LLM) services.

Scope covers the two core platform components:

1. RobilityFlow Designer – Browser-based visual canvas for building, testing, and publishing automation flows. Delivered as a containerised application.
2. RobilityFlow Runtime – Backend execution engine that processes published flows, manages state and credentials, and exposes REST and WebSocket APIs. Runs in headless / backend-only mode.

RobilityFlow supports two deployment models:

1. Kubernetes – Recommended for production environments requiring high availability, automated scaling, and multi-zone resilience. Click here to learn more
2. Virtual Machine (VM) with Docker – Suitable for pilot deployments, resource-constrained environments, or customers who prefer a simpler operational model. Click here to learn more

Component Architecture Overview

RobilityFlow is a cloud-native, container-first platform. Both the Designer and the Runtime (back-end) are distributed as OCI-compliant container images. All persistent state is externalised to PostgreSQL, Redis, and object storage — the containers themselves are stateless and horizontally scalable.

The platform supports deployment on Kubernetes (orchestrated) and directly on Virtual Machines using Docker Compose (standalone).

Component Role Deployment Target
RobilityFlow Designer Web-based visual workflow design studio. Runs as a containerized React application served through NGINX and provides an intuitive interface for creating, editing, testing, and publishing workflows. Kubernetes Pod (Deployment) or Docker Container on a Virtual Machine.
RobilityFlow Runtime Backend execution engine responsible for processing workflow executions, managing runtime state, handling orchestration logic, and exposing REST and WebSocket APIs. Operates in headless/API-only mode. Kubernetes Pod (Deployment) or Docker Container on a Virtual Machine.
PostgreSQL Persistent data store for workflow definitions, execution history, variables, configuration settings, metadata, and audit records. Kubernetes StatefulSet, Managed Cloud Database Service, or Docker Container on a Virtual Machine.
Redis Provides session caching, real-time publish/subscribe messaging for execution events, distributed locking, and task queue brokering. Kubernetes StatefulSet, Managed Cache Service, or Docker Container on a Virtual Machine.
Object Storage Stores uploaded files, workflow exports, generated artifacts, backups, and large payload attachments used by workflows and runtime services. S3-Compatible Storage Service (AWS S3, Azure Blob Storage, Google Cloud Storage, MinIO, or equivalent).
Ingress / API Gateway Routes external HTTPS traffic to the Designer and Runtime services, performs TLS termination, load balancing, request routing, and ingress security controls. Kubernetes Ingress Controller (NGINX, Traefik, Kong, AWS ALB, etc.) or NGINX Reverse Proxy on a Virtual Machine.

Kubernetes Cluster Prerequisites

This section outlines the Kubernetes infrastructure requirements necessary for deploying and operating Robility Flow in a containerized environment. Robility Flow is designed to run on industry-standard Kubernetes platforms, enabling scalability, high availability, workload isolation, and simplified application lifecycle management. Prior to deployment, the Kubernetes cluster must meet the following version, sizing, storage, and operating system requirements.

Supported Kubernetes Distributions

Robility Flow has been validated and certified on the following Kubernetes distributions. The minimum supported Kubernetes version is 1.27

1. Amazon Elastic Kubernetes Service (EKS) – 1.27 or higher
2. Azure Kubernetes Service (AKS) – 1.27 or higher
3. Google Kubernetes Engine (GKE) – Standard or Autopilot, 1.27 or higher

Pilot / Proof-of-Concept (PoC) Sizing

For pilot, evaluation, and proof-of-concept deployments, a small Kubernetes cluster is sufficient to host Robility Flow services and perform functional validation. A single-node cluster may be used for demonstration purposes; however, a two-node cluster is recommended to provide better resource availability and operational flexibility.

1. Worker nodes: 2 nodes, each with 8 vCPU and 32 GB RAM
2. Storage: 1 storage class backed by SSD-class persistent volumes (minimum 250 GB provisioned)
3. Operating system: Linux (Ubuntu 22.04 LTS, RHEL 9, or Amazon Linux 2023 recommended)

Kubernetes resource requests by service.

Service Replicas (Min → Max) CPU Request Memory Request Notes
RobilityFlow Designer 1 → 3 2 vCPU 4 GB Stateless service and eligible for Horizontal Pod Autoscaling (HPA).
RobilityFlow Runtime 2 → 10 4 vCPU 8 GB Supports Horizontal Pod Autoscaling based on CPU utilization and queue depth.
PostgreSQL 1 Primary + 1 Replica 4 vCPU 8 GB Deployed as a StatefulSet with Persistent Volume Claims (PVC) of 100 GB or higher.
Redis 1 (or 3-Node Cluster) 1 vCPU 2 GB Requires a 10 GB PVC when AOF (Append Only File) persistence is enabled.
Ingress Controller 2 0.5 vCPU 256 MB Configured with anti-affinity rules to ensure replicas are distributed across different nodes for high availability.

Production Sizing 

Production deployments should target a minimum of 3 worker nodes spread across availability zones. Horizontal Pod Autoscaler (HPA) is pre-configured for the Runtime and Designer deployments.

Service Replicas CPU Limit Memory Limit Notes
RobilityFlow Designer 3 2 vCPU 4 GB CDN-cached static assets recommended.
RobilityFlow Runtime 4 – 20 (HPA) 4 vCPU 8 GB Scale on CPU utilization ≥ 70% or based on queue depth.
PostgreSQL (Primary) 1 8 vCPU 32 GB PVC 500 GB SSD; enable WAL archiving for backup and recovery.
PostgreSQL (Replica) 1 – 2 4 vCPU 16 GB Read replica used for reporting and analytical queries.
Redis 3-Node Cluster 2 vCPU 4 GB Cluster mode with AOF persistence and RDB snapshots enabled.
Ingress Controller 3 1 vCPU 512 MB Replicas should be distributed across availability zones for high availability.

Cluster autoscaler or Karpenter (AWS) is recommended for production so that Runtime pods can scale out automatically during peak flow execution periods.

Persistent Storage Classes

At least one Kubernetes StorageClass backed by a block-storage provider must be available and set as default. Required characteristics:

1. Access mode: ReadWriteOnce (RWO) for PostgreSQL and Redis PersistentVolumeClaims
2. Reclaim policy: Retain (recommended for stateful workloads)
3. Volume type: SSD-backed (gp3 on AWS, Premium_LRS on Azure, pd-ssd on GCP)
4. Dynamic provisioning: Enabled via a CSI driver (EBS CSI, Azure Disk CSI, GCP PD CSI)

Container Image Registry

RobilityFlow platform images are distributed through the Robility Hub registry. The cluster must be able to pull images from this registry, or images must be mirrored to a customer-managed OCI registry.

1. Robility Hub registry: https://robilityai.azurecr.io
2. Image pull secrets must be configured in the robilityflow Kubernetes namespace
3. If using a private mirror, ensure images are synced before installation and on each platform update

Required Software & Tooling (Kubernetes)

The following software must be installed and operational before executing the Helm-based Kubernetes installation.

Component Minimum Version Notes
Kubernetes 1.27+ Supported on Amazon EKS, Azure AKS, Google GKE, or self-managed Kubernetes distributions such as kubeadm and k3s.
Container Runtime containerd 1.6+ or CRI-O Required container runtime. Docker shim support was removed in Kubernetes 1.24 and later.
Helm 3.12+ Used to deploy and manage the RobilityFlow Helm charts within the Kubernetes cluster.
kubectl Cluster Minor Version ±1 Required for cluster administration and operational access by the platform support team.
Ingress Controller NGINX Ingress ≥ 1.9 / Traefik v3 Supports NGINX Ingress, Traefik, Kong, AWS ALB Controller, or other customer-approved ingress solutions.
Cert-Manager 1.13+ Automates TLS certificate issuance, renewal, and lifecycle management within Kubernetes.
PostgreSQL 15 or Higher Can be self-hosted or managed through services such as Amazon RDS, Azure Database for PostgreSQL, or Google Cloud SQL.
Redis 7.0 or Higher Can be self-hosted or managed through Amazon ElastiCache, Azure Cache for Redis, or Google Memorystore.
Object Storage S3-Compatible API Supports AWS S3, Azure Blob Storage, Google Cloud Storage (GCS), MinIO, or any S3-compatible storage solution.
OCI-Compatible Registry Any Supported Registry Container registry used to host RobilityFlow Designer and Runtime images, including ECR, ACR, GCR, Harbor, or equivalent OCI-compliant registries.

Virtual Machine (Docker) Deployment Prerequisites

This section outlines the infrastructure and software prerequisites required to deploy Robility Flow on one or more Virtual Machines using Docker and Docker Compose. This deployment model is designed for pilot implementations, proof-of-concept environments, development environments, and single-tenant deployments where a Kubernetes platform is not available or required.

The VM-based deployment model provides a simplified installation and operational experience by hosting all Robility Flow services as Docker containers managed through Docker Compose. This approach reduces infrastructure complexity while providing a consistent and portable deployment architecture.

Note: VM-based deployments do not provide native Kubernetes capabilities such as horizontal pod autoscaling, self-healing orchestration, rolling updates, or multi-zone high availability. For production environments requiring high availability, fault tolerance, and elastic scaling, Robility recommends deploying Robility Flow on a supported Kubernetes platform as described here. 

VM Sizing Overview

The following table summarises the VM configurations for pilot and production deployments. All services are co-located on the VM and run as Docker containers unless noted otherwise.

Deployment Type CPU Memory (RAM) Storage Notes
Pilot Deployment 8 vCPU 32 GB 250 GB SSD Suitable for pilot environments and small-scale workloads. All services are co-located on a single VM and run as Docker containers.
Production Deployment 16 vCPU 64 GB 500 GB SSD Recommended for production environments with higher transaction volumes and concurrent users. All services are co-located on the VM and run as Docker containers unless specified otherwise.

Operating System Requirements

The host VM must meet the following OS requirements before Docker installation:

1. OS: Ubuntu 22.04 LTS (recommended), RHEL 9, or Rocky Linux 9
2. Architecture: x86-64 (AMD64)
3. Kernel: 5.4 or higher
4. Swap: Disabled or set to a low value (Docker and database services perform better without swap)
5. Filesystem: ext4 or xfs on SSD-backed volumes
6. Time synchronisation: NTP / chrony configured and active

Required Software

The following software must be installed on the VM before the RobilityFlow Docker Compose stack is deployed:

Component Minimum Version Notes
Docker Engine 24.0+ Container runtime required for hosting all platform services.
Docker Compose v2.20+ Used to orchestrate and manage the multi-container application stack on the VM.
NGINX 1.24+ Acts as the reverse proxy and provides TLS/SSL termination for inbound traffic.
Cert-Manager / Certbot Latest Stable Automates TLS certificate provisioning and renewal processes.
PostgreSQL 15 or Higher Primary relational database. Can be deployed within Docker containers or installed natively.
Redis 7.0 or Higher In-memory cache and message broker service. Can be deployed within Docker containers or installed natively.
Object Storage Latest Stable Shared storage backend supporting NFS, Azure Files, AWS EFS, SMB, or CIFS.
Operating System Ubuntu 22.04 LTS / RHEL 9 64-bit Linux operating system with kernel version 5.4 or higher.

Note: Docker Engine and Docker Compose are the only mandatory prerequisites. PostgreSQL and Redis may optionally be deployed as managed cloud services rather than Docker containers.

Service Resource Allocation

All RobilityFlow services run as Docker containers on the host VM. The following table defines the recommended CPU and memory allocation per container. These should be enforced in the Docker Compose file using the deploy.resources.limits directives.

Service Containers CPU Allocation Memory Allocation Notes
RobilityFlow Designer 1 1–2 vCPU 2–6 GB NGINX serves the React Single Page Application (SPA). This service typically requires minimal CPU and memory resources.
RobilityFlow Runtime 1–2 4–6 vCPU 8–12 GB Primary consumer of compute resources. Scale vertically by increasing CPU and memory allocations based on workload demands.
PostgreSQL 1 2–4 vCPU 8–16 GB Requires a dedicated SSD-backed persistent data volume to ensure optimal database performance and durability.
Redis 1 1 vCPU 2–4 GB Single-node deployment with AOF (Append Only File) persistence enabled for data durability.
NGINX (Reverse Proxy) 1 0.5 vCPU 256 MB Handles TLS termination and routes incoming traffic to the RobilityFlow Designer and Runtime services.

Example Docker Compose resource limits for the Runtime container:

deploy:
resources:
limits:
cpus: ‘4.0’
memory: 8G
reservations:
cpus: ‘1.0’
memory: 4G 

Persistent Storage

Each container that requires persistence must mount a named Docker volume or a bind-mount to a host directory backed by SSD storage. The following volumes must be defined:

1. postgres-data – PostgreSQL data directory. Minimum 100 GB (pilot), 500 GB (production).
2. redis-data – Redis AOF/RDB persistence directory. Minimum 10 GB.
3. runtime-uploads – File uploads and execution payload attachments. Size based on expected usage.
4. object-storage-data – NFS, Azure Files, AWS EFS, SMB/CIF

All persistent volumes should reside on a separate SSD-backed disk or LVM volume from the OS partition to prevent I/O contention and enable independent resizing.

Networking & TLS on VM

The following network configuration must be applied at the VM OS and firewall level:

1. Port 443 (HTTPS) must be open inbound for end-user browser access.
2. Port 80 (HTTP) should redirect to 443; not required to be permanently open.
3. All inter-service communication (Runtime ↔ PostgreSQL, Runtime ↔ Redis) must be confined to the Docker internal network (not exposed on host interfaces).
4. NGINX on the host (or as a Docker container) must terminate TLS and proxy to Designer (port 3000) and Runtime (port 7860).
5. A CA-issued TLS certificate for the platform FQDN must be installed on NGINX. Certbot/Let’s Encrypt is recommended for automation.

VM-level network traffic matrix:

Source Destination Port Purpose
End-User Browsers NGINX (Host:443) 443 HTTPS Provides secure access to the RobilityFlow Designer user interface and Runtime APIs.
NGINX Designer Container 3000 HTTP Internal Docker network communication between the reverse proxy and the Designer service.
NGINX Runtime Container 7860 HTTP Internal Docker network communication between the reverse proxy and the Runtime service.
Runtime Container PostgreSQL Container 5432 Executes database queries and manages application data persistence.
Runtime Container Redis Container 6379 Supports caching, session management, and publish/subscribe messaging.
Runtime Container Object Storage 443 / 9000 Reads and writes files, documents, and workflow-related artifacts.
Runtime Container License Server 443 HTTPS Outbound connection used for license validation and entitlement checks. Refer to Section 8 for details.
Runtime Container External AI Providers 443 HTTPS Optional outbound connectivity for Large Language Model (LLM) APIs and other AI-powered services.

Backup & Recovery on VM

The following backup procedures must be established before going live on a VM deployment:

1. PostgreSQL: Configure daily pg_dump or pg_basebackup to an external destination (object storage or offsite volume). Minimum 7-day retention.
2. Redis: Enable both AOF (appendonly yes) and RDB snapshots. Copy snapshot files to an external destination daily.
3. VM-level snapshots: Take VM snapshots before each platform update to enable rollback.
4. Docker volumes: Script regular tar backups of named volumes to the backup destination.

Note: VM deployments do not benefit from Kubernetes PodDisruptionBudgets or multi-zone redundancy. A documented runbook for restart and recovery procedures is strongly recommended.

Data Tier Prerequisites

This section outlines the database and data storage requirements for Robility Flow. The data tier is responsible for storing workflow definitions, execution metadata, user and role information, configuration settings, audit records, and operational data generated by the platform. To ensure reliability, performance, and data integrity, the underlying database infrastructure must meet the following prerequisites.

PostgreSQL

PostgreSQL serves as the primary relational database for Robility Flow and stores critical platform information including workflow definitions, execution history, user accounts, variables, application configurations, and audit records.

Parameter Requirement
Engine & Version PostgreSQL 15 or higher.
Database Name robilityflow database must be pre-created and empty prior to deployment.
Service Account Dedicated database login with CREATE privileges, db_owner-equivalent permissions, and DDL rights required for schema creation and updates.
Connection String Must be supplied securely through a Kubernetes Secret or Docker environment variable and should not be hardcoded in application configuration files.
SSL / TLS SSL encryption is required for all database connections using settings such as sslmode=require or sslmode=verify-full.
Backup Policy Daily automated backups must be configured with a minimum retention period of 7 days. A 30-day retention period is recommended for production environments.
High Availability Multi-AZ deployment or streaming replication is recommended for Kubernetes production environments. For VM-based deployments, pg_basebackup or an equivalent replication strategy is recommended.

Redis

Redis is used for session caching, real-time execution event pub/sub, and as the task-queue broker for asynchronous flow execution.

1. Version: Redis 7.0 or higher
2. Persistence: AOF (appendonly yes) enabled; RDB snapshots recommended
3. Authentication: AUTH password required; provide via Kubernetes Secret or Docker environment variable
4. TLS: Enable TLS on the Redis connection for production deployments
5. Cluster mode: Required for Kubernetes production (minimum 3 primary nodes + 3 replicas); single-node acceptable for VM deployments

Object Storage

Robility Flow utilizes S3-compatible object storage for managing uploaded files, exported workflow definitions, execution artifacts, temporary processing data, and large execution payloads. Object storage provides scalable and durable storage for unstructured data that is generated or consumed by the platform during workflow execution.

Asset Initial Size Comments
Flow Definitions & Exports 500 MB Initial Storage requirement increases over time based on the number of published flows, exported packages, and version history retained.
Uploaded Files / Documents Variable Storage consumption depends on business use cases, document volumes, file sizes, and retention policies.
Execution Logs (Cold Tier) ~1 GB / 100k Runs Historical execution logs should be archived to low-cost storage tiers to optimize operational storage costs.
Platform Images (OCI) ~4 – 7 GB Includes RobilityFlow Designer and Runtime container images, associated layers, and versioned image repositories.
PostgreSQL Data Volume 100 GB (Pilot) / 500 GB (Production) Includes database tables, indexes, transaction logs (WAL segments), temporary objects, and growth capacity.
Redis AOF / RDB Snapshots 10 – 50 GB Storage allocation depends on the required persistence, replay window, backup frequency, and retention requirements.

Supported object storage backends:

1. Amazon S3 (recommended for AWS deployments)
2. Google Cloud Storage (with HMAC keys for S3-compat. API)
3. NFS, Azure Files, AWS EFS, SMB/CIF (recommended for VM deployments without cloud object storage access)

Networking, DNS & SSL

This section outlines the networking, DNS, and SSL/TLS requirements necessary for secure communication between Robility Flow components, external integrations, end users, and supporting infrastructure. Proper network configuration is essential to ensure secure access, reliable connectivity, and compliance with enterprise security standards.

DNS & TLS Configuration

1. FQDN: Register a fully qualified domain name for the platform, e.g. robilityflow.companyname.com, pointing to the Kubernetes Ingress controller or VM public IP.
2. TLS Certificate: A CA-issued wildcard or SAN certificate must be bound to the Ingress (Kubernetes) or NGINX (VM). Alternatively, configure Cert-Manager or Certbot with an ACME issuer.
3. TLS Version: TLS 1.2 minimum; TLS 1.3 recommended. Disable TLS 1.0 and 1.1.

Network Traffic Matrix (Kubernetes)

Configure cluster network policies and external firewall rules to permit the following traffic

Source Destination Port Purpose
End-User Browsers Ingress Controller 443 (HTTPS) Secure access to the RobilityFlow Designer user interface and Runtime REST APIs.
Ingress Controller Designer Pod 3000 (HTTP) Internal Kubernetes cluster traffic between the ingress layer and the Designer service.
Ingress Controller Runtime Pod 7860 (HTTP) Internal Kubernetes cluster traffic between the ingress layer and the Runtime service.
Runtime Pod PostgreSQL 5432 Database connectivity for workflow metadata, execution data, configuration, and audit records.
Runtime Pod Redis 6379 Cache storage, session management, and publish/subscribe messaging.
Runtime Pod Object Storage 443 Stores and retrieves workflow files, exports, documents, and execution artifacts.
Runtime Pod License Server 443 (HTTPS) Outbound connectivity for license validation, entitlement verification, and subscription checks. Refer to Section 8.
Runtime Pod CDN / Registry 443 (HTTPS) Retrieves container images, feature packages, updates, and platform dependencies.
Runtime Pod External AI Providers 443 (HTTPS) Optional outbound connectivity for Large Language Models (LLMs), AI inference APIs, and other AI-powered services.

Licensing

1. License activation is managed by Robility Manager.
2. License Scope: Licenses are scoped to the number of concurrent flow executions and connected user seats. Contact Sutherland Sales for capacity planning.

End-User Browser Requirements

The RobilityFlow Designer is a web application. Users require only a supported browser — no client software installation is needed.

1. Google Chrome – latest stable release
2. Microsoft Edge – latest stable release (Chromium-based)
3. Mozilla Firefox – latest stable release
4. Safari 16+ (macOS / iPadOS) – supported for read/monitor use cases

Internet Explorer is not supported. The Designer canvas requires WebSocket support and ES2020+ JavaScript features available in all modern evergreen browsers.

URL Whitelisting

Robility Flow requires outbound connectivity to specific internet endpoints for licensing, product updates, container image downloads, feature pack retrieval, and platform maintenance activities. Organizations using firewalls, web proxies, secure web gateways, endpoint protection platforms, or network egress controls must ensure that the required URLs are allow-listed prior to deployment.

These URLs must be accessible from:

1. Kubernetes cluster egress gateways or outbound proxies
2. Virtual Machine firewalls and proxy servers
3. Endpoint protection and application control solutions
4. Corporate web filtering and security appliances

Failure to allow access to these endpoints may result in:

1. License validation failures
2. Product activation issues
3. Inability to download feature packs
4. Failed software updates and patch installations
5. Container image pull failures
6. Integration and connectivity issues

Required Whitelisted URLs

URL Purpose
https://robility.sutherlandglobal.com/Robilityrepository Robility Hub repository used to download platform binaries, feature packs, activity packages, updates, and related deployment artifacts.
Hosted Robility Manager URL Centralized Robility Manager application responsible for tenant management, user administration, licensing, orchestration, scheduling, and platform governance.
https://licenseserver.sutherlandglobal.com License validation, activation, entitlement verification, and subscription management endpoint.
https://docs.robility.ai/ Official Robility documentation portal containing product guides, installation instructions, release notes, API references, and user documentation.

Security, Identity & Secrets Management

This section outlines the security and credential management requirements for Robility Flow deployments. Proper handling of secrets, credentials, certificates, and access controls is essential to maintaining a secure deployment and ensuring compliance with organizational security policies.

Secrets Management

1. Kubernetes: All credentials must be stored as Kubernetes Secrets in the robilityflow namespace. External secret management via HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault is supported via the External Secrets Operator (ESO).
2. VM / Docker: All credentials must be supplied as environment variables referenced from a .env file, or via Docker Secrets. Plain-text credentials must never be committed to source control or embedded in the Compose file.
3. Secrets must not be committed to source control or embedded in plain text in any configuration file.

RBAC & Namespace Isolation (Kubernetes)

1. Create a dedicated Kubernetes namespace: robilityflow
2. Apply a ResourceQuota and LimitRange to the namespace to prevent resource exhaustion.
3. Create a dedicated ServiceAccount for the Runtime pods with minimum required permissions.
4. Do not run containers as root. The Runtime image supports non-root execution (UID 1000 by default).

Network Policies

1. Kubernetes: Apply NetworkPolicy to restrict ingress to Runtime pods to the Ingress controller only. Restrict egress to permitted data-tier endpoints and whitelisted external URLs.
2. VM / Docker: Use Docker’s internal bridge networks to isolate inter-service traffic. Expose only port 443 on the host interface. Use OS-level firewall rules (ufw / firewalld) to block all other inbound ports.

Image Security

All RobilityFlow container images are scanned with a vulnerability scanner (Cycode, Snyk) before deployment.

Pod / Container Security

1. Apply PodDisruptionBudget (PDB) for Designer and Runtime deployments (Kubernetes) to ensure availability during node maintenance.
2. Set securityContext.readOnlyRootFilesystem: true where compatible; mount emptyDir volumes for temporary write paths.
3. Disable privilege escalation: allowPrivilegeEscalation: false on all containers (Kubernetes) or use –security-opt no-new-privileges in Docker Compos.

Deployment Architecture

Robility Flow is designed as a cloud-native, containerized platform that supports deployment on Kubernetes clusters or Virtual Machine (VM)-based Docker environments. The platform follows a multi-tier architecture consisting of presentation, application, data, and storage layers, enabling scalability, security, and operational flexibility across different deployment models.

Refer the below image. 

Robility Flow

This document defines the deployment prerequisites required to install and operate the RobilityFlow Platform in a customer environment. It consolidates the infrastructure, software, network, security, and licensing requirements that must be in place before installation activities begin.

RobilityFlow is Robility’s AI-assisted workflow orchestration platform built on a containerised, cloud-native architecture. It enables business and technical users to visually design, publish, and execute multi-step automated flows that can integrate with enterprise systems, REST APIs, databases, and large-language-model (LLM) services.

Scope covers the two core platform components:

1. RobilityFlow Designer – Browser-based visual canvas for building, testing, and publishing automation flows. Delivered as a containerised application.
2. RobilityFlow Runtime – Backend execution engine that processes published flows, manages state and credentials, and exposes REST and WebSocket APIs. Runs in headless / backend-only mode.

RobilityFlow supports two deployment models:

1. Kubernetes – Recommended for production environments requiring high availability, automated scaling, and multi-zone resilience. Click here to learn more
2. Virtual Machine (VM) with Docker – Suitable for pilot deployments, resource-constrained environments, or customers who prefer a simpler operational model. Click here to learn more

Component Architecture Overview

RobilityFlow is a cloud-native, container-first platform. Both the Designer and the Runtime (back-end) are distributed as OCI-compliant container images. All persistent state is externalised to PostgreSQL, Redis, and object storage — the containers themselves are stateless and horizontally scalable.

The platform supports deployment on Kubernetes (orchestrated) and directly on Virtual Machines using Docker Compose (standalone).

Component Role Deployment Target
RobilityFlow Designer Web-based visual workflow design studio. Runs as a containerized React application served through NGINX and provides an intuitive interface for creating, editing, testing, and publishing workflows. Kubernetes Pod (Deployment) or Docker Container on a Virtual Machine.
RobilityFlow Runtime Backend execution engine responsible for processing workflow executions, managing runtime state, handling orchestration logic, and exposing REST and WebSocket APIs. Operates in headless/API-only mode. Kubernetes Pod (Deployment) or Docker Container on a Virtual Machine.
PostgreSQL Persistent data store for workflow definitions, execution history, variables, configuration settings, metadata, and audit records. Kubernetes StatefulSet, Managed Cloud Database Service, or Docker Container on a Virtual Machine.
Redis Provides session caching, real-time publish/subscribe messaging for execution events, distributed locking, and task queue brokering. Kubernetes StatefulSet, Managed Cache Service, or Docker Container on a Virtual Machine.
Object Storage Stores uploaded files, workflow exports, generated artifacts, backups, and large payload attachments used by workflows and runtime services. S3-Compatible Storage Service (AWS S3, Azure Blob Storage, Google Cloud Storage, MinIO, or equivalent).
Ingress / API Gateway Routes external HTTPS traffic to the Designer and Runtime services, performs TLS termination, load balancing, request routing, and ingress security controls. Kubernetes Ingress Controller (NGINX, Traefik, Kong, AWS ALB, etc.) or NGINX Reverse Proxy on a Virtual Machine.

Kubernetes Cluster Prerequisites

This section outlines the Kubernetes infrastructure requirements necessary for deploying and operating Robility Flow in a containerized environment. Robility Flow is designed to run on industry-standard Kubernetes platforms, enabling scalability, high availability, workload isolation, and simplified application lifecycle management. Prior to deployment, the Kubernetes cluster must meet the following version, sizing, storage, and operating system requirements.

Supported Kubernetes Distributions

Robility Flow has been validated and certified on the following Kubernetes distributions. The minimum supported Kubernetes version is 1.27

1. Amazon Elastic Kubernetes Service (EKS) – 1.27 or higher
2. Azure Kubernetes Service (AKS) – 1.27 or higher
3. Google Kubernetes Engine (GKE) – Standard or Autopilot, 1.27 or higher

Pilot / Proof-of-Concept (PoC) Sizing

For pilot, evaluation, and proof-of-concept deployments, a small Kubernetes cluster is sufficient to host Robility Flow services and perform functional validation. A single-node cluster may be used for demonstration purposes; however, a two-node cluster is recommended to provide better resource availability and operational flexibility.

1. Worker nodes: 2 nodes, each with 8 vCPU and 32 GB RAM
2. Storage: 1 storage class backed by SSD-class persistent volumes (minimum 250 GB provisioned)
3. Operating system: Linux (Ubuntu 22.04 LTS, RHEL 9, or Amazon Linux 2023 recommended)

Kubernetes resource requests by service.

Service Replicas (Min → Max) CPU Request Memory Request Notes
RobilityFlow Designer 1 → 3 2 vCPU 4 GB Stateless service and eligible for Horizontal Pod Autoscaling (HPA).
RobilityFlow Runtime 2 → 10 4 vCPU 8 GB Supports Horizontal Pod Autoscaling based on CPU utilization and queue depth.
PostgreSQL 1 Primary + 1 Replica 4 vCPU 8 GB Deployed as a StatefulSet with Persistent Volume Claims (PVC) of 100 GB or higher.
Redis 1 (or 3-Node Cluster) 1 vCPU 2 GB Requires a 10 GB PVC when AOF (Append Only File) persistence is enabled.
Ingress Controller 2 0.5 vCPU 256 MB Configured with anti-affinity rules to ensure replicas are distributed across different nodes for high availability.

Production Sizing 

Production deployments should target a minimum of 3 worker nodes spread across availability zones. Horizontal Pod Autoscaler (HPA) is pre-configured for the Runtime and Designer deployments.

Service Replicas CPU Limit Memory Limit Notes
RobilityFlow Designer 3 2 vCPU 4 GB CDN-cached static assets recommended.
RobilityFlow Runtime 4 – 20 (HPA) 4 vCPU 8 GB Scale on CPU utilization ≥ 70% or based on queue depth.
PostgreSQL (Primary) 1 8 vCPU 32 GB PVC 500 GB SSD; enable WAL archiving for backup and recovery.
PostgreSQL (Replica) 1 – 2 4 vCPU 16 GB Read replica used for reporting and analytical queries.
Redis 3-Node Cluster 2 vCPU 4 GB Cluster mode with AOF persistence and RDB snapshots enabled.
Ingress Controller 3 1 vCPU 512 MB Replicas should be distributed across availability zones for high availability.

Cluster autoscaler or Karpenter (AWS) is recommended for production so that Runtime pods can scale out automatically during peak flow execution periods.

Persistent Storage Classes

At least one Kubernetes StorageClass backed by a block-storage provider must be available and set as default. Required characteristics:

1. Access mode: ReadWriteOnce (RWO) for PostgreSQL and Redis PersistentVolumeClaims
2. Reclaim policy: Retain (recommended for stateful workloads)
3. Volume type: SSD-backed (gp3 on AWS, Premium_LRS on Azure, pd-ssd on GCP)
4. Dynamic provisioning: Enabled via a CSI driver (EBS CSI, Azure Disk CSI, GCP PD CSI)

Container Image Registry

RobilityFlow platform images are distributed through the Robility Hub registry. The cluster must be able to pull images from this registry, or images must be mirrored to a customer-managed OCI registry.

1. Robility Hub registry: https://robilityai.azurecr.io
2. Image pull secrets must be configured in the robilityflow Kubernetes namespace
3. If using a private mirror, ensure images are synced before installation and on each platform update

Required Software & Tooling (Kubernetes)

The following software must be installed and operational before executing the Helm-based Kubernetes installation.

Component Minimum Version Notes
Kubernetes 1.27+ Supported on Amazon EKS, Azure AKS, Google GKE, or self-managed Kubernetes distributions such as kubeadm and k3s.
Container Runtime containerd 1.6+ or CRI-O Required container runtime. Docker shim support was removed in Kubernetes 1.24 and later.
Helm 3.12+ Used to deploy and manage the RobilityFlow Helm charts within the Kubernetes cluster.
kubectl Cluster Minor Version ±1 Required for cluster administration and operational access by the platform support team.
Ingress Controller NGINX Ingress ≥ 1.9 / Traefik v3 Supports NGINX Ingress, Traefik, Kong, AWS ALB Controller, or other customer-approved ingress solutions.
Cert-Manager 1.13+ Automates TLS certificate issuance, renewal, and lifecycle management within Kubernetes.
PostgreSQL 15 or Higher Can be self-hosted or managed through services such as Amazon RDS, Azure Database for PostgreSQL, or Google Cloud SQL.
Redis 7.0 or Higher Can be self-hosted or managed through Amazon ElastiCache, Azure Cache for Redis, or Google Memorystore.
Object Storage S3-Compatible API Supports AWS S3, Azure Blob Storage, Google Cloud Storage (GCS), MinIO, or any S3-compatible storage solution.
OCI-Compatible Registry Any Supported Registry Container registry used to host RobilityFlow Designer and Runtime images, including ECR, ACR, GCR, Harbor, or equivalent OCI-compliant registries.

Virtual Machine (Docker) Deployment Prerequisites

This section outlines the infrastructure and software prerequisites required to deploy Robility Flow on one or more Virtual Machines using Docker and Docker Compose. This deployment model is designed for pilot implementations, proof-of-concept environments, development environments, and single-tenant deployments where a Kubernetes platform is not available or required.

The VM-based deployment model provides a simplified installation and operational experience by hosting all Robility Flow services as Docker containers managed through Docker Compose. This approach reduces infrastructure complexity while providing a consistent and portable deployment architecture.

Note: VM-based deployments do not provide native Kubernetes capabilities such as horizontal pod autoscaling, self-healing orchestration, rolling updates, or multi-zone high availability. For production environments requiring high availability, fault tolerance, and elastic scaling, Robility recommends deploying Robility Flow on a supported Kubernetes platform as described here. 

VM Sizing Overview

The following table summarises the VM configurations for pilot and production deployments. All services are co-located on the VM and run as Docker containers unless noted otherwise.

Deployment Type CPU Memory (RAM) Storage Notes
Pilot Deployment 8 vCPU 32 GB 250 GB SSD Suitable for pilot environments and small-scale workloads. All services are co-located on a single VM and run as Docker containers.
Production Deployment 16 vCPU 64 GB 500 GB SSD Recommended for production environments with higher transaction volumes and concurrent users. All services are co-located on the VM and run as Docker containers unless specified otherwise.

Operating System Requirements

The host VM must meet the following OS requirements before Docker installation:

1. OS: Ubuntu 22.04 LTS (recommended), RHEL 9, or Rocky Linux 9
2. Architecture: x86-64 (AMD64)
3. Kernel: 5.4 or higher
4. Swap: Disabled or set to a low value (Docker and database services perform better without swap)
5. Filesystem: ext4 or xfs on SSD-backed volumes
6. Time synchronisation: NTP / chrony configured and active

Required Software

The following software must be installed on the VM before the RobilityFlow Docker Compose stack is deployed:

Component Minimum Version Notes
Docker Engine 24.0+ Container runtime required for hosting all platform services.
Docker Compose v2.20+ Used to orchestrate and manage the multi-container application stack on the VM.
NGINX 1.24+ Acts as the reverse proxy and provides TLS/SSL termination for inbound traffic.
Cert-Manager / Certbot Latest Stable Automates TLS certificate provisioning and renewal processes.
PostgreSQL 15 or Higher Primary relational database. Can be deployed within Docker containers or installed natively.
Redis 7.0 or Higher In-memory cache and message broker service. Can be deployed within Docker containers or installed natively.
Object Storage Latest Stable Shared storage backend supporting NFS, Azure Files, AWS EFS, SMB, or CIFS.
Operating System Ubuntu 22.04 LTS / RHEL 9 64-bit Linux operating system with kernel version 5.4 or higher.

Note: Docker Engine and Docker Compose are the only mandatory prerequisites. PostgreSQL and Redis may optionally be deployed as managed cloud services rather than Docker containers.

Service Resource Allocation

All RobilityFlow services run as Docker containers on the host VM. The following table defines the recommended CPU and memory allocation per container. These should be enforced in the Docker Compose file using the deploy.resources.limits directives.

Service Containers CPU Allocation Memory Allocation Notes
RobilityFlow Designer 1 1–2 vCPU 2–6 GB NGINX serves the React Single Page Application (SPA). This service typically requires minimal CPU and memory resources.
RobilityFlow Runtime 1–2 4–6 vCPU 8–12 GB Primary consumer of compute resources. Scale vertically by increasing CPU and memory allocations based on workload demands.
PostgreSQL 1 2–4 vCPU 8–16 GB Requires a dedicated SSD-backed persistent data volume to ensure optimal database performance and durability.
Redis 1 1 vCPU 2–4 GB Single-node deployment with AOF (Append Only File) persistence enabled for data durability.
NGINX (Reverse Proxy) 1 0.5 vCPU 256 MB Handles TLS termination and routes incoming traffic to the RobilityFlow Designer and Runtime services.

Example Docker Compose resource limits for the Runtime container:

deploy:
resources:
limits:
cpus: ‘4.0’
memory: 8G
reservations:
cpus: ‘1.0’
memory: 4G 

Persistent Storage

Each container that requires persistence must mount a named Docker volume or a bind-mount to a host directory backed by SSD storage. The following volumes must be defined:

1. postgres-data – PostgreSQL data directory. Minimum 100 GB (pilot), 500 GB (production).
2. redis-data – Redis AOF/RDB persistence directory. Minimum 10 GB.
3. runtime-uploads – File uploads and execution payload attachments. Size based on expected usage.
4. object-storage-data – NFS, Azure Files, AWS EFS, SMB/CIF

All persistent volumes should reside on a separate SSD-backed disk or LVM volume from the OS partition to prevent I/O contention and enable independent resizing.

Networking & TLS on VM

The following network configuration must be applied at the VM OS and firewall level:

1. Port 443 (HTTPS) must be open inbound for end-user browser access.
2. Port 80 (HTTP) should redirect to 443; not required to be permanently open.
3. All inter-service communication (Runtime ↔ PostgreSQL, Runtime ↔ Redis) must be confined to the Docker internal network (not exposed on host interfaces).
4. NGINX on the host (or as a Docker container) must terminate TLS and proxy to Designer (port 3000) and Runtime (port 7860).
5. A CA-issued TLS certificate for the platform FQDN must be installed on NGINX. Certbot/Let’s Encrypt is recommended for automation.

VM-level network traffic matrix:

Source Destination Port Purpose
End-User Browsers NGINX (Host:443) 443 HTTPS Provides secure access to the RobilityFlow Designer user interface and Runtime APIs.
NGINX Designer Container 3000 HTTP Internal Docker network communication between the reverse proxy and the Designer service.
NGINX Runtime Container 7860 HTTP Internal Docker network communication between the reverse proxy and the Runtime service.
Runtime Container PostgreSQL Container 5432 Executes database queries and manages application data persistence.
Runtime Container Redis Container 6379 Supports caching, session management, and publish/subscribe messaging.
Runtime Container Object Storage 443 / 9000 Reads and writes files, documents, and workflow-related artifacts.
Runtime Container License Server 443 HTTPS Outbound connection used for license validation and entitlement checks. Refer to Section 8 for details.
Runtime Container External AI Providers 443 HTTPS Optional outbound connectivity for Large Language Model (LLM) APIs and other AI-powered services.

Backup & Recovery on VM

The following backup procedures must be established before going live on a VM deployment:

1. PostgreSQL: Configure daily pg_dump or pg_basebackup to an external destination (object storage or offsite volume). Minimum 7-day retention.
2. Redis: Enable both AOF (appendonly yes) and RDB snapshots. Copy snapshot files to an external destination daily.
3. VM-level snapshots: Take VM snapshots before each platform update to enable rollback.
4. Docker volumes: Script regular tar backups of named volumes to the backup destination.

Note: VM deployments do not benefit from Kubernetes PodDisruptionBudgets or multi-zone redundancy. A documented runbook for restart and recovery procedures is strongly recommended.

Data Tier Prerequisites

This section outlines the database and data storage requirements for Robility Flow. The data tier is responsible for storing workflow definitions, execution metadata, user and role information, configuration settings, audit records, and operational data generated by the platform. To ensure reliability, performance, and data integrity, the underlying database infrastructure must meet the following prerequisites.

PostgreSQL

PostgreSQL serves as the primary relational database for Robility Flow and stores critical platform information including workflow definitions, execution history, user accounts, variables, application configurations, and audit records.

Parameter Requirement
Engine & Version PostgreSQL 15 or higher.
Database Name robilityflow database must be pre-created and empty prior to deployment.
Service Account Dedicated database login with CREATE privileges, db_owner-equivalent permissions, and DDL rights required for schema creation and updates.
Connection String Must be supplied securely through a Kubernetes Secret or Docker environment variable and should not be hardcoded in application configuration files.
SSL / TLS SSL encryption is required for all database connections using settings such as sslmode=require or sslmode=verify-full.
Backup Policy Daily automated backups must be configured with a minimum retention period of 7 days. A 30-day retention period is recommended for production environments.
High Availability Multi-AZ deployment or streaming replication is recommended for Kubernetes production environments. For VM-based deployments, pg_basebackup or an equivalent replication strategy is recommended.

Redis

Redis is used for session caching, real-time execution event pub/sub, and as the task-queue broker for asynchronous flow execution.

1. Version: Redis 7.0 or higher
2. Persistence: AOF (appendonly yes) enabled; RDB snapshots recommended
3. Authentication: AUTH password required; provide via Kubernetes Secret or Docker environment variable
4. TLS: Enable TLS on the Redis connection for production deployments
5. Cluster mode: Required for Kubernetes production (minimum 3 primary nodes + 3 replicas); single-node acceptable for VM deployments

Object Storage

Robility Flow utilizes S3-compatible object storage for managing uploaded files, exported workflow definitions, execution artifacts, temporary processing data, and large execution payloads. Object storage provides scalable and durable storage for unstructured data that is generated or consumed by the platform during workflow execution.

Asset Initial Size Comments
Flow Definitions & Exports 500 MB Initial Storage requirement increases over time based on the number of published flows, exported packages, and version history retained.
Uploaded Files / Documents Variable Storage consumption depends on business use cases, document volumes, file sizes, and retention policies.
Execution Logs (Cold Tier) ~1 GB / 100k Runs Historical execution logs should be archived to low-cost storage tiers to optimize operational storage costs.
Platform Images (OCI) ~4 – 7 GB Includes RobilityFlow Designer and Runtime container images, associated layers, and versioned image repositories.
PostgreSQL Data Volume 100 GB (Pilot) / 500 GB (Production) Includes database tables, indexes, transaction logs (WAL segments), temporary objects, and growth capacity.
Redis AOF / RDB Snapshots 10 – 50 GB Storage allocation depends on the required persistence, replay window, backup frequency, and retention requirements.

Supported object storage backends:

1. Amazon S3 (recommended for AWS deployments)
2. Google Cloud Storage (with HMAC keys for S3-compat. API)
3. NFS, Azure Files, AWS EFS, SMB/CIF (recommended for VM deployments without cloud object storage access)

Networking, DNS & SSL

This section outlines the networking, DNS, and SSL/TLS requirements necessary for secure communication between Robility Flow components, external integrations, end users, and supporting infrastructure. Proper network configuration is essential to ensure secure access, reliable connectivity, and compliance with enterprise security standards.

DNS & TLS Configuration

1. FQDN: Register a fully qualified domain name for the platform, e.g. robilityflow.companyname.com, pointing to the Kubernetes Ingress controller or VM public IP.
2. TLS Certificate: A CA-issued wildcard or SAN certificate must be bound to the Ingress (Kubernetes) or NGINX (VM). Alternatively, configure Cert-Manager or Certbot with an ACME issuer.
3. TLS Version: TLS 1.2 minimum; TLS 1.3 recommended. Disable TLS 1.0 and 1.1.

Network Traffic Matrix (Kubernetes)

Configure cluster network policies and external firewall rules to permit the following traffic

Source Destination Port Purpose
End-User Browsers Ingress Controller 443 (HTTPS) Secure access to the RobilityFlow Designer user interface and Runtime REST APIs.
Ingress Controller Designer Pod 3000 (HTTP) Internal Kubernetes cluster traffic between the ingress layer and the Designer service.
Ingress Controller Runtime Pod 7860 (HTTP) Internal Kubernetes cluster traffic between the ingress layer and the Runtime service.
Runtime Pod PostgreSQL 5432 Database connectivity for workflow metadata, execution data, configuration, and audit records.
Runtime Pod Redis 6379 Cache storage, session management, and publish/subscribe messaging.
Runtime Pod Object Storage 443 Stores and retrieves workflow files, exports, documents, and execution artifacts.
Runtime Pod License Server 443 (HTTPS) Outbound connectivity for license validation, entitlement verification, and subscription checks. Refer to Section 8.
Runtime Pod CDN / Registry 443 (HTTPS) Retrieves container images, feature packages, updates, and platform dependencies.
Runtime Pod External AI Providers 443 (HTTPS) Optional outbound connectivity for Large Language Models (LLMs), AI inference APIs, and other AI-powered services.

Licensing

1. License activation is managed by Robility Manager.
2. License Scope: Licenses are scoped to the number of concurrent flow executions and connected user seats. Contact Sutherland Sales for capacity planning.

End-User Browser Requirements

The RobilityFlow Designer is a web application. Users require only a supported browser — no client software installation is needed.

1. Google Chrome – latest stable release
2. Microsoft Edge – latest stable release (Chromium-based)
3. Mozilla Firefox – latest stable release
4. Safari 16+ (macOS / iPadOS) – supported for read/monitor use cases

Internet Explorer is not supported. The Designer canvas requires WebSocket support and ES2020+ JavaScript features available in all modern evergreen browsers.

URL Whitelisting

Robility Flow requires outbound connectivity to specific internet endpoints for licensing, product updates, container image downloads, feature pack retrieval, and platform maintenance activities. Organizations using firewalls, web proxies, secure web gateways, endpoint protection platforms, or network egress controls must ensure that the required URLs are allow-listed prior to deployment.

These URLs must be accessible from:

1. Kubernetes cluster egress gateways or outbound proxies
2. Virtual Machine firewalls and proxy servers
3. Endpoint protection and application control solutions
4. Corporate web filtering and security appliances

Failure to allow access to these endpoints may result in:

1. License validation failures
2. Product activation issues
3. Inability to download feature packs
4. Failed software updates and patch installations
5. Container image pull failures
6. Integration and connectivity issues

Required Whitelisted URLs

URL Purpose
https://robility.sutherlandglobal.com/Robilityrepository Robility Hub repository used to download platform binaries, feature packs, activity packages, updates, and related deployment artifacts.
Hosted Robility Manager URL Centralized Robility Manager application responsible for tenant management, user administration, licensing, orchestration, scheduling, and platform governance.
https://licenseserver.sutherlandglobal.com License validation, activation, entitlement verification, and subscription management endpoint.
https://docs.robility.ai/ Official Robility documentation portal containing product guides, installation instructions, release notes, API references, and user documentation.

Security, Identity & Secrets Management

This section outlines the security and credential management requirements for Robility Flow deployments. Proper handling of secrets, credentials, certificates, and access controls is essential to maintaining a secure deployment and ensuring compliance with organizational security policies.

Secrets Management

1. Kubernetes: All credentials must be stored as Kubernetes Secrets in the robilityflow namespace. External secret management via HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault is supported via the External Secrets Operator (ESO).
2. VM / Docker: All credentials must be supplied as environment variables referenced from a .env file, or via Docker Secrets. Plain-text credentials must never be committed to source control or embedded in the Compose file.
3. Secrets must not be committed to source control or embedded in plain text in any configuration file.

RBAC & Namespace Isolation (Kubernetes)

1. Create a dedicated Kubernetes namespace: robilityflow
2. Apply a ResourceQuota and LimitRange to the namespace to prevent resource exhaustion.
3. Create a dedicated ServiceAccount for the Runtime pods with minimum required permissions.
4. Do not run containers as root. The Runtime image supports non-root execution (UID 1000 by default).

Network Policies

1. Kubernetes: Apply NetworkPolicy to restrict ingress to Runtime pods to the Ingress controller only. Restrict egress to permitted data-tier endpoints and whitelisted external URLs.
2. VM / Docker: Use Docker’s internal bridge networks to isolate inter-service traffic. Expose only port 443 on the host interface. Use OS-level firewall rules (ufw / firewalld) to block all other inbound ports.

Image Security

All RobilityFlow container images are scanned with a vulnerability scanner (Cycode, Snyk) before deployment.

Pod / Container Security

1. Apply PodDisruptionBudget (PDB) for Designer and Runtime deployments (Kubernetes) to ensure availability during node maintenance.
2. Set securityContext.readOnlyRootFilesystem: true where compatible; mount emptyDir volumes for temporary write paths.
3. Disable privilege escalation: allowPrivilegeEscalation: false on all containers (Kubernetes) or use –security-opt no-new-privileges in Docker Compos.

Deployment Architecture

Robility Flow is designed as a cloud-native, containerized platform that supports deployment on Kubernetes clusters or Virtual Machine (VM)-based Docker environments. The platform follows a multi-tier architecture consisting of presentation, application, data, and storage layers, enabling scalability, security, and operational flexibility across different deployment models.

Refer the below image. 

Required Software & Tooling (Kubernetes)

The following software must be installed and operational before executing the Helm-based Kubernetes installation.

Component Minimum Version Notes
Kubernetes 1.27+ Supported on Amazon EKS, Azure AKS, Google GKE, or self-managed Kubernetes distributions such as kubeadm and k3s.
Container Runtime containerd 1.6+ or CRI-O Required container runtime. Docker shim support was removed in Kubernetes 1.24 and later.
Helm 3.12+ Used to deploy and manage the RobilityFlow Helm charts within the Kubernetes cluster.
kubectl Cluster Minor Version ±1 Required for cluster administration and operational access by the platform support team.
Ingress Controller NGINX Ingress ≥ 1.9 / Traefik v3 Supports NGINX Ingress, Traefik, Kong, AWS ALB Controller, or other customer-approved ingress solutions.
Cert-Manager 1.13+ Automates TLS certificate issuance, renewal, and lifecycle management within Kubernetes.
PostgreSQL 15 or Higher Can be self-hosted or managed through services such as Amazon RDS, Azure Database for PostgreSQL, or Google Cloud SQL.
Redis 7.0 or Higher Can be self-hosted or managed through Amazon ElastiCache, Azure Cache for Redis, or Google Memorystore.
Object Storage S3-Compatible API Supports AWS S3, Azure Blob Storage, Google Cloud Storage (GCS), MinIO, or any S3-compatible storage solution.
OCI-Compatible Registry Any Supported Registry Container registry used to host RobilityFlow Designer and Runtime images, including ECR, ACR, GCR, Harbor, or equivalent OCI-compliant registries.

Azure Deployment Pre-requisites

This document outlines the infrastructure, platform services, and Azure resources required to successfully deploy and operate Robility Manager in a Microsoft Azure environment. It lists the mandatory Azure components, their purpose, and their role in supporting the application’s hosting, data storage, security, and operational requirements, ensuring a secure, scalable, and highly available deployment.

Required Components

Component Description
Azure Subscription Required to provision, deploy, and manage all Azure resources associated with the Robility Manager deployment.
Resource Group A logical container used to organize and manage all Azure resources related to the application deployment.
Azure App Service Plan Defines the compute resources, including CPU, memory, storage, and scaling capabilities, allocated to the Azure App Service hosting the application.
Azure App Service A fully managed Platform-as-a-Service (PaaS) offering used to host and run the ASP.NET Core web application with built-in load balancing, automatic scaling, and high availability.
Azure SQL Managed Instance (MI) A fully managed SQL Server database service used to securely store application data, configuration, and transactional information with built-in high availability, automated backups, and disaster recovery capabilities.
Azure Blob Storage A scalable object storage service used to store workflows, application files, reports, documents, logs, backups, and other unstructured data.
Azure Key Vault A secure secrets management service used to store and protect sensitive information such as database connection strings, API keys, certificates, encryption keys, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

Agent Management

Agent Group

Agent Groups is a centralized management layer for creating, organizing, and managing AI agents within a project. It allows you to configure agent settings, assign tools and skills, apply compliance requirements, define execution limits, and monitor agent activity.

Agent Groups help maintain consistent agent behavior and governance by allowing associated agents to inherit shared configurations such as tools, skills, compliance policies, and execution constraints.

Key Capabilities

  • Compliance Monitoring: Tracks how agents handle sensitive data and ensures configured organizational policies are enforced during execution.
  • Trace Investigations: Detailed execution traces to review agent activity, analyze behavior, and investigate operational or security-related events.

Create Agent Group

The Create Agent Group screen enables you to define and configure a new agent group within a project. Agent groups provide a centralized configuration layer that governs how associated agents operate.

How to Create an Agent Group

Follow the steps below to create an agent group.

1. Agent Group Name

Enter a clear and meaningful name for the agent group. The name should reflect the purpose or function of the agents associated with the group, making it easy to identify and manage.

Examples:

  • Customer Support Agents
  • Claims Processing Agents
  • Task Automation Agents

2. Description

Provide a brief description of the agent group’s purpose and the types of tasks its agents are expected to perform.

This helps users understand the intended use of the group and its associated agents.

3. Adapter

Select the adapter that the agent group will use during execution.

Supported Adapters:

  • LangChain
  • Google ADK
  • CrewAI
  • Strands
Field Description
Adapter Choose an adapter from the available list. The selected adapter determines how the agent group interacts with underlying services and execution environments.

4. Tools Configuration

The Tools Configuration step allows you to manage the tools available to the agent group.

a. Selected Tools

Select built-in and custom tools that agents in the group can use during execution.

b. Blocked Tools

Select tools that should not be available to agents within the group.

Blocking tools helps restrict access to unnecessary, sensitive, or task-irrelevant functionality, ensuring agents use only the tools required for their intended purpose.

c. Custom Tools

Create a new project-scoped custom tool if the required tool is not available.

Click Add Custom Tool to create and register a new tool.

Note: For more information about available tools, tool configuration, and creating custom tools, refer to Tools and Custom Tools.

5. Agent Limits

Set execution boundaries and resource usage limits to manage agent performance and system consumption.

Setting Description
Max Agent Calls Specify the maximum number of agent invocations allowed during execution.
Timeout (sec) Specify the maximum execution time in seconds before the request is terminated.
Input Tokens Specify the maximum number of input tokens that can be processed in a single request.
Output Tokens Specify the maximum number of output tokens that can be generated during execution.

6. Compliance

Assign compliance configurations to ensure agent interactions and outputs follow defined governance and validation rules.

  • Select one or more compliance configurations from the available list.
  • Applied compliance rules are enforced during agent execution.
  • Help ensure agent behavior aligns with organizational and regulatory requirements.

7. Skills

The Skills configuration step allows you to select and manage the skills available to the agent group during execution.

a. Selected Skills

Choose built-in or project-specific custom skills available within the platform.

b. Custom Skills

Create a new project-scoped skill if the required skill is not available.

Click Add Custom Skill to create and register a new skill.

Note: For more information about available skills, skill configuration, and creating custom skills, refer to Skills and Custom Skills.

Newly created skills become available for selection, and the selected skills can be used by agents within the group during execution.

8. Sample Input

Provide a representative request that reflects a real-world scenario the agent is expected to handle.

This allows you to evaluate how the agent processes incoming requests and verify that the configured settings produce the expected behavior.

9. Output

Review the response generated by the agent after processing the sample input.

This helps confirm that the agent behaves as expected and that compliance controls, such as data redaction or blocking, are correctly applied.

10. Detected PII

Review any Personally Identifiable Information (PII) identified in the processed input.

This helps verify that sensitive data is accurately detected and that appropriate data protection measures are applied in line with configured compliance policies.

Save or Cancel

After configuring all required settings:

  • Click Save Agent Group to create and register the agent group within the selected project.
  • Click Cancel to discard the changes and exit without saving.

Example - How to Create a New Agent Group

The following animation demonstrates the steps to create and configure a new agent group.

Create New Agent Group Workflow

Manage Agent Group

The Managing Agent Groups section provides a centralized view of all agent groups within the selected project. It enables you to easily access configuration settings, monitor agent behavior, and investigate execution details.

From this section, you can review how agents are performing, analyze their interactions, and make updates to group-level configurations as needed.

Available Actions

View Traces & Investigate

Access detailed insights into agent group activity, including execution traces, interaction logs, and compliance events. This helps in monitoring behavior, diagnosing issues, and troubleshooting unexpected outcomes.

Learn more about View Traces & Investigate

Configuration (Gear Icon)

Open the agent group’s configuration panel to modify its settings, including properties, tools, skills, compliance policies, and execution limits.

Learn more about Configuration

Agent Group Dashboard

The Agent Group Dashboard provides an overview of agent group activity, compliance, policy events, and model usage within a project.

The dashboard consists of:

  • Agent Group Overview
  • Agent Controls

Agent Group Overview

The Agent Group Overview displays operational and compliance metrics across all agent groups.

The overview includes:

  • Trace Activity & Compliance – Trace volume and compliance outcomes.
  • Per-Agent Breakdown – Activity metrics for individual agent groups.
  • Top Triggered Policies – Policies triggered most frequently during execution.
  • Recent High-Risk Events – Recent events flagged as high risk.
  • Model Usage – Model usage across agent groups.
  • Tool Invocations – Tool usage during agent execution.

Trace Activity & Compliance

Trace Activity

The Trace Activity chart displays the number of traces processed over the last seven days, grouped by compliance outcome.

Compliance outcomes include:

Status Description
Passed Trace completed successfully without any compliance violations.
Redacted Sensitive content was detected and masked during processing.
Blocked Trace was blocked due to one or more compliance violations.
Trace Activity by Compliance Outcome

Compliance Split

The Compliance Split widget displays the distribution of trace outcomes across all processed traces as a donut chart.

Trace outcomes are categorized into:

Status Description
Passed Traces completed without compliance violations.
Redacted Traces where sensitive content was masked or modified.
Blocked Traces prevented from completing due to compliance violations.
Compliance Split

Per-Agent Breakdown

The Per-Agent Breakdown widget displays compliance and performance metrics for each agent group.

Health Score represents the percentage of requests handled successfully from a compliance perspective.

Formula:

Health Score = (Passed Traces + Sanitized Traces) ÷ Total Traces

The following metrics are displayed for each agent group:

Metric Description
Traces Total number of requests processed.
Passed Requests completed without compliance violations.
Sanitized Requests where sensitive data was successfully masked or redacted.
Blocked Requests prevented from completing due to policy violations.
Compliance Health Percentage of compliant requests.
Avg Runtime Average processing time per request.
Policies Number of active policies applied to the agent group.
Per-Agent Breakdown

Configure Agent Group

The Configure Agent Group screen allows users to define the operational settings, resources, and constraints for an agent group. Through a guided workflow, users can configure agent behavior, assign tools and skills, apply compliance requirements, and set execution limits.

Step 1: Agent Information

Provide the basic information required for the agent group.

Field Description
Description Describe what the agent group is responsible for, what tasks it is intended to perform, and how it is expected to behave.

Step 2: Adapter

Select the adapter that the agent group will use during execution.

Field Description
Adapter Choose an adapter from the available list. The selected adapter determines how the agent group interacts with underlying services and execution environments.

Supported Adapters: LangChain, Google ADK, Crew AI, and Strands.

Step 3: Tools Configuration

Manage the tools available to the agent group.

  • Selected Tools — Choose the built-in and custom tools that agents in the group can use during execution.
    Refer to Tools for more information.
  • Blocked Tools — Restrict access to tools that are unnecessary, sensitive, or irrelevant to the agent's intended purpose.
  • Custom Tools — If a required tool is not available, click Add Custom Tool to create a new project-scoped tool and make it available for selection.
    Refer to Custom Tools for more information.

Step 4: Agent Group Limits

Set execution boundaries and resource usage limits to help manage agent performance and system consumption.

Setting Description
Max Agent Calls Specify the maximum number of agent invocations allowed during execution.
Timeout (sec) Specify the maximum execution time, in seconds, before the request is terminated.
Input Tokens Specify the maximum number of input tokens that can be processed in a single request.
Output Tokens Specify the maximum number of output tokens that can be generated during execution.

Step 5: Compliance

Assign compliance to ensure agent interactions and outputs follow defined governance and regulatory requirements.

  • Select one or more compliance configurations from the available list.
  • Applied compliance rules are enforced during agent execution.
  • The policies associated with the selected compliance are listed. If you do not want to include a policy, you can disable it.

Step 6: Skills

Select the skills that should be available to the agent group during execution.

  • Selected Skills — Choose from built-in or project-specific custom skills available within the platform.
    Refer to Skills for more information.
  • Custom Skills — Click Add Custom Skill to create and register a new project-scoped skill. Newly created skills become immediately available for selection.
    Refer to Custom Skills for more information.

Step 7: Export Agent Slug

Export the agent group's unique identifier for use in integrations, deployments, or external references.

  • Generate the agent slug after completing the configuration.
  • Use the exported slug to reference the agent group in external systems and workflows.

Save Configuration

After completing all steps, review your settings and save the agent group. Once saved, the configured agent group becomes available for use within the selected project.

Trace Investigation

The Trace Investigation page provides a detailed audit trail for each request processed by an agent.

Each trace includes:

  • Input Context – The user request submitted for processing.
  • Processing Details – Information about the agent, model, and tool execution.
  • Response Output – The final response generated by the agent.

Trace outcome indicators:

  • Green – Passed
  • Amber – Redacted
  • Red – Blocked
Trace Investigation

Individual Trace Investigation Details

The Individual Trace Investigation Details page provides a detailed view of a single trace.

1. Execution Timeline

Displays all execution steps in chronological order.

2. Transaction Details Panel

Displays the request input, intermediate processing, model and tool interactions, and the final response.

3. Compliance Policies Panel

Displays the policies applied during execution. Expand a policy to view its evaluation results and the actions taken.

Individual Trace Investigation Details

Top Triggered Policies

The Top Triggered Policies widget displays the compliance policies that are triggered most frequently across all agent groups.

Severity levels are indicated by color:

  • Orange – High priority
  • Red – Critical
Top Triggered Policies
Note: This widget is read-only.

Recent High-Risk Events

The Recent High-Risk Events widget displays the latest policy enforcement events across all agent groups.

Each event includes:

  • Policy – The policy that was triggered.
  • Risk Category – The type of compliance risk identified.
  • Agent Group – The agent group associated with the event.
  • Time of Occurrence – The date and time when the event occurred.

Severity levels are indicated by color:

  • Red – Critical
  • Orange – High priority
Recent High-Risk Events
Note: This widget is read-only.

Model Usage

The Model Usage widget displays the number of LLM calls made by each model across all agent groups.

Each model includes:

  • Model Name – The name of the LLM model.
  • LLM Calls – The total number of calls made to the model.
  • Usage Bar – A visual representation of the total number of LLM calls.
Model Usage
Note: This widget is read-only.

Tool Invocations

The Tool Invocations widget displays the number of times each tool was invoked across all agent groups.

Each tool includes:

  • Tool Name – The name of the tool.
  • Invocation Count – The total number of times the tool was invoked.
  • Usage Bar – A visual representation of the total number of invocations.
Tool Invocations
Note: This widget is read-only.

Agent Controls

The Agent Controls page allows administrators to manage the execution of agent groups in real time. It provides controls for managing all agent groups, individual agent groups, and bulk operations.

Overall Controls

The Overall Controls section provides actions that apply to all agent groups.

  • Start All – Starts processing new traces across all agent groups.
  • Emergency Stop All – Immediately stops processing across all agent groups, including requests that are currently in progress.

Per-Agent Controls

The Per-Agent Controls section provides actions for managing individual agent groups.

  • Start – Starts processing new traces.
  • Pause – Temporarily pauses new trace processing while keeping the agent group available.
  • Stop – Immediately stops the agent group, including any requests that are currently in progress.
  • Drain – Stops accepting new traces while allowing in-progress requests to complete.
  • Adjust Rate Limits – Sets the maximum number of traces the agent group can process per minute.

Danger Zone

The Danger Zone section provides bulk actions that affect all agent groups.

  • Pause All Agents – Temporarily pauses processing across all agent groups.
  • Drain All Running Agents – Stops accepting new traces while allowing in-progress requests to complete.
  • Stop All Agents – Immediately stops processing across all agent groups, including any requests that are currently in progress.
Agent Controls
Note: Use Drain to stop an agent after all current executions are completed. Use Stop to terminate the agent immediately, including any requests that are still in progress.

Agent Group

Agent Groups is a centralized management layer for creating, organizing, and managing AI agents within a project. It allows you to configure agent settings, assign tools and skills, apply compliance requirements, define execution limits, and monitor agent activity.

Agent Groups help maintain consistent agent behavior and governance by allowing associated agents to inherit shared configurations such as tools, skills, compliance policies, and execution constraints.

Key Capabilities

  • Compliance Monitoring: Tracks how agents handle sensitive data and ensures configured organizational policies are enforced during execution.
  • Trace Investigations: Detailed execution traces to review agent activity, analyze behavior, and investigate operational or security-related events.

Create Agent Group

The Create Agent Group screen enables you to define and configure a new agent group within a project. Agent groups provide a centralized configuration layer that governs how associated agents operate.

How to Create an Agent Group

Follow the steps below to create an agent group.

1. Agent Group Name

Enter a clear and meaningful name for the agent group. The name should reflect the purpose or function of the agents associated with the group, making it easy to identify and manage.

Examples:

  • Customer Support Agents
  • Claims Processing Agents
  • Task Automation Agents

2. Description

Provide a brief description of the agent group’s purpose and the types of tasks its agents are expected to perform.

This helps users understand the intended use of the group and its associated agents.

3. Adapter

Select the adapter that the agent group will use during execution.

Supported Adapters:

  • LangChain
  • Google ADK
  • CrewAI
  • Strands
Field Description
Adapter Choose an adapter from the available list. The selected adapter determines how the agent group interacts with underlying services and execution environments.

4. Tools Configuration

The Tools Configuration step allows you to manage the tools available to the agent group.

a. Selected Tools

Select built-in and custom tools that agents in the group can use during execution.

b. Blocked Tools

Select tools that should not be available to agents within the group.

Blocking tools helps restrict access to unnecessary, sensitive, or task-irrelevant functionality, ensuring agents use only the tools required for their intended purpose.

c. Custom Tools

Create a new project-scoped custom tool if the required tool is not available.

Click Add Custom Tool to create and register a new tool.

Note: For more information about available tools, tool configuration, and creating custom tools, refer to Tools and Custom Tools.

5. Agent Limits

Set execution boundaries and resource usage limits to manage agent performance and system consumption.

Setting Description
Max Agent Calls Specify the maximum number of agent invocations allowed during execution.
Timeout (sec) Specify the maximum execution time in seconds before the request is terminated.
Input Tokens Specify the maximum number of input tokens that can be processed in a single request.
Output Tokens Specify the maximum number of output tokens that can be generated during execution.

6. Compliance

Assign compliance configurations to ensure agent interactions and outputs follow defined governance and validation rules.

  • Select one or more compliance configurations from the available list.
  • Applied compliance rules are enforced during agent execution.
  • Help ensure agent behavior aligns with organizational and regulatory requirements.

7. Skills

The Skills configuration step allows you to select and manage the skills available to the agent group during execution.

a. Selected Skills

Choose built-in or project-specific custom skills available within the platform.

b. Custom Skills

Create a new project-scoped skill if the required skill is not available.

Click Add Custom Skill to create and register a new skill.

Note: For more information about available skills, skill configuration, and creating custom skills, refer to Skills and Custom Skills.

Newly created skills become available for selection, and the selected skills can be used by agents within the group during execution.

8. Sample Input

Provide a representative request that reflects a real-world scenario the agent is expected to handle.

This allows you to evaluate how the agent processes incoming requests and verify that the configured settings produce the expected behavior.

9. Output

Review the response generated by the agent after processing the sample input.

This helps confirm that the agent behaves as expected and that compliance controls, such as data redaction or blocking, are correctly applied.

10. Detected PII

Review any Personally Identifiable Information (PII) identified in the processed input.

This helps verify that sensitive data is accurately detected and that appropriate data protection measures are applied in line with configured compliance policies.

Save or Cancel

After configuring all required settings:

  • Click Save Agent Group to create and register the agent group within the selected project.
  • Click Cancel to discard the changes and exit without saving.

Example - How to Create a New Agent Group

The following animation demonstrates the steps to create and configure a new agent group.

Create New Agent Group Workflow

Manage Agent Group

The Managing Agent Groups section provides a centralized view of all agent groups within the selected project. It enables you to easily access configuration settings, monitor agent behavior, and investigate execution details.

From this section, you can review how agents are performing, analyze their interactions, and make updates to group-level configurations as needed.

Available Actions

View Traces & Investigate

Access detailed insights into agent group activity, including execution traces, interaction logs, and compliance events. This helps in monitoring behavior, diagnosing issues, and troubleshooting unexpected outcomes.

Learn more about View Traces & Investigate

Configuration (Gear Icon)

Open the agent group’s configuration panel to modify its settings, including properties, tools, skills, compliance policies, and execution limits.

Learn more about Configuration

Manage Agent Group

The Managing Agent Groups section provides a centralized view of all agent groups within the selected project. It enables you to easily access configuration settings, monitor agent behavior, and investigate execution details.

From this section, you can review how agents are performing, analyze their interactions, and make updates to group-level configurations as needed.

Available Actions

View Traces & Investigate

Access detailed insights into agent group activity, including execution traces, interaction logs, and compliance events. This helps in monitoring behavior, diagnosing issues, and troubleshooting unexpected outcomes.

Learn more about View Traces & Investigate

Configuration (Gear Icon)

Open the agent group’s configuration panel to modify its settings, including properties, tools, skills, compliance policies, and execution limits.

Learn more about Configuration

Budget & Consumptions Overview

The Budget & Consumption feature enables users to plan, monitor, and control resource usage across the organization by defining usage limits and tracking actual consumption.

Budget

Budget is the predefined limit assigned to a resource, such as cost, API calls, or policy executions, within a specified period. Budgets can be configured at the project level to align with governance and procurement requirements.

Consumption

Consumption represents the actual usage of resources over time. It provides visibility into how much of the allocated budget has been used.

Together, Budget and Consumption enable users to:

  • Track resource utilization across teams, projects, and time periods.
  • Enforce usage limits.
  • Monitor costs and resource allocation.
  • Maintain governance.
  • Detect unexpected usage patterns.

By comparing consumption against defined budgets, organizations can identify usage trends and respond before limits are reached.

Agent Usage

The Agent Usage feature provides visibility into resource consumption by individual AI agents across language models (LLMs), prompts, tools, and policy checks.

Agent Usage Details

Each agent displays:

  • Token consumption
  • Utilization percentage
  • Execution status
  • Overall cost
  • LLM
  • Execution framework
  • Runtime environment
  • Integrated tools
  • Cost breakdown

Agent Usage Enables

  • Monitor resource and token consumption.
  • Identify agents with high or abnormal usage.
  • Verify budget utilization.
  • Evaluate models, tools, and workflows.

Feature Usage

The Feature Usage section provides a consolidated view of platform resource utilization.

Usage Categories

  • Agents: Number of active agents and per-agent usage.
  • LLM Usage: Token consumption, top model, and total tokens consumed.
  • Token Tracking: Token consumption against the allocated limit.
  • Compliance & Policies: Policy executions categorized as Active, Blocked, and Sanitized.
  • Prompt Management: Prompt usage against the allocated limit.
  • Tracing: Trace execution usage against the allocated capacity.

Each section includes utilization indicators and visual charts to display current usage.

Feature Usage Enables

  • Monitor consumption against allocated budgets or limits.
  • Identify heavily used or underutilized features.
  • Optimize resource allocation.
  • Maintain governance across the platform.

FilterBuilder

Filter Builder

The Filter Builder is a configuration dialog available in the Add Filters using Filter Builder option of the For Each Event activity. It allows you to define custom conditions to filter and retrieve specific calendar events based on event properties.

Using the Filter Builder, you can create one or more conditions and specify how these conditions should be evaluated. The configured filters help retrieve only the events that match the defined criteria.

Match

The Match option defines how multiple filter conditions are combined while retrieving events.

AND: When AND is selected, all configured conditions must be satisfied for an event to be retrieved.

Example:

  • Subject Contains: "Meeting"
  • Importance Equals: "High"

Only events with "Meeting" in the subject and High importance are retrieved.

OR: When OR is selected, an event is retrieved if it satisfies any one of the configured conditions.

Example:

  • Importance Equals: "High"
  • Show As Equals: "Busy"

Events with either High importance or Busy availability status are retrieved.

Filter Fields

The Filter Builder provides various fields that can be used to define conditions for filtering calendar events.

Field Operator Possible Values Description
All Day Boolean Yes / No Filters events based on whether they are scheduled as all-day events.

Yes: Retrieves only all-day events.
No: Retrieves only events with a specific start and end time.
Has Attachments Boolean Yes / No Filters events based on whether attachments are available.

Yes: Retrieves only events that contain attachments.
No: Retrieves only events without attachments.
Organizer Boolean Yes / No Filters events based on whether the current user is the organizer of the event.

Yes: Retrieves events organized by the current user.
No: Retrieves events where the current user is not the organizer.
Show As Equals Unknown, Free, Out of Office, Working Elsewhere, Busy, Tentative Filters events based on their calendar availability status.
Subject Contains, Equals, Starts With Free-text string Filters events based on the event subject.

Contains: Retrieves events where the subject includes the specified text.
Equals: Retrieves events where the subject exactly matches the specified text.
Starts With: Retrieves events where the subject begins with the specified text.
Type Equals Recurring Event, Single Event Filters events based on whether the event is recurring or a single occurrence.
Importance Equals Low, Normal, High Filters events based on the importance level assigned to the event.

Important: The configured filter conditions are applied while retrieving calendar events. Only events that satisfy the defined criteria are returned by the activity.

Deep Agent

A Deep Agent is an autonomous, goal-driven AI system that goes beyond single-prompt interactions to achieve complex objectives. It takes a high-level goal, breaks it down into smaller tasks, and continuously plans and executes the next best actions.

The agent interacts with external tools such as APIs, databases, and code execution environments to perform real operations. It monitors results, adapts to changing conditions, and dynamically handles failures.

It can maintain memory and state across tasks and may delegate work to specialized sub-agents when required. A Deep Agent acts as an intelligent operational partner that persists until the goal is achieved or a defined stopping point is reached.

Prerequisites

Before setting up the Deep Agent, make sure these are ready:

Requirement Details
Local Filesystem Sandbox Must be turned ON to use Skills.
Skill Directories Needed only if Enable Skills is ON. Each folder must include a SKILL.md file with valid YAML front-matter.
Downstream Component A connected node or endpoint that either starts the agent or receives its output.

Parameter

Parameter Description
Language Model The AI model node that provides the agent’s reasoning and decision-making ability. It must support tool calling to enable interaction with external tools.
Tools The tool nodes connected to the agent that define what actions (such as APIs, database queries, or file operations) the agent can perform.
Input The initial message or task given to the agent. It serves as the starting point for the workflow.
Agent Instructions Guidelines that define the agent’s role, behavior, rules, and constraints while performing tasks.
Number of Chat History Messages Specifies how many previous messages are included as context for the agent. Default is 100.
Context ID A unique identifier used to separate and manage different conversation sessions, ensuring the agent uses the correct chat history for each session without mixing contexts.
Use Local Filesystem Sandbox Enable: Allows the agent to read, write, and execute commands on workspace files.
Disable: Runs only in memory and does not persist any file changes.
Workspace Directory The main folder where the agent can read and write files when the sandbox is enabled. Default is /app/data/deepagent-workspace.
Enable AGENTS.md Memory Enable: Loads AGENTS.md files as persistent memory for project context (requires sandbox).
Disable: Ignores AGENTS.md files.
Memory File Paths Specifies file locations (comma-separated) of AGENTS.md memory files. Works only when AGENTS.md memory is enabled.
Enable Skills Enable: Loads predefined skills from configured folders at startup (requires sandbox).
Disable: Skills are not loaded or used.
Skills Source Paths Specifies folder locations where the agent searches for skill files. Multiple paths can be provided, separated by commas. Used only when skills are enabled.
Verbose Enable: Shows detailed logs of agent steps (planning, tool usage, inputs/outputs).
Disable: Hides detailed logs for normal use.
Max Iterations The maximum number of agent cycles (plan → act → observe). Prevents endless execution. Default is 15 cycles.
Recursion Limit Defines the maximum number of workflow execution steps before stopping to prevent infinite loops. If set to 0, the default limit (typically 1000 steps) is used.

Output

Output Description
Response The final message generated by the agent after completing all its planned steps. It represents the agent’s output that is returned to the user once the task execution is finished.

Tool Mode

In Tool Mode, the Deep Agent delivers its output using a standardized, slug-based format that uniquely identifies each response within the workflow. Instead of relying on a fixed or predefined response structure, the agent dynamically executes its full plan–act–observe cycle at runtime and returns the result through the appropriate action.

This design ensures that the output is directly aligned with the actions performed by the agent, making it consistent, traceable, and context-aware. As a result, downstream workflow components can reliably consume the output while maintaining accuracy and continuity across the entire process.

Output

Slug Description
MESSAGE_RESPONSE Returns the final message produced by the agent after all steps are complete. This is the agent's direct output, passed to the next component in the workflow.

Best Practices

1. Set Max iterations based on task complexity
For simple tasks, 10–15 iterations are usually sufficient. More complex scenarios, such as open-ended research or multi-step workflows, may require 50 or more iterations. Start with a lower value and increase only if the agent stops before completing the task.

2. Keep Recursion limit at default unless necessary
A value of 0 (defaulting to 1000 steps) works for most workflows. Increase it only when working with deeply nested or multi-agent pipelines that encounter recursion limits.

3. Use Verbose mode only during development
Verbose mode generates detailed logs for debugging, which can impact performance and produce large outputs. Enable it while building or troubleshooting workflows, and disable it in production environments.

4. Organize skill directories with clear scope
Each skill should represent a single, well-defined workflow. Avoid overly broad or generic skills, as they make it harder for the agent to select the appropriate one. Prefer multiple focused skills over a few generalized ones.

5 Validate skill files before enabling them
Ensure all SKILL.md files are correctly formatted and include valid YAML front matter. Improperly structured files may fail to load without visible errors, leading to missing functionality.

6. Use absolute paths for Skills source paths
Always provide full (absolute) paths to avoid resolution issues. Relative paths can behave inconsistently depending on the execution environment, especially in containerized or server-based deployments.

Manage Users

This section allows only tenant administrators to manage user accounts by editing roles, tracking user activity, exporting user lists, and re-inviting users with expired invitations. These actions help maintain control over access and ensure smooth operations.

Modifying the user role 

To modify or assign a user’s role in the tenant, the tenant admin can follow these steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Edit” icon.
4. Select the role to assign or modify for the user. Click here to view the default roles and their permissions.
5. Once selected, click the “Save” button to save the changes.

Track User Activity

To track and view the user activity on the tenant, the tenant admins can follow the below steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Eye” icon.
4. A Pop up will appear on the screen with details of the user track and the action performed by the tenant administrators. 

Exporting User List

This option allows tenant administrators to export the user list into excel from the tenant which includes details such as usernames, email addresses, roles, user’s login time and statuses.

How to export the user list?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. On the top right corner, select the “Excel” icon indicating to export the user details. 

How to re-invite users?

Tenant administrators can re-invite users to the tenant only if their previous invitation has expired. The invitation link expires within 48 hours. Follow the steps below:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. For the user with the status “Expired,” click on the “Mail” icon.
4. A re-invitation will be sent to the user.

License Renewal

Tenant administrators can renew licenses for RPA developers whose licenses have expired, either individually or in bulk. Follow the steps below:

1. On the Invite page, click the License Renew button.
2. A list of expired RPA developer users will be displayed.
3. Select users individually or choose multiple users to renew licenses in bulk.

Note: Licenses can only be renewed if available. If no licenses remain, you must follow the standard process to request licenses from the Settings page. Click here to view.

System Requirements

This section outlines the hardware and software requirements to ensure the optimal performance of Robility Designer and Runner Enterprise across all deployment models—on-premises, cloud, or hybrid.

By following the recommended system configurations, you can maintain system stability, avoid compatibility issues, and achieve seamless and efficient operations. Meeting these requirements is key to delivering a secure, reliable, and high-performing Robility environment for your organization.

Hardware

Component Minimum Recommended Comments
Designer 1 Machine 1 Machine RobilityDesigner installation for workflow developers to design, test, and publish automation workflows.
Runner As Needed As Needed One machine per robot execution environment with RobilityRunner installed to execute published automation workflows.
Note: Runner supports both persistent and non-persistent execution environments.
Component Minimum Recommended Comments
Processor Quad-core (4 CPU cores), 2.0 GHz or faster, 64-bit (x64) Octa-core (8 CPU cores), 2.0 GHz or faster, 64-bit (x64) A 64-bit processor is required.
RAM 16 GB 32 GB or more Higher memory is ideal for large automation projects or enterprise-grade applications.
Display Resolution 1920 × 1080 1920 × 1080 Applies to both desktop and laptop environments. Robility Manager is not optimized for resolutions below 1920 × 1080.
VDI Display Resolution Dynamic / Native Matching Dynamic / Native Matching Default User Experience: When a VDI session is launched through standard clients such as Citrix Workspace, VMware Horizon, or Azure Virtual Desktop, the remote session automatically scales to match the endpoint's screen resolution, including 1080p (1920 × 1080), 1440p, 4K (3840 × 2160), or multi-monitor layouts.
Storage 100 GB HDD with at least 20 GB of free disk space 100 GB or larger SSD with at least 40 GB of free disk space Refer to the disk space requirements below.
Installer 100 MB 100 MB Installed on the developer workstation. Includes the core application binaries required for Robility Designer.
Features / Activities 300 MB – 1 GB 300 MB – 1 GB Storage requirement varies depending on the activity packages, connectors, extensions, and features installed.
Log Files 300 MB Max (30 Files) 300 MB Max (30 Files) Each log file is limited to a maximum size of 10 MB per day. Archived log files are managed using a FIFO (First-In, First-Out) purge policy to control disk usage.

Disk Space

Component Size Comments
Installer 100 MB Installed on the developer workstation. Includes the core application binaries required for Robility Designer.
Features / Activities 300 MB – 1 GB Storage requirement varies depending on the activity packages, connectors, extensions, and features installed.
Log Files 300 MB Max (30 Files) Each log file is limited to a maximum size of 10 MB per day. Archived log files are managed using a FIFO (First-In, First-Out) purge policy to control disk usage.

Software

Software Minimum / Supported Comments
Operating System Windows 10 (22H2, 21H2, and 20H2, Pro, Enterprise; 64-bit)
Windows 11 (64-bit) and above
Windows 11 24H2 (64-bit)
Windows Server 2019, 2022 and above
A supported 64-bit Windows operating system is required.
.NET Framework Version 4.8.1 or higher .NET Framework 4.8.1 is recommended. Ensure the latest .NET Framework updates are installed.
Browser Google Chrome – Latest stable version
Microsoft Edge – Latest stable version
Internet Explorer 11 – Legacy compatibility
Browser extensions must be installed for browser automation.

Recommended Cloud VM services

The recommended Windows Virtual Machine (VM) services for hosting Robility Designer and Robility Runner in the cloud provider.

Cloud Provider Recommended VM Service
Microsoft Azure Azure Virtual Machine (Windows) configured with the recommended Windows Server operating system and sizing based on the deployment environment.
Amazon Web Services (AWS) Amazon EC2 Windows Instance configured with the recommended Windows Server AMI and compute resources required for the Robility platform.
Google Cloud Platform (GCP) Compute Engine Windows Virtual Machine configured with the recommended Windows Server image and appropriate CPU, memory, and storage allocation.

Network Access & Message Traffic

Component Requirement Comments
Network Access HTTPS connectivity to the RobilityManager FQDN Required for communication with RobilityManager.
Outbound Connectivity Outbound HTTPS access to license, CDN, and feature update URLs Refer to the applicable URLs for required outbound access.
Network Connectivity Stable internet or private network connectivity Required for reliable connectivity to RobilityManager.
TLS TLS 1.2 or later TLS 1.2 or later must be enabled.
Runner Traffic 2 heartbeat requests / minute Baseline traffic generated by each Runner to RobilityManager.
2 workflow requests / minute when idle Traffic generated by each idle Runner.
2 status requests / minute when running Traffic generated while a workflow is running.
20 transaction requests / minute when waiting on a transaction Traffic generated when the Runner is waiting on a transaction.
5 transaction requests / minute on average Average traffic depends on workflow processing time.

Additional Requirements

1. Administrator Rights:
Required for installation and specific features, such as setting up browser extensions.

2. Excel/Office Integration Requirements:
Microsoft Office (versions 2007, 2010, 2013, 2016, 2019, or 365 desktop editions) is required for automating tasks in Excel and Outlook.

3. Robility Manager Requirements:
For users integrating Robility Designer with Manager:
    a. Ensure the system can establish communication with the Manager server.
    b. SSL/TLS 1.2 is mandatory for secure communication.

4. Windows Registry:
Read & Write access is required during the installation of Robility Designer and Runner to configure essential registry entries for proper functionality.
Administrative Rights: Necessary for installing the Robility Runner. 

5. Remote Desktop:
The Remote Desktop option must be enabled to support Robility Runner Auto Login for service accounts and user accounts. 

6. URL Whitelisting:
Specified URLs must be whitelisted to ensure the proper functioning of Robility Designer and Runner across all deployment models. Click here to refer. 

7. Group Policy:  
For Robility’s Chrome and Edge browser automation, specific group policy configurations and prerequisites must be enabled. Click here to refer.

8. VM Name Requirements:
While creating virtual machines or Citrix environments, the machine name must not contain special characters. Only hyphens (-) and underscores (_) are permitted, and they should be used only within the name, not at the beginning.

9. User Account:
Dedicated service account with login rights, ideally non-interactive for unattended execution.

10. Auto-logon:
Auto Logon should be configured for unattended execution. Click here to refer

Managing Runner

Health Check

The Health Check tab in the Runner application is an essential tool for monitoring and diagnosing the bot’s health status. It provides critical insights into the bot’s readiness and operational condition, particularly when errors or unexpected issues occur during execution.

When a bot encounters an error, the Health Check tab should be the first point of reference. This feature helps identify potential issues and ensures the bot meets all necessary conditions for successful execution. By regularly reviewing the health status, users can prevent downtime and maintain smooth operations.

The Health Check tab highlights several important aspects:

1. Error Diagnosis: When a bot fails or encounters an issue during execution, the tab provides details about its health status, offering clues about what might have gone wrong.
2. Execution Readiness: It also verifies that the bot fulfills all required conditions for execution through the Runner. These conditions include system configurations, resource availability, and connectivity, which are vital for the bot to operate without interruptions.
3. Troubleshooting Guidance: By reviewing the health status, users can quickly identify problems, such as missing dependencies or misconfigurations, and address them efficiently.

Refer to the image below for a detailed overview of the prerequisites and conditions that must be fulfilled for the bot to execute successfully. 

Overview

The main screen of the Health Status tab displays four critical conditions that must be satisfied for the bot to run. These conditions are visually represented, and the bot will only execute if all four are marked with a green check. If any condition is incorrect, the following actions may be required:

1. Error Indication: If there is an issue with a condition, the corresponding status will turn red. The bot will not proceed and moves to the “ToCheck” status, to halt the execution until the error is resolved.
2. Repairing Issues: Use the Repair button to address plugin-related issues. This action removes and reinstalls the plugin, resolving most errors and allowing the bot to function. If the bot still fails to launch, review the log file to identify and resolve the underlying problem.
3. Scheduler Issues: If the scheduler’s configuration or functionality is problematic, attempt to repair the bot first. If repairing does not resolve the issue, use the Reset button as an alternative solution.
4. Browser Extensions: Errors related to Chrome or Edge extensions can be fixed by enabling the Robility Automation extension in the respective browsers. Open the affected browser, navigate to the extensions section, and activate the required plugin to restore functionality.

Repair and Reset

The Repair and Reset options in the Runner are essential tools for addressing issues and maintaining the smooth operation of bots. These functionalities ensure that the Runner’s configuration and settings are restored or refreshed as needed.

Repair

The Repair option is used when there is an issue with the health check status. It allows for a quick fix by removing and reinstalling the plugin associated with the Runner.

How it Works:

  1. Click the Repair button to address plugin-related errors.
  2. Once initiated, the plugin is reinstalled, and the health status should change to green if the issue is resolved.
  3. If the status doesn’t update, refresh the screen using the top Refresh button to display the updated health check information.

Reset

The Reset option restores the Runner to its factory default settings. This is useful when a complete reset is required due to persistent issues or to prepare the Runner for a new setup.

Key Features:

  1. Tenant-Specific Data Removal: All information about the current and previous bots saved for the tenant in the Runner is deleted.
  2. Package Deletion: Any packages installed when the Runner was launched from the Manager are removed.
  3. Activation Code Reset: The license key or activation code previously copied from the Manager is cleared, and the Runner returns to the login screen.
  4. Factory Defaults: The reset ensures that the Runner is restored to its initial configuration, ready for new configurations or troubleshooting.

Features

Features tab

The Features tab in the Runner serves as a centralized location for viewing and managing the features used within a workflow. This tab is particularly useful for identifying features that are currently active, as well as those that have been used in past workflows, providing a historical reference for better decision-making.

The Features section is categorized into two main parts:

1. Current Workflow Features:

a. This section displays all the features that are currently applied to the bot’s active workflow.
b. It helps users quickly identify the tools, integrations, or configurations that are actively in use.
c. This view is essential for understanding the scope of the bot’s current operations and ensuring the features align with the intended automation process.

2. All Workflow Features:

a. This section provides a broader view, listing not only the features in use for the active workflow but also features from previous workflows associated with the bot.
b. It offers a historical reference of all features that have been applied, making it easier to trace back configurations, identify patterns, or reuse features as needed.

Settings

Settings

The Settings page has three sections categorized. They are as follows, 

1. Profile: This section contains the information about the system and Tenant on the Robility Manager.
a. System Name: This is the system name where the runner is scheduled. 
b. Manager URL: Clicking on this link will navigate to the login page of the Robility manager.
c. Connected to: This displays the tenant’s name associated with the Manager and Runner.
d. License Expires on: The license’s expiration date and time are displayed here. Each license has a 90 days expiration date. Here, the time and date are expressed as of the license’s activation.
e. Environment: This displays the environment of the Robility Manager where the Runner is connected to. 

2. Optimization: Click here to know about the optimization configuration. 

3. Product Update: There is a toggle key that enables and disables the auto update. The runner automatically updates to any newly published patch when the auto update key is turned on. When the auto update feature is disabled, a pop-up window notifies the user that an update is available and asks them to upgrade the runner.

Disconnect Runner

To disconnect the bot from the runner, click on from the right-hand side top corner of the screen. A confirmation message to disconnect the runner will appear. Once we click on yes, the current robot will be disconnected from the runner.

Build Your Automation

Now, the designer is launched and ready to build in your automation solutions. To create your workflow, first let’s create a new solution. Follow the below steps to create a new solution:

1. To get started using the Designer, the user needs to create a new solution by selecting “CTRL +N” or by clicking on “Create New Solution” button.
2. A Pop- up window labelled as “New solution”, appears to fill out the details of the Solution Name, Solution Description, Workflow Name, Workflow Description, and location path to be saved.
3. After filling out the details, the user needs to click on the “Create” button to create the new solution.
4. The solution will be created and saved in the specified location.

And then you are all set to build the automation solution. As you can see on the left-hand side of the designer interface, there will be “Toolbox” panel. Here you can view the list of features are installed on the system. There will be a set of features that are installed by default. But wait there are a lot of features that awaiting to be explored.

Installing the features

On the top of the designer, you can see “Manage Features” option. The Manage Features option enumerates the list of all features that are available for the Designer. It also displays the features which has been installed, features which have updates, any new features available currently for the designer and a browse option to browse and use any feature located in our system.

To get more detailed information, click here.

Now, let’s install the features using this option.

1. Click on the “Manage Features” option.
2. Navigate to the “New features” option to discover and download the latest features.
3. Now, you can click on “Select All” option on the top of the window and select “Install” option.
    a. It will install all the features available in the designer.
    b. This process might take a time since all the features are being installed one by one.
4. The designer will be refreshed, and you can view all the installed features on the “Toolbox” section. 

Now let’s start building our automation solution. In the interface you can now drag and drop any activities into the flowchart and start creating the solution.

Steps to build the bot

Here I am going to showcase a demonstration of how to prompt a notification to the user.

1. Navigate to the “Toolbox” section and search for the activity as “MessageBox”.
2. Drag and drop the “MessageBox” activity from the “Notification” feature and set it as start node.
    a. Setting the activity as the start node helps to initiate the execution process from that activity.
    b. It helps the user to showcase any input either by hardcoding the values or by providing the input variable. Click here to get more information.
3. Double click on the activity.
4. Here, provide the input value as “Hello, Welcome to Automation”.
    a. This field accepts only “String” datatype; hence we are providing the value within the double quotes.

Save

Saving the workflows

There are always multiple ways to simplify the automation process, so we offer three options to save the workflow. Saving the workflow helps users avoid losing their automation progress.

1. Saving the workflow via the “Save” button: In the Designer’s “Home Menu” under the solution section, you will find an option labeled “Save.” Click on it to save the workflow. 
    a. If you have multiple workflows open and have made changes to all of them, the “Save” button also offers an option to save all workflows at once.

2. Saving the workflow using the save icon: At the top of the Designer’s menu bar, the first icon represents the “Save” functionality. Click on this icon to save the workflow.

Execution

The final step is to execute the workflow, which triggers the Designer to run the built activities. The execution process starts only when one of the activities is set as the start node. To get more information about the troubleshooting steps during the execution, click here.

There are three ways to initiate the execution. Let’s explore the steps:

1. Execution using the icon: At the top of the Designer menu, the second icon represents the “Execution” functionality. Click on this icon to execute the workflow. 

2. Execution through the “Run Button” in the Execute Menu: Navigate to the “Execute” menu, where you’ll find the “Run” option. Click on it to execute the workflow. 

3. Execution through the “Run” button in the Home menu: In the Designer’s “Home Menu,” under the “Execution” section, you can find the “Run” option. Click on it to execute the workflow.
     a. Please note that this option is used when you want to execute only one of the workflows. You can choose the workflow from the drop-down menu. Click here to get detailed information. 

Now, the workflow will be executed, and the input dialog box will appear on the screen prompting the message provided as input.

Publishing the workflows

Publishing the automation bots will help the users to deploy and execute it. The users will be able to publish the automation solutions / templates to Robility Manager or locally. To automate in real time, you must publish workflows to the cloud before deploying your solutions.

To get more detailed information about how the publish works, click here.

Learn here to publish the workflows to the Robility Manager.

BringToFront

BringToFront

The ‘BringToFront’ activity helps you bring the application into focus when it has been minimized during runtime.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy: Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element.

UIA3: It indicates the user to integrate “UIA3” functionality within the workflows. It accepts values in “Boolean” datatype. 
True: It will enable “UIA3” functionality within the workflow.
False:  It will disable “UIA3” functionality within the workflow.
By default, the parameter is set to false. When left empty, it will not consider UIA3 functionality. 

WaitTime: It enables the user to introduce a delay before initiating subsequent activities. The delay is specified in milliseconds.
By default, it is set to 10000 milliseconds. Leaving the option blank will result in no delay being applied.

WindowState: This parameter allows you to configure the application behavior.
Maximize: Maximizes the application.
Restore: Restores the application.
None: Does not perform any action.
By default, the ‘Maximize’ option will be selected.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

RESULT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Tips:

1. Enable the “UIA3” functionality when you have employed “DesktopAutomationUIA3” activities in the workflow. 
2. If “UIA3” is enabled, and there are no “UIA3” activities used in the workflow, it will not execute properly. 

DesktopAutomationUIA3

About

In Robility, Desktop Automation UIA3 provides a specialized approach to automating tasks within desktop applications. It builds on the foundation of traditional desktop automation while introducing a distinct framework within the RobilitySpyWindow to enhance functionality. Although the overarching goal of both “Desktop Automation” and “Desktop Automation UIA3” is to streamline and optimize processes, the difference in their frameworks empowers developers and users to select the most appropriate tool for their specific automation requirements. This flexibility ensures robust and efficient desktop automation solutions.

Key Points

1. Automation for Desktop Applications
Desktop UIA3 enables the creation of bots that interact with desktop applications. Tasks like clicking, typing, navigating through menus, and interacting with complex UI elements can be automated efficiently.
2. Flexibility and Customization
Users and developers can choose between Desktop Automation and Desktop UIA3 based on specific project requirements. This flexibility ensures that Robility supports diverse automation scenarios with tailored tools.
3. Advanced Interaction Capabilities
With UIA3, bots can interact with application elements with greater precision and reliability. It enables advanced actions like selecting dropdown options, navigating complex UI structures, and handling custom controls, ensuring robust automation for detailed workflows.
4. Data Processing and Workflow Optimization
Desktop UIA3 supports efficient data handling within desktop applications. Bots can seamlessly extract, process, and input data, leading to streamlined workflows, reduced manual errors, and improved accuracy.
5. Enhanced Compatibility and Scalability
UIA3 is designed for compatibility with a wide range of desktop applications, making it a versatile choice for diverse industries. Its scalability allows users to automate both simple tasks and complex processes that involve integrations with other systems.

Why Desktop Automation UIA3?

Desktop Automation UIA3 offers a modern and enhanced framework that is tailored for precise, flexible, and reliable automation of desktop tasks. It is ideal for organizations looking to:

  • Increase operational efficiency through task automation.
  • Reduce the risk of human error in repetitive processes.
  • Save time and resources by automating complex workflows.
  • Enhance customer experiences by improving the accuracy and speed of application interactions.

Whether you are automating data entry, processing forms, or managing intricate workflows, Desktop UIA3 provides the tools and capabilities necessary to achieve your automation goals effectively.

Click here to know how to utilize the activity in the workflow. 

Release Notes

v.2.4.1

This release includes enhancements to UI automation, improving interaction flexibility and usability.

Enhancements 

1. Offset X and Y Support
The Click and Type Text activities now support Offset X and Offset Y properties, allowing you to specify the interaction position relative to the target UI element.

2. Click Before Typing
The Type Text activity now includes a Click Before Typing option. When enabled, the target UI element is clicked before entering text to ensure it receives focus.

3. Wildcard support added to UIA3 selectors.
UIA3 selectors now support wildcard patterns (*, ?) in supported string-based attributes, enabling flexible matching of UI elements with dynamic values while maintaining backward compatibility.

Note: Downgrading the latest Desktop Automation (UIA3) package may result in missing activities.
 
Released Date: 08/07/2026

v.2.3.9

This release includes bug fixes and enhancements to application window handling logic, ensuring improved system stability and reliability.

Enhancements

Smarter Application Window Handling

The system now remembers previously detected application windows and reuses that information instead of searching for them repeatedly. Before using any saved window data, the system automatically verifies that it is still valid, ensuring accuracy is maintained at all times. This reduces repeated processing across automation workflows, resulting in faster and more efficient overall performance.

Bug Fix

Issue When navigating a Tree Menu using the Down Arrow key, keyboard focus did not move sequentially through child items, causing interrupted navigation flow.

Resolution Enhanced the FindChildren activity by introducing XPath-based element identification. This allows UI elements to be located using their ControlType and hierarchical position. The XPath is dynamically constructed at runtime, stored in a variable, and passed into the FindChildren activity.

Released Date: 19/06/2026

v.2.2.9

This release includes enhancements related to the Windows title handling logic to improve application detection and window identification during automation execution.

Enhancement

Improved Window Title Handling Logic

Enhanced the existing Windows title matching mechanism to support both:

Exact window title matching

Partial window title matching

Previously, the framework relied primarily on the complete window title for identifying application windows during execution. In scenarios where the window title changed dynamically, this could lead to window identification failures.

With this enhancement, a fallback validation mechanism has been implemented. If an exact match using the full window title is not found, the framework will automatically perform a partial window title match by validating the static portion of the current active window title.

This enhancement improves handling for:

Dynamic window title changes

Variable application title values

Window tree structure variations

As a result, the framework can identify the correct target window more reliably during execution, improving the overall stability and consistency.

Benefits

Better handling of dynamically changing application titles

Reduced execution failures caused by title mismatches

Enhanced reliability during application switching and interaction

Note: This enhancement is backward compatible and does not impact existing workflows using exact window title matching.

Released Date: 27/05/2026

v.2.1.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.1.1

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.2.0.5

This update includes critical bug fixes to enhance the overall user experience and system performance.

Bug Fix

Issue:
When the same workflow was executed by two different users on the same machine, multiple instances of the Desktop Automation (UIA3) runtime were launched, resulting in increased CPU usage.

Root Cause:
In a high-density environment, each bot execution triggered a new UIA3 runtime instance, leading to resource overutilization.

Fix:
A validation mechanism has been implemented to prevent the creation of multiple UIA3 instances during concurrent executions on the same machine.

Release date: 26th-July-2025

v.2.0.4

This update includes enhancements aimed at improving the user experience.

Enhancement

Get Attributes: The activity has been enhanced to include support for the “Bounding Rectangle” attribute. This provides the X, Y coordinates, height, and width of the detected element within the application.

Release date: 4th-July-2025

v.2.0.1

This update includes enhancements to improve the user experience.

Enhancement

We have enhanced the Desktop Automation UIA3 spy window to provide better element detection capabilities. With this update, users can now accurately detect and interact with elements on webpages where Internet Explorer (IE) mode is enabled.

Release date: 6th-Mar-2025

v.2.0.0

This release contains a bug fix that helps to improve the stability and performance of the system. We recommend all users to update to this latest version to benefit from these improvements and enjoy a more reliable system performance.

Bug Fixes

1. GetTableData: The row values were either rearranged or displayed as empty in the activity’s output. This issue has now been fixed.
2. UIA and UIA3 in the same workflow: Integrated the operations of the Desktop Automation (UIA) and Modern UI Automation 3 (UIA3) frameworks into a single, seamless workflow for application automation.

Example

The following example illustrates how the activities from the “DesktopAutomationUIA3” are utilized in the “Notepad” application. Here I have already launched the “Notepad” application in my system.

1. Create or open an existing solution.
2. Install the latest feature “DesktopAutomationUIA3” from the “ManageFeatures” menu.
3. Drag and drop the “TypeText” activity and set it as start node.
a. Double-click the activity.
b. Here we are choosing the “Select Element” option.
c. You will be navigated to the “Notepad” application.
d. Select “CTRL + Mouse” point to detect the element from the application.
     i. Select the element where we need to pass/set the value. Here, I am selecting the element from the “Notepad” app.
e. Once you have chosen the “Element,” the attributes will be stored in the “Spy” window.
f. In this case, I am choosing the “AutomationID” and the “Xpath” as attributes values and click on the “Export” button.

g. Now, the elements will be stored in the activity window.
4. Now, navigating to the “InputString” in the properties to set the value to be entered in the specified element.
a. Here, I am setting the value as “Hello Everyone! Have a good day. ” in the Notepad application.
5. You can either hardcode the value or retrieve it from a variable.

6. To retrieve a value from a variable, simply update the variable in the “InputString” parameter that has been declared.
7. Now, save and execute the workflow.

The bot will enter the value in the “Notepad” application.

TrainModel

To use the Form Recognizer custom model, you provide your own training data to the Train Custom Model operation, so that the model can train the same to your industry-specific forms. This section demonstrates how to train a model with your own data. A trained model can output structured data that includes the key/value relationships in the original form document.

Properties

INPUT

IncludeSubFolder: * Specify if the input should include the sub folders.

Prefix: * Add the folder name and subfolder name in which the training data is uploaded.

SourceURl:* Specify the SAS URL generated. Refer below on how to generate the same.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use

OUTPUT

ModelLocation: This is not a mandatory field. However, to view the model location we must declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

StatusCode:*  This is not a mandatory field. However, to view the status of the trained model, we must declare a variable here.

* Represents mandatory fields to execute the workflow.

Creating a SAS URL

To create a SAS URL, follow the steps below:

1.Open the Microsoft Azure Storage explorer
2.Click on the connections on the left-hand side and do the following steps.

3. Once you click on get shared access signature, there is an account key that is displayed which is the source URL in the Input segment.

Google

Introduction

The Google package in Robility encompasses a set of activities designed to interact with Google workspace. Google Workspace is a cloud-based platform developed by Google, which includes popular applications like Google Sheets, Google Docs, Google Drive, and Gmail. 

These activities leverage Google Cloud APIs and functionalities to seamlessly integrate with Google’s services, enabling users to streamline document processing, automate email communication, and enhance productivity within their automation workflows. 

About activities package

1. Google Document AI: Activities related to Google Document AI empower users to automate document processing and analysis tasks using Google’s AI and machine learning capabilities. This includes activities for extracting text, entities, and structured data from documents, performing document classification and entity recognition, and leveraging Google’s pre-trained models for document understanding tasks.

2. Gmail Integration: The Gmail activities in the Google package facilitate automation of email-related tasks within Gmail accounts. Users can automate actions such as sending emails, receiving and reading emails, searching for specific emails based on criteria, managing email threads and labels, and extracting email content for further processing.

3. Google Sheets Automation:

Robility offers out-of-the-box automation activities for Google Sheets, such as reading/writing cell values, manipulating ranges, and generating reports. Automation workflows in Robility can pull data from various business applications, process it, and export it directly to Google Sheets for real-time reporting and decision-making.

4. Seamless Integration with Gmail:

Robility integrates with Gmail to send automated emails based on predefined triggers or data conditions, making customer support or follow-up communication faster and more efficient. RPA bots can also manage email content dynamically, ensuring accurate information distribution.

5. File Handling with Google Drive:

Robility bots can automate the upload, download, and organization of files in Google Drive, reducing manual intervention in document management tasks. With the integration of Google Drive, bots can archive, retrieve, and share documents securely, enhancing collaboration and compliance.

Pre – requisites

To integrate Google services (such as Google Sheets, Google Drive, Gmail, etc.) into Robility for automation, there are certain prerequisites that need to be met. These ensure that Robility can securely connect to and access the Google Workspace services required for automation tasks. 

1. Google Cloud Project: You need to create a Google Cloud Project to access Google APIs (such as Google Sheets, Gmail, and Drive) for integration.
2. Enable Required APIs: Depending on the automation process, enable the relevant Google APIs within the Google Cloud project.
a. Google Sheets API: For automating Google Sheets.
b. Google Drive API: For file handling and folder management.
c. Gmail API: For automating email-related workflows.
3. OAuth 2.0 Credentials: Create OAuth 2.0 credentials to authenticate and authorize Robility to access the Google services on behalf of the user.
Steps:
a. In the APIs & Services section of the Google Cloud Console, go to Credentials.
b. Click on Create Credentials and select OAuth 2.0 Client IDs.
c. Configure the consent screen and specify the scopes (permissions) needed for your project.
d. Download the OAuth Client ID JSON file, which contains the credentials (client ID and client secret).

4. Google Account with Required Permissions: Ensure that you have a Google Workspace or Google Account with the required permissions for accessing the specific services.

a. For Google Sheets, you need read and write access to the sheets you want to automate.
b. For Google Drive, ensure you have the necessary permissions to read/write files.
c. For Gmail, permissions to send or manage emails.

Scopes for Permissions

When setting up the Google integration, you need to define the OAuth Scopes for your automation. These are permissions granted by the Google user to the Robility bot for accessing their data.

GoogleDocumentAI

Introduction

Google Document AI is a suite of AI-powered tools and APIs designed to automate document processing tasks. It leverages advanced machine learning algorithms to extract structured data, analyze content, and automate workflows within documents, enabling organizations to streamline document-based processes.

Benefits

  1. Automated Data Extraction: Document AI automates the extraction of structured data from documents, such as invoices, receipts, contracts, and forms, reducing manual data entry efforts.
  2. Semantic Understanding: It understands the context and semantics of content within documents, enabling intelligent analysis, categorization, and extraction of information.
  3. Integration with Google Services: Document AI seamlessly integrates with Google Workspace (formerly G Suite) and other Google services, enhancing collaboration and productivity in document-centric workflows.
  4. Customizable Workflows: Organizations can customize Document AI workflows to suit their specific document processing needs, improving efficiency and accuracy.
  5. Scalability: The cloud-based nature of Document AI allows for scalable document processing, accommodating large volumes of documents with ease.

Use Cases

1. Invoice Processing: Automatically extract invoice details such as vendor information, line items, and totals from scanned invoices using Document AI, speeding up accounts payable processes.

2. Document Classification: Classify documents based on content, types, or categories using Document AI, facilitating document management, retrieval, and organization.

3. Form Recognition: Recognize and extract data from forms, surveys, and questionnaires, enabling automated data capture and analysis.

4. Content Analysis: Analyze document content for sentiment analysis, key insights, trends, and patterns, supporting decision-making and business intelligence.

5. Text Extraction: Extract text from images, PDFs, and scanned documents, enabling text searchability, indexing, and information retrieval.

Release Notes

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

FormParser

This activity is used to parse the documents to extract the text, data table and Json format from the specified document using the Google AI API account.

Create Project ID

To automate with Form parser activity, you need to create a project through Google Document AI API, follow the below steps.

Step 1: Create a Project inside the Google Cloud Platform, click here to creating and managing projects. Please use a valid Gmail Account for accessing into the portal. Make sure to keep a note of your Project ID, which will be used in the activity.
Step 2: Once project ID is created, you need a Google Cloud Service Account inside your project, click here to create a service account.
Step 3: Mention the role as “Owner” while creating the service account.
Step 4: Download the Service Account Key and save it in a local folder. Follow the below link for detailed step by step procedure,
https://cloud.google.com/document-ai/docs/setup
Step 5: Once the private key is downloaded, enable the Cloud Document AI API for your project. Follow the below link for enabling and disabling this API,
https://cloud.google.com/service-usage/docs/enable-disable

Properties

INPUT

ApiKeyPath:* Specify the API key path that is stored in the local which was given at the time of registration. This is a mandatory field.

InputDocumentPath:* Specify the input document path to parse the text/ json format/ table from the documents. This is a mandatory field.

Location: Specify the location as US / EU from the drop-down. This is not a mandatory field.

ProjectID:* Specify the project ID created at the time of registration. This is a mandatory field.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Google Document AI feature in use.

OUTPUT

EntitiesJson: Declare a variable to get the Json format of the specified document. This is not a mandatory field however declare a variable to get the result

OutputText: Declare a variable to extract the text as output from the specified document. This is not a mandatory field however declare a variable to get the result

Result: Declare and assign a variable to get the return status of the condition either as success or failure. This is not a mandatory field however declare a variable to get the result.

TableDataset: Declare a variable to extract the output as table from the specified document. This is not a mandatory field however declare a variable to get the result.

* Represents mandatory fields to execute the workflow

Gmail Automation

Introduction

Gmail automation in Robility involves bots to perform various tasks within Gmail accounts automatically. These tasks can include managing incoming and outgoing emails, organizing emails into folders, sending automated responses, monitoring for specific keywords or attachments, and generating reports based on email activity.

Benefits

1. Efficiency: Gmail automation streamlines repetitive tasks, such as sorting emails, sending responses, and generating reports, leading to increased efficiency and time savings.
2. Accuracy: Automation reduces the risk of human errors in email management, ensuring that emails are processed accurately and consistently.
3. Productivity: By automating routine email tasks, employees can focus on higher-value activities, leading to improved productivity and better use of resources.
4. Scalability: Automation allows organizations to handle large volumes of emails efficiently, scaling operations without significant increases in manpower.
5. Timeliness: Automated processes can ensure that emails are processed and responded to promptly, improving customer satisfaction and communication effectiveness.

UseCase

1. Email Filtering and Organization: Automatically categorize incoming emails into folders based on sender, subject, or keywords to streamline inbox management.
2. Automated Responses: Generate and send automated responses to common inquiries or requests, such as order confirmations or support ticket acknowledgments.
3. Email Monitoring and Escalation: Monitor urgent emails or specific keywords and escalate them to the appropriate team members for immediate attention.
4. Data Extraction: Extract data from incoming emails, such as contact information or order details, and input this data into CRM systems or databases.
5. Reporting and Analytics: Generate reports on email activity, including metrics like response times, email volume, and customer feedback trends, for analysis and decision-making.

Release Notes

v.1.1.2

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.1.0

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.9

We’re releasing version v1.0.9 with a key production fix to improve Gmail integration.

Bug Fix

Delegation Denied Exception: There was a problem with Gmail authentication via the OAuth flow. Specifically, the logic to dynamically retrieve the account address for token validation was missing. As a result, when the first Gmail account was used, switching to another account could take up to an hour due to token expiration delays.

Now, this issue has now been addressed and released the updated version.

Send Mail: The comma separator in the “To Address” and “CC Address” properties has been updated to support sending emails to multiple Gmail addresses simultaneously. 

Enhancement

Introduced the ‘IsBodyHtml’ option to fix the issue where <br> tags were not rendering correctly. This allows users to specify whether the email body is in HTML format.

Limitation

Downgrading to a lower version of Gmail automation from this release may result in missing activities, as the new property ‘IsBodyHtml’ has been introduced in the current version.

GmailScope

This activity serves as an authentication package for all the activities placed within this scope.

Properties

INPUT

AccountName: *This parameter indicates the “MailID” of the account for which the automation needs to be performed. It accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in “String” datatype.

KeyPath: *This parameter indicates the need to provide the path of the “Client Secret key” provided during registration. It accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in “String” datatype. (Refer the below documentation).

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

Represents mandatory fields to execute the workflow.

How to get keypath?

Step 1: Login to Google Developer Console with your registered Gmail account details “https://console.developers.google.com/”.
Step 2: Create a Project if you haven’t created before and specify a valid Project Name and Organization for your reference.
Step 3: Search for “Gmail API” in the “Search for APIs and Services” tab.

Step 4: Select Gmail API from the marketplace list and it will be redirected to the Gmail API service page. Click on Enable API button and your Gmail API will be enabled after this
(You can disable this API anytime if you want to discontinue with this process if required).
Step 5: Click Credentials tab from the left side panel and click “CONFIGURE CONSENT SCREEN” button.

Step 6: Select External and click Create.

Step 8: Back to the API screen, Click on Create Credentials –> OAuth Client ID. 

Step 9: Specify Application Type as Desktop App and specify name of the App (you can use any desired name for your app, which will integrate with your Gmail account later).

Step 10: Click “Save” and OAuth Client will be created with Client API and Client Secret Keys.

Step 11: You can download it as a JSON file and store it in your local folder. 

Step 12: Provide the downloaded JSON file path in Gmail Automation Scope activity along with your Gmail Account. User needs to do one-time authentication while running the Read and Send activities first time.

Authentication of Gmail Account

GetMailDetails

This activity helps the user extract mail details from the specified Gmail account. Ensure it is used within the ‘GmailScope’.

Properties

INPUT

MailMessage: * Indicates to provide the “MailItem” variable (which will be declared in the “Read Mail” activity) to extract the emails from the provided “list”.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Body: This parameter enables to view the “Body” of the mail as an output of the activity in the “String” datatype, extracted from the email.

Date: This parameter enables to view the “Date” as an output of the activity in the “String” datatype, extracted from the email.

FromAddress: This feature enables you to view the “FromAddress” as an output of the activity in the “String” datatype, extracted from the email.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

MailSubject: It helps to view the output of the activity as “MailSubject” extracted from the mails. This field returns the values in the “String” datatype.
ToAddress: It helps to view the output of the activity as “ToAddress” extracted from the mails. This field returns the values in the “String” datatype.

Represents mandatory fields to execute the workflow. 

Prerequisites

1. The Gmail automation allows the following actions:
a. Extracting emails
b. Sending emails
c. Replying to emails
d. Moving emails
e. Reading emails
f. Saving emails

2. The bot must authenticate the specified Gmail account for secure access.
3. The KeyPath within the Gmail scope is required to grant the bot appropriate permissions.
4. The KeyPath must be provided in JSON format, containing the necessary credentials and configuration for authentication.
5. Proper setup of these prerequisites ensures smooth interaction with the Gmail account and allows the bot to perform the required actions effective

ReadMail

This activity helps the user to read the mails from the Gmail account. Ensure it is used within the ‘GmailScope’. 

Properties

INPUT

Filter: Specify the filter values that need to be applied while reading emails from the account name. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. It is an optional field and reads all emails if no value is provided.

SubFolderName: * Specify the folder name from which the emails need to be accessed and read. You can also provide the “SubFolderName” if you need to read emails from a subfolder.

IncludeSpamTrash: This parameter indicates to include spam and trash mails while reading emails from the specified account. Specify the boolean value as “True” or “False”.
True: Enables to include the spam and trash mails.
False:
The option will not be considered.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

MarkAsUnread: This property indicates whether read emails should be marked as unread after the automation is completed. Specify “True” or “False” to enable or disable the marking of emails as unread during the mail reading process.
True: Enables marking emails as unread after they are read.
False: Disables marking emails as unread after they are read.
None: If this option is left blank, the property will not take effect, and by default, emails will be read without marking as unread.

NoOfMails: * Enter the number of emails that need to be read within the specified account name. This parameter accepts values in “Integer” datatype. You can either hardcode the values in “Integer” datatype or can enter the values in “Integer”. 

Unread: Specify whether to read emails that have not been read yet in the mailbox. Specify either “True” or “False” in the field:
True – Enables reading only the “Unread” mails from the mailbox.
False – Disables the condition and reads emails according to the sorting order provided, irrespective of whether they are “Read” or “Unread” mails.
None – When left out blank, the activity will perform with “False” action.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

ListIt helps to store the mails in the list format that has been read from the mailbox. (Refer to the steps in creating a workflow.)
Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

Here’s an example of how “Read” activity works – 

In the following example, I am going to read the mail from the specified address. In this case, I am using my personal Gmail account to read from the specific mail address. 

Example

1. Create a new solution or open an existing workflow.
2. Install the latest version of “GmailAutomation” feature from Manage features.
3. Drag and drop the “Gmail scope” activity from the Gmail automation.
a. Navigating to the properties to provide the “mail account name” to authenticate and access the mailbox.
b. Next moving to the “keypath” and here i am providing my “Json” file path in “String” datatype. Click here to know how to get the keypath.
4. Now, placing the “Read mail” activity inside the body of the Gmail scope activity.
a. It helps to read the mails from the specified account.
b. Here in the “Filter” option, I am providing the mail address from which the mails need to be processed and read.
c. Next, as my specified mail address is available in the “Inbox” folder, I am providing the “FolderName” property value as “Inbox”.
d. Specifying the number of mails to be read as “5”.
e. Now, navigating to the “List” in the output section of the properties to declare a variable to view the output. 
     i. Method 1 – Click on the “List” property within the “ReadMail” activity and enter the variable name. In this case, we are using “Read_ml.” Then, press “Ctrl+Q,” which is a shortcut key to create a variable.
    ii. Method 2 – Click on the Variables pane and enter the name “Read_ml.” Then, in the “Variable Types” column, sele ct “Browse for Types” from the dropdown menu.
   iii. The .Net window for data types will appear on the screen, enter the type of name as “System.Collections.Generic.List” and choose “Robility.GmailAutomation.GmailMessage” then click on “OK” button.
5. Now, execute the workflow.

SendMail

This activity helps the user send an email from their Gmail address to another Gmail address. Users can compose emails, add recipients’ email addresses, specify the subject and body of the email, and send the message directly from their Gmail account. Ensure it is used within the ‘GmailScope’.

Properties

INPUT

AttachmentList: Indicate the list of attachments to include along with the mail. It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

CCAddress: Provide the “CC address” of the recipients to send the email. This allows sending email to additional recipients for informational purposes. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

FromAddress:* Specify the “From address,” which is the sender’s email address used to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailBody: This parameter specifies the “Mail Body” that should be sent as an email. It accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

Subject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

ToAddress: It specifies the “To address” of the recipient to send the mail. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

MoveMail

This activity allows users to organize emails by moving them to specific folders in their Gmail account. Users can select one or multiple emails and specify a destination folder for them. It must be used within the “GmailScope” activity.

Properties

INPUT

AddLabel: This parameter indicates the “Foldername” where in Gmail it’s specified as “Label” to which the mail needs to be moved. It accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
MailMessage: * Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”
RemoveLabel: Indicates to provide the “FolderName” of the originated place from where the mail exists. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

ReplyMail

This activity helps the user to respond to specific emails received in their Gmail account. Users can compose a reply message directly within the email thread, addressing the sender’s message and providing their response. Ensure it is used within the ‘GmailScope’. 

Properties

INPUT

MailMessage:Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”
ReplyBody: This parameter specifies the “Reply Body” that should be sent as an email.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

SaveAttachments

This activity helps the user to download and save attachments from their Gmail emails to their local storage. Users can select emails with attachment and specify the destination folder for storage. Ensure it is used within the “GmailScope” activity.

Properties

INPUT

FolderPath: Specify the “Folder path” to where the “Mails” are required to be saved from the list. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailMessage:Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

GoogleSheet

Robility® integrates with Google Sheet to automate tasks such as reading/writing cell values, manipulating ranges, and generating reports.

Use cases

1. Data Migration Between Systems: Robots can use Google Sheets as an intermediate storage location when transferring data between incompatible systems, ensuring smooth migration with data.
2. Automated Billing Reconciliation: Bots can check payment statuses or transaction records in Google Sheets against a system to ensure consistency and accuracy in billing data.
3. Employee Onboarding/Offboarding: Google Sheets can be used to track onboarding tasks or checklist completion for new hires. Bots can update HR systems with onboarding details automatically.
4. Expense Tracking: Bots can extract expense data from receipts, emails, or expense reports and record it in Google Sheets, where it can be categorized and summed up for financial reports.

Pre – requisites

Building an automation workflow with Google Sheet requires a connection in the “App Integration” menu in Robility Manager. There are two types of authentication that brings Google Sheet into Robility,

1. OAuth 2.0 Authorization code – Enables you to provide the Gmail account address and password that has been authenticated with defined scopes.
2. OAuth 2.0 Client credentials – Enables you to provide your own Client ID, Client Secret and Scopes manually.

Once the connection has been enabled, you are all set to build your automation workflow.

Scopes

Scopes define what kind of data it accesses, and level of access needs to be provided. For detailed information, please check out the Google documentation. Below are the scopes that are mandatory to automate with Google Sheet API.

Refresh Token

Google has refresh token limitation for every individual Oauth 2.0 authorization that expires every one hour. If the token has been expired, Robility’s App Integration service will refresh the authentication without any warning or disruptions during your automation execution. Even though Robility refreshes the token, at some certain circumstances, it requires re-connection with Google Sheet.

1. When you have revoked your access.
2. If the Google Sheet connection has not been utilized for six months after configuration.
3. If you have changed your Google account password and if the scopes for user have been changed.
4. If the user account has exceeded a maximum number of granted (100 live) refresh tokens.

Note: The limit is currently set to 100 refresh tokens per Google account per OAuth 2.0 client ID. This number can be subject to change. For the latest information, always check the Google documentation.

Release Notes

v.1.2.6

This release includes stability and performance improvements across connector activities.

Bug Fix

Resolved an issue that could cause intermittent execution failures and increased processing time during connector operations. Authentication handling has been optimized to improve connection reliability, reduce unnecessary authentication requests, and enhance overall workflow performance.

Released Date: 02/06/2026

v.1.2.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.2.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AddSheet

This activity helps the user to add a new sheet in the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
    ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the “Sheet” to be created. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

Position – This parameter indicates the index position of the sheet to be created within the specified spreadsheet. The index starts at “0”. By default, it is set to “0”. If no value is provided, the new sheet will be created at the start of the spreadsheet, i.e., as the first sheet.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

NewSheetName: This parameter helps you to provide the created sheet name as output of the activity. It returns values in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Create

This activity helps the user to create a new spreadsheet in the specified google account.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

Folder: *This parameter indicates to provide the “Folder” name against where the created spreadsheet needs to be placed. It offers multiple ways to choose the Folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select a new folder name.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
   i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new spreadsheet.
   ii. Folder Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

First Sheet Name: *This parameter specifies the name of the “Sheet” to be created. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

If Spreadsheet Already Exists / CreatedSpreadsheetType: If the provided spreadsheet already exists in the specified folder, the activity offers the following options:
1. DontReplace: The spreadsheet will not be replaced, and the workflow will be aborted if a spreadsheet with the same name already exists.
2. Replace: The existing spreadsheet will be replaced with a new one if the same name is found in the folder.
3. AutoRename: If a spreadsheet with the same name already exists, it will automatically rename the new spreadsheet.
4. Addasseperatefile: If a spreadsheet with the same name already exists, a new file with the same name will be created as a separate file in the specified folder.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

CreatedSpreadsheetInfoItems: This parameter allows the user to view the details of the created spreadsheet. The following items are provided:
1. FullName: Displays the full name of the created spreadsheet. You can access this value using Variable.FullName.
2. URL: Provides the URL of the created spreadsheet. You can access this value using Variable.URL.
3. URI: Provides the URI of the created spreadsheet. You can access this value using Variable.URI.
4. CreatedDate: Displays the creation date of the spreadsheet. You can access this value using Variable.CreatedDate.
5. ID: Provides the unique ID of the created spreadsheet. You can access this value using Variable.ID.
6. Name: Displays the name of the created spreadsheet. You can access this value using Variable.Name.
7. ParentID: Displays the name of the parent folder where the spreadsheet is stored. You can access this value using Variable.ParentID.
8. MimeType: Indicates whether the created item is a file or folder. You can access this value using Variable.MimeType.
9. Size: Displays the size of the created spreadsheet. You can access this value using Variable.Size”.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteColumn

This activity helps the user to delete all the data in the specified column in the selected spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the column needs to be deleted. It provides multiple options for selecting the sheet:
1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Column Name: *This parameter indicates to provide the column name from the chosen sheet to delete the data. It provides multiple options for selecting the sheet:
1. Update Column: Refreshes and updates the list of available column names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the column name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Column Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Column: Allows you to manually select the column name from the drop-down menu, which lists the available column names in the spreadsheet. The user must manually select the column name each time this option is used.

IncludeColumnHeaders: Indicates whether to include the “Column Headers” in the spreadsheet when deleting the  data. If left blank, the column headers will not be considered.

Delete Behavior: This parameter allows you to choose the following delete modes:
1. Clear: The values in the specified range will be cleared, leaving the cells empty.
2. Delete: Deletes the entire columns within the specified range of cells.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Status: It provides the ability to view the status of the deleted column in the Google sheet. It returns values in “Boolean.”

True: Indicates that the column has been successfully deleted without any errors.
False: Indicates that the deletion has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteRow

This activity helps the user to delete the specified row values in the selected spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the rows need to be deleted. It provides multiple options for selecting the sheet:
1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3.
Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Rows: It indicates to provide the rows’ position to delete it from the specified spreadsheet. The index position of the row starts from “0”. It accepts values in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

Delete Behavior: This parameter allows you to choose the following delete modes:
Clear: The values in the specified range will be cleared, leaving the cells empty.
Delete: Deletes the entire rows within the specified range of cells.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Status: It provides the ability to view the deletion status of the row. It returns values in “Boolean.”

True: Indicates that the row has been deleted successfully without any errors.
False: Indicates that the deletion has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteSheet

This activity helps the user to delete the existing sheet in the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
   i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet to be deleted. It provides multiple options for selecting the sheet:
1. UpdateSheet: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Status: It provides the ability to view the deletion status of the sheet. It returns values in “Boolean.”

True: Indicates that the sheet has been deleted successfully without any errors.
False: Indicates that the deletion has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteRange

This activity helps the user to delete the specified range of value from the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter specifies the existing spreadsheet where a new sheet will be added. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the range of value needs to be deleted. It provides multiple options for selecting the sheet:
1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Range: *It indicates to provide the range of cell values that needs to be deleted in the specified spreadsheet. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

Delete Behavior: This parameter allows you to choose the following delete modes:

Clear: The values in the specified range will be cleared, leaving the cells empty.
Row: Deletes the entire rows within the specified range of cells.
Columns: Deletes the entire columns within the specified range of cells.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Status: It provides the ability to view the deletion status of the range. It returns values in “Boolean.”

True: Indicates that the range has been deleted successfully without any errors.
False: Indicates that the deletion has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

ForEachReadRange

This activity helps the user to iteratively read data from specified ranges from each sheet in the selected Google Sheet. Ensure that this activity is utilized within the “ForEachSheet” activity.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

IncludeColumnHeaders: Indicates to include the “Column Headers” in the spreadsheet while reading the data. If left blank, the column headers will not be considered. 

Read Range: *It indicates to select the range or provide the range to read the data from the spreadsheet. It accepts the value in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet against which the range of data needs to be read. Utilize the “CurrentSheet” variable from “ForEachSheet” activity to automatically iterate and extract the values. 

What To Read: Indicates to read either the value from the range of cells or values with formula from the range of cells.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: It provides the output of the activity as the result of the values read from the specified range in the spreadsheet in a table format. It returns the value in “Datatable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ForEachRowSpreadsheet

This activity helps the user to iterate through and retrieve the range of row values from the specified sheet in the Workbook.

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

If row is empty: This parameter defines the action to be taken when an empty row is encountered during processing:

Skip: Skips the empty row and moves to the next one.
Process: Processes the empty row as part of the workflow.
Stop: Halts the operation upon encountering an empty row.

WorkbookName: This parameter specifies the existing spreadsheet where the sheet details needs to be retrieved. It offers multiple ways to choose the spreadsheet: 

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu:Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker:Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable, 
     i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook. 
    ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: This parameter indicates to choose the existing spreadsheet from where the range of row values needs to be retrieved. It offers multiple ways to choose the sheet name: 

1. Browse Option: When selecting the “Sheet Name” option, it will automatically list the sheet name available in the specified workbook from the dropdown. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu:Clicking on the “Three lines” icon will open a context menu with the following two options.
a. UpdateRange: Refreshes the selected sheet name and prompts to re-select the sheet name.
b. Use Variable: Allows you to provide the “Sheet Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. Sheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. 
    ii. Select Sheet: When selecting this option, it will automatically list the sheet name available in the specified workbook from the dropdown. The user must manually select the spreadsheet each time when using this option.

Read Range: It indicates to provide the range of row values that needs to be processed from the specified workbook. You can either hardcode the values as a string or use a variable of the “String” datatype.

ForEach: This parameter represents each row retrieved from the list of sheets in the specified workbook. You can customize its name as needed.

IncludeColumnHeaders: Indicates to include the “Column Headers” in the spreadsheet while reading the data. If left blank, the column headers will not be considered.

What To Read: Indicates to read either the value from the range of cells or values with formula from the range of cells.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

The number of rows processed: This parameter helps you to get the count of the rows processed during the execution. It returns values in “Integer” datatype. 

Represents mandatory fields to execute the workflow.

ForEachSheet

This activity helps the users to iterate through and retrieve the collection of sheets in the specified workbook.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName:  *This parameter specifies the existing spreadsheet where the sheet details needs to be retrieved. It offers multiple ways to choose the spreadsheet: 
1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options. 1
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
    ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

ForEach: This parameter represents each sheet retrieved from the list of sheets in the specified workbook. You can customize its name as needed.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

The number of sheets processed: This parameter helps you to get the count of the sheets available in the specified workbook. It returns values in “Integer” datatype. 

 * Represents mandatory fields to execute the workflow.

How to Retrieve the Name of a Sheet?

  1. Drag and drop the activity into the workflow.
  2. Double-click the activity and select the workbook from which the sheets should be retrieved.
  3. In the ForEach property, the default name will appear as CurrentSheet.
  4. Use this name in a Write Log activity inside the “Do” part of the “ForEachSheet” activity to display the name of each sheet in the specified workbook.

ForEachWriteRange

This activity enables users to write data iteratively to specified ranges in each sheet of the selected Google Sheet. Ensure this activity is used within the “ForEachSheet” activity which loops through all the sheets in the file.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

IncludeColumnHeaders: Indicates to include the “Column Headers” in the spreadsheet while writing the data. If left blank, the column headers will not be considered. 

Write Range: *It indicates to select the range or provide the range where the values need to be written in the spreadsheet. It accepts the value in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet against which the range of data where it needs to be written. Utilize the “CurrentSheet” variable from “ForEachSheet” activity to automatically iterate and extract the values. 

What To Read: Indicates to read either the value from the range of cells or values with formula from the range of cells.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

WriteStatus: It provides the output of the activity as the result of the values written in the sheets. Ite returns the values in “Boolean”.

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ReadCell

This activity helps the user to read and extract the content from the specified cell in the spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet from where the content needs to be read from the cell. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to read the cell from this spreadsheet.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet from where the content needs to be read. It provides multiple options for selecting the sheet:
1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Cell Range: *This parameter indicates to provide the cell name from the sheet. You can either hardcode the name as a string or provide a variable of the “String” datatype.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Cell Value: This parameter helps view the output of the activity as the result of the value read from the specified cell. It returns the value in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

ReadRange

This activity helps the user to read and extract the specified range of value from the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet from where range of data from must be read and extracted. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. Click here to refer how to retrieve the URL and ID of the spreadsheet.
    ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet against which the range of data needs to be read. It provides multiple options for selecting the sheet:

1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Read Range: *It indicates to select the range or provide the range to read the data from the spreadsheet. It accepts the value in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

IncludeColumnHeaders: Indicates to include the “Column Headers” in the spreadsheet while reading the data. If left blank, the column headers will not be considered.

What To Read: Indicates to read either the value from the range of cells or values with formula from the range of cells.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Datatable: It provides the output of the activity as the result of the values read from the specified range in the spreadsheet in a table format. It returns the value in “Datatable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

RenameSheet

This activity helps the user to rename the existing sheet name in the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet where a new sheet name to be renamed. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
   i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to add a new sheet within the workbook.
   ii. Sheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter indicates to provide the existing name of the “Sheet”. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

New Name: *This parameter indicates to provide the new name for the sheet to be renamed. It accepts values in “String” format, which can either be hardcoded or provided as a variable in the “String” datatype.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

WriteCell

This activity helps the user to write the specific value in the specified cell in the spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet name where the write cell needs to be performed. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. You can use these as a reference to write a value against the specified cell in the spreadsheet.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the value needs to be set in specified cell value. It provides multiple options for selecting the sheet:

1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Cell Range: *This parameter indicates to provides the cell range against where the value needs to be written. For e.g., provide the value as “A1”. It accepts values in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

Cell Value/ Input Value: *It indicates to provide the value that needs to be written.  It accepts values in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

WriteColumn

This activity allows the user to write the entire set of column values using a DataColumn variable into a specified cell range in a spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName*This parameter indicates to provide the existing spreadsheet. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. Click here to refer how to retrieve the URL and ID of the spreadsheet.
    ii.
Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the data column needs to be inserted. It provides multiple options for selecting the sheet:

1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Range: *It indicates to provide the cell range where the data column needs to be inserted. It accepts values in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

How to Write/ WriteType:  If the specified cell range in the provided spreadsheet already contains data, the activity offers the following options:

AppendRight: The data will be added after the last column that contains a value, extending to the right.
Overwrite: The data in the specified cell range will be replaced with the new values.

What to Write / WriteType: This parameter allows you to choose the type of data to be written. By default, “DataRow” is selected.

Data Row to Write / DataColumn: *This parameter specifies the “DataColumn” variable that needs to be written in the specified range. It accepts values of the “DataColumn” datatype. You can assign the data column from the datatable variable as follows, “Datatable.Columns(0)”.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

WriteRange

This activity allows the user to write a specified range of data, in a datatable format, into the specified spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. Click here to refer how to retrieve the URL and ID of the spreadsheet.
   ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the range of value needs to be written. It provides multiple options for selecting the sheet:

1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Range: *It indicates to provide the cell range where the input datatable value needs to be written. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

Datatable: *It indicates to provide the input datatable value needs to be written. It accepts values in “Datatable” datatype.

If Spreadsheet Already Exists / WriteCellType: If the specified cell range in the provided spreadsheet already contains data, the activity offers the following options:

Append: The data will be written after the last cell that contains a value.
Overwrite: The data in the specified cell range will be overwritten.

IncludeColumnHeaders – Indicates to include the “Column Headers” in the spreadsheet while reading the data. If left blank, the column headers will not be considered.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

WriteRow

This activity helps the user to write the value as array of row or data row in the specified row in the spreadsheet.

Properties

Configuration

Each activity requires a connection with Google Sheets authentication. Once you select the respective project name where Google Sheets has been authenticated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google: *This parameter indicates the account name associated with the integration.

INPUT

WorkbookName: *This parameter indicates to provide the existing spreadsheet. It offers multiple ways to choose the spreadsheet:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and spreadsheets available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder or spreadsheet to select a new folder name.
b. Use Variable: Allows you to provide the “Workbook Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the workbook in the specified Google account, you will receive the workbook’s URL and ID. Click here to refer how to retrieve the URL and ID of the spreadsheet.
    ii. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

Sheet Name: *This parameter specifies the name of the sheet where the data row needs to be inserted. It provides multiple options for selecting the sheet:

1. Update Range: Refreshes and updates the list of available sheet names, which will appear in a drop-down menu.
2. Use Variable: Allows you to provide the sheet name as a variable in “String” format. You can either hardcode the value as a string or use a variable of the “String” datatype. The following values can be provided as a variable:
a. Spreadsheet Name: You can either hardcode the name as a string or provide a variable of the “String” datatype. (Click here to learn how to retrieve the sheet name from the spreadsheet.)
3. Select Sheet: Allows you to manually select the sheet name from the drop-down menu, which lists the available sheets in the spreadsheet. The user must manually select the spreadsheet each time this option is used.

Range: *It indicates to provide the cell range where the datarow needs to be inserted. It accepts values in “String” datatype, which can be either hardcoded or provided as a variable in the “String” datatype.

How to Write/ WriteType: If the specified cell range in the provided spreadsheet already contains data, the activity offers the following options:

Append: The data will be written after the last cell that contains a value.
Overwrite: The data in the specified cell range will be overwritten.

What to Write / WriteType: This parameter allows you to choose the type of data to be written. By default, “DataRow” is selected.

Data Row to Write / DataRow: This parameter specifies the “DataRow” variable that needs to be written in the specified range. It accepts values of the “DataRow” datatype. You cannot manually assign a value to the DataRow variable; instead, you can iterate and assign the DataRow value from the DataTable variable.

IncludeColumnHeaders: Indicates whether to include the “Column Headers” in the spreadsheet when writing data. If left blank, the column headers will not be considered.

Position: This parameter specifies the index position where the DataRow will be written within the specified spreadsheet. The index starts at “0”. By default, it is set to “0”. If no value is provided, the new DataRow will be inserted at position “0” if the write type is set to “Overwrite.” If the write type is set to “Append,” the DataRow will be written at the end of the spreadsheet.

To write data continuously in the specified spreadsheet, you can use the “Append” option, which will add the value after the last filled row.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIt indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GoogleDrive

Robility® provides seamless integration with Google Drive, allowing users to automate a variety of document management tasks. With this feature, bots can interact with Google Drive to handle tasks like file uploads, downloads, organizing folders. It allows the robots to store any data and access the files easily and securely.

Key Features of Google Drive

1. File Operations: The API allows automated file management tasks, including uploading, downloading, updating, and deleting files within Google Drive.
2. Access Control: Automates the sharing of files and folders with specific users or groups by setting permissions (e.g., view, edit, or comment).
3. Real-Time Synchronization: Automatically syncs data between Google Drive and other platforms or local storage, ensuring up-to-date access to files.
4. File Search and Metadata: Provides automated search functionality to locate files based on name, type, or metadata, helping users retrieve documents faster.
5. Version Management: Bots can track and manage document versions, ensuring the latest versions are accessible and older versions are archived.

Use cases

1. Automated File Upload and Organization: Automatically upload documents to specific folders based on predefined rules.
2. Scheduled Backups: Bots can regularly back up critical documents from local storage to Google Drive.
3. Folder Management: Automates the creation, organization, and deletion of folders, keeping the file structure organized. 
4. Bots can download the specific file from Google Drive to extract and process data from the file, updating systems (e.g., CRM, ERP) and generating reports.

Pre – requisites

Building an automation workflow with Google Drive requires a connection in the “App Integration” menu in Robility Manager. There are two types of authentication that brings Google Drive into Robility,

  1. OAuth 2.0 Authorization code – Enables you to provide the Gmail account address and password that has been authenticated with defined scopes.
  2. OAuth 2.0 Client credentials – Enables you to provide your own Client ID, Client Secret and Scopes manually.

Once the connection has been enabled, you are all set to build your automation workflow.

Scopes

Scopes define what kind of data it accesses, and level of access needs to be provided. For detailed information, please check out the Google documentation. Below are the scopes that are mandatory to automate with Google Drive API.

Refresh Token

Google has refresh token limitation for every individual Oauth 2.0 authorization that expires every one hour. If the token has been expired, Robility’s App Integration service will refresh the authentication without any warning or disruptions during your automation execution. Even though Robility refreshes the token, at some certain circumstances, it requires re-connection with Google Drive.

1. When you have revoked your access.
2. If the Google Drive connection has not been utilized for six months after configuration.
3. If you have changed your Google account password and if the scopes for user have been changed.
4. If the user account has exceeded a maximum number of granted (100 live) refresh tokens.

Note: The limit is currently set to 100 refresh tokens per Google account per OAuth 2.0 client ID. This number can be subject to change. For the latest information, always check the Google documentation

Release Notes

v.1.3.1

This release includes stability and performance improvements across connector activities.

Bug Fix

Resolved an issue that could cause intermittent execution failures and increased processing time during connector operations. Authentication handling has been optimized to improve connection reliability, reduce unnecessary authentication requests, and enhance overall workflow performance.

Released Date: 02/06/2026

v.1.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.2.8

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.2.1

In this release, we have introduced a new activity and implemented several enhancements to improve functionality and user experience.

New Activity

Find Files and Folders – This new activity allows users to search for and retrieve a specific File ID from a designated Google account.

Limitations

1. The GetFilesAndFoldersList and FindFilesorFolders activities can retrieve a maximum of 1,000 files or folders at a time.

2. If no connection is established in Robility Manager for Google Drive, users cannot proceed directly to the Google Drive activation page. Instead, they must:

a. Click “Add New Connection” within Google Drive activities.
b. Log in to the Robility Manager when redirected.
c. Navigate to the relevant Tenant → Project → App Integration section.
d. Manually establish the new connection.

3. Parameter loading may take time after each refresh.

CopyFile

This activity allows users to copy a file from one source folder to another destination folder within the connected Google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

SourceFile: This parameter indicates the user to provide the source path of the file from that needs to be copied. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and files available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

Destination Folder: This parameter indicates the user to provide the destination folder to where the file needs to be pasted. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and files available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

OverwriteOption: This option allows users to overwrite an existing file or folder in the specified folder within the connected Google account. Use this option if the file or folder at the provided path already exists in the destination folder. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

NewFileID: This parameter provides the output of the activity as the unique identifier of the new file copied to the destination folder. It returns values in the String datatype.

NewFileURL: This parameter provides the output of the activity as the URL of the new file copied to the destination folder. It returns values in the String datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

CreateDocument

This activity helps the user to create a new (GoogleDocs) document within the connected google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

 DocumentName: This parameter indicates to provide the name of the document to be created. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

DestinationFolder: This parameter specifies to provide the existing Folder against where the new document is to be created. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.
   ii. Folder Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Document ID: It helps to view the unique ID of the newly created document as the output of the activity. It returns values in “String” datatype.

DocumentURL: This parameter helps you to view the created Document’s URL as output of the activity. It returns values in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

CreateFolder

This activity helps the user to create a new folder in the connected google drive account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

FolderName: This parameter indicates to provide the name of the folder to be created. It accepts values in “String” format, which can be either hardcoded or provided as a variable in the “String” datatype.

ParentDirectory: This parameter specifies the existing Folder against where the new a folder is to be created. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.
   ii. Folder Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

FolderID: This parameter helps you to view the created Folder’s ID as output of the activity. It returns values in “String” datatype.

FolderURL: It provides the output of the activity as the created Folder’s URL. It returns values in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

DeleteFileorFolder

This activity helps the user to delete a specific file or folder in the connected google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

FileorFolder: *This parameter indicates to provide the existing File/Folder that needs to be deleted. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

Force Delete: It indicates to delete the file or folder permanently without moving it to “Trash” folder and cannot be recovered.

Normally, files deleted from Google Drive are moved to the trash, where they can be restored later. But this option will let you to delete the file/folder permanently.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DownloadFile

This activity helps the user to download the specific file from the connected google drive account folder.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

SelectFile: *This parameter allows you to specify the file that needs to be downloaded. It offers multiple methods to select the file:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and files available for the specified account. The user must manually select the file each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another file if required.
b. Use Variable: Allows you to provide the “File Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After uploading the file to the specified Google account, you will receive the File’s URL and ID. You can use these as a reference to download them.

DownloadLocation: *This parameter specifies to provide the path where the file will be downloaded on the local system. It accepts values in the String format, which can either be hardcoded or passed as a variable of the String datatype.

FileName: It indicates to provide a custom name for the file to be downloaded. It accepts values in the String format, which can either be hardcoded or passed as a variable of the String datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

LocalFilePath: This parameter allows you to view the output of the activity as the file path of the downloaded file on the local system. It returns values in the String datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Find Files or Folder

This activity allows users to search for and retrieve the File ID of a specific file or folder within a designated Google Drive account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google DriveThis parameter indicates the account name associated with the integration.

INPUT

FolderID: *This parameter indicates to provide the Folder ID against which the details need to be retrieved. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

MaxResult: Specifies to provide the size of files or folders to be retrieved from the provided input. It accepts values in “String” datatype. 

What to Return: Select an option from the dropdown to specify whether to retrieve files or folders from the designated Google account. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

File or Folder ID: It helps you to return the output of the activity as the file or folder ID retrieved from the specified folder and it returns in “String” datatype. 

File or Folder List: It helps to view the output of the activity as the list of files or folders ID retrieved from the specified folder.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.

False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

GetFileorFolder

This activity helps the user to retrieve the information of the specified file or folders in the connected google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

FileorFolder: *This parameter indicates to provide the File/ Folder against which the details need to be retrieved. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DriveFileorFolder: This parameter provides the output of the activity as the details retrieved from the specified file or folder. Below is the information that can be retrieved:

CreateDate: Displays the creation date of the file or folder.
ID: Provides the unique identifier of the file or folder.
Modified Date: Shows the latest modified date of the file or folder.
Name: Displays the name of the file or folder.
Owner: Indicates the account holder’s name for the file or folder in Google Drive.
Size: Provides the total size of the file or folder.
Type: Specifies the type of file and indicates “Folder” if a folder is selected.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

How to view the details of the file/ folder?

The parameter DriveFileorFolder is of the datatype
List<Robility.GoogleDrive.DriveFileorFolder>.

To view the list of details, follow these steps using the ForEach activity:

1. Drag and Drop the ForEach activity into your workflow.
2. In the Properties panel, set the Type Argument to Robility.GoogleDrive.UploadedFileInfo by selecting it from the Browse for types option.
3. Add a Write Log activity inside the ForEach sequence to print the output of the activity.
4. In the Write Log activity, set the input string as “Item.ID” to print the ID of the uploaded file.
5. Set the Log Level to Info.
6. You can follow the same steps to view additional details:
a. Item.Name – To view the name of the uploaded file.
b. Item.URL – To view the URL of the uploaded file.

GetFileorFolderList

This activity helps the user to retrieve the list of files and folders from the specified Folder ID in the connected google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

FolderID: *This parameter indicates to provide the Folder ID against which the details need to be retrieved. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DriveFolderList: It helps you to view the output of the activity as the details retrieved from the specified folder. Below is the information that can be retrieved:

CreateDate: Displays the creation date of the file or folder.
ID: Provides the unique identifier of the file or folder.
Modified Date: Shows the latest modified date of the file or folder.
Name: Displays the name of the file or folder.
Size: Provides the total size of the file or folder.
IsFolder: Specifies whether the indicates item is File or Folder in Boolean values.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

How to view the details of the file/folder?

The parameter Drive File List is of the datatype
“List<Robility.GoogleDrive.FileorFolderList>”.

To view the list of details, follow these steps using the ForEach activity:

1. Drag and Drop the ForEach activity into your workflow.
2. In the Properties panel, set the “Type Argument” to “Robility.GoogleDrive.FileorFolderList” by selecting it from the “Browse for types” option.
3. Add a Write Log activity inside the ForEach sequence to print the output of the activity.
4. In the Write Log activity, set the input string as “Item.ID” to print the ID of the uploaded file.
5. Set the Log Level to Info.
6. You can follow the same steps to view additional details:
a. Item.Name – To view the name of the uploaded file.
b. Item.URL – To view the URL of the uploaded file.

MoveFile

This activity helps the user to move a file or folder form one destination to another destination folder within the connected google account.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

SourceFile: *This parameter indicates the user to provide the source path of the file you want to move. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and files available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

Destination Folder: *This parameter indicates the user to provide the destination folder to where the file needs to be moved. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders and files available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
    i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

NewFileID: This parameter provides the output of the activity as the unique identifier of the new file moved to the destination folder. It returns values in the String datatype.

NewFileURL: This parameter provides the output of the activity as the URL of the new file moved to the destination folder. It returns values in the String datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

UploadFile

This activity allows users to upload any file from their local system to a specified folder in the connected Google account.

Limitations

All types of files can be uploaded, except for .exe files, which are restricted.

Properties

Configuration

Each activity requires a connection with Google Drive API. Once you select the respective project name where Google Drive has been integrated, the activity will automatically retrieve the available connections for that project.

Below are the properties available after the project has been integrated:

Google Drive: This parameter indicates the account name associated with the integration.

INPUT

FilePath: *This parameter allows users to select the file path to be uploaded to the specified folder. It provides multiple options for selecting the file:

1. BrowseFile: Enables users to browse and select files from the local system by opening the file explorer. Each file must be manually selected each time by the user.
2. BrowseFolder: Enables users to browse and select folders from the local system by opening the file explorer. Each folder must be manually selected each time by the user.
3. Clear: Allows users to clear all the selected file/folder values.
4. Use Variable: Allows users to specify the “File/Folder Path” using a variable in “String” format. The values can be hardcoded as a string or passed as a variable of the “String” datatype.

DestinationFolder: *This parameter specifies to provide the existing Folder available in Google drive against where the file needs to be uploaded. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Click on Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Three-Line Menu: Clicking on the “Three lines” icon will open a context menu with the following two options.
a. Reload Folder Picker: Refreshes the selected folder to select another folder if required.
b. Use Variable: Allows you to provide the “Folder Name” as a variable in “String” format. You can either hardcode the values as a string or use a variable of the “String” datatype. Below are the values that can be provided as variable,
     i. URL or ID: After creating the folder in the specified Google account, you will receive the Folder’s URL and ID. You can use these as a reference to add a new folder.
    ii. Folder Name: You can either hardcode the name as a string or provide a variable of the “String” datatype.

OverwriteOption: This option allows users to overwrite an existing file or folder in the specified folder within the connected Google account. Use this option if the file or folder at the provided path already exists in the destination folder. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

UploadedFileDetails: This option helps the user to view the details of the uploaded file, which includes the following information:

ID: The unique identifier of the file uploaded to the specified folder.
Name: The full name of the uploaded file.

URL: The link to access the uploaded file.
ParentID: The unique identifier of the folder where the file has been uploaded.

Represents mandatory fields to execute the workflow.

How to View the Output?

The parameter UploadedFileDetails is of the datatype
“List<Robility.GoogleDrive.UploadedFileInfo>”.

To view the list of details, follow these steps using the ForEach activity:

1. Drag and Drop the ForEach activity into your workflow.
2. In the Properties panel, set the “Type Argument” to “GoogleDrive.UploadedFileInfo” by selecting it from the “Browse for types” option.
3. Add a Write Log activity inside the ForEach sequence to print the output of the activity.
4. In the Write Log activity, set the input string as “ID” to print the ID of the uploaded file.
5. Set the Log Level to Info.
6. You can follow the same steps to view additional details:
a. Name – To view the name of the uploaded file.
b. URL – To view the URL of the uploaded file.
c. ParentID – To view the ID of the folder where the file has been uploaded.

Use Case

Objective: Automate the secure storage of employee documents by uploading them from local storage to Google Drive.

Description: Currently, the HR department receives employee documents via email and manually saves them to a local system. To enhance document security, the company aims to store these files on Google Drive instead. Automating this process will ensure secure, centralized storage while reducing manual handling.

Pre-requisites: Connection to the Google Drive is required.  

Steps to execute a bot

In the following steps, we have created an application named “W3 schools – website”. To get detailed information on how to create an application,

1. Create a solution named as “GoogleDrive”.
2. Drag and drop the “Read” activity from the “EmailAutomation” feature.
a. It helps to read and extract unread mails received from the employee.
b. Double click on the activity and provide the “Account name” and “Folder Name” as your outlook account address. 
c. Provide the “Foldername” as “Inbox” to read the mails.
d. Provide “UnRead” as “True”.
e. Declare a variable as “Read_ml” in the “List” property to store the read mails in a variable for further processing. It will be used as input in other email activities.
     i. Method 1 – Click on the “List” property within the “Read” activity and enter the variable name. In this case, we are using “Read_ml” Then, press “Ctrl+Q,” which is a shortcut key to create a variable. 
    ii. Method 2 – Click on the Variables pane and enter the name “Read_ml.” Then, in the “Variable Types” column, select “Browse for Types” from the dropdown menu.
   iii. The .Net window for data types will appear on the screen, enter the type of name as “System.Collections.Generic.List” and choose “Microsoft.Office.interop.Outlook.MailItem” then click on “OK” button.
3. Next add the “Assign” activity from “Primitives” feature next to the “Read” activity. 
a. Here create a variable with “String” datatype as “UploadPath” and assign the path where the attachment from the email needs to be saved.
4. Now, Add the “Extract Mail Message” activity next to the assign activity. 
a. In the “AttachmentPath” property, provide the variable as “UploadPath” to save the attachments from email. 
b. Choose the “InputType” as “MailItem” from the drop-down as we are using the “Read_ml” variable as input here.
c. Specify the “MailItem” as “Read_ml(0)” here to extract the values from the mail using the variable.  
5. Let’s create folder in the “Google Drive” to upload the attachments against it.
a. Drag and drop the “CreateFolder” activity from Google Drive feature. 
b. In the “FolderName” property, provide the value as “Employee1”.
c. Choose a “Parent directory” folder in the Google Drive where it needs to be created. 
d.  Move to the “Folder ID” in the output section of the activity to declare a variable to get the created Folder ID. 
     i. Provide the variable name as “Employee_FID” and press “CTRL+Q” to create a variable. 
6. Next, add the “GetFolderInformation” from the “FS Automation” feature to iterate and collect the list of attachments to upload them to Google Drive. 
a. Double click on the activity and provide the “FolderPath” as “UploadPath” variable.   
b. Declare a variable in the “Files” in the output section as “Emp_Files” to retrieve the files list from the provided path. 
7. Place the “For each” activity next to the “GetFolderInformaion” activity to iterate collection of files to upload them. 
a. Enter “Emp_Files” as the input value here, in which is where we have stored the read mails.
b. The values from “Emp_Files” have been assigned to the “Item.”
c. Select “String” as the “TypeArgument” since it’s a list of string.
8. Next add the “Assign” activity from “Primitives” feature inside the “ForEach” activity. 
a. Here create a variable with “String” datatype as “FDPath” to concatenate the path along with file name received from Get Folder information activity.
b. In the “Value” parameter, provide the value as UploadPath + “\” + item. 
9. Now, add the “Upload File” activity into the For each sequence.
a. In the “FilePath” property, provide the value as “FDPath” to upload the file that has been collected from local system. 
b. Move to the “DestinationFolder” and provide the value as “Employee_FID” variable that has been created as output in the “Create Folder” actiivty. 
10. Now, save and execute the bot. 

The bot will read and extract the attachments from the mail to the provided path. Then creates a folder as “Employee1” in connected google drive to upload the attachments. 

GoogleDocumentAI

Introduction

Google Document AI is a suite of AI-powered tools and APIs designed to automate document processing tasks. It leverages advanced machine learning algorithms to extract structured data, analyze content, and automate workflows within documents, enabling organizations to streamline document-based processes.

Benefits

  1. Automated Data Extraction: Document AI automates the extraction of structured data from documents, such as invoices, receipts, contracts, and forms, reducing manual data entry efforts.
  2. Semantic Understanding: It understands the context and semantics of content within documents, enabling intelligent analysis, categorization, and extraction of information.
  3. Integration with Google Services: Document AI seamlessly integrates with Google Workspace (formerly G Suite) and other Google services, enhancing collaboration and productivity in document-centric workflows.
  4. Customizable Workflows: Organizations can customize Document AI workflows to suit their specific document processing needs, improving efficiency and accuracy.
  5. Scalability: The cloud-based nature of Document AI allows for scalable document processing, accommodating large volumes of documents with ease.

Use Cases

1. Invoice Processing: Automatically extract invoice details such as vendor information, line items, and totals from scanned invoices using Document AI, speeding up accounts payable processes.

2. Document Classification: Classify documents based on content, types, or categories using Document AI, facilitating document management, retrieval, and organization.

3. Form Recognition: Recognize and extract data from forms, surveys, and questionnaires, enabling automated data capture and analysis.

4. Content Analysis: Analyze document content for sentiment analysis, key insights, trends, and patterns, supporting decision-making and business intelligence.

5. Text Extraction: Extract text from images, PDFs, and scanned documents, enabling text searchability, indexing, and information retrieval.

Release Notes

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

FormParser

This activity is used to parse the documents to extract the text, data table and Json format from the specified document using the Google AI API account.

Create Project ID

To automate with Form parser activity, you need to create a project through Google Document AI API, follow the below steps.

Step 1: Create a Project inside the Google Cloud Platform, click here to creating and managing projects. Please use a valid Gmail Account for accessing into the portal. Make sure to keep a note of your Project ID, which will be used in the activity.
Step 2: Once project ID is created, you need a Google Cloud Service Account inside your project, click here to create a service account.
Step 3: Mention the role as “Owner” while creating the service account.
Step 4: Download the Service Account Key and save it in a local folder. Follow the below link for detailed step by step procedure,
https://cloud.google.com/document-ai/docs/setup
Step 5: Once the private key is downloaded, enable the Cloud Document AI API for your project. Follow the below link for enabling and disabling this API,
https://cloud.google.com/service-usage/docs/enable-disable

Properties

INPUT

ApiKeyPath:* Specify the API key path that is stored in the local which was given at the time of registration. This is a mandatory field.

InputDocumentPath:* Specify the input document path to parse the text/ json format/ table from the documents. This is a mandatory field.

Location: Specify the location as US / EU from the drop-down. This is not a mandatory field.

ProjectID:* Specify the project ID created at the time of registration. This is a mandatory field.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Google Document AI feature in use.

OUTPUT

EntitiesJson: Declare a variable to get the Json format of the specified document. This is not a mandatory field however declare a variable to get the result

OutputText: Declare a variable to extract the text as output from the specified document. This is not a mandatory field however declare a variable to get the result

Result: Declare and assign a variable to get the return status of the condition either as success or failure. This is not a mandatory field however declare a variable to get the result.

TableDataset: Declare a variable to extract the output as table from the specified document. This is not a mandatory field however declare a variable to get the result.

* Represents mandatory fields to execute the workflow

Create Container

This activity is used to connect to Microsoft Azure blob storage to create containers that help download and upload files. A container organizes a set of blobs, like the directory in a file path system. A storage blob can include number of containers, and the containers can create “n” number of files.

Properties

INPUT

ContainerName:* Specify a name for the container to be created.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use.

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been created, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

Example

The following example illustrates on how we can use the create container activity to create a container in the Microsoft azure blob storage. Here we are going to create a container “azuretest1” in the azure blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the create container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be created within double quotes. Here it is“Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it isTesting.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g.,Testing.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and creates a container in the Azure blob storage.

AmazonS3

Amazon S3 (Simple Storage Service) is a scalable, secure, and durable cloud storage service provided by Amazon Web Services (AWS). It is designed to store and retrieve large amounts of data, making it an ideal choice for organizations seeking scalable and cost-effective cloud storage solutions. In Robility, Amazon S3 offers activities and integrations that allow automation bots to interact with S3 buckets and manage data seamlessly.

Benefits

1. Scalable Storage: Amazon S3 offers virtually unlimited storage capacity, allowing organizations to scale storage resources based on their needs without worrying about infrastructure limitations.

2. Cost-Effective: It provides cost-effective storage solutions with pay-as-you-go pricing, enabling organizations to pay only for the storage they use, reducing overall storage costs.

3. High Durability: Amazon S3 ensures high durability and data availability with multiple redundant copies of data stored across different availability zones, minimizing the risk of data loss.

4. Security Features: S3 offers robust security features such as encryption, access controls, and data lifecycle policies, ensuring data security and compliance with regulatory requirements.

5. Integration with AWS Services: It seamlessly integrates with other AWS services, enabling automated data management workflows, data processing, and analytics.

6. Data Management: Amazon S3 facilitates efficient data management, including storage, retrieval, versioning, replication, and data archival, enhancing data governance and data lifecycle management practices.

Use Cases

1. Data Backup and Recovery: Use Amazon S3 in automation workflows for automated data backup and recovery processes, ensuring data resilience and disaster recovery capabilities.

2. Document Storage and Management: Store and manage documents, files, and media assets generated or used in automation processes in Amazon S3 buckets, providing a centralized repository for document management.

3. Data Transfer and Integration: Transfer data between Robility and Amazon S3 buckets, enabling seamless data exchange and integration between systems.

4. Data Archival: Archive historical data and logs from automation processes in Amazon S3 for compliance, auditing, and long-term storage purposes, ensuring data retention and regulatory compliance.

5. Data Analytics and Reporting: Use Amazon S3 to store data for analytics and reporting purposes, enabling automation bots to analyze and derive insights from large datasets stored in S3 buckets.

6. Automated Data Processing: Utilize Amazon S3 for automated data processing tasks, such as data transformation, cleansing, and enrichment, supporting data-driven decision-making in automation processes.

Release Notes

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AmazonS3Scope

This activity is the main authentication activity to be used before using any AmazonS3 activities. It acts as a package into which the activities are dropped for further execution.

Properties

INPUT

AccessKeyID:* Specify the access Key ID which was provided at the time of registration.

RegionEndpoint:* Specify the region end point provided at the time of registration.

SecretAccessKey:* Specify the secret access key provided at the time of registration.

MISC

Body: This remains empty and auto populates when an activity is dropped into the AmazonS3 scope.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of amazonS3 automation feature in use.

* Mandatory fields to execute the workflow.

Once the Access key ID, End point and Secret access key is entered, drag, and drop any of the activities from the Amazon S3 feature to be executed.

CreateBucket

This activity is used to create a bucket in Amazon S3. Every object that we store in Amazon S3 must be stored in a bucket for which we need to create one.

Properties

INPUT

BucketName:*  Enter a name for the bucket to be created within double quotes.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”.
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error.

Version: t specifies the version of amazonS3 automation feature in use.

OUTPUT

Output: Declare a variable here to view the result in the output box. This is not a mandatory field. However, to confirm if the bucket has been created, a variable must be declared here to see the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteBucket

This activity is used to delete a bucket from Amazon S3.

Properties

INPUT

BucketName:* Specify the name of the bucket which has to be deleted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of amazonS3 automation feature in use

OUTPUT

Output: Declare a variable here to view the result in the output box. This is not a mandatory field. However, to confirm if the bucket has been deleted, a variable must be created here, to view the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteFile

This activity is used to delete a specific file from a specific bucket.

Properties

INPUT

BucketName:* Specify the bucket name from which the file has to be deleted.

KeyName:* Specify the key name of the file which has to be deleted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of amazonS3 automation feature in use

OUTPUT

Output: Declare a variable here to view the result in the output box This is not a mandatory field. However, to confirm if the file has been deleted, a variable must be created here, to view the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DownloadFile

This activity is used to download a specific file from a specific bucket.

Properties

INPUT

BucketName:* Specify the name of the bucket from which the file has to be downloaded.

FilePath:* Specify the location in which the downloaded file has to be saved.

KeyName:* Specify the key name of the file which has to be downloaded.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Regex Automation feature in use.

OUTPUT

Output: This is not a mandatory field. However, to confirm if the file has been deleted, a variable must be created here, to view the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

GetFileDetails

This activity is used to get the file details of a specific file uploaded to amazon S3 bucket.

Properties

INPUT

BucketName:* Specify the name of the bucket from which the file details are required.

KeyName:* Specify the key name of the file given when uploaded.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error.

Version: It specifies the version of amazonS3 automation feature in use.

OUTPUT

Output: Declare a variable here to view the result in the output box. This is not a mandatory field. However, to get the output of the file details in an output box, a variable must be created here.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

ListAllFiles

This activity is used to get the list of all files present in a specific bucket.

Properties

INPUT

BucketName:* Specify the name of the bucket from which the list of all file details is required.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of amazonS3 automation feature in use

OUTPUT

Output: Declare a variable here to view the result in the output box. This is not a mandatory field. However, to view the list of files, a variable must be created here, to view the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

UploadFile

This activity is used to upload a file into a bucket available in Amazon S3.

Properties

INPUT

BucketName:* Specify the name of the bucket into which the file has to be uploaded.

FilePath:* Specify the path of the file which has to be uploaded into the bucket.

KeyName:* Specify any key name for the file that is uploaded.

ReplaceFile:*Specify true if the file has to replace an existing file and false if it need not be replaced.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the Amazon S3 feature in use.

OUTPUT

Output: Declare a variable here to see the result in an output box. This is not a mandatory field. However, to confirm if the file has been uploaded, a variable must be created here, to view the result in an output box.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

LoadEnvironment

This activity helps the helps the user in setting up and configuring the runtime environment required for the execution of scripts, applications, or automation tasks. It encompass tasks such as loading necessary libraries, initializing variables, configuring connections to databases or external services, and preparing the environment for the successful execution of subsequent actions.

Properties

INPUT

EnvironmentNameThe “Name” mentioned in this parameter refers to the name of the downloaded “Python Script” used for automation.
By default, the name will be auto filled and disable to make any changes.

EnvironmentVersion: It indicates the version of the script that is being used.

PythonPath:* It indicates to provide the “Path” of the Python application. You can either hardcode the values in “String” datatype or can provide the values in the “String” format. This field accepts “String” datatype.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Pre-Requisites

Before executing the activity, verify the following prerequisites:

  • The system must have Python application version 3.11.6 with 64 bits installed. Versions below 3.11.6 or higher versions will not be supported for this activity. During the application installation, please choose the “Customize” installation mode and ensure to check the “Add Python to environment variables” option before proceeding.

Click here to know how the activity is used in the workflow.

AzureVM

Introduction

These activities enable IT Departments to easily automate important Azure operations in their workflows like managing Resource Groups, Storage Accounts, and Virtual Machines.
Microsoft Azure Virtual Machines (VMs) provide scalable compute capacity in the cloud. VMs are on-demand, scalable, and customizable, and can be used for a variety of purposes such as hosting applications, running enterprise workloads, or developing and testing software.

Pre-requisites

Before using Azurevm with the Robility platform, users must first enable outbound connections with the AzureVm platform to create and retrieve the API required for authentication. Depending on the authentication type you select, you will need one of the following credentials:

1.  Client ID
2. Client Secret
3. Tenant ID
4. Subscription ID

 And token URL with every API request.

How to establish a connection?

1. Login to the Robility Manager platform.
2. Navigate to your tenant and choose the desired project.
3. Click on the “App Integrations”.
4. Search and navigate to “AzureVM” from the list of pre-built connections available.
5. Click on it and choose the authentication type.
6. Enter the required credentials and click on “Connect”.

7. Once your credentials have been provided, the list will be added in the “Connections”.

Now, you will be able to automate the activities.

Delete

The Delete VM operation is used to remove an existing virtual machine (VM) from the Azure environment. This operation can also handle associated resources such as disks and snapshots based on the specified properties.

Properties

INPUT

DeleteAssociatedDisks: Indicates whether to delete the disks associated with the virtual machine along with the VM. When checked (true), all disks attached to the VM will be deleted. If unchecked (false), the disks will not be deleted and will remain in the resource group.

DeleteSnapshots: Indicates whether to delete any snapshots associated with the VM’s disks. When checked (true), all snapshots linked to the VM’s disks will be deleted. If unchecked (false), the snapshots will remain in the resource group.

WaitForCompletion: Indicates whether to wait for the deletion process to complete before returning control. When checked (true), the system will wait until the VM and specified resources are fully deleted before completing the operation. If unchecked (false), the system will return immediately after initiating the delete request, and you will need to manually check the status.

VirtualMachineName*: Specifies the name of the virtual machine you want to delete. This field supports only strings and String variables.

WaitIntervalSeconds: Specifies the interval (in seconds) between checks for completion if WaitForCompletion is enabled. This field allows the system to poll for the deletion status at regular intervals until the operation is complete.

MISC

DisplayName: The display name of the activity or operation. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

VersionIndicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM and specified resources were successfully deleted or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Ensure that you understand the implications of deleting associated disks and snapshots, as this action is irreversible.
2. The WaitForCompletion property controls whether the system will wait for the entire delete process to finish. If enabled, the system will check for completion at intervals specified by WaitIntervalSeconds.
3. Deleting a VM will remove it and potentially its associated resources, so ensure that any important data is backed up before performing the delete operation.

GetList

The Get List operation is used to retrieve a list of all virtual machines (VMs) within a specified resource group in the Azure environment. This operation provides a summary of VMs, including their names and basic details.

Properties

INPUT

ResourceGroupName*: Specifies the name of the resource group from which to retrieve the list of virtual machines. This field supports only strings and String variables.

Misc

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

Output

Result: t provides the ability to view the execution status of the activity. It returns values in “Boolean.” 
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

VMList: Provides a list of virtual machines within the specified resource group. Each item in the list includes basic details such as the VM’s name and status.

Represents mandatory fields to execute the workflow

Notes

1. The VMList output provides an overview of all VMs in the resource group, which can be useful for management, monitoring, and reporting.
2. This operation retrieves a snapshot of the current state of VMs within the resource group and does not modify any resources.

GetVM

The Get VM operation is used to retrieve information about a Specific existing virtual machine (VM) in the Azure environment. This operation provides details about that specified VM configuration, status, and other relevant properties.

Properties

INPUT

Name*: Specifies the name of the virtual machine whose details you want to retrieve. This field supports only strings and String variables.

ResourceGroupName*: Specifies the name of the resource group that contains the virtual machine. This field supports only string.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation.

Status: Provides detailed information about the specified virtual machine. This field contains various details such as the VM’s status, configuration, size, operating system, and any associated resources.

Represents mandatory fields to execute the workflow

Notes

1. The output provides a comprehensive overview of the VM’s details, which can be useful for monitoring, troubleshooting, and management purposes.
2. This operation does not modify the VM; it is solely for retrieving and displaying information about the VM.

Create

Creates a new virtual machine from a disk or image on Azure environment.

Properties

INPUT

AdminPassword*:  Specifies the password for the provided username. This field supports only SecureString variables.

AdminUsername*; Specifies the administrator’s username for the virtual machine. This field supports only strings and String variables.

AzureRegion*: Establishes the Azure region (which is an area within a geographical place, containing one or more datacenters) of the virtual machine. If not specified, the region from the resource group is used. If a custom image is provided, then it uses the region specified for the image. This field supports only strings and String variables. The possible values are listed in the below drop-down list. More information about the Region parameter’s possible values can be found here.

ComputerName*: Specifies the name of the computer. This field supports only strings and String variables.

Disk:* Specifies the disk of the virtual machine.

DNSName: Specifies the name label of the DNS. This field supports only strings and String variables.

Image: *Specifies the virtual machine image. Make sure to input a value for one of the following parameters: Disk or Image. If both parameters are set, then only Disk is taken into consideration.

ImageLicensed :Specifies the use of an Azure or on-premises license. The possible values are AzureLicensedWindowsClient, and WindowsServer. The default value is AzureLicensed.

Name: *Specifies the name of the new virtual machine. This field supports only strings and String variables.

OSDiskType:* Specifies the OS disk type. This value is ignored if the virtual machine is created from disk. The possible values are StandardLRSPremiumLRSStandardSSDLRS, and UltraSSDLRS. The default value is StandardLRS.

ResourceGroupName:* Specifies the name of the resource group. This field supports only strings and String variables.

Size:Specifies the size of the virtual machine. The possible values are listed in the below drop-down list.

SSHPublicKey:* Specifies the SSH public key. This field supports only SecureString variables.

MISC

DisplayName: The display name of the activity. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the activity.

OUTPUT

Result: Gives the success status of the activity.

Represents mandatory fields to execute the workflow.

Notes

1. Make sure to input a value for one of the following parameters: Passwordor SSHPublicKey. If both parameters are set, then only SSHPublicKeyis taken into consideration.

Restart

The Restart VM operation is used to restart an existing virtual machine in the Azure environment. This operation stops and then starts the VM, which can be useful for applying updates or resolving issues.

Properties

INPUT

VirtualMachine:* Specifies the name of the virtual machine you want to restart. This field supports only string.

WaitForCompletion: When the value is True, waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is True.

MISC

DisplayName: The display name of the activity or operation. This field supports only strings and String variables.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chose

VersionIndicates the version of the activity.

Output

Result: Provides the success status of the operation. This field indicates whether the VM was successfully restarted or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Restarting a VM involves stopping and then starting it. During this process, the VM will be temporarily unavailable.
2. The VM must be in a running state before you can restart it. If the VM is stopped or deallocated, it will need to be started first.

Shutdown

The Shutdown VM operation is used to shut down an existing virtual machine (VM) in the Azure environment. This operation is typically used to turn off a VM without deallocating it, meaning that the VM remains in the resource group and its configuration is preserved, including its public IP address if applicable.

Properties

INPUT

WaitForCompletion: When the value is True, it waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is False.

VirtualMachine*: Specifies the name of the virtual machine you want to shut down. This field supports only strings and String variables.

WaitIntervalSeconds: Specifies how long to wait (in seconds) for the activity to run before an error is thrown. If not set, the activity runs until completion. It is executed only when the WaitForCompletion parameter has the value True.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully shut down or if there were any issues during the operation.

* Represents mandatory fields to execute the workflow

Notes

1. Shutting down a VM does not deallocate it, which means the VM retains its public IP address (if any) and is still billed for its reserved resources. This is different from stopping the VM, which deallocates it and can release associated resources.

Stop

The Stop VM operation is used to stop an existing virtual machine (VM) in the Azure environment. This operation can be useful for conserving resources or performing maintenance.

Properties

INPUT

ReservePublicIPAddress: Indicates whether to retain the public IP address associated with the virtual machine when stopping it. When checked (true), the public IP address will be reserved and associated with the VM when it is restarted. If unchecked (false), the public IP address may be released, and a new IP address might be assigned when the VM is started again.

WaitForCompletion: When the value is True, it waits for the activity to be completed before moving to the next activity. When the value is False, the activity ends immediately after the API call is made. The default value is True.

VirtualMachine*: Specifies the name of the virtual machine you want to stop. This field supports only strings.

WaitIntervalSeconds:  Specifies the interval (in seconds) between checks for completion if WaitForCompletion is enabled. This field allows the system to poll for the stop status at regular intervals until the operation is complete.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: Indicates the version of the activity.

OUTPUT

ResultProvides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation. It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Notes 

1. When ReservePublicIPAddress is checked (true), the public IP address will be retained for the VM, ensuring that the same IP address is assigned when the VM is restarted. This is important for scenarios where a static IP address is needed.
2. The WaitForCompletion property controls whether the system waits for the VM to stop fully before completing the operation. If enabled, the system will check for completion at intervals specified by WaitIntervalSeconds.
3. Stopping a VM will deallocate it, releasing its compute resources but not necessarily its associated public IP address unless ReservePublicIPAddress is set to false.

Start

The Start operation is used to start an existing virtual machine in the Azure environment. This action is typically performed to power on a VM that has been stopped or deallocated.

Properties

INPUT

VirtualMachine:* Specifies the name of the virtual machine you want to start. This field supports only String variables. Example: “MyVM”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Skiponerror: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It specifies the version of the AzureVm feature in use.

OUTPUT

Result: Provides the success status of the operation. This field indicates whether the VM was successfully started or if there were any issues during the operation.

Represents mandatory fields to execute the workflow

Notes

1. Ensure that the virtual machine is in a stopped or deallocated state before attempting to start it. If the VM is already running, this operation will have no effect.

If

This activity helps the user to make decisions based on a specified condition. It provides a way to create branching logic, enabling the robot to adapt dynamically based on the outcome of the condition evaluation.

Key characteristics

The If-Else activity evaluates a specified condition. If the condition is true, the activities within the “Then” section are executed. If the condition is false, the activities within the “Else” section (if provided) are executed.

The “Then” section represents the set of activities to be executed if the condition is true. The “Else” section (optional) represents the set of activities to be executed if the condition is false.

If needed, If-Else activities can be nested, allowing for more complex decision-making structures within the workflow. This is achieved by placing an additional If-Else activity within the “Then” or “Else” section of another.

Properties

MISC

Condition: This indicates the condition to be met while the sequence of actions is executed. You can either provide the values hardcoded in “Boolean” format or enter the values in “Boolean” datatype. This field accepts the values in “Boolean” datatype.

DisplayName: *Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Represents mandatory fields to execute the workflow

Example

Here’s an example of how the activity is used in the workflow –

In the following example, I am going to automate a simple use case with “WebAutomation” to find out whether the element exists on the page and proceed further with “IfElse” activity.  Here I am using the “ https://www.sutherlandglobal.com/ link to detect the “ContactUs” button.

Steps to execute the bot

1. Open an existing solution or create a new workflow.
2. Install the “WebAutomation” feature from the “Manage” features.

3. Drag and drop the “ElementExist” activity to the workflow and set it as start node.
4. Here I have already launched to the website.
5. Double click on the activity to detect the element.
a. Here, choose the “Select Element” option.
b. Detecting over the “ContactUs” button.
c. Once you have chosen the button, the element’s value will be stored in the “Spy” window, along with an “image” of the application.
d. If you wish to add or remove any attributes, you can edit the “Attributes Editor.”   In this case, we are not making any changes in the “Editor.”
e. Once you click on the “Save” button, the element’s values will be stored in the activity window.
6. Now, navigating to the “ExistStatus” in the properties to declare a variable to view the output of the activity.
a. There are two methods to store the spied value in the variable.
b. Method 1: Double-click on the variable parameter “ExistStatus” in the “Output” section and enter a name that helps you easily identify it in the flow. Here, I’m using the name “Exists” and using the shortcut key “Ctrl+Q” to create the variable.
c.  Method 2: Click on the variable pane, enter your preferred name (here, I’m using “Exists”), and choose the data type as “Boolean” since the output value accepts the boolean data type.
7. Then, adding the “If” activity from the “ControlFlow” feature.
a. Here I am using this activity to check whether the value exists when the website is launched, based on the output, the bot will make decisions.
b. Double click on the activity and here I am providing the “Condition” as “Exists”.
8. Now, In the “Then” branch, I am adding a write log to write the success message if the element exists on the website.
9. In the “Else” branch, I am adding the “BrowserControl” activity from the “WebAutomation” feature.
a. Here I am providing the “URL” as the website URL –https://www.sutherlandglobal.com/.
b. Choosing the “ActionType” as “Refresh” from the drop-down as here I am trying to refresh the browser if the element is not found.
10. Now, save and execute the workflow.

Collections

Introduction

Collections in Robility refer to data structures or objects that allow bot developers to store, organize, and manipulate data efficiently during automation processes. Collections play a crucial role in managing data elements such as variables, arrays, lists, dictionaries, and other complex data types.

1. Variables: Collections can store individual data elements or variables, such as numbers, text strings, dates, and Boolean values. Variables are used to hold temporary or permanent data values that are used and modified throughout the automation workflow.
2. Arrays: Arrays are collections of variables or data elements of the same data type that are stored under a single name. They allow bot developers to store and access multiple related values using index-based referencing. Arrays are particularly useful for handling lists of items or data sets.
3. Lists: Lists are dynamic collections that can store a sequence of data elements of varying data types. Unlike arrays, lists can grow or shrink in size dynamically as data is added or removed. Lists are commonly used for processing and iterating through sets of data during automation tasks.
4. Dictionaries: Dictionaries, also known as associative arrays or maps, are collections that store key-value pairs. Each element in a dictionary consists of a unique key associated with a corresponding value. Dictionaries are ideal for storing structured data where quick access to values based on keys is required.
5. Collections Operations: RPA platforms and programming languages provide built-in functions and methods to perform various operations on collections. These operations include adding or removing elements, searching for specific values, sorting data, iterating through collection items, and merging or splitting collections as needed.
6. Data Management: Collections help bot developers efficiently manage and manipulate data during automation tasks. They enable data organization, retrieval, processing, and transformation, enhancing the automation workflow’s effectiveness and accuracy.

Benefits

1. Efficient Data Management: Collections allow for organized storage and retrieval of data elements, enabling efficient data management during automation processes.
2. Flexibility: Collections support various data types and structures, such as arrays, lists, dictionaries, and variables, providing flexibility in handling different types of data within the workflows.
3. Enhanced Data Processing: Collections facilitate data processing operations, including sorting, filtering, searching, and iterating through data elements, enhancing the automation workflow’s capabilities.
4. Improved Reusability: By storing data in collections, bot developers can create reusable components and modules that can be easily integrated into multiple automation tasks, reducing development time and effort.
5. Dynamic Data Handling: Collections like lists and dictionaries support dynamic resizing and modification of data, allowing for dynamic data handling based on changing requirements or input data sets.

Use Cases

1. Data Extraction and Processing: Collections are used to extract data from documents, emails, web pages, and other sources, process the extracted data, and store it in structured formats for further analysis or automation tasks.
2. Workflow Automation: Collections facilitate workflow automation by managing data inputs, intermediate results, and outputs, enabling seamless execution of complex automation processes.
3. Data Validation and Verification: Collections help in validating and verifying data against predefined criteria, performing data quality checks, and identifying discrepancies or errors during automation tasks.
4. Dynamic Data Handling: Collections like lists and dictionaries are used for dynamic data handling, such as managing customer records, processing transactional data, handling inventory information, and more.

Release Notes

v.1.3.4

In this release, we have introduced a new activity:

New Activity

Append Item to Collection

Enables adding one or more items to an existing collection. Supports multiple data types through the built-in Collection Builder and helps in organizing and storing data efficiently within automation workflows

Released Date: 20/04/2026

v.1.3.3

In this release, we have introduced a new activity:

New Activities

Build Collection – It creates and initializes a collection such as an array, integer, or string within a workflow. It ensures that all items in the collection share the same data type as the first specified element, maintaining consistency across values.

Released Date: 25/03/2026

v.1.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.2.8

In this release, new activities have been introduced under the Collections feature to simplify comparison and value manipulation within collections, improving data handling and control in automation workflows.

New Activities

1. Compare Collection: Allows users to compare two collections and identify matching or non-matching items based on defined criteria. This activity helps in validating data, detecting differences, and supporting reconciliation and verification use cases.

2. Find and Replace Collection: Enables users to search for a specific value or pattern within a collection and replace it with a new value. This is useful for data cleansing, normalization, and bulk updates across collection items.

v.1.2.4

In this release, we enhanced the Collections feature with three new activities that simplify collection management and manipulation.

New Activities

1. Filter Collection — filter items based on configurable conditions.
2. Merge Collection — combine two or more collections.
3. Collection to DataTable — convert a collection into a structured DataTable for downstream processing.

These additions improve data handling and boost overall workflow efficiency

v.1.1.0

Release Date: 30–08–2025

This release brings new activity the Filter Collection to improve stability and functionality.

New Activity 

Filter Collection: This activity allows users to filter values from a collection based on specified conditions, either retaining or removing the matching items.

Limitation:

The Filter collection supports collections of primitive data types—such as “Int, float, double and string” since filtering conditions can only be applied to these types.

AddToCollection

The collection package in the designer acts as a container to store information/data during the run time. We can use the add to collection activity to dynamically store the data from an excel file or a web service in a table format.

Properties

Misc

Collection: *This indicates the name of the collection variable to which the item has to be added.

Display Name: *Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Item: This indicates the name of the variable which has to be added to the collection

TypeArgument: *This indicates the type of the argument which is going to be added. There are number of options from which we can choose.

* Represents mandatory fields to execute the workflow.

Compare collection

This activity helps the user to compare between two collections and provides the updated, modified or findings as result.

Properties

Input

Compare Mode: Specifies how the rows in the collection are compared during matching or lookup operations.

• Key comparison: Compares only the keys.

• Value comparison: Compares only the values.

• Key-Value pair comparison: Compares both the key and its corresponding value together.

Ignore Case*: When enabled, it ignores letter casing while searching. Uppercase and lowercase letters are treated the same when matching values.

First collection*: Specifies the source collection that contains the values to be matched.

Second collection*: Specifies the target collection where the matching values will be searched.

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.

False: Halt the workflow if it encounters any errors.

None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Only In Second: Returns the rows that exist in the second collection but not in the first collection in a structured collection format.

Only in First: Returns the rows that were present in the first collection but are missing in the second collection in a structured collection format

Common items: Returns the rows that are identical in both the first and second collections in a structured collection format.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.

False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ClearCollection

The Clear collection activity helps to clear the items that were added to the collection. This activity can be used with Add to collection only.

Properties

Collection: *This indicates the name of the collection variable to which the item has to be added

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

TypeArgument:* This indicates the type of the argument which is going to be added. There are number of options from which we can choose.

* Represents mandatory fields to execute the workflow

Use Case

Here we are going to automate and demonstrate the utilization of Collections feature. The following activity illustrates on how we are going to clear the name which we added to the collection of lists. Here we are continuing from the Add to collection activity, so, we are going to clear the name in the following example.

Steps to execute the bot

Let’s continue building,

1. Now, Drag and drop Clear collection activity and connect it below Write line activity.
2. From the properties panel, add the variable “Name_Col” in the collections tab.
3. Select the Type argument as “String” from the drop-down list.
4. Drag and drop another write line activity below to the Clear collections activity to ensure whether the item has been removed from the collection.
5. Enter VB expression as “Final Value” + Name_Col.Count.ToString in the box.
6. Now, execute the workflow.

The bot will execute and return the output in the output window. The initial value will be zero before adding the item and after adding the item to the collection, it displays as 1. Once it clears, it displays as zero again.

BuildCollection

The Build Collection activity is used to create and initialize a collection within a workflow. It generates a collection in which all items share the same data type as the first specified element, ensuring consistency across values. It allows users to define the collection type and populate it with values at design time, enabling structured data handling. It helps organize data efficiently and makes it easier to pass and reuse collections across different activities in the workflow.

On the activity screen, provide the initial value (for example, an integer or a string). Additional items can then be added to the collection. Click the field to open the Collection Builder, within the Collection Builder, add the desired values to the collection. All items must be of the same data type as the first item.

For example, if the first item is an integer, all subsequent items must also be integers. Adding a different data type (such as a string) is restricted and will result in a runtime validation error.

Properties

INPUT

First Item*: Specifies the initial value of the collection. This determines the data type for all subsequent items.

MISC

DisplayName: Displays the name of the activity. This can be customized for better readability and easier troubleshooting.

SkipOnError: Specifies a Boolean value (True or False).
True: Continues executing the workflow even if an error occurs.
False: Stops the workflow if an error is encountered.
None: If left blank, the default behavior is False.

Version: Displays the version of the activity being used. This field is auto-populated and read-only.

OUTPUT

New Collection: Stores the created collection for use in other activities. The output type is Collection.

Result: Indicates the execution status of the activity. Returns a Boolean value:
True: The activity executed successfully without errors.
False: The activity failed due to an error.

*Represents mandatory fields to execute the workflow.

Collection to Datatable

This activity allows users to convert collection values into a structured DataTable format, which cannot be achieved directly through syntax.

Properties

INPUT

Collection: * Specifies the existing collection variable to convert, using the ICollection<Object> data type. Refer to the documentation below for instructions on converting to an ICollection<Object> type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: *Returns the output of the activity as a table format in datatable variable.   

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

* Represents mandatory fields to execute the workflow.

Limitations

1. Only a single collection can be converted to a DataTable.
2. If the collection contains nested collections (e.g., a list of lists), the Collection to DataTable activity cannot convert it directly into a DataTable.

Steps to Convert to ICollection<Object> Data Type

This activity accepts input collections only in the ICollection<Object> data type. To convert an existing collection, you can either provide the conversion syntax directly in the “Collection” properties or use an Assign activity.

Option 1: Using syntax in the property field

“collectionVariable.Cast(Of Object)().ToList()”

Option 2: Using Assign activity

Using Assign activity: 

1. Drag and drop an Assign.
2. Create a variable with the ICollection<Object> data type.
3. In the To field, enter the created variable.
4. In the Value field, use the syntax “collectionVariable.Cast(Of Object)().ToList()”.
a. Here, collectionVariable refers to your existing collection variable.

AppendItemToCollection

This activity helps to adds one or more items to the end of a specific collection, supporting multiple data types via the Collection Builder.

Properties

INPUT

Collection*: Specifies the collection variable to which the new items will be appended. This field accepts an ICollection<Object> type.

MISC

DisplayName: Displays the name of the activity. The name can be customized for better readability and troubleshooting.

SkipOnError: Specifies the Boolean value as True or False.

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If this field is left blank, the activity will behave as if False were chosen by default.

Version: Displays the version of the activity being used. This field is auto-populated and read-only.

OUTPUT

New Collection: Stores the resulting collection of type List<Object> after the new items have been appended.

Result: Indicates the execution status of the activity. Returns a Boolean value.
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

How to Add a Collection Builder?

The Append Item to Collection activity appears on the canvas with the following options:

1. Collection – Enter the collection item directly or a hardcoded variable.
2. Collection Builder – Click the button to open the Collection Builder window, which allows you to add multiple items to the collection at once.

Collection Builder Window

The Collection Builder dialog provides a structured way to manage multiple collection values. Once opened, you can:

1. Add multiple InArgument<Object> values at once, with each row accepting any object type as an input argument.
2. Click (+) to add a new row for an additional value.
3. Click (X) to remove an existing row.
4. Click (≡) to open the Expression Editor, where you can write expressions for a specific InArgument<Object> value.
5. Click Save to apply all entered values or Cancel to discard changes.

ExistsInCollection

This activity is used to find out if an item already exists in the collection.

Properties

MIsc

Collection:* This indicates the name of the collection variable to which the item has been added.

Display Name:* Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Item:* This indicates the name of the variable which is already added to the collection.

Result: Declare and assign a variable to return the output. This is a Boolean value. This is not a mandatory field.

TypeArgument:* This indicates the type of the argument which is going to be added. There are number of options from which we can choose.

* Represents mandatory fields to execute the workflow

Find and Replace

This activity allows users to search for a specified value in the input collection and replace it with another value.

Properties

INPUT

Input collection: Specifies to provide the input collection to search within the provided range.

Case Sensitive: Ensures that the search matches the case (uppercase or lowercase) of the provided value exactly.

Operation: Specifies the operation to be performed in the collection.

Available options:

1. Find: Finds and returns the first matching value.

2. Find All: Finds and returns all matching values.

3. Replace: Finds and replaces the first matching value.

4. Replace All: Finds and replaces all matching values.

Find Value*: Specifies the input value to be searched within the collection. Accepts values in String datatype.

Replace Value*: Specifies the value to replace the found text with. This parameter is applicable only when Replace or Replace All is selected. Accepts values in String datatype.

MISC

Argument Type*: Select the type of elements contained in the collection from the drop-down.
For example, if the collection is a list of strings, choose “String” as the argument type.

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.

False: Halt the workflow if it encounters any errors.

None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Found At: Returns the index where the matched value is found in String format.

Updated collection: Returns the output with the updated values in a chosen format in Argument Type.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.

False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Filter Collection

This activity allows users to filter values from a collection based on specified conditions, either retaining or removing the matching items alone.

Limitation

This activity supports collections of primitive data types—such as “Int, float, double and string” since filtering conditions can only be applied to these types.

Properties

Input

Collection: *Specifies the collection variable that contains the data to be filtered.

Filter Action: *Select the desired filter action from the dropdown:

Keep matching items: Retains only the items that meet the specified condition.
Remove matching items: Removes the items that meet the specified conditions from the collection.

Misc

Argument Type: *Select the type of elements contained in the collection from the drop-down.
For example, if the collection is a list of strings, choose “String” as the argument type.

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

CollectionOutput: *Returns a list of objects containing the filtered data from the collection.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Filter Window

This wizard allows you to define specific conditions to filter and retrieve data from the provided collection.

1. AND: Returns TRUE only if allthe conditions separated by AND are true.

2. OR: Returns TRUE only if anyof the conditions separated by OR are true.

3. Name: Displays a datatype of the collection variable.

4. Operator: Specifies the comparison operator to apply on the field, such as:
a. Equals
b. Contains
c. In

5. Value: Provide the value against which the records should be filtered.

6. Add: Click on the Add button to add multiple conditions to filter. 

Click here to download and view the sample workflow using filter collection activity.

Merge Collections

This activity allows the user to merge two existing collections into a single collection variable.

Properties

INPUT

Collection: *Specifies to provide the first existing collection variable in “Icollection<Object>” datatype. Refer to the documentation below for instructions on converting to an ICollection<Object> type.

Second collection: *Specifies to provide the second existing collection variable. “Icollection<Object>” datatype. Refer to the documentation below for instructions on converting to an ICollection<Object> type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Merged Collection: *Returns the output of the activity as the merged collections into one variable.  

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

* Represents mandatory fields to execute the workflow.

Limitations

1. Both input variables must be of the same data type. Throws exception if the two collections are of different data types.
a. Eg: Only String to String datatypes can be converted.

2. The activity merges all elements by default. If duplicate entries are not required, additional filtering logic should be applied after the merge.
a. After merge, if you need to filter any values, use filter collections

Steps to Convert to ICollection<Object> Data Type

This activity accepts input collections only in the ICollection<Object> data type. To convert an existing collection, you can either provide the conversion syntax directly in the “Collection” and “Second Collection” properties or use an Assign activity.

Option 1: Using syntax in the property field

“collectionVariable.Cast(Of Object)().ToList()”

Option 2: Using Assign activity

Using Assign activity: 

1. Drag and drop an Assign
2. Create a variable with the ICollection<Object> data type.
3. In the To field, enter the created variable.
4. In the Value field, use the syntax “collectionVariable.Cast(Of Object)().ToList()”.
a. Here, collectionVariable refers to your existing collection variable.

RemoveFromCollection

This activity is used to remove a particular item from the collection.

Properties

Collection:* This indicates the name of the collection variable to which the item has to be added.

Display Name:* Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

Item: This indicates the name of the variable which has to be added to the collection

TypeArgument:* This indicates the type of the argument which is going to be added. There are number of options from which we can choose.

  Represents Mandatory fields to execute the workflow

Cryptography

Introduction

Cryptography in Robility uses algorithms and techniques to protect data, messages, and transactions from unauthorized access or tampering. This includes methods like encryption, decryption, and hashing to ensure security. Cryptography is essential for maintaining data confidentiality, integrity, and authenticity within RPA.

Key Concepts

1. Encryption: Transforms readable data (plaintext) into an unreadable format (ciphertext) using an algorithm and a secret key, ensuring that only someone with the decryption key can read it.
2. Decryption: Converts the unreadable ciphertext back into readable plaintext using the correct algorithm and decryption key.
3. Hashing: Creates a fixed-length value (hash) from input data using algorithms like MD5, SHA-1, or SHA-256. This ensures data integrity and securely stores passwords.

Benefits

1. Data Confidentiality: Encryption methods like AES (Advanced Encryption Standard) ensure sensitive data stays private and unreadable by unauthorized users, protecting personal information, financial data, and proprietary information.
2. Data Integrity: Hashing algorithms like SHA-256 or SHA-512 create unique hash values for data. These hashes verify data integrity by comparing values before and after transmission. If data changes, the hash will be different, indicating possible tampering.
3. Secure Communication: Cryptographic protocols like TLS or SSL secure communication between bots, servers, and external systems. They encrypt data during transmission, preventing unauthorized access and attacks.
4. Access Control: Cryptographic keys control access to sensitive data. Only those with the correct keys can decrypt and view the information, ensuring that only authorized users can access and modify encrypted data.
5. Compliance Requirements: Cryptography helps organizations comply with data protection laws and standards like GDPR, HIPAA, and PCI DSS, which often require encryption and hashing to protect sensitive information.

Secret Key

A secret key, also known as a symmetric key or private key, is used in symmetric encryption algorithms for both encryption and decryption. This key is crucial for maintaining data security and confidentiality in automation processes involving sensitive information. Different types of data that can be used as a key include:

1. Random Data: Randomly generated data of the required length, crucial for security as predictable keys are vulnerable to attacks.
2. Passphrases: A sequence of words or characters that can be used as a key. Passphrases are easier to remember than random strings but must be long and complex enough to resist attacks.
3. Derived Keys: Keys generated from other data, such as passwords, using Key Derivation Functions (KDFs). KDFs enhance security by adding features like salting and iteration.
4. Key Files: Keys stored in securely managed files accessed by the encryption software. These files may contain binary data or encoded key information.
5. Pre-shared Keys (PSKs): Symmetric keys shared in advance between communicating parties in protocols like TLS or VPNs, used to establish secure communication channels.

Limitations for the secret key for each algorithm:

AES GCM, AES, Rijndael: The key length must be 16 characters.
DES: The key length must be 8 characters.
RC2: The key length must be 5 characters.
TripleDES: The key length must be 24 characters.

Key Encoding

Key encoding involves representing cryptographic keys in a specific format that is suitable for encryption, decryption, and hashing algorithms. This ensures that keys are compatible with cryptographic operations and can be securely managed and transferred between systems.
Robility’s Cryptography feature supports 148 different encoding types. Here are some of the most commonly used key encoding methods:

1. Unicode
2. Unicode (Big-Endian)
3. Unicode (UTF-32)
4. Unicode (UTF-32 Big-Endian)
5. US-ASCII
6. Western European (ISO)
7. Unicode (UTF-8)

Release Notes

v.1.0.5

This release includes the following bug fix:

Bug Fixes

Encrypt File
Fixed an issue in the Encrypt File activity where incorrect error messages (“Input file not found” and “Encryption has failed. Please make sure you use the same algorithm and key for both encryption and decryption operations”) were displayed. The messages have now been updated to reflect the actual cause of the failure.

Released Date: 20/04/2026

v.1.0.4

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.0.3

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

EncryptFile

This activity allows users to easily encrypt files by selecting a key encoding and encryption algorithm.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to encrypt the file based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input File path*: This parameter indicates to provide the input path of the file which needs to be encrypted.

This parameter accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Overwrite: Check this box if you want to overwrite a file if the specified output file path is already in use.

By default, it is unchecked.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output File Path*It assists the user to provide the file path where the encrypted file needs to be saved in the system. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Types of Algorithms

The following algorithms are used to encrypt your data (file or text). Each offers different capabilities and encryption methods. You can choose any of these options in the activity.

AES GCM (Advanced Encryption Standard Galois/Counter Mode):

1. Combines AES encryption with Galois/Counter Mode (GCM), providing both data confidentiality (encryption) and data integrity (authentication).
2. Known for its strong security and efficiency. The secret key length must be 16 characters.

DES (Deprecated) (Data Encryption Standard):

1. An older symmetric encryption algorithm that is no longer recommended due to its short key length, making it vulnerable to brute-force attacks.
2. Operates on blocks of data and has been largely replaced by more secure algorithms like AES. The secret key length must be 8 characters.

RC2 (Non-FIPS) (Deprecated):

1. A symmetric encryption algorithm that is not compliant with Federal Information Processing Standards (FIPS) and has been deprecated due to security concerns.
2. Uses variable key lengths and operates on blocks of data. Its use has declined in favor of more secure alternatives. The secret key length must be 5 characters.

Rijndael (Non-FIPS) (Deprecated):

1. This algorithm became AES (Advanced Encryption Standard) after winning a competition for a new encryption standard.
2. The non-FIPS version refers to variations of Rijndael that do not comply with Federal Information Processing Standards. Its use has decreased in favor of AES and other modern algorithms. The secret key length must be 16 characters.

TripleDES (Triple Data Encryption Standard):

1. Applies the DES encryption algorithm three times in succession to enhance security by increasing the key length.
2. While more secure than DES, it has been surpassed by modern algorithms like AES. The secret key length must be 24 characters.

Here’s an example of how to use the activity in a workflow:

In this example, I’ll automate a simple workflow using the “Encrypt File” activity to encrypt a sample image file.

Steps to build the bot:

1. Create a new solution.
2. Install the “CryptographyAutomation” from the Manage Features menu.
3. Add the “EncryptFile” activity to the workflow and set it as the starting node.
a. Double-click on the activity to enter the necessary details.
b. For this example, use the default algorithm type (AES GCM).
c. Navigate to the “Input File Path” in the properties section and provide the input file path.
d. Next, go to the “Secret Key” section and enter a random value to serve as the key for encrypting file. For example, use “ABC123456789FILE” as the key.
4. Keep all other settings at their default values.
5. Move to the “Output File Path” in the properties section to determine where your encrypted file will be saved.
a. Specify the directory path as
Environment.GetFolderPath(Environment.SpecialFolder.Desktop).
b. This command fetches the desktop path for the current user, providing a location to store the encrypted file.
6. Now, save the workflow and execute.

The encrypted file will be stored in the specified directory path. To learn more about decrypting the file in detail, click here.

EncryptText

This activity allows users to encrypt text using a selected key encoding and encryption algorithm.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to encrypt the text based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input Text*: This parameter indicates to provide the input text which needs to be encrypted.

This parameter accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output TextIt assists the user to declare a variable here to view output as the encrypted text. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Here’s an example of how to use the activity in a workflow:

Steps to build the bot:

In this example, we will use the “Encrypt Text” activity to encrypt text extracted from a website.  The text will be taken from the Sutherland website for encryption.

1. Create a new workflow/ open an existing workflow.
2. Drag and drop the “OpenWebBrowser” activity from the “WebAutomation” feature into the workflow to launch the Sutherland website and set it as the start node.
a. Double click on the activity.
b. Enter the “URL” as https://www.sutherlandglobal.com/.
3. Next, add the “GetText” activity from the “WebAutomation” feature next to the “OpenWebBrowser” activity to extract text from the website.
4. Double-click on the activity.
a. Click on the “Select Element” option and navigate to the website to identify the text.
b. Once you have selected the element, the attributes will be displayed in the “RobilitySpy” window.
c. In the “RobilitySpy” window, the default attributes required for automation will be pre-selected. If you need additional attributes to locate the element, select them as needed.
d. For this example, use the default selected attributes.
e. Click the “Save” button. The attributes will be automatically filled in the properties.
f. Next, navigate to the “Text” field in the output section of the properties to declare a variable for the output. Here it is as “Out_text”.
5. Now, place the “EncryptText” activity into the workflow next to the “GetText” activity.
a. This activity is used to encrypt the text extracted from the website and double-click on the activity.
b. Proceed with the default algorithm type (AES GCM).
c. Navigate to the “Input Text” field in the properties section to provide the input.
d. Use “Out_Text” as the value, which is the extracted text from the website.
e. Next, go to the “Secret Key” field and provide a random value as the key for encryption. For example: Use “ABC123456789TEXT” as the key.
f. Now, go to the “Output Text” field in the output section of the properties to declare a variable for the encrypted text. Here it is as “Encrypted_Text”.
6. Now, place the “WriteLog” activity into the workflow to view the encrypted text.
a. Provide the input as “Encrypted_Text” and set the log level to “Info”.
7. Save and execute the workflow.

DecryptFile

This activity helps users decrypt encrypted files by using the exact key encoding and encryption algorithm that were used during the encryption process.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to decrypt the file text based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input File Path*: This parameter indicates to provide the input path of the file which needs to be decrypted.

This parameter accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Overwrite: Check this box if you want to overwrite a file if the specified output file path is already in use.

By default, it is unchecked.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output File PathIt assists the user to provide the file path where the decrypted file needs to be saved in the system. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Let’s see how this activity operates:

In this example, we will decrypt a file using the “Decrypt File” activity. The input file for decryption is the same file that was previously encrypted using the “Encrypt File” activity. Click here to learn more about how encryption works.

1. Create a new workflow or open an existing workflow.
2. Drag and drop the “DecryptFile” activity into the workflow and set it as the start node.
a. Double-click on the activity to provide the details.
b. Proceed with the default algorithm type (AES GCM).
c. Navigate to the “Input File Path” in the properties section to provide the input file path. Use the file that has been previously encrypted as the input.
d. Next, go to the “Secret Key” field and provide the same key that was used in the “Encrypt File” activity as the input to decrypt the file. Use “ABC123456789FILE” as the key.
3. Keep the other options at their default values.
4. Now, navigate to the “Output File Path” in the output section of the properties to specify where to save the decrypted file.
a. Enter the directory path as
`Environment.GetFolderPath(Environment.SpecialFolder.Desktop)`.
b. This syntax fetches the username and desktop folder path to save the decrypted file.
5. Now, save the workflow and execute it.

DecryptText

This activity enables users to decrypt text by using the same key encoding and decryption algorithm that were employed during the encryption process. To successfully decrypt the text, it is crucial that the key and algorithm match those used for encryption.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to decrypt the text based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input Text*: This parameter indicates to provide the encrypted input text which needs to be decrypted.

It accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output TextIt assists the user in declaring a variable here to view the decrypted text as output.

This field returns values in the “String” datatype. You can either hardcode the values in “String” format or provide a variable in the “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Here’s an example of how the activity is used in the workflow:

In this example, the “Decrypt Text” activity is used to decrypt text that was previously encrypted. Click here to learn how the “Encrypt Text” activity works.

Steps to build the bot:

1. Open a workflow.
2. Drag and drop the “DecryptText” activity into the workflow and place it next to the “WriteLog” activity.
a. Double-click on the activity to provide the details.
b. Proceed with the default algorithm type (AES GCM).
c. Navigate to the “Input Text” field in the properties section to provide the input. Use the text that was encrypted in the “EncryptText” activity as the input.
d. Next, go to the “Secret Key” field and provide the same key that was used in the “Encrypt Text” activity to decrypt the text. Use “ABC123456789TEXT” as the key.
e. Keep the other options at their default values.
f. Next, navigate to the “Output Text” field in the output section of the properties to declare a variable to store the decrypted text. Here it is as “DecryptText”.
2. Now, place the “WriteLog” activity to view the decrypted text.
a. Provide the input as “Text” and set the log level to “Info”.
3. Save and execute the workflow.

HashFile

This activity enables users to create a unique hash value for an input file. The hash value serves as a digital fingerprint, ensuring the file’s integrity and authenticity. Hashing is particularly useful for checking that a file hasn’t been modified, as even a tiny change in the file’s content will generate a completely different hash value.

Points to note

1. To generate a unique hash value for the provided file, a “Secret” key is required for the following algorithm types: 
a. HMAC using MD5 (Deprecated)
b. HMAC using SHA-1 (Deprecated)
c. HMAC using SHA-256
d. HMAC using SHA-384
e. HMAC using SHA-512
2. There is no minimum character requirement for the “Secret key” for the above algorithm types.
3. The “Secret key” parameter will not appear in the properties section when using any of the above algorithm types. Instead, you will find the option within the activity when you double-click on it.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to generate the hash for the file based on it.

1. HMAC using MD5 (Deprecated)
2. HMAC using SHA-1 (Deprecated)
3. HMAC using SHA-256
4. HMAC using SHA-384
5. HMAC using SHA-512
6. SHA-1
7. SHA-256
8. SHA-384
9. SHA-512

Refer to the documentation below to view the types of algorithms.

By default, the activity recommends the most commonly used type, ” HMAC using SHA-256”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input File Path*:  This parameter indicates the input path of the file for which the hash value needs to be generated.

It accepts values in the “String” datatype. You can either hardcode the values in “String” format or provide a variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Hash: It assists the user to declare a variable to view the output of the activity as the “HASH” value generated for the provided input file. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Types of Algorithms

Below are detailed explanations of the types of algorithms and their status:

1. HMAC using MD5 (Deprecated):
a. HMAC (Keyed-Hash Message Authentication Code) using MD5 is a cryptographic hashing algorithm. It combines a secret key with the MD5 hash function to generate a unique hash value.
b. Status: Deprecated due to vulnerabilities. Not recommended for new implementations because of collision vulnerabilities.
2. HMAC using SHA-1 (Deprecated):
a. HMAC using SHA-1 combines a secret key with the SHA-1 hash function to produce a hash value.
b. Status: Deprecated due to vulnerabilities similar to MD5. It’s not recommended for security-sensitive applications.
3. HMAC using SHA-256: 
a. This algorithm utilizes SHA-256 (Secure Hash Algorithm 256-bit) for hashing alongside a secret key.
b. Security: Offers stronger security compared to MD5 and SHA-1 due to SHA-256’s enhanced collision resistance.
4. HMAC using SHA-384:
a. This variant employs SHA-384, a member of the SHA-2 family, for hashing with a secret key.
b. Security: Provides higher security and collision resistance compared to SHA-256 due to its longer hash size (384 bits).
5. HMAC using SHA-512:
a. This algorithm utilizes SHA-512, another SHA-2 variant, for hashing alongside a secret key.
b. Security: Offers the highest level of security and collision resistance among the listed HMAC algorithms due to its longer hash size (512 bits).
6. SHA-1:
a. SHA-1 (Secure Hash Algorithm 1) produces a 160-bit hash value from input data.
b. Status: Deprecated for security-sensitive applications due to vulnerabilities. Still used in legacy systems but not recommended for new implementations.
7. SHA-256:
a. SHA-256, part of the SHA-2 family, generates a 256-bit hash value, providing stronger security and collision resistance compared to SHA-1.
b. Security: Widely adopted for security-sensitive applications and digital signatures.
8. SHA-384:
a. SHA-384, another SHA-2 variant, produces a 384-bit hash value, offering higher security than SHA-256 due to its longer hash size.
9. SHA-512:
a. SHA-512 is the 512-bit variant of SHA-2, providing the highest level of security and collision resistance among the SHA algorithms listed.
b. Security: Suitable for applications requiring maximum security, such as secure communication protocols and digital certificates.

HashText

This activity assists the user to create a unique digital fingerprint, known as a hash value, for any text you provide. This fingerprint serves as a quick and secure way to compare or verify the original text without revealing its contents.

Key Points

1. Secret Key Requirement: For certain algorithm types listed below, you’ll need to include a “Secret” key along with the text to generate the hash value:
a. HMAC using MD5 (Deprecated)
b. HMAC using SHA-1 (Deprecated)
c. HMAC using SHA-256
d. HMAC using SHA-384
e. HMAC using SHA-512
2. No Minimum Character Requirement: There’s no specific minimum character requirement for the secret key with these algorithms.
3. Accessing the Secret Key Option: If you select any of the above algorithm types, the “Secret key” parameter won’t be visible in the properties section. Instead, you’ll find this option when you double-click on the activity itself.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to generate the hash for the input text based on it.

1. HMAC using MD5 (Deprecated)
2. HMAC using SHA-1 (Deprecated)
3. HMAC using SHA-256
4. HMAC using SHA-384
5. HMAC using SHA-512
6. SHA-1
7. SHA-256
8. SHA-384
9. SHA-512

Refer to the documentation below to view the types of algorithms.

By default, the activity recommends the most commonly used type, ” HMAC using SHA-256”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input Text*:  This parameter indicates the input text value for which the unique hash value needs to be generated.

It accepts values in the “String” datatype. You can either hardcode the values in “String” format or provide a variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Hash: It assists the user to declare a variable to view the output of the activity as the “HASH” value generated for the provided input text. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

EncryptFile

This activity allows users to easily encrypt files by selecting a key encoding and encryption algorithm.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to encrypt the file based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input File path*: This parameter indicates to provide the input path of the file which needs to be encrypted.

This parameter accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Overwrite: Check this box if you want to overwrite a file if the specified output file path is already in use.

By default, it is unchecked.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output File Path*It assists the user to provide the file path where the encrypted file needs to be saved in the system. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Types of Algorithms

The following algorithms are used to encrypt your data (file or text). Each offers different capabilities and encryption methods. You can choose any of these options in the activity.

AES GCM (Advanced Encryption Standard Galois/Counter Mode):

1. Combines AES encryption with Galois/Counter Mode (GCM), providing both data confidentiality (encryption) and data integrity (authentication).
2. Known for its strong security and efficiency. The secret key length must be 16 characters.

DES (Deprecated) (Data Encryption Standard):

1. An older symmetric encryption algorithm that is no longer recommended due to its short key length, making it vulnerable to brute-force attacks.
2. Operates on blocks of data and has been largely replaced by more secure algorithms like AES. The secret key length must be 8 characters.

RC2 (Non-FIPS) (Deprecated):

1. A symmetric encryption algorithm that is not compliant with Federal Information Processing Standards (FIPS) and has been deprecated due to security concerns.
2. Uses variable key lengths and operates on blocks of data. Its use has declined in favor of more secure alternatives. The secret key length must be 5 characters.

Rijndael (Non-FIPS) (Deprecated):

1. This algorithm became AES (Advanced Encryption Standard) after winning a competition for a new encryption standard.
2. The non-FIPS version refers to variations of Rijndael that do not comply with Federal Information Processing Standards. Its use has decreased in favor of AES and other modern algorithms. The secret key length must be 16 characters.

TripleDES (Triple Data Encryption Standard):

1. Applies the DES encryption algorithm three times in succession to enhance security by increasing the key length.
2. While more secure than DES, it has been surpassed by modern algorithms like AES. The secret key length must be 24 characters.

Here’s an example of how to use the activity in a workflow:

In this example, I’ll automate a simple workflow using the “Encrypt File” activity to encrypt a sample image file.

Steps to build the bot:

1. Create a new solution.
2. Install the “CryptographyAutomation” from the Manage Features menu.
3. Add the “EncryptFile” activity to the workflow and set it as the starting node.
a. Double-click on the activity to enter the necessary details.
b. For this example, use the default algorithm type (AES GCM).
c. Navigate to the “Input File Path” in the properties section and provide the input file path.
d. Next, go to the “Secret Key” section and enter a random value to serve as the key for encrypting file. For example, use “ABC123456789FILE” as the key.
4. Keep all other settings at their default values.
5. Move to the “Output File Path” in the properties section to determine where your encrypted file will be saved.
a. Specify the directory path as
Environment.GetFolderPath(Environment.SpecialFolder.Desktop).
b. This command fetches the desktop path for the current user, providing a location to store the encrypted file.
6. Now, save the workflow and execute.

The encrypted file will be stored in the specified directory path. To learn more about decrypting the file in detail, click here.

ReadCSV

This activity helps the user to read and extract data from the specified CSV file. It is helpful when you want to extract the data in tabular format for further processing with Excel automation feature. 

Properties

INPUT

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

ReadData:* This parameter retrieves the output of the activity as extracted data in “DataTable” format. It returns the values in the “DataTable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow

Here’s an example of how the activity is used in the workflow –

In the following steps, I have utilized a sample CSV file which contains a list of customer details extracted from the organization’s website. Using this activity, we are going to read the value from the CSV file and extract them in a tabular format.

1. Create a new solution.
2. Install the feature “CSV Automation” from the manage features option.
3. Now, add the “ReadCSV” activity into the workflow.
a. This activity helps the user to read and extract the data in the CSV file in tabular format.
b. Navigating to the “Datatable” in the properties to declare a variable to view the output.
   i. There are two ways to create a variable –
   ii. Method 1 – Click on the “Datatable” property within the “ReadRanges” activity and enter the variable name. In this case, we are using “Table.” Then, press “Ctrl+Q,” which is a shortcut key to create a variable.
   iii. Method 2 – Click on the Variables pane and enter the name ” Table.” Then, in the “Variable Types” column, select “Browse for Types” from the dropdown menu.
   iv. The .Net window for data types will appear on the screen, enter the type of datatype as “System.Data.Datatable” and then click “OK” button.
5. Next, add the “Table viewer” activity to view the extracted output.
a. Add the input table value as “TABLE”.
b. Provide a title for the table.
6. Save and execute the workflow.

Email Automation

Introduction

Email Automation in Robility helps automate bots to perform tasks such as sending emails, processing information, and interacting with email platforms. It streamlines email-based processes, reduces human intervention, and enhances efficiency.

Prerequisites

The application must be installed on the host machine, and a valid email account must be actively logged in. Without both conditions met, the automation will not function correctly.

Limitations

Admin vs. non-admin access
The Email automation behaves differently depending on user permissions.
1. Admin users can run the automation whether the application is open or closed.
2. Non-admin users must keep the application open (minimized or active) for the automation to execute; it will not run if the application is fully closed.

Benefits of Email Automation

The following are the benefits of automating with Email Automation.

  1. Minimizes the manual effort and reduces the errors in email-based processes.
  2. Improves response times and customer satisfaction.
  3. Enables 24/7 automated email interactions.
  4. Enhances accuracy in data processing and reporting.
  5. Integrates seamlessly with other applications and systems.

Use cases

The following are the use cases of the scenarios that helps the user to perform automation with the Email Automation package.

  1. Invoice Processing and Notifications – Enables to extract invoice details from emails, update to the systems/applications and sending payment notifications as email.
  2. Data extraction – Automate to extract daily reports from the emails and send back the notifications.
  3. Customer support and query resolutions – Categorize and route customer inquiries, automate responses, and escalate complex issues to human agents.
  4. Order Processing and Tracking – Automate order confirmation emails, update order status, and send shipment tracking information to customers.
  5. Employee Onboarding and Training – Automate the process of sending welcome emails, distribute training materials, and track employee progress.

Release Notes

v.3.2.8

This release includes the following enhancement:

Enhancement

Set Email CategoriesIntroduced a new Single Mail Item property that allows you to apply a specified category to an individual email.

Released Date: 20/04/2026

v.3.2.7

In this release, we have introduced a new activity and enhancement in the following:

New Activities

Set Email Categories – It allows assigning categories to emails, enabling better organization and classification of messages within the mailbox.

Enhancement

Read – Read activity “Number of Mails” input property limit has been increased to 1000, allowing more emails to be fetched in a single execution.

Released Date: 25/03/2026

v.3.2.3

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.3.2.2

This version includes bug fixes to improve the reliability of email operations in Outlook.

Bug Fix

Read Mail

Previously, the Read Mail activity accumulated email counts across multiple loop executions, resulting in incorrect total counts being stored in memory for that loop.

This issue has been resolved. The activity now stores only the current loop’s email count in memory.

Released Date: 11/02/2026

v.3.2.1

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.3.2.0

This version includes bug fixes to improve the reliability of email operations within Outlook.

Bug Fix

Move Mail to Subfolders: Previously, the Move Mail activity only supported moving emails to root-level folders in Outlook. Attempts to move messages to nested subfolders resulted in exception.
This issue has now been resolved. The activity now supports navigating and moving emails to any level of subfolders, enabling more flexible and accurate mail organization.

Released date: 30-Jun-2025. 

AddNewFolder

This activity assists the user to create a “New Folder” or a “New Sub Folder” within the specified outlook account. Ensure this activity is included within a designated parent activity.

Properties

INPUT

FolderName: This parameter enables you to specify the “Folder name” where you wish to create a new “subfolder.”  This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

NewFolderName:* This parameter allows you to specify the “Name” in which the folder has to be created.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

CopyFolder

This feature enables users to effortlessly copy or move a “Folder” from one location to another within their specified Outlook account. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT

Action: This section specifies the action that needs to be executed. By default, the “Copy” option will be selected. Choose the desired action from the dropdown list:
Copy: This action carries out the “Copy/Paste” functionality by duplicating the “Folder” from the original destination and pasting it in a different destination.
Move: This action performs the “Move” functionality by transferring the folder from one destination to another.
DestinationFolderName:* This specifies the name of the “Destination Folder” to which the folder from the specified “Source Destination” should be moved or copied.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
SourceFolderName: * This specifies the name of the “Source Folder” from which the folder needs to be selected to carry out the action.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError: 
Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Delete

This activity assists the user in deleting a specified number of emails within the specified Outlook account. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT

List: * It specifies that the “MailItem” variable (which is declared in the “Read mail” activity) should be provided as an input value to delete the emails from the list.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError: 
Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
* Represents mandatory fields to execute the workflow.

DeleteFolder

This activity helps the user to delete the specified “Folder” from the preferred Outlook account. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT

FolderName: This parameter enables you to specify the “Folder name” where you wish to create a new “subfolder.” 
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError: 
Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
* Represents mandatory fields to execute the workflow.

EmailTrigger

This activity allows users to trigger a workflow when an email is received, based on the specified conditions.When an email that meets the specified criteria—such as sender, subject, keywords, or attachments—is received, this activity automatically triggers a designated workflow.

Properties

INPUT

EmailAccount:* This parameter provides the Outlook account that has been integrated into the user’s system. Choose the option from the drop-down to select the required account. This field accepts the value in “String” format. You can either hardcode the values in “String” datatype or can enter the values in “String”.

WatchEmailsFromFolder: It specifies the “Folder” where the mails are required to watch and trigger the workflow. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OPTIONAL

From: It indicates the filters that are required to watch and trigger the workflow.

Select Filters: Use this option to configure an advanced filter to specify any conditions for the emails to be read. Click on this to open the “Advanced Filter” wizard.

a. And / OR condition: The “AND” function returns results that meet all specified conditions, while the “OR” function returns results that meet any of the specified conditions.
b. The first dropdown lists the email fields to filter by: Bcc, Body, Cc, Date, From, To, Subject, or Categories.
c. The second dropdown lists the operators to evaluate the chosen fields. The available operators are:

     i. For the fields “Bcc, Body, Cc, From, To, Subject, and Categories,” the operators are contains, does not contain, ends with, starts with, equals, is empty, or is not empty.
    ii. For the “Date” field, the operators are older than, newer than, or equals, indicating the time period of the emails.
d. To include additional conditions, click the “Add” button.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ExtractMailMessage

This activity enables the extraction of details using the “Mail message” or the “MailItem” from the specified account name in Outlook.

Properties

INPUT

AttachmentPath:* This parameter specifies the “Path” to save the attachments extracted from the “MailMessage” or “MailItem.”
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

InputPath: It specifies the “Input path” where the mail message is stored in the system. Use this option when the “InputType” is selected as “MSG_File.”
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

InputType:* Select the input type from the dropdown:
MailItem: This option refers to the “MailItem” variable declared as an output in the “ReadMail” activity. Use this type to extract details and attachments from the “MailItem” variable.
MSG_File: This option pertains to the “MailMessage” file. Utilize this type to extract details and attachments from the “MailMessage.”By default, the type is set to “MSG_File.”

MailItem:* 
Specify the “MailItem” variable (which will be declared in the “Read Mail” activity) to extract the emails from the provided “list.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

AttachmentList: This feature aids in storing and viewing the extracted attachments as an “Output” of the activity in a “list” datatype from the email.

CCList: This functionality allows you to view the “CC List” as an output of the activity in a “list” datatype, extracted from the email.

FromMailID: This feature enables you to view the “FromMailID” as an output of the activity in the “String” datatype, extracted from the email.

IsHadAttachment: This parameter helps to return the output of the activity to validate whether the mails have attachment. This field returns the value in “Boolean” datatype.
Yes – The provided “MailMessage” or “Mailitem” contains attachment.
No – The provided “MailMessage” or “Mailitem” does not contain any attachments.

MailBody: This feature enables you to view the “MailBody” as an output of the activity in the “String” datatype, extracted from the email.

MailSenderName:This feature enables you to view the “MailSenderName” as an output of the activity in the “String” datatype, extracted from the email.

MailSubject: It helps to view the output of the activity as “MailSubject” extracted from the mails. This field returns the values in the “String” datatype.

ReceivedDateTime: This feature enables you to view the “ReceivedDateTime” as an output of the activity in the “DateTime” datatype, extracted from the email.

ToList: It helps to view the output of the activity as “ToList” extracted from the mails. This field returns the values in the “List of String” datatype.
* Represents mandatory fields to execute the workflow.

Forward

This activity allows you to forward emails from Outlook to the designated email address.

Properties

INPUT

AttachmentList:* Indicate the “AttachmentList” (Declared as an output in the “ExtractMailMessage” activity) to include attachments along with the “NewMail.” It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

BCCAddress: This parameter specifies to provide the “BCC address” of the recipients for sending the email. It ensures that the “MailID” mentioned is not disclosed to the other users listed in the “To” and “CC” addresses.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.When left blank, it will not be considered.Body: This parameter specifies the “Mail Body” that should be sent as an email. his parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

CCAddress: This parameter provides the “CC address” of the recipients to whom the email should be sent. It enables sending the email to additional recipients for informational purposes. 
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

FromAddress: Specify the “From address,” which is the sender’s email address used to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailItem:* Specify the “MailItem” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”

MailSubject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

SendAs: It specifies the type to be send as the mail. Choose the send as type from the drop-down,
Forward – It enables to forward the mails to the mentioned mail address as “Forward” functionality.
ForwardAsNew – It enables to forward the mail as “New” mail to the mentioned mail address.
By default, the “Forward” types will be set.

ToAddress: It specifies the “To address” of the recipient to send the mail. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Attachment list

The attachments list should be declared as a list of strings from the variables section and enter the value as new List(of string)(new string(){“value1”,“value2”}).
Enter the location path of the attachments.

ForEachMail

This activity refers to a loop activity designed to perform actions on a collection of emails, such as reading, processing, or moving each email message individually within the loop based on specific conditions. It is integral to automating email-related tasks and streamlining processes involving bulk email handling. 

Properties

INPUT 

Limit: This parameter indicates the maximum number of emails to be looped through to perform a set of actions. This parameter accepts the value in “String” datatype. You can either hardcode the value in “String” datatype or provide the variables in “String” format.

MailsFrom: * This parameter specifies the “Folder” from which the set of actions will be performed. To choose the folder, click the “+” icon next to the box and select the required folder from the dropdown menu.

Alternatively, you can provide a variable of the “List of MailItem” datatype. Refer to the documentation below for more information.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

List: This parameter allows you to view the output of the activity as a “MailItem” variable, which can be used as input in subsequent activities within the “For Each Mail” body. It returns values in the “MailItem” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Setting up the activity

Let’s see how to set up and configure the fields in the activity.

1. For Each (Current MailItem): This represents the name used to reference each email within the body of the “For Each Mail” activity. By default, the value is “Current Mail.” You can customize this name as needed.

2. EmailsFrom: It indicates the folder from which emails should be read and processed in a loop for the specified actions. To choose the folder, click the “+” icon next to the box and select the required folder from the dropdown menu.

Alternatively, you can provide a variable of the “List of MailItem” datatype. This variable will be the output of the “Read Mail” activity.

3. Limit emails to first: This parameter sets the maximum number of emails to be looped through for performing a set of actions. You can select the number of emails from the provided dropdown.

4. Unread mails: Check this option to process only unread emails from the chosen folder and execute them in the loop.

5. Retrieve Attachments: Check this option to extract attachments along with the emails from the chosen folder.

6. With Attachments Only: Check this option to read and process only emails that contain attachments in the chosen folder.

7. Include subfolders: Check this option to include subfolders when reading and processing emails from within the chosen folder.

8. More Filters: Use this option to configure an advanced filter to specify any conditions for the emails to be read. Click on this to open the “Advanced Filter” wizard.
a. And / OR condition: The “AND” function returns results that meet all specified conditions, while the “OR” function returns results that meet any of the specified conditions.
b. The first dropdown lists the email fields to filter by: Bcc, Body, Cc, Date, From, To, Subject, or Categories.
c. The second dropdown lists the operators to evaluate the chosen fields. The available operators are:
     i. For the fields “Bcc, Body, Cc, From, To, Subject, and Categories,” the operators are contains, does not contain, ends with, starts with, equals, is empty, or is not empty.
     ii. For the “Date” field, the operators are older than, newer than, or equals, indicating the time period of the emails.
d. To include additional conditions, click the “Add” button.

GetAccountList

This activity enables to retrieve the outlook account list that are actively available in the local machine.

Properties

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result:* It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
* Represents mandatory fields to execute the workflow.

Move

This activity assists in relocating “emails” from one folder to another within the specified Outlook account. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT

MailItem: * Specify the “MailItem” variable (which will be declared in the “Read Mail” or “For Each Mail” activity) to reply to the emails from the provided “list.”

MailSubject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

SubFolderName: Specify the “FolderName” to which the emails should be moved. You can also indicate the “Subfolder” name here. (Refer the tips below).
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

NewMail

This activity facilitates sending a “New mail” to the specified address using Outlook.

Properties

INPUT

AttachmentList:* Indicate the “AttachmentList” (Declared as an output in the “ExtractMailMessage” activity) to include attachments along with the “NewMail.” It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

BCCAddress: This parameter specifies to provide the “BCC address” of the recipients for sending the email. It ensures that the “MailID” mentioned is not disclosed to the other users listed in the “To” and “CC” addresses. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

Body: This parameter specifies the “Mail Body” that should be sent as an email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

CCAddress: This parameter provides the “CC address” of the recipients to whom the email should be sent. It enables sending the email to additional recipients for informational purposes. 
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

FromAddress: Specify the “From address,” which is the sender’s email address used to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailSubject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

ToAddress: It specifies the “To address” of the recipient to send the mail. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Attachment list

The attachments list should be declared as a list of strings from the variables section and enter the value as new List(of string)(new string(){“value1”,“value2”}). Enter the location path of the attachments.

OpenMail

This activity is used to open mail from the specified mail account. A separate window appears while opening the mail. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT

MailItem:* Specify the “MailItem” variable (which will be declared in the “Read Mail” activity) to extract the emails from the provided “list.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError: 
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
* Represents mandatory fields to execute the workflow.

Read

This activity helps users to access and read emails directly from the specified Outlook account. To utilize this feature effectively, ensure it is integrated into a designated parent activity.

Properties

INPUT 

Filter: Specify the filter values that need to be applied while reading emails from the account name. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. It is an optional field and reads all emails if no value is provided.

MarkAsUnread: This property indicates whether read emails should be marked as unread after the automation is completed. Specify “True” or “False” to enable or disable the marking of emails as unread during the mail reading process.
True: Enables marking emails as unread after they are read.
False: Disables marking emails as unread after they are read.
None: If this option is left blank, the property will not take effect, and by default, emails will be read without marking as unread.

NoOfMails: * Enter the number of emails that need to be read within the specified account name. This parameter accepts values in “Integer” datatype. You can either hardcode the values in “Integer” datatype or can enter the values in “Integer”.  The maximum number of emails to be read is 1000. 

SortBy: This property sorts the emails either in ascending or descending order for reading within the specified account name. By default, it functions with the ‘Ascending’ order option. Choose the option from the drop-down.
Ascending – Sorts the emails in ascending order.
Descending – Sorts the emails in descending order.

SortbyFieldName: This property specifies the field options such as “From,” “To,” “Subject,” and “Received Time” for sorting and reading emails. Provide the value to sort against the “FilterValue” property. This drop-down contains field names as follows:
From – Sorts using the “From Address” provided in the “FilterValue” option.
To – Sorts using the “To Address” provided in the “FilterValue” option.
Subject – Sorts using the “Subject” provided in the “FilterValue” option.
Received time – Sorts using the “Received time” provided in the “FilterValue” option.

SubFolderName: * Specify the folder name from which the emails need to be accessed and read. You can also provide the “SubFolderName” if you need to read emails from a subfolder. (Refer to Tips).

Unread: Specify whether to read emails that have not been read yet in the mailbox. Specify either “True” or “False” in the field:
True – Enables reading only the “Unread” mails from the mailbox.
False – Disables the condition and reads emails according to the sorting order provided, irrespective of whether they are “Read” or “Unread” mails.
None – When left out blank, the activity will perform with “False” action.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

List: * It helps to store the mails in the list format that has been read from the mailbox. (Refer to the steps in creating a workflow.)

* Represents mandatory fields to execute the workflow.

SetCategory

The SetCategory activity is used to assign categories to one or more email messages, such as blue, green, yellow, etc. It allows users to organize and classify emails within a mailbox by applying predefined or custom categories.

This activity accepts a collection of email items (for example, those retrieved from the Read Mail activity) and applies the specified category name to each email in the collection. It helps improve email management by enabling better filtering and grouping of messages based on their assigned categories.

Properties

INPUT

Category Name*: Specifies the predefined or custom category name to be assigned to the email, such as blue, green, yellow, etc.

MailItems*: Accepts a collection of email messages retrieved from the Read Mail activity, on which the specified category will be applied.

SingleMailItem – Accepts a single Outlook mail item (MailItem) as input, to which the specified category will be applied.

MISC

DisplayName: Displays the name of the activity. This can be customized for better readability and easier troubleshooting.

SkipOnError: Specifies a Boolean value (True or False).
True: Continues executing the workflow even if an error occurs.
False: Stops the workflow if an error is encountered.
None: If left blank, the default behavior is False.

Version: Displays the version of the activity being used. This field is auto populated and read-only.

OUTPUT

Result: Indicates the execution status of the activity. Returns a Boolean value:
True: The activity executed successfully without errors.
False: The activity failed due to an error.

UpdatedCount: Indicates the total number of email messages that were successfully processed and updated with the specified category. The output is returned as an Integer.

UpdatedMailItems  : Returns a collection of email messages that were successfully updated with the specified category. The output is of type List of mailitem.

*Represents mandatory fields to execute the workflow.

Reply

This activity assists in “Replying” to emails from the designated Outlook account.

Properties

INPUT

AttachmentList: Indicate the “AttachmentList” (Declared as an output in the “ExtractMailMessage” activity) to include attachments along with the “NewMail.” It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

BCCAddress: This parameter specifies to provide the “BCC address” of the recipients for sending the email. It ensures that the “MailID” mentioned is not disclosed to the other users listed in the “To” and “CC” addresses.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.When left blank, it will not be considered.

CCAddress: This parameter provides the “CC address” of the recipients to whom the email should be sent. It enables sending the email to additional recipients for informational purposes. 
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailBody: * This parameter specifies the “Mail Body” that should be sent as an email.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailItem:* Specify the “MailItem” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”

MailSubject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MoreRecipients: This specifies the addition of more recipients by including the email addresses of the recipients. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

RemoveRecipients: Specify the removal of recipients by providing their “Email addresses.” This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

ReplyAll: Specify either “True” or “False” to enable or disable the “Reply all” condition for the list of emails.
True: Enables the “Reply All” functionality to send a reply to all the users mentioned in the email.
False: Disables the “Reply All” functionality, allowing a reply to be sent only to the original sender.
None: Indicates that when left blank, the functionality will be default to “False”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Send

This activity enables sending emails using the “SMTP Client” from Outlook to the specified address.

Properties

INPUT

AttachmentList: Indicate the “AttachmentList” (Declared as an output in the “ExtractMailMessage” activity) to include attachments along with the “NewMail.” It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

BCCMailID: Provide the “BCC MailID” of the recipients for sending the email. This ensures that the “MailID” mentioned is not disclosed to the other users listed in the “To” and “CC” addresses. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

Body: This parameter specifies the “Mail Body” that should be sent as an email. It accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

CCMailID: Provide the “CC address” of the recipients to send the email. This allows sending email to additional recipients for informational purposes. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered. 

CredDomain: Specify the “DomainName” for the “SMTP client” mentioned, to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

CredPassword: Specify the “Password” credentials for the mentioned “SMTP client” to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

CredUsername: Specify the “Username” credentials for the mentioned “SMTP client” to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MailAddress: Specify the “From address,” which is the sender’s email address used to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

SmtpClient: Specify the “SMTP server” name that is required to send the mail.This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

Subject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

ToMailID: * It specifies the “To address” of the recipient to send the mail. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

Save

This activity assists in saving the “Mail” in the “MailMessage” format to the specified local path.

Properties

INPUT

FileName: Specify the “Name” in which the mails are required to save in the specified local path as “MailMessage.” This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.  When left blank, it will not be considered.

FolderPath: Specify the “Folder path” to where the “Mails” are required to be saved from the list. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailItem:* Specify the “MailItem” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

AddNewRow

This activity helps to add or update with a “New row” to the “Existing input data table” during the runtime.

Properties

INPUT

AddEmptyRow: To include an “Empty row” in the existing “Input datatable,” select this option. When not selected, the empty row won’t be added.

DataTable: Enter the “Input datatable” variable where the input data is stored. This parameter helps you to add a new column. This field only accepts the “datatable” data type.

InputArray: Provide the necessary “Input values” for the “New Row.” These values should be specified using the “Array of Object” datatype. (For example: {“JOHN,32, Manager”}) You can employ either the “InputArray (hardcoded value)” or the “InputDataRow (variable)” option to introduce a new row.
This field only accepts the “Array of Object” datatype. If left empty, it will operate with the “InputDataRow” field if provided.

InputDataRow: Designate the “Data row” variable where the input values for the row are stored. This field exclusively accepts the “DataRow” datatype for the variable. If left empty, it will operate with the “InputArray” field if provided.

MISC

DisplayName: Displays the name of the activity. It can also customize the activity name to helps in troubleshooting.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: The workflow aborts if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.
Version:  It specifies the version of the Datatable automation feature in use.

OUTPUT

Result: It helps to view the execution state of the activity. It returns the values in Boolean format.
True: It indicates the activity has been executed successfully without any error.
False: It indicates that the activity has been faulted due to some unexceptional error thrown.

* Represents mandatory fields to execute the workflow. 

Delay

Introduction

The delay feature allows for adding wait time while executing the bot. It waits for a specified amount of time before proceeding to the next activity. 

This functionality is particularly useful for scenarios where synchronization or pacing between automated actions is necessary, ensuring a smooth and controlled workflow.

Benefits

Synchronization: Delay can be used to synchronize actions in a process, ensuring that one action completes before the next one starts. This is particularly useful when dealing with applications or systems that require a specific response time between interactions.

 Error Handling: Introducing delays can help manage exceptions and errors that may occur during automation. For example, a delay can give time for a system to respond before proceeding with error handling routines.

 Human Emulation: By incorporating delays, RPA bots can mimic human behavior more accurately. Humans don’t always perform actions instantly; they often pause between tasks, and delays can simulate this natural behavior.

System Performance: Delays can be used to manage system performance issues, such as preventing overload or reducing the load on target systems by spacing out interactions.

Delay Automation

This activity enables the user to utilize it when there is a need to introduce a delay between activities. It can be set at any point within the workflow.

Properties

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

Version: It indicates the version of the feature being used.

Release Notes

v.1.0.6

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.0.5

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

UI Automation

Designer & Runner

This document provides a detailed overview of the system requirements and installation procedures for Robility Designer and Runner in the infrastructure designated for process automation development and execution. Robility Designer and Runner are essential components of the Robility platform, facilitating the design and execution of automation processes. They are provided as an MSI package, which offers flexibility in installation methods.

Depending on the specific infrastructure setup and the preferences of the system administrators, several installation options are available to ensure seamless integration into the organization’s existing environment. This document will guide you through these options, ensuring that the platform is effectively implemented according to organizational needs and technical specifications.

System Requirements

This section outlines the hardware and software requirements to ensure the optimal performance of Robility Designer and Runner Enterprise across all deployment models—on-premises, cloud, or hybrid.

By following the recommended system configurations, you can maintain system stability, avoid compatibility issues, and achieve seamless and efficient operations. Meeting these requirements is key to delivering a secure, reliable, and high-performing Robility environment for your organization.

Hardware

Component Minimum Recommended Comments
Designer 1 Machine 1 Machine RobilityDesigner installation for workflow developers to design, test, and publish automation workflows.
Runner As Needed As Needed One machine per robot execution environment with RobilityRunner installed to execute published automation workflows.
Note: Runner supports both persistent and non-persistent execution environments.
Component Minimum Recommended Comments
Processor Quad-core (4 CPU cores), 2.0 GHz or faster, 64-bit (x64) Octa-core (8 CPU cores), 2.0 GHz or faster, 64-bit (x64) A 64-bit processor is required.
RAM 16 GB 32 GB or more Higher memory is ideal for large automation projects or enterprise-grade applications.
Display Resolution 1920 × 1080 1920 × 1080 Applies to both desktop and laptop environments. Robility Manager is not optimized for resolutions below 1920 × 1080.
VDI Display Resolution Dynamic / Native Matching Dynamic / Native Matching Default User Experience: When a VDI session is launched through standard clients such as Citrix Workspace, VMware Horizon, or Azure Virtual Desktop, the remote session automatically scales to match the endpoint's screen resolution, including 1080p (1920 × 1080), 1440p, 4K (3840 × 2160), or multi-monitor layouts.
Storage 100 GB HDD with at least 20 GB of free disk space 100 GB or larger SSD with at least 40 GB of free disk space Refer to the disk space requirements below.
Installer 100 MB 100 MB Installed on the developer workstation. Includes the core application binaries required for Robility Designer.
Features / Activities 300 MB – 1 GB 300 MB – 1 GB Storage requirement varies depending on the activity packages, connectors, extensions, and features installed.
Log Files 300 MB Max (30 Files) 300 MB Max (30 Files) Each log file is limited to a maximum size of 10 MB per day. Archived log files are managed using a FIFO (First-In, First-Out) purge policy to control disk usage.

Disk Space

Component Size Comments
Installer 100 MB Installed on the developer workstation. Includes the core application binaries required for Robility Designer.
Features / Activities 300 MB – 1 GB Storage requirement varies depending on the activity packages, connectors, extensions, and features installed.
Log Files 300 MB Max (30 Files) Each log file is limited to a maximum size of 10 MB per day. Archived log files are managed using a FIFO (First-In, First-Out) purge policy to control disk usage.

Software

Software Minimum / Supported Comments
Operating System Windows 10 (22H2, 21H2, and 20H2, Pro, Enterprise; 64-bit)
Windows 11 (64-bit) and above
Windows 11 24H2 (64-bit)
Windows Server 2019, 2022 and above
A supported 64-bit Windows operating system is required.
.NET Framework Version 4.8.1 or higher .NET Framework 4.8.1 is recommended. Ensure the latest .NET Framework updates are installed.
Browser Google Chrome – Latest stable version
Microsoft Edge – Latest stable version
Internet Explorer 11 – Legacy compatibility
Browser extensions must be installed for browser automation.

Recommended Cloud VM services

The recommended Windows Virtual Machine (VM) services for hosting Robility Designer and Robility Runner in the cloud provider.

Cloud Provider Recommended VM Service
Microsoft Azure Azure Virtual Machine (Windows) configured with the recommended Windows Server operating system and sizing based on the deployment environment.
Amazon Web Services (AWS) Amazon EC2 Windows Instance configured with the recommended Windows Server AMI and compute resources required for the Robility platform.
Google Cloud Platform (GCP) Compute Engine Windows Virtual Machine configured with the recommended Windows Server image and appropriate CPU, memory, and storage allocation.

Network Access & Message Traffic

Component Requirement Comments
Network Access HTTPS connectivity to the RobilityManager FQDN Required for communication with RobilityManager.
Outbound Connectivity Outbound HTTPS access to license, CDN, and feature update URLs Refer to the applicable URLs for required outbound access.
Network Connectivity Stable internet or private network connectivity Required for reliable connectivity to RobilityManager.
TLS TLS 1.2 or later TLS 1.2 or later must be enabled.
Runner Traffic 2 heartbeat requests / minute Baseline traffic generated by each Runner to RobilityManager.
2 workflow requests / minute when idle Traffic generated by each idle Runner.
2 status requests / minute when running Traffic generated while a workflow is running.
20 transaction requests / minute when waiting on a transaction Traffic generated when the Runner is waiting on a transaction.
5 transaction requests / minute on average Average traffic depends on workflow processing time.

Additional Requirements

1. Administrator Rights:
Required for installation and specific features, such as setting up browser extensions.

2. Excel/Office Integration Requirements:
Microsoft Office (versions 2007, 2010, 2013, 2016, 2019, or 365 desktop editions) is required for automating tasks in Excel and Outlook.

3. Robility Manager Requirements:
For users integrating Robility Designer with Manager:
    a. Ensure the system can establish communication with the Manager server.
    b. SSL/TLS 1.2 is mandatory for secure communication.

4. Windows Registry:
Read & Write access is required during the installation of Robility Designer and Runner to configure essential registry entries for proper functionality.
Administrative Rights: Necessary for installing the Robility Runner. 

5. Remote Desktop:
The Remote Desktop option must be enabled to support Robility Runner Auto Login for service accounts and user accounts. 

6. URL Whitelisting:
Specified URLs must be whitelisted to ensure the proper functioning of Robility Designer and Runner across all deployment models. Click here to refer. 

7. Group Policy:  
For Robility’s Chrome and Edge browser automation, specific group policy configurations and prerequisites must be enabled. Click here to refer.

8. VM Name Requirements:
While creating virtual machines or Citrix environments, the machine name must not contain special characters. Only hyphens (-) and underscores (_) are permitted, and they should be used only within the name, not at the beginning.

9. User Account:
Dedicated service account with login rights, ideally non-interactive for unattended execution.

10. Auto-logon:
Auto Logon should be configured for unattended execution. Click here to refer

Installation

Robility Designer and Runner can be installed using two convenient methods to suit different deployment requirements. Detailed below are the steps for each method:

1. Installation via Robility Manager: 
This method lets users easily download and install the Robility Designer or Runner directly from the Robility Manager, simplifying setup. It’s quick, user-friendly, and ensures a smooth start to your automation projects. Click here to refer. 

2. Installation from command-line prompt: 
This method lets users to install the Robility Designer or Runner through a command-line interface, offering greater control and flexibility. This approach is ideal for automated or large-scale deployments, ensuring a streamlined process. Click here to refer. 

Before proceeding with the installation, it is important to ensure that your system meets the necessary hardware and software specifications. For detailed information about these specifications, click here.

Installation via Robility Manager

For Designer

Follow these steps to download and install the Designer MSI from Robility Manager. This process is straightforward and does not require additional assistance or administrative rights.

1. Log in to Robility Manager using your credentials.
2. If you have access to a single tenant, you will be directed to the Home page upon login.

     a. For multiple tenants, choose the tenant where you want to download the Designer and start building automations.
3. Navigate to the “Products” page to explore Robility’s product offerings, including their latest versions.
4. Locate “Robility Designer” and click the Download button.
5. Before the download starts, review the user license agreement displayed on your screen and click Agree to proceed.

6. Once the MSI file is downloaded, double-click it to launch the installation wizard.
7. Follow the on-screen prompts:

    a. Click Next to continue.
    b. Accept the license agreement and click Next again.
8. The installation process will complete, and the Designer will be successfully installed on your system.
9. You’re now ready to start using Robility Designer for your automation needs.

For Runner

Administrative rights are required to install the Robility Runner. 

The following guide provides detailed steps to download and install the Runner MSI from Robility Manager.

1. Log in to Robility Manager using your credentials.
2.  After logging in, if you have access to only one tenant, you will be redirected to the Home page automatically.
     a. For users with access to multiple tenants, a selection screen will appear. Choose the specific tenant where you want to download the Runner.
3. Navigate to the “Products” page in Robility Manager. This section showcases all available Robility products, along with their latest versions and updates.
4. Locate “UnAttended Runner” and click the Download button.
5. Before the download begins, a user license agreement will appear on your screen. Carefully review the terms and conditions and click Agree to confirm and proceed with the download.
6. Once the MSI file is downloaded, locate it in your system’s downloads folder.
7. Double-click the file to open the installation wizard and initiate the setup process.
8. The installation wizard will guide you through the setup steps:
     a. Click Next on the welcome screen to continue.
     b. Review and accept the license agreement by selecting the checkbox and clicking Next again.
     c. Choose the installation folder if prompted or proceed with the default location.
9. When prompted, grant the necessary administrative rights to allow the installation to proceed. This step ensures that the Runner is properly configured on your system.
10. After granting permissions, the installation wizard will finalize the process. Once complete, a confirmation message will appear indicating that the Runner has been successfully installed.

Installation Path

This documentation offers a detailed overview of the installation process and file location paths for Robility Designer and Runner.

Designer default Installation Path:

Modules File Path Description

Launcher

C:\Users\+username+\AppData
\Local\RobilityDesigner

Handles License and operations like open/create

Designer

Loading workflows and Installing features

UI Explorer

WindowsSpy and related information

Product Updater

Functionality for product update

Product Downloader

Check for new version of product and features

Designer Instance

Executing workflow from designer.

License Configuration

License configuration

Chrome Plugin

C:\ProgramData\Robility7

WebAutomation and extension related files for chrome

Edge Plugin

Webautomation and extension related files for Edge

Runner Default Installation Path:

Modules File Path Description

Robility Logon

C:\Program Files (x86)\RobilityRunner

Helps to login to VM’s that has been logged off

Runner

Maintain communication between manager and VM

Runner Instance

Executes workflows inherited from Runner

Product Downloader

Check for new version of product and features

RunnerUpdater

Functionality for product update

License Configuration
C:\ProgramData\Robility7
License configuration

Chrome Plugin

WebAutomation and extension related files for chrome

Edge Plugin

Webautomation and extension related files for Edge

Installation via Command Prompt

Command-Line Installation

Robility Designer and Robility Runner can be installed, updated, or modified using command-line tools. This allows for streamlined deployment, especially in automated environments or when managing multiple installations. The following guide will walk you through the process of installing both the Designer and Runner MSI files using the command line.

Key Requirements

1. Authorized Users: Only users with valid access to Robility Manager can download the latest Designer and Runner MSI files.
2. Administrator Rights: You must have administrator privileges to run the installation commands.
3. Command Prompt Access: You will need access to the Command Prompt and the ability to run it with administrator privileges.
4. Silent Mode: You can run the installation in silent mode to update from a previous version without user interaction.

Installing Designer via Command-Line

Follow these steps to download and install the Robility Designer MSI using command-line instructions:

  1. Create a Folder for the MSI File: Before starting the installation, you need to create a directory where the MSI file will be downloaded. Open the Command Prompt and execute the following command to create the folder – “MD C:\Robility_MSI”.
  2. Download the Robility Designer MSI File: Log in to Robility Manager to download the Robility Designer MSI file to the folder you just created. Once logged in, navigate to the product section and download the latest MSI version of Robility Designer. The MSI file should be saved in – “C:\Robility_MSI\RobilityDesigner2x.x.x.msi”.
  3. Run the Installation Command: After the MSI file is downloaded, you can install Robility Designer using the following command in the Command Prompt – “msiexec /iC:\Robility_MSI\RobilityDesigner2x.x.x.msi/qn/passive/l*v “C:\Robility_MSI\DesignerInstallationLog.txt”.
  4. Completion: Once the command is executed, Robility Designer will be installed on your system without further interaction. After installation, you can check the log file for details about the installation process.

Installing Robility Runner via Command-Line

Follow these steps to download and install the Robility Runner MSI using the command-line method:

1. Create a Folder for the MSI File: Just like with Robility Designer, start by creating a folder where the Robility Runner MSI will be stored. Execute the following command to create the folder – “MD C:\Robility_MSI”.
2. Download the Robility Runner MSI File: Log in to Robility Manager to download the latest Robility Runner MSI file. Once you are logged in, navigate to the “Products” section, and download the MSI for Robility Runner. The file should be saved at “C:\Robility_MSI\RobilityRunner2x.x.x.msi”.
3. Run the Installation Command: With the MSI file downloaded, execute the following command in the Command Prompt to install Robility Runner: “msiexec /iC:\Robility_MSI\RobilityRunner2x.x.x.msi/qn/passive/l*v “C:\Robility_MSI\RunnerInstallationLog.txt”
4. Completion: Once the command is executed, Robility Runner will be installed silently without further user interaction. You can review the log file to confirm the installation process.

Important Notes:

1. Silent Mode Installation: Both Designer and Runner can be installed without any user interaction by using the `/qn` flag. This is particularly useful for unattended installations or updates.
2. Log Files: The log files generated (`DesignerInstallationLog.txt` and `RunnerInstallationLog.txt`) provide a detailed overview of the installation process. If any issues occur during installation, the logs will be helpful for troubleshooting.
3. Administrative Rights: Running the installation from the command line requires administrative rights. Without these rights, the installation will fail.

4. Software Prerequisites: Ensure that your system meets the minimum hardware and software requirements for Robility Designer and Runner before starting the installation.
5. Updating from Older Versions: If you’re updating from an older version of Robility Designer or Runner, use the same command as above. The installer will automatically detect the existing version and update it. Using the `/qn` flag ensures that the update process occurs silently, without requiring user input.

Common Arguments

1. /quiet, /q, qn – Fully silent mode
2. /passive – Unattended mode, shows progress bar only.
3. /norestart – Do not restart the system after the installation.
4. /forcerestart – Restart the system after installation is complete.
5. /log, /l – Enable Logging.

Remote Installation

Remote Installation

Remote installation allows you to install and update Robility Designer and Robility Runner on multiple remote machines by executing the Designer.msi and Runner.msi installers from a central admin machine. This method is useful when you need to manage installations across many systems without manually visiting each machine.

Below are the detailed steps and parameters involved in setting up a remote installation for both Robility Designer and Robility Runner.

Key Points to Note

1. Admin Machine: This is the machine used by the administrator to perform the installation. The admin machine will download the MSI files, create the necessary batch files for installation, and trigger the installation process remotely.
2. Remote Machine: These are the systems where the MSI files will be installed. It’s essential that these machines are prepared to receive and install the MSI files from the admin machine.
3. Authorized Users: Only authorized users of Robility Manager are permitted to download the latest versions of the Designer and Runner MSI files.
4. Administrator Rights: Both the admin machine and the remote machines require administrator rights to execute the installation commands. Ensure that you have the necessary permissions before proceeding.
5. Machine List: Prepare a list of remote machines on which the MSI needs to be installed. You will need the names or IP addresses of these machines to run the commands remotely.
6. PowerShell Access: The admin machine must have access to PowerShell to execute the batch file remotely. Ensure that PowerShell is enabled and that you have the necessary privileges to run scripts.
7. PsExec Requirement: The admin machine must have PsExec v2.43(or later) installed to allow for remote execution. PsExec is part of Sysinternals by Microsoft, and it facilitates remote command execution.
You can download PsExec from the official Microsoft Sysinternals page:(https://learn.microsoft.com/en-us/sysinternals/downloads/psexec)
8. Silent Installation: You can run the installer in silent mode, which ensures the installation happens without user intervention. This is particularly useful when updating from older versions of Robility Designer or Runner.

Installation Process

1. Download the MSI Files: Log into Robility Manager and download the latest versions of Robility Designer and Robility Runner MSI files. Ensure that these MSI files are compatible with your system.
2. Place the MSI Files in a Shared Folder: Store the MSI files in a shared folder that is accessible to both the admin machine and the remote machines. Example: “\\admin_machine\myfiles\RobilityRunner2x.x.x.msi”.
3. Share the Folder: Share the folder where the MSI files are stored with **read access** for the remote machines. This allows the remote systems to access and copy the MSI files needed for installation.

Batch File Creation Steps

The installation process on remote machines is facilitated by creating a batch file on the admin machine. This batch file will contain commands for copying the MSI file to the remote machine and executing the installation.

1. Create a Folder on the Remote Machine: The batch file must first create a folder on the remote machine to store the MSI file. This folder will be used to copy the MSI from the admin machine. Use the following command: “MD C:\Robility_MSI”. This command ensures that the folder `C:\Robility_MSI` exists on the remote machine.
2. Copy the MSI File from the Admin Machine to the Remote Machine: After creating the folder on the remote machine, the next step is to copy the MSI file from the shared folder on the admin machine to the remote machine. This can be done using the `xcopy`command: xcopy\\admin_machine\myfiles\RobilityRunner2x.x.x.msi C:\Robility_MSI\RobilityRunner2x.x.x.msi”.
This command will copy the RobilityRunner2x.x.x.msi file from the shared folder on the admin machine to the “C:\Robility_MSI” directory on the remote machine.
3. Run the MSI Installation on the Remote Machine: Once the MSI file is copied to the remote machine, the batch file will trigger the installation using msiexec, the Windows Installer. The command for silent installation is as follows:
“msiexec/i C:\Robility_MSI\RobilityRunner2x.x.x.msi/qn/l*v”C:\Robility_MSI\RunnerInstallationLog.txt”
4. Sample Batch File: The batch file (`install.bat`) will include the above commands. Example:
MDC:\Robility_MSIxcopy\\admin_machine\myfiles\RobilityRunner2x.x.x.msi C:\Robility_MSI\RobilityRunner2x.x.x.msi
msiexec/iC:\Robility_MSI\RobilityRunner2x.x.x.msi/qn/l*v”C:\Robility_MSI\RunnerInstallationLog.txt”

Batch File Execution 

Once the batch file is created, you can execute it remotely on the target machines using PowerShell. Ensure that PowerShell is running as Administrator on the admin machine.

1. Open PowerShell as Administrator: Right-click the PowerShell icon and select Run as Administrator to open an elevated PowerShell window.
2. Execute Command for a Single Remote Machine: To execute the installation on a single remote machine, use the following PsExec command in the PowerShell window:
“psexec.exe@remote_computer_name-s-udomain\user_id-ppassword\\admin_machine\myfiles\install.bat”.

– `@remote_computer_name`: The name of the remote computer where the MSI is to be installed.
– `-s`: Run the command with system-level privileges.
– `-u domain\user_id -p password`: Provide the credentials of the user with administrator rights on the remote machine.
– `\\admin_machine\myfiles\install.bat`: The path to the batch file on the admin machine.

3. Execute Command for Multiple Remote Machines: To execute the installation on multiple remote machines simultaneously, use the following command:
psexec \\pc1,pc2,pc3-s-udomain\user_id -ppassword\\admin_machine\myfiles\install.bat”.

– `\\pc1,pc2,pc3`: A comma-separated list of remote machine names or IP addresses.
– The batch file will be executed on all the specified remote machines, initiating the MSI installation on each.

Deploy through SCCM

Deploying Robility Designer or Runner using SCCM enables administrators to efficiently install or update these applications across multiple target computers. The steps below provide a detailed walkthrough of the process.

For additional information on application creation and deployment using SCCM, refer to Microsoft’s official documentation: (https://learn.microsoft.com/en-us/mem/configmgr/apps/get-started/create-and-deploy-an-application).

Step 1: Download the Robility MSI

1. Navigate to Robility Manager using your credentials. Ensure you have administrative rights to access the necessary download sections.
2. Locate the latest version of the required MSI files (Robility Designer or Runner). Save the file to a folder on your administrative machine. Example: “C:\Robility_MSI”.

Step 2: Open SCCM Console

3. Launch the System Center Configuration Manager (SCCM) Console from your administrative machine.
4. Verify that you have the necessary permissions to create and deploy applications within SCCM.

Step 3: Create the Application

5. Navigate to Application Management, in the SCCM Console, follow the path – “Software Library” > “Overview” > “Application Management”.
6. Initiate Application Creation
    a. Right-click on Applications and select Create Application. 
    b. In the application wizard, select Manually specify the application information, then click Next.
7. Enter Application Details and fill in the application metadata such as:
    a. Name: Specify the application name, e.g., Robility Designer or Robility Runner
    b. Publisher: Sutherland. 
    c. Version: Enter the version of the MSI you are deploying.
8. Provide the MSI installation command in the Installation Program section. Use the appropriate command based on the MSI file:
    a. msiexec /i “C:\Robility_MSI\RobilityRunner2x.x.x.msi” /qn (OR)
   b. msiexec /i “C:\Robility_MSI\RobilityDesigner2x.x.x.msi” /qn

Replace the filenames with the exact names of your downloaded MSI files, if different.
9. Choose an appropriate category or software classification to organize the application in SCCM.
10. Add deployment type information: 
      a. Deployment Name: Specify a unique name, e.g., “Robility Designer Deployment”
      b. Content Location: Specify the path where the MSI is stored (e.g., `C:\Robility_MSI`)
11. Proceed through the application creation wizard, reviewing all configurations and making adjustments if necessary.
12. Finalize and close the wizard to complete application creation.

Step 4: Deploy the Application

13. In the SCCM Console, navigate to “Software Library` > `Overview` > `Application Management”.
14. Select the application you created (e.g., Robility Designer or Runner) from the list and click Deploy in the ribbon menu at the top.
15. Choose the target collection(s) of devices where the application will be deployed. SCCM allows you to specify individual devices, user groups, or larger collections.
16. Configure Deployment Settings:
      a. Purpose: Set the purpose of the deployment to Available (optional for users) or Required (mandatory installation.
      b. Installation Deadline: Specify a deadline for the installation to ensure timely deployment.
17. User Experience Settings: Define how the application installation appears to users.
18. Adjust Additional Settings: Configure alerts, retry options, or other settings based on organizational requirements.
19. Complete Deployment Wizard: Review all deployment configurations and click Finish to complete the deployment setup.

Step 5: Monitor Deployment Progress

1. In the SCCM Console, go to the Monitoring section to oversee deployment activities.
2. Under Monitoring, select Deployments to view the status of Robility application deployment. 
3. If any devices report installation failures, review the SCCM logs for details. 

Archival Policy

Robility Designer and Runner generate and manage log files locally on the machine where the respective components are installed. To ensure optimal storage usage and maintain a consistent logging strategy, the following archival policy is implemented:

1. Daily Log File Generation and Size Limit

a. Each day, a new log file is generated for Robility Designer and Runner activities.
b. The maximum size of a single log file is capped at 10 MB per day.
c. If the daily log data exceeds this 10 MB threshold, the application will automatically generate an additional log file for the same day to accommodate the overflow.

2. Archive Storage and Purge Policy

a. Archived log files are stored in a designated archive folder on the local machine.
b. A First-In-First-Out (FIFO) purge policy is enforced to manage storage consumption.
c. Under this policy, the oldest archived files are automatically deleted once the folder reaches its retention capacity.

3. Retention Limits

a. The archive folder maintains a maximum of 30 archived log files at any given time.
b. Each archived file is limited to a maximum size of 10 MB.
c. This results in a total potential archive size of up to 300 MB per component (Designer and Runner), stored locally.

To learn about Runner archive settings, click here

Important-

1. It is important to note that log files are not uploaded to the Robility Manager as part of the standard archival process.

2. All logging, archiving, and purging operations are managed locally on the system running the Designer or Runner.

3. To view the path where the folders are located, click here.

Uninstallation-Command Prompt

You can uninstall Robility Designer and Runner using the MSI installer via the command line. This process is efficient, silent, and minimizes manual intervention, ensuring proper removal of all components. Follow the detailed instructions below for a seamless uninstallation experience.

Key Considerations:

1. Matching MSI Version: Ensure the same version of the MSI file used during the initial installation is available in the specified path (e.g., `C:\Robility_MSI`). Using a mismatched version may result in errors or incomplete uninstallation.
2. Administrative Rights: Administrative privileges are mandatory for executing uninstallation commands. Confirm that you have the required access level on the machine.
3. Command Prompt Access: Launch the Command Prompt in Administrator mode (`Run as Administrator`) before proceeding with the commands. This ensures the process executes without permissions-related interruptions.
4. Silent Mode Support: The uninstallation process can run in silent mode to minimize user interaction. Logs are generated to record the process details for auditing or troubleshooting purposes.

Step-by-Step Uninstallation Process

For Robility Designer

1. Open the Command Prompt in Administrator mode.
2. Navigate to the directory where the MSI file is stored (e.g., `C:\Robility_MSI`) or use the full file path directly in the command.
3. Run the following command to initiate the uninstallation process: “msiexec /x C:\Robility_MSI\RobilityDesigner2x.x.x.msi/qn/passive/l*v “C:\Robility_MSI\DesignerUnInstallationLog.txt”
4. Monitor the process through the log file to ensure that all components are successfully removed.

For Robility Runner

1. Open the **Command Prompt** in Administrator mode.
2. Ensure the correct MSI file for the Runner is available in the designated path (`C:\Robility_MSI`) or use the full file path directly.
3. Run the following command to uninstall Robility Runner – “msiexec /x C:\Robility_MSI\RobilityRunner2x.x.xmsi/qn/passive/l*v “C:\Robility_MSI\RunnerUnInstallationLog.txt”
4. Review the log file to confirm the uninstallation was successful and to identify any errors that might have occurred during the process.

Group Policy

For Robility’s Chrome and Edge browser automation plugins to operate without interruptions, specific group policy configurations and prerequisites must be enabled. These configurations ensure robust and seamless integration between Robility’s tools and browser automation functionalities.

Key Requirements:

1. Dynamic Port Connections: Allow the following applications to create dynamic ports for plugin communication: “RobilityEdgeNativeApp” and “RobilityChromeNativeApp”. It enables smooth data exchange between the plugins and the browser during automation workflows.

2. Access to Chrome Web Store: The target machine must have network access to the following URLs to install and update Chrome extensions: 
a.[https://clients2.google.com/service/update2/crx](https://clients2.google.com/service/update2/crx)
b. [https://clients2.googleusercontent.com/crx](https://clients2.googleusercontent.com/crx)

This access is crucial for downloading, updating, and managing browser plugins required for automation.

3. Additional Chrome Plugin Configuration Resources:  For detailed information on Chrome applications and native messaging configurations, refer to the official Chrome developer documentation:
[https://developer.chrome.com/docs/extensions/mv3/nativeMessaging/](https://developer.chrome.com/docs/extensions/mv3/nativeMessaging/)

Project Management

Project Management in Robility Manager provides a structured management to creating, configuring, and managing automation projects within a tenant. It ensures that automation workflows are organized, resources are efficiently allocated, and access is properly controlled, enabling smooth execution and monitoring of automated processes.

Key Capabilities of Project Management:

1. Project Creation and Organization: Administrators and authorized users can create projects within the tenant, defining their scope and purpose. Projects serve as dedicated spaces for managing automation workflows, ensuring that related processes, resources, and configurations are grouped logically.

2. Resource Allocation: Users can assign resources such as bots and developers to specific projects, ensuring the right personnel and automation agents are linked to each initiative. Proper resource allocation helps streamline execution and optimize workload distribution.

3. Role-Based Access Control: Project Management allows administrators to define project-level roles and permissions, ensuring that users have appropriate access based on their responsibilities. This enhances security and governance by preventing unauthorized modifications to automation workflows.

4. Deploy Robots and Scheduler: Users can manage automation workflows by deploying them in the Robility Runner. The scheduler ensures that automated tasks run at predefined times, improving efficiency and reducing manual intervention.

5. Integration and Credential Management
Project Management facilitates seamless integration with various tools and platforms, including:

    • Interact: To enable human-in-the-loop interactions within automated workflows.
    • Credential Vault: For secure storage and retrieval of sensitive authentication details.
    • App Integrations: To connect with external applications and services, expanding automation capabilities.

By bringing all these elements together, Project Management in Robility Manager ensures a structured, secure, and scalable automation environment. It fosters collaboration, governance, and efficiency, making it easier for enterprises to deploy and maintain automation solutions effectively.

Roles & Permissions

The roles and permissions in project level provides the users to perform actions within the specific project inside the tenant. 

Roles:

1. ProjectAdmin
2. ProcessAdmin
3. InteractUser
4. Developer

5. CredentialAdmin

The below is the detailed documentation of each role and their permissions within the project.  To learn more about the roles in the tenant, click here

Project Admin

Users invited as “Project Admin ” are referred as the administrator of the specific project created and assigned to them. They will be granted access to manage project-level data. 

Permissions:

1. Map and manage users in the project.
2. Add or remove resources as needed.
3. Schedule robots for automation tasks.
4. Request licenses for Runner (Unattended, Attended, Service account and High density).
5. Add, edit and manage credentials for applications.
6. Have overall control over the Interact menu.
a. Note that access to the Interact queues can be restricted to view and manage for this role. 
7. Manage workflows published for projects.

The below table guides you with the permissions and actions assigned to the Project Admin.

Pages View Add Edit Delete Action
Dashboard
Roles & Users - Manage Users
Roles & Users - Manage Roles
Vault

x

Automation Ops
License
Schedule Robot
Interact Workflow - Queues
Interact Workflow - URN Management
Interact Workflow - Reports
Interact Workflow - Project Configuration
Workflow
App Integrations

Process Admin

The process admin is assigned to users who are responsible for overseeing and managing the automation processes within the specific project. Users with this role have the below permissions, 

Permissions:

1. Access, review, manage, and generate reports in the Interact menu for specific projects.
    a. Access to the Interact queues can be restricted to viewing and managing for this role.
2. Access to view credentials for applications and can perform actions to deactivate, lock, and unlock credentials within the project.
3. Request licenses for additional Runner required for project.
4. Add the resource, schedule and manage robots for automation processes within the project.
5. Monitor the status of deployed robots in real-time.

The below table guides you with the permissions and actions assigned to the Process Admin with each module.

Pages View Add Edit Delete Action
Dashboard
NA
NA
NA
Roles & Users - Manage Users

x

NA
NA
NA
NA
Roles & Users - Manage Roles

x

NA
NA
NA
NA
Vault

x

x

x

Automation Ops
License
NA
NA
NA
Schedule Robot
Interact Workflow - Queues
NA
NA
Interact Workflow - URN Management
NA
NA
Interact Workflow - Reports
NA
NA
Interact Workflow - Project Configuration

x

NA
NA
NA
NA
Workflow

x

NA
NA
NA
NA
App Integrations

Interact User

The Interact User role is assigned to users who are responsible for viewing and managing cases in the assigned Interact queues. The permissions associated with this role are listed below:

Permissions:

1. Access the dashboard for project monitoring.
2. Monitor transactions on the Interact page for the assigned queues.
3. Review transaction details, and perform actions such as back-pushing, unlocking, and viewing the history of transactions within Interact

The below table guides you with the permissions and actions assigned to the Interact User with each module.

Pages View Add Edit Delete Action
Dashboard
NA
NA
NA
Roles & Users - Manage Users

x

NA
NA
NA
NA
Roles & Users - Manage Roles

x

NA
NA
NA
NA
Vault

x

NA
NA
NA
NA
Automation Ops

x

NA
NA
NA
NA
License

x

NA
NA
NA
NA
Schedule Robot

x

NA
NA
NA
NA
Interact Workflow - Queues
NA
Interact Workflow - URN Management

x

NA
NA
NA
NA
Interact Workflow - Reports

x

NA
NA
NA
NA
Interact Workflow - Project Configuration

x

NA
NA
NA
NA
Workflow

x

NA
NA
NA
NA
App Integrations

Developer

This role is responsible for developing, maintaining and deploying automation workflows, ensuring their seamless integration with Interact, the credential vault, and App Integrations within the specific project. Below are the permissions, 

Permissions:

1. Access the dashboard for project and robot monitoring in real time.
2. View credentials for applications and perform actions to deactivate, lock, and unlock credentials within the project.
3. Have overall access to the Interact menu.
4. View
and perform actions such as inactivating and downloading published workflows.
5. Has privilege to schedule robots for automation.
6. View and perform actions such as start and stop the deployed robots within the project.

The below table guides you with the permissions and actions assigned to the Developer with each module.

Pages View Add Edit Delete Action
Dashboard
NA
NA
NA
NA
Roles & Users - Manage Users

x

NA
NA
NA
NA
Roles & Users - Manage Roles

x

NA
NA
NA
NA
Vault

x

x

x

Automation Ops

x

x

x

License
NA
NA
NA

x

Schedule Robot
Interact Workflow - Queues
NA
Interact Workflow - URN Management
NA
Interact Workflow - Reports
NA
Interact Workflow - Project Configuration
NA
Workflow
NA
NA
NA
App Integrations

Credential Admin

This role will have access to manage application credentials utilized by robots. These users are entrusted with the critical responsibility of overseeing and managing application credentials used by robots in the system. Below are the permissions entitled with, 

Permissions:

1.Access the dashboard for project and robot monitoring in real time.
2. Manage application credentials utilized by robots.
3. Create, modify, and delete credentials within the role of Credential Admin.

The below table guides you with the permissions and actions assigned to the Credential Admin with each module.

Pages View Add Edit Delete Action
Dashboard
NA
NA
NA
NA
Roles & Users - Manage Users

x

NA
NA
NA
NA
Roles & Users - Manage Roles

x

NA
NA
NA
NA
Vault
Automation Ops

x

NA
NA
NA
NA
License

x

NA
NA
NA
NA
Schedule Robot

x

NA
NA
NA
NA
Interact Workflow - Queues

x

NA
NA
NA
NA
Interact Workflow - URN Management

x

NA
NA
NA
NA
Interact Workflow - Reports

x

NA
NA
NA
NA
Interact Workflow - Project Configuration

x

NA
NA
NA
NA
Workflow

x

NA
NA
NA
NA
App Integrations

Map Users

The Map Users feature allows project admins and tenant administrators to assign users to projects. This gives users access to perform actions like publishing workflows, integrating with Interact, the credential vault, app integrations, and managing robots based on their roles.

Follow the steps below to map users to a project:

1. Navigate and go to the “Projects” in the tenant and chose your specific project to map users.
2. Select the “Roles&Users” from the left-hand side menu.
3. On the top-right of the screen, select the “MapUser” option.
4. A pop-up will be appeared on the screen.
5. Select the role form the drop-down and c
hoose the “user” to be mapped inside the project.
6. Click on “Map” button and the user will be mapped successfully to the project. 

Click here to view the roles and permissions inside the project level. If the user needs to be invited to the tenant itself, click here. 

Workflows

Workflows are automation solutions created, configured, and published through Robility Designer. They represent the backbone of Robility’s automation ecosystem, defining the logic, sequence, and execution flow of automated processes. Once published, workflows are deployed to this section, which serves as a centralized command center for managing, organizing, and overseeing all operational automations within the enterprise.

This section enables users to maintain complete visibility and control over every deployed automation, ensuring that business processes run seamlessly, efficiently, and with minimal manual intervention.

Key Capabilities

1. View and Organize Workflows: Browse and filter workflows by projects. 

2. View Workflow History: Access a complete historical record of workflow published status.

3. Manage Versions: Every workflow version is recorded, allowing users to:

a. Audit prior versions
b. Compare logic changes
c. Roll back if an update causes execution issue
d. Publish enhancements safely

Version control ensures continuity and controlled evolution of automations.

4. Security Scan Status: View automated security scan results to ensure workflows follow secure coding standards and do not introduce vulnerabilities. This helps maintain enterprise-grade compliance and trust.

5. Workflow Analyzer Report: Access analyzer reports generated during workflow build and publish cycles. These reports highlight best-practice deviations, performance issues, and optimization recommendations—helping designers improve workflow quality and reliability.

Click here to learn more about how to publish workflows. 

Explanation of Tags on the Workflow Screen

1. Serial Number: Displays the count of workflows published, helping users identify and organize the sequence of solutions efficiently.
2. Solution Name Lists the name of each published solution, enabling users to easily recognize and differentiate between workflows.
3. Latest Version: Indicates the most recently published version associated with each solution, ensuring users can access the latest updates and modifications.
4. File Size (MB): Shows the size of the most recently published file, providing an overview of storage requirements for each solution.
5. Updated By: Tracks and displays the name of the person who last updated the resource. This tag reflects changes made by the resource itself or by an individual, ensuring accountability.
6. Updated On: Records the date and time when the resource was last updated. Similar to “Updated By,” this tag captures both manual updates and changes initiated by the resource.
7. Publish Status: Displays the current status of the published solution, offering visibility into whether the workflow is active, inactive, or under review.
8. History: Provides detailed tracking of workflow-related actions, enabling users to monitor and manage workflows effectively. The following options are included:
     a. Inactive: Allows users to mark a specific version of the solution as inactive, preventing further use while retaining version history.
     b. Download: Enables users to download the workflow.
9. Scanned Status: Provides the status of the security scan of the solution. 

How to Inactive and download the workflows?

1. Login to the “RobilityManager” portal.
2. Select the “Tenant” against which the “Project” has been configured and navigate to it.
3. Select the “Workflows” from the Menu.
4. Choose the respective “workflows” and click on the “view” option. 
    a. Here choose the “Inactive” or “Download” option against the version number. 

Credential Vault

The Robility Credential Vault is a secure feature designed to store and manage sensitive information such as credentials, API keys, and confidential data within the Robility platform. It ensures secure access to secrets during automation workflows, minimizing exposure risks.

By default, the Credential storage is set to “Robility Manager Instance”. This option can be configured in the tenant selection area. Click here to learn more about it. This step is crucial for the tenant admin because all credentials will be stored in the area based on the storage configuration. 

Click here to view where all the credentials configured in Robility Manager are stored.

How the Credential Vault is Secured

1. Tenant Isolation: Credentials for each tenant are stored in isolated databases that are physically separate and hosted in Azure SQL Managed Instances (Azure SQL MI). These databases are protected with Transparent Data Encryption (TDE) to secure data at rest, ensuring tenant-specific security.

2. Encryption Mechanism: AES-256 Encryption: The Robility Credential Vault employs AES (Advanced Encryption Standard) with a 256-bit key to encrypt sensitive data. This industry-leading encryption ensures robust security for stored secrets. Encryption keys are securely managed and stored within the Robility infrastructure.

3. Secure Communication: All communication between Robility components, such as bots, the Credential Vault, and the Robility Manager, is secured using TLS 1.2 (Transport Layer Security), safeguarding data in transit.

4. Role-Based Access Control (RBAC): Robility enforces strict role-based access controls, ensuring that only authorized users and processes can access or modify stored credentials.

5. Audit Logs: Credential Vault activities, such as storing, retrieving, or modifying credentials, are logged to support audit and compliance requirements. 

Third Party Vault Integration

Robility integrates seamlessly with external credential management systems, allowing organizations to leverage existing solutions for secure credential storage and retrieval.

Supported Third-Party Vaults:

Azure Key Vault: Allows secure storage and management of credentials using Azure’s encryption and policy controls.
Aws: Provides secure storage, automatic rotation, and fine-grained access control for secrets, ensuring safe integration with AWS services and applications.
Google: Enables secure storage and access management of API keys, passwords, and other sensitive data, integrated with Google Cloud’s IAM and audit logging.

Click here to configure third party vault integrations. 

Advantages

1. Enhanced Security: Implements advanced encryption and access controls to protect sensitive data.
2. Centralized Management: Streamlines credential management by centralizing sensitive information storage.
3. Zero Trust Enforcement: Access is strictly granted only to authenticated users or bots with appropriate permissions, aligning with Zero Trust security principles.
4. Flexible Infrastructure Options: Works with both Robility Manager’s instance vault and external third-party vaults, allowing organizations to choose based on their infrastructure preferences.
5. Auditability and Compliance: Tracks and logs credential access to meet compliance requirements such as GDPR, ISO 27001, and HIPAA. 

Click here to learn more about the best practices while configuring credentials. 

Best Practices

Understanding best practices for storing data in a vault is essential for maintaining security and efficiency in automation processes. This section outlines what is suitable to store in a vault and what to avoid, ensuring optimal use of secure storage while minimizing risks. 

What can be stored in the vault

1. Application Credentials: Store application-specific usernames, passwords, or API keys securely for automated logins and integrations.

2. PIN & Key Combinations: Securely store PIN codes or cryptographic keys used for encrypting/decrypting sensitive data or accessing protected systems.

3. Access Tokens: Save time-bound access tokens used for authenticating with external services or APIs during automation.

4. JWT Tokens: Manage and protect JSON Web Tokens used for secure data exchange and authentication in modern web services.

5. Assets: Store reusable values such as environment-specific configurations, connection strings, or constants needed across automation workflows.

What is Good to Store in the Vault

1. User Credentials:

a. System or application usernames and passwords.
b. Service account credentials with scoped access.

2. Use Specific Accounts: Store service or automation accounts rather than individual user credentials whenever possible. Service accounts are more secure and can be tightly scoped to the specific automation.

3. Scope Access: Ensure that only the robots or processes that require specific credentials have access to them in the vault.

4. Regular Rotation: Automate or manually rotate credentials stored in the vault to mitigate risks in case of a breach.

5. Use Least Privilege: Limit the stored credentials to the minimum level of access required for the automation.

What is Bad to Store in the Vault

1. Do Not Store Generic or Shared User Accounts: Avoid storing credentials for shared or generic accounts unless absolutely necessary, as they can be harder to monitor.

2. Personal Accounts: Storing individual user credentials for personal systems is generally discouraged, as it introduces compliance and privacy challenges. If you store credentials for personal user accounts, ensure this complies with company and regulatory policies, such as GDPR or HIPAA.

3. Volatile or Temporary Credentials: Frequently changing credentials may not be ideal for the vault unless you have automated rotation.

4. High-Privilege Admin Accounts: While possible, it is better to avoid storing root or highly privileged credentials unless critical, as the risks of compromise are higher.

5. Large Files: Credential Vaults are not intended for file storage. Use appropriate file storage solutions for such data.

6. Frequently Changing Data: Avoid storing data that changes frequently, as this can lead to inefficiencies in retrieval and maintenance.

7. Personal Identifiable Information (PII): While the vault is secure, avoid storing excessive PII that may be subject to stringent compliance regulations. Only store what is necessary for operations.

8. Non-Sensitive Information: Avoid storing data that does not require encryption, as it consumes unnecessary resources. 

Click here to learn how to access the Credential Vault during automation.

Configuring Credentials

The following section explains how to configure credentials in the Credential Vault:

1. Web Form: Create and add individual credentials manually by filling out the web form. This method is ideal for quickly setting up a single credential.

2. Excel Upload: This method is ideal for bulk uploading credentials at once using a preformatted Excel template with the required fields.

Web form method

Below are the steps to configure the credentials using the “Web Form” method inside the respective project.  

1. Click on “Credential Vault” from the left-hand side menu bar.
2. Now click on “Click here to configure,” to add the credentials.

    a. If the project has already configured the credentials, it will be navigated to the “Credential Vault” page.
3. Click on “Add” from the right-hand side top corner, to start adding the credentials.
4. Choose the “Upload type” as “WebForm” as we are going to add a single credential for the application.
    a. Mention the application name for which the credentials have to be set. 
    b. Mention the username and password to be set for the above-mentioned application.
    c. Select the “Expiry Date” option to set the date for the credential needs to be expired. 
    d. Click on Save.

Excel Upload Method

Below are the steps to configure the credentials using the “Excel Upload” method inside the respective project.  

1. Follow the steps above to navigate to the “Credential Vault.”
2. Click on “Add” in the top right corner to begin adding credentials.
3. Choose “Excel Upload” as the upload type if you’re adding multiple credentials for different users.
    a. Click on the “Sample Template” option to download the sample format for the credentials to be added.
    b. An Excel file will be downloaded. Fill in the required details and save the file.
4. Navigate to the “Manager,” select the file with the entered details, and then click “OK.”
5. Click “Save” to complete the process.

Managing Credentials

Managing credentials allows users to efficiently handle their configured credentials by performing tasks such as updating, removing, and tracking them, ensuring secure and organized credential management.

Activate/ Inactivate the credentials

Credentials can be activated and inactivated to control their usage. When activated, credentials are available for automation processes, while inactivated credentials prevent unauthorized access, reducing security risks. This functionality ensures better control over sensitive data and allows for easier management.

Follow the steps below:

1. Log in to the RobilityManager portal.
2. Navigate to the respective Projects.
3. Select Credential Vault from the menu.
4. Find the respective Credential and click on the “Active/Inactive” option under the Action field.
5. The credentials will now be successfully activated or inactivated accordingly. 

Updating the credentials

The Edit option allows users to update the password and modify the expiration date required for the application. The Username field cannot be edited and will be disabled. Follow the steps below:

1. Log in to the RobilityManager portal.
2. Navigate to the respective Projects.
3. Select Credential Vault from the menu.
4. Find the respective Credential and click on the Edit option under the Action field.
     a. You can now update the credential details such as password, and expiration date.
7. Click the Update button.
8. The credentials will now be successfully updated.

How to Re-activate Expired Credentials?

Each credential is set to expire after the duration specified during its configuration. Once a credential expires, it cannot be used for any automation processes, ensuring compliance with security protocols and preventing unauthorized access.

To continue using the credential, users must reactivate it by following the reactivation steps outlined above. This process ensures that credentials remain secure, up-to-date, and aligned with organizational policies for managing sensitive information. 

Lock/Unlock Credentials

Credentials can be locked and unlocked to ensure secure and exclusive access during automation processes. They can be locked during the execution of the bot while retrieving the credentials, preventing unauthorized access or conflicts with other machines. Click here to learn how to lock credentials during bot execution.

Once the execution is complete, credentials are unlocked for secure utilization by other processes. This helps maintain control over sensitive data and ensures compliance with security protocols.

How to unlock credentials:

There are two ways to unlock credentials after the execution process:

1. The bot can automatically unlock the credential once the process is complete. Click here for details. This option is recommended as the best practices of automation. 
2. The user can manually unlock the credential in Robility Manager by following these steps:

a. Navigate to the respective Projects.
b. Select Credential Vault from the menu.
c. Locate the credential and click the “Unlock” button under the action field.

History option

The history option enhances standards and security compliance by allowing users to track and monitor the usage of credentials. It provides transparency and accountability by providing actions such as usage, lock/unlock status changes, updates, and status changes. 

1. Usage: Provides details about credential usage, including the machine name and the last used date and time.
2. Lock/Unlock: Shows the history of lock/unlock actions, along with the machine name and the date/time for the past 24 hours.
3. Updates: Lists the updates made, detailing who performed the update and when, within the last 24 hours.
4. Status Change: Displays the history of status changes, including who made the changes and when, for the last 24 hours.

Pin & Key Management

The Pin & Key feature allows automation workflows to securely store and access PINs and keys. Instead of embedding sensitive information directly into workflows, these values are securely maintained in the Vault and retrieved during execution when required.

Pin and keys are commonly used for authentication, access, and secure integration with applications.

Key Benefits

1. Centralized Secret Storage
     Store Pin & Key values securely in one centralized location instead of dispersing them across multiple workflows.
2. Security Best Practices
    Avoid exposing sensitive credentials in source files. All keys are encrypted and retrieved at runtime only by authorized robots.
3. Reusability
    Use the same Pin & Key across multiple workflows without duplication.
4. Ease of Rotation
    Update the key once in the vault, and all associated workflows will automatically reflect the updated value.

User Roles & Permissions

Access to Pin & Keys entries depends on permissions configured in Robility Manager:

Interact User: Does not have access to view or use pin & key in workflows.
Process Admin: Can assign Pin & Key to processes but cannot create, edit, or delete them.
Credential Admin: Has full access to create, edit, delete, and inactivate entries.
Developer: Can use existing Pin & Key in workflows but cannot manage them.
Project Admin: Can manage project-level access but cannot create items; they can edit and remove existing entries.

Managing Pin & Key

Managing Pin & Key entries in Robility Manager helps securely store and control sensitive credentials used by robots. You can create, edit, delete, activate, or inactivate Pin & Key entries using the steps below.

Creating Pin & Key

1. Navigate to the Vault page and click Add
2. In the Add Pin & Key window, choose an input method:
           Webform – for manual entry
           Excel – for bulk upload and upload files in .xlsx or .xls format
3. Select Type as Pin & Key.
4. Enter the Application Name.
5. Provide the Pin and Key values.
6. Click Save.
7. The Pin & Key entry will be created and listed on the Pin & Key page.

Editing Pin & Key

1. Locate the Pin & Key entry you want to modify and click the Edit icon next to it.
2. Update the Pin and Key values as required.
3. Click Update to save the changes.
4. All modifications are logged and can be reviewed in history for audit and traceability.
Note: The Pin & Key name and username cannot be modified after creation.

Deleting Pin & Key

1. To delete a single Pin & Key entry, click the Remove icon next to it. 
2. To delete multiple Pin & Key entries:
          Select one or more entries.
          Click Remove to delete them in bulk.

Inactive Pin & Key

Pin & Key entries can be set to Inactive when they are temporarily not required. Once inactivated, they cannot be used in workflows until they are activated again.

Viewing History

To view the history of an item, click the View option. History displays all actions performed on the item and is categorized as follows:

Usage: Records when and how the item was used.
Lock/Unlock: Shows when the item was locked or unlocked.
Updates: Displays any modifications made to the item, including who made the change, when it was made, and the item’s status (active or inactive).
Status Change: Tracks changes in the status of the item. 

Token Management

The Token feature allows automation workflows to securely store, and access tokens used for authentication and authorization. Instead of embedding token values directly in workflows, they are securely maintained in the Vault and retrieved at runtime.

Tokens are commonly used for API authentication, session validation, and secure integration with external services and applications.

Key Benefits

1. Tokens are securely stored in the Vault.
2. Token values are encrypted and never exposed in plaintext within workflows.
3. Access to tokens is governed by role-based permissions.
4. The maximum allowed token length is 800 characters.

Common Use Cases

1. Authenticating API requests to external services.
2. Securing communication between automation workflows and applications.
3. Centralizing token management across multiple environments.
Note: Tokens are sensitive values and must be stored in the Vault. They should not be stored as regular or hardcoded within workflows.

User Roles & Permissions

Access to Token entries depends on permissions configured in Robility Manager:

1. Interact User: Does not have access to view or use Token in workflows. 
2. Process Admin: Can assign Token to processes but cannot create, edit, or delete them.
3. Credential Admin: Has full access to create, edit, delete, and inactivate token entries.
4. Developer: Can use existing Token in workflows but cannot manage them.
5. Project Admin: Can manage project-level access but cannot create items; they can edit and remove existing entries.

Managing Token

Managing Token entries in Robility Manager helps securely store and control sensitive credentials used by robots. You can create, edit, delete, activate, or inactivate Token entries using the steps below.

Creating Token

1. Navigate to the Vault page and click Add
2. In Add Token, choose an upload type:
         Webform – for manual entry
         Excel – for bulk upload and upload files in .xlsx or .xls format
3. Enter an Application Name.
4. Provide the Token values in the Token field.
5. The expiration date will automatically populate.
6. Click Save.
7. The Token will be created and listed on the Token page.

Editing Token

1. Locate the Token entry you want to modify and click the Edit icon. 
2. Update the Token values as required.
3. Click Update to save the changes.
4. All modifications are logged and can be reviewed in history for audit and traceability.
Note: The application name cannot be modified after creation.

Deleting Token

1. To delete a single Token entry, click the Remove icon next to it.
2. To delete multiple Token entries:
          Select one or more entries.
          Click Remove to delete them in bulk.

Inactive Token

Token entries can be set to Inactive when they are temporarily not required. Once inactivated, they cannot be used in workflows until reactivated.

Viewing History

To view the history of an item, click the View option. The history displays all actions performed on the item and is categorized as follows:

1. Usage: Records when and how the item was used. 
2. Lock/Unlock: Shows when the item was locked or unlocked.
3. Updates: Displays any modifications made to the item, including who made the change, when it was made, and the item’s status (active or inactive).
4. Status Change: Tracks changes in the status of the item. 

JWT Token Management

JWT Tokens (JSON Web Tokens) provide a secure, verifiable way to store and use signed tokens required for authentication and authorization in automation workflows.

Instead of embedding JWT token values directly into workflows, these tokens are stored securely in the Vault and retrieved at runtime. This ensures secure access and controlled use of sensitive credentials.

Key Benefits

1. Secure Storage: JWT tokens are securely stored and encrypted in the Vault, minimizing the risk of leakage. 
2. Signed and Verifiable: Each JWT token enabling validation of token authenticity during retrieval or use.
3. Centralized Management: All JWT tokens for your project are managed in one place, supporting reusability.
4. Role-based Access Control: Permissions to create, edit, view, or delete JWT tokens are governed by roles defined in Robility Manager, ensuring proper governance.

User Roles & Permissions

Access to JWT Token entries depends on permissions configured in Robility Manager:

1. Interact User: Does not have access to view or use JWT Token in workflows. 
2. Process Admin: Can assign JWT Token to processes but cannot create, edit, or delete them.
3. Credential Admin: Has full access to create, edit, delete, and inactivate entries.
4. Developer: Can use existing JWT Token in workflows but cannot manage them.
5. Project Admin: Can manage project-level access but cannot create items; they can edit and remove existing entries.

Managing JWT Tokens

The following sections describe how to create, edit, delete, and inactivate JWT token entries in Robility Manager.

Creating a JWT Token

1. Navigate to the Vault page in Robility Manager.
2. Click Add to open the Add Credential dialog.
3. In the Upload Type, select
        Webform – for manual entry
        Excel – for bulk upload and upload files in .xlsx or .xls format
4. Enter the application Name to identify the token.
5. Provide the JWT Token Value in the designated field.
6. Click Save.
7. The JWT token will be stored in the Vault and listed on the JWT Token page.

Editing a JWT Token

1. On the JWT Token page, locate the entry you want to modify.  
2. Click the Edit icon next to it.
3. Update the JWT Token Value as needed.
4. Click Update to save changes.
5. All edits are logged automatically, supporting auditing and traceability.

Deleting a JWT Token

1. To delete a single JWT token, click the Remove icon beside the entry. 
2. To delete multiple tokens at once:
          Select the relevant entries using the checkboxes.
          Click the Remove button to delete them in bulk.

Inactive JWT Token

JWT Token entries can be set to Inactive when they are temporarily not required. Once inactivated, they cannot be used in workflows until reactivated.

Security Considerations

Do not hardcode JWT tokens within workflows; always retrieve them securely via the Credential Vault.
Access to JWT tokens should be limited based on roles and responsibilities defined in Robility Manager.
Rotate tokens periodically and ensure proper expiration claims are configured to maintain security.

Viewing History

To view the history of an item, click the View option. The history displays all actions performed on the item and is categorized as follows:

1. Usage: Records when and how the item was used. 
2. Lock/Unlock: Shows when the item was locked or unlocked.
3. Updates: Displays any modifications made to the item, including who made the change, when it was made, and the item’s status (active or inactive).
4. Status Change: Tracks changes in the status of the item.  

 

 

Asset Management

Asset Management in Robility Manager offers a centralized and secure way to store and manage key data required by robots during automation. Instead of embedding values directly into workflows, developers define reusable assets—configurable data points that streamline and standardize information across automations.

Key Benefits

1. Centralized Configuration: Store configuration values such as API keys and reusable variables in one place, keeping workflows organized and manageable.

2. Reusability: Use the same asset across multiple workflows and robots, preventing duplication and conflicts.

3. Simplified Maintenance: Update an asset’s value once (e.g., API endpoints or variable values) without needing to modify and republish each workflow.

4. Environment Flexibility: Manage distinct asset values for Dev, Test, and Production environments without altering workflow logic.

5. Audit and Traceability: All asset modifications are logged to support accountability and troubleshooting.

Managing Assets

To optimize robot configurations by managing assets in Robility Manager, you can create, edit, and delete assets through the following steps:

Creating Assets

1. Navigate to the Vault page and click Add.
2. In the Add Asset window, select either the Webform or Excel input option for manual or bulk input.
3. Choose Type as Asset, provide a meaningful Name, and select the appropriate Asset Type (Text, Boolean, Numeric).
4. Enter the asset Value and optionally add a Description.
5. Click Create to add the asset, which will then appear on the Assets page.

Editing Assets

1. Locate the asset you want to modify and click the Edit icon beside it.
2. Update the Value as needed.
3. Click Update to save changes.
4. All modifications are logged and can be reviewed in the asset’s history to maintain traceability.

Asset and Asset type cannot be changed. 

Deleting Assets

1. To remove an asset, click the Remove icon next to it.
2. Alternatively, select one or multiple assets and use the Remove button to delete them in bulk. 

What types of assets are supported and how do I choose the right one for my data?

Robility Manager supports three main types of assets to store different kinds of data in automation workflows.

Choosing the Right Asset Type

1. Use Text for most general-purpose data, especially when values contain letters, symbols, or multiple characters.
2. Use Boolean when you need to represent simple true/false conditions.
3. Use Numeric when dealing with numeric values that must be whole numbers, such as retry counts, delays, or limits.

Selecting the correct asset type ensures that the data is stored efficiently, validated properly, and used appropriately in your automation workflows. This improves maintainability and reduces errors in robot configurations.

Accessing Assets in Automation

Robots retrieve asset data dynamically during execution, using activities such as Get Asset within Robility Manager. Click here to learn more.  Access to assets is governed by project-level permissions to ensure security. 

Asset Examples

Asset Name Type Value Purpose
baseUrl Text https://api.xyz.com External API base path
isProduction Boolean true Toggle between environments
retryCount Numeric 3 Control retry logic

Automation Ops

The “Automation Ops” menu is designed to streamline workflow automation within a project. It provides users with the ability to view, manage, and assign workflows to machines, ensuring seamless execution of automated processes.

Located at the Project level, this menu grants the Project Admin or Process Admin the authority to configure automation deployment. This section helps maintain operational control while optimizing task execution within the project.

Pre-requisites

Below are the points to note before deploying the machines to the robots. 

1. The resource must be added to the Tenant to map it to the respective project. If you haven’t added the license yet, click here.
2. Adequate licenses must be available to deploy them.
3. You cannot map the deployed machine to another solution.
4. The machine must be idle and not in use in order to map it to another solution.

Once you have added the machine in the “Resources” inside the tenant and published the automation solution within the respective project, you are all set to deploy them.  To learn about adding resources to your tenant, click here

Steps to Add Resources to a Project

1. Navigate to the respective project within your tenant.
2. In the “Automation Ops” section, click the “Add” button.
3. Ensure that workflows are published to the project before deploying resources.
4. Select the license type as “Unattended Robot.”
5. Choose the available resource name for the tenant, then select the workflow you wish to deploy.
6. You can select the version number to be deployed. This will display details such as the description, published by, published date, and any release notes provided during publishing.
7. Once the workflow version is selected, the Resolution Settings will be automatically populated based on your published solution’s JSON. Click here to learn more about it.
8. Finally, click the “Save” button.

What does each of the tag in the Automation Ops screen mean?

1. Serial number Shows the count of the number of machines added.

2. MachineName The name of the machine to which the robot is assigned is seen here.

3. LicenseType – Displays the type of license (Unattended Robot or Attended Robot) associated with the resource.

4. Solution Shows the name of the solution assigned to the machine. This corresponds to the solution published and deployed from the Designer. 

5. Version Displays the version number of the solution assigned to the robot.

6. Domain User The domain and the username for the robot is seen here.

7. Status The robot has different status based on its execution in runner. Click here to view the status in detail. 

8. Updatedby – Displays the name of the user or resource that last updated the resource. This field is also updated when the resource itself performs an action.

9. UpdatedOn – Shows the date and time of the most recent update to the resource. This timestamp is also refreshed when the resource performs an action. 

10. Action There are four different actions that we can use from the runner which are run, stop, edit and remove.
a. Run – This initiates the bot in the runner.
b. Stop – To stop the workflow during execution. This requires a stop activity to be used in the workflow.
c. Edit – To edit the workflow details assigned to the machine.
d. Remove – To remove the machine from the project.

Removing the machine 

When a machine is in a Locked or Running state, you cannot remove it from the Automation Ops page.

If the machine is linked to a scheduler, attempting to remove it from the Automation Ops will display a notification:
“The machine is being used by the scheduler. Do you want to remove it?”

a. If you click Yes, the machine along with the associated scheduler will be removed.
b. This happens only when a single machine is assigned to the scheduler.
c. If multiple machines are assigned to the same scheduler, the scheduler will remain active and only the selected machine will be removed.

Admin Console

Admin Console is a Project-level management interface within Robility Manager that enables tenant admins and RPA developers to manage machines hosting the Runner. It provides access to Runner machine resources associated with automation projects through dedicated resource pages.

Users can perform machine management operations without requiring direct access to the target machines. A secure, single connection between Robility Manager and the Runner enables users to remotely send supported commands, monitor machine health and Runner status, access execution and diagnostic logs, and perform operational management tasks from a centralized interface. This capability is supported for Unattended Runner machines and is not applicable to Machine Templates. It improves operational visibility, simplifies troubleshooting, and streamlines the administration of unattended automation environments.

Key Features

1. Centralized Machine Management – Monitor and manage all machines running the Robility Unattended Runner from a single interface within Robility Manager.
2. Remote Maintenance – Perform administrative actions such as restarting machines, repairing the Runner, resetting the Runner, and disconnecting the Runner remotely.
3. System Health Monitoring – Monitor machine health and resource utilization, including CPU, memory, and disk usage, in real time.
4. Process Management – View active processes and terminate unwanted or unresponsive applications directly from the Admin Console.
5. Log Management – Configure, download, and manage Runner logs to support troubleshooting, diagnostics, and issue resolution.
6. Audit Visibility – Track administrative actions and command execution history through the Admin Audit Analytics Dashboard, ensuring enhanced monitoring, accountability, and operational transparency.

Limitations

1. The Admin Console is available only to users with the Tenant role. Users with other roles cannot access the Admin Console.
2. The Admin Console is accessed from the Resources page for each individual machine.

Prerequisites

Before using the Admin Console for a machine, ensure the following prerequisites are met:

  • The Runner is connected using a Manager Connection Key and is running the latest supported Runner version.

    If the Runner is running an outdated version, the Admin Console may not function correctly.

  • The Runner machine is online and reachable.

    The machine must be powered on, connected to the network, and actively communicating with Robility Manager. If the machine is offline, disconnected from the network, or otherwise unreachable, the Admin Console cannot send or execute administrative commands.

Important: If the Runner is connected using an older Runner version, upgrade the Runner to the latest supported version and reconnect it using a Manager Connection Key.

Once these prerequisites are met, Robility Manager can securely communicate with and manage the connected Runner machine through the Admin Console.

Admin Console Overview

When opened, the Admin Console displays key information about the selected Runner machine, including the associated user, machine type, and current Runner status.

Runner Status

The Runner Status indicates whether the selected Runner is currently connected and available to receive commands.

Status Description
Online The Runner is connected to Robility Manager and is available to receive and execute commands.
Offline The Runner is not connected to Robility Manager and cannot receive commands.

Command Categories

The Admin Console organizes commands into categories based on their function, helping administrators quickly locate and perform the required administrative actions.

Category Command Description
Logs Download Logs Downloads Runner logs for a selected date range of up to seven days. The downloaded log file is saved to the local machine from which you are accessing Robility Manager, not to the Runner machine.
Maintenance Restart Machine Restarts the selected machine remotely. This is useful when the machine is unresponsive or requires a restart after configuration changes. The Runner automatically reconnects to the Admin Console once the machine is back online.
Repair Runner Repairs the Runner installation to resolve issues and restore Runner functionality.
Reset Runner Resets the Runner. After resetting, the Runner must be manually reconnected using a Manager Connection Key.
Disconnect Runner Disconnects the Runner from the Manager. The Runner must be manually reconnected using a Manager Connection Key to receive commands again.
Clear Runner Logs Deletes Runner log files from the machine to free up storage space. This action is permanent, so download any required logs before clearing them.
System Monitoring Memory Usage Displays the current memory usage of the machine.
CPU Usage Displays the current CPU usage to help identify performance issues affecting automation runs.
Disk Usage Displays used and available disk space to help identify low-storage issues before they impact automation.
Running Processes Lists all active processes on the machine. Processes can be terminated using the Kill option after confirmation.
Top Processes Displays the top five processes consuming the most system resources. These processes can be terminated using the Kill option after confirmation.
Runner Log Level Activity Log Controls the level of logs captured in the Activity Log. Available log levels are Error, Trace, Info, and Debug.
Product Log Controls the level of logs captured in the Product Log using Error, Trace, Info, and Debug log levels.

Notes

1. System Monitoring: Memory Usage, CPU Usage, and Disk Usage display results in the Live Console panel instead of opening separate reports.
2. Maintenance: After using Reset Runner or Disconnect Runner, reconnect the Runner using the Manager Connection Key.

Important

1. Kill Running Applications
Warning –
Terminating a process can impact running automations, active applications, or unsaved data on the target machine. Use the Kill option with caution and verify the selected process before proceeding. Once a process is terminated, any associated tasks may fail, applications may close unexpectedly, and unsaved changes may be lost.

The Running Processes and Top Processes commands allow you to terminate applications using the Kill option. A confirmation prompt is displayed before termination.

2. Log Level Synchronization – Changes to Activity Log or Product Log levels in Robility Manager are automatically synchronized with the Runner.

Command Execution and Viewing Results

After sending a command from the Admin Console, the result is displayed automatically in the Live Console panel. The panel shows the response returned by the executed command.

Live Console

The Live Console is a real-time activity log that displays timestamped command execution details and responses from the connected Runner machine. It allows you to monitor command progress, verify results, and identify errors without requiring direct access to the machine.

Options:

Copy  — Copies the console log to the clipboard for sharing or troubleshooting.
Clear — Removes all entries from the console view.

Admin Audit Analytics Dashboard

The Admin Audit Analytics Dashboard provides a centralized view of all commands executed through the Admin Console across all machines.

Administrators can use this dashboard to monitor command activity, review execution status, and track administrative actions performed by users for auditing and troubleshooting purposes. 

Filters

Use the following filters to narrow down audit results:

Filter Description
Search Searches audit records based on text input, such as a machine name, user, or command.
From Date / To Date Filters results within a specific date range.
Event Type Filters results by command type, such as Restart Machine.
Status Filters results based on command execution status.

Status Description
All Displays all audit records regardless of status.
Success The command was completed successfully.
Pending The command was sent but the machine has not responded yet.
Failed The command was not completed successfully.

Click Apply to refresh the audit results based on the selected filters.

Audit Events Grid

The Audit Events Grid provides detailed information about commands executed through the Admin Console. Administrators can use the grid to review individual command executions.

Robot Status

This section outlines the various statuses of the Robility Runner (also known as the Robot), which are maintained based on the specific actions the robot is performing.

1. Idle – Indicates that the available resource is connected yet to be initiated for execution.   

2. Run Initiated – This status can be seen when we click on “Run” against the robot to initiate the bot. If it stays in this state for over 3 minutes, it will automatically switch to Not Connected, requiring human intervention.

3. Running – This status indicates that the robot has been initiated, and the execution is in progress.

4. Faulted – This status appears when the robot encounters an issue in the execution and requires human intervention. 

5. Stop Initiated – This status appears when the user clicks to stop the robot, allowing it to complete the current job. Once successful, the robot transitions to the Idle state.

6. Not Connected When the workflow is received but the Runner has not started to execute the workflow even after 3 minutes from “Run Initiated” state.

7. Locked – This status appears when the system is in a locked state. However, robots with the correct credentials and access can still execute the workflow.

8. Logged off – This status appears when the system is in a logged off state. However, robots with the correct credentials and access can still execute the workflow.

9. In Use – This status appears when the machine is being used in another project and is currently executing a robot. During this time, the “Action” tab will be inaccessible.

Move To Idle

The Move To Idle feature allows users to move one or more selected machines to the Idle state from the Automation Ops page.

Access: Available for users with the Project Admin and Process Admin roles.

Procedure

1. Open the Move To Idle dialog.
2. Select one or more machines using the checkbox next to each machine name.
3. Review the machine details:
           a. Machine Name
           b. License Type
           c. Solution
           d. Domain User
           e. Status
4. Select Move To Idle to complete the action.
5. Select Cancel to close the dialog without applying changes.

Notes

a. At least one machine must be selected to perform this action.
b. If no eligible machines are available, the dialog displays No Records Found.
c. After completion, the selected machines are moved to the Idle state.

Resolution Settings

You can now manually configure the screen resolution settings that were initially defined during workflow development, directly from the Automation Ops menu in RobilityManager. This enhancement provides greater flexibility and control during deployment, particularly in environments where screen resolutions differ from one machine to another.

In many cases, workflows rely on UI elements that are resolution dependent. When a robot is deployed to machines with different display settings, mismatches in resolution can lead to failed automation or element detection issues. By allowing configuration of resolution settings during deployment, RobilityManager ensures that the robot operates consistently and reliably across various machines.

This feature is especially beneficial for unattended robots running on virtual machines, remote desktops, or devices with non-standard display setups. It eliminates the need to modify the workflow or republish the solution just to accommodate a new screen resolution. 

How Does This Feature Work?

When deploying a robot using the Automation Ops menu in RobilityManager, the resolution settings from the original development environment are automatically applied. These settings are crucial for ensuring that the robot performs UI-based automation accurately, especially when working with elements that are sensitive to screen resolution or scaling factors.

Automatic Resolution Detection

When a solution is published from the developer’s machine, RobilityManager automatically captures and stores the screen configuration details within the solution’s JSON file. This includes:

Resolution – The screen dimensions (e.g., 1920×1080)
Scale – The display scaling setting (e.g., 100%, 125%)
Resolution Depth – The color depth of the display (e.g., 24-bit, .32-bit)
Font Smoothing – Indicates whether font smoothing is enabled on the machine

These values are used as a reference for future deployments.

During Deployment

When you select a solution while adding resources to a project, RobilityManager:

1. Automatically reads the resolution details from the JSON file of the selected solution.
2. Applies those settings to the deployment configuration.
3. Ensures that the robot runs under the same screen settings as the development environment. 

To learn more about how to deploy resources and configure related settings, click here.

Points to Note

1. The Resolution settings will apply exclusively to “Unattended and High-density Runner.” 
2. This option is not supported for Attended robots.
3. After configuring the settings and initiating the Run process, if the resource is at logged off state, the changes will be reflected upon auto-login functionality.
4. If the machine is already in at unlocked state, initiating the robot won’t execute the specified resolution changes.
5. The specified resolution changes will be executed only when an auto-login functionality is applied or when the manual unlock action is performed in the machine.
6. Resolution setting changes apply only to virtual machines; they are not supported for local systems.
7. Click here to know about “Auto-Logon” functionality. 

Why is it important?

Configuring resolution is important for several reasons:

1. Optimal Performance: Configuring the resolution ensures that the workflow performs optimally on different machines and environments. Matching the resolution to the target machine enhances performance and reduces compatibility issues.
2. Consistent User Experience: By configuring the resolution, you ensure a consistent user experience across different devices and platforms. Users can interact with the workflow without experiencing distortion or display issues.
3. Quality Control: Configuring the resolution allows for quality control, ensuring that images and visual elements appear as intended. It prevents pixelation, blurriness, or distortion that can occur when the resolution is not properly set.
4. Efficient Deployment: Proper resolution configuration streamlines the deployment process. It eliminates the need for manual adjustments or troubleshooting related to resolution discrepancies, saving time and effort during deployment.

5. Compatibility: Different machines and environments may have varying display capabilities. Configuring the resolution ensures compatibility across a wide range of devices, including Virtual Machines, without compromising on image quality or functionality.

Configure resolution

Once you’ve created and published the workflow in the Manager, follow these steps to add the resolution:

1. Go to Projects and click “GO” for the desired project.
2. If the resource has been already added, proceed. Otherwise, click here to add the resource.
3. Go to Automation Ops → click “Add”.
4. Select License Type, then choose the Resource Name, Workflow, and Version.
5. At the resolution settings, the options will be auto filled from the published machine, but you can adjust:
a. Resolution (Width x Height)
b. Depth (e.g., 32-bit)
c. Scaling (e.g., 100%)
d. Font Smoothing
6. Click “Save” to complete deployment.

If you want to change the resolution settings for the existing deployed machines, you can click on “EDIT” option and configure the resolution settings as per the project specifications.

Robility Lens

When the robots are ready to execute, Robility Manager initiates a validation process to ensure the features used in the workflow are supported. This validation is exclusively handled by Robility Manager and involves comparing the features within Robility Manager to those in the workflow deployed on the respective machine.

Feature Validation

1. Initiation: When the robots are deployed for execution, Robility Manager begins the validation process.
2. Comparison: The features within Robility Manager are compared with those used in the workflow deployed on the target machine.
3. Identification: If any feature used in the workflow is not available within Robility Manager, the system identifies this discrepancy.

Robility Lens

Robility Lens is a hassle-free and powerful feature designed to streamline error identification and improve issue diagnosis before bot execution starts.

By providing immediate feedback on missing or incompatible features, Robility Lens ensures that potential issues are addressed before they can cause disruptions in the execution process. This proactive approach not only enhances the efficiency of the automation workflow but also reduces the time spent troubleshooting errors after deployment.

Key Features

1. Immediate Feedback: Robility Lens provides instant feedback on missing or incompatible features, ensuring that potential issues are addressed before execution begins.
2. Proactive Error Identification: By identifying issues early, Robility Lens enhances the efficiency of the automation workflow and reduces the time spent troubleshooting errors after deployment.
3. In-Manager Issue Outline:
a. Robility Lens allows users to view a summary of the issue directly within the Robility Manager.
b. This eliminates the need for users to log into the machine every time they need to check logs, saving time and effort.

When to find?

1. Log in to Robility Manager using your credentials.
a. To learn how to sign up with Robility Manager, click here.
2. If you have access to only one tenant, upon logging in, you will be directed to the Home page of Robility Manager.
a. If you have access to multiple tenants, select the tenant to which you want to invite users.
3. On the left-hand side, select the “Projects” option, and navigate to the respective project where you have deployed the robots. 
a. If you have not configured resources for your tenant, click here
4.  Once you have navigated to your tenant, select the “Deploy Robots” menu on the left-hand side.
a. Make sure you have workflows published against to your projects. 
5. Click on “Run” on any machine that is ready to be deployed in the project.
6. Note that Robility Lens will appear only when there is an issue with execution of the bot through Runner. 

Robot Utilization

The Machine Utilization page provides a detailed view of machine activity where robots are executed within a project. It helps users monitor machine status, execution timelines, and utilization metrics to understand how automation resources are being used over time.

It enables operational teams to track execution health, identify inefficiencies, and ensure optimal machine allocation by presenting execution data in a structured and easy-to-analyze format.

Overview of the Details

Machine Utilization Details: Each record on the Machine Utilization page represents a robot execution instance on a machine and includes the following fields:

Machine Name: Displays the name of the machine on which the robot execution was performed. This helps users quickly identify and differentiate machines in environments with multiple execution nodes.

Robot Name: Shows the name of the robot executed on the machine, providing clarity on which automation process was running during the execution cycle.

Execution Start Time: Indicates the exact date and time when the robot execution started on the machine.

Current Status

Displays the current or last known status of the machine during execution. Possible statuses include:

1. Executing: The robot is actively running on the machine.
2. Allocated: The machine is reserved for execution but the robot has not started yet.
3. Faulted: The execution encountered an error or unexpected interruption.
4. Check State: The machine is in a verification or transitional state before execution proceeds.

Status Transition Time
Shows the timestamp at which the machine moved from one state to another (for example, from Executing to Faulted or Allocated).

Execution Duration
Displays the total time taken for the execution cycle, calculated from the execution start time to completion or faulted state.

Completed Cycle Count
Indicates the number of execution cycles successfully completed on the machine within the selected time range.

Total Hours Executed
Represents the cumulative number of hours the machine has been used for robot execution. This metric helps evaluate overall machine utilization and workload distribution.

View Status
Provides a detailed view of the execution status, allowing users to inspect execution progress, completion state, or fault information for deeper analysis and troubleshooting.

Key Benefits

Centralized Monitoring: View all machine execution data in a single dashboard
Better Resource Planning: Analyze total hours and cycle counts to optimize machine usage
Execution Transparency: Track execution start times, durations, and state transitions
Improved Troubleshooting: Quickly identify faulted executions and investigate their status

Use Cases

1. Monitoring real-time and historical machine execution status
2. Identifying machines with frequent faults or idle time
3. Analyzing execution duration trends for optimization
4. Supporting operational audits and performance reporting

The Machine Utilization page acts as a comprehensive monitoring and analysis tool for tracking robot execution across machines. By providing detailed status information, execution timelines, and utilization metrics, it enables users to maintain efficient automation operations and make informed resource management decisions.

Flow

The Flow page acts as a central control panel for all Robility Flow schedulers within a project. It provides a unified view where users can monitor, manage, and analyze workflow executions that are triggered either by time or by queue events.

1. Time-Based Scheduler

The Time-Based Scheduler is used to execute workflows at a predefined time or on a recurring schedule. It supports automation for workflows that need to run daily, weekly, monthly, or at fixed intervals.

Scheduler Details

a. Scheduler Name: Displays the name assigned to the scheduler.
b. Scheduler Type: Indicates the type of scheduler (e.g., time-based).
c. Workflow Name: Shows the workflow linked to the scheduler.
d. Version: Displays the version of the workflow being executed.
e. Status: Indicates the current state of the scheduler (e.g., Idle, To Check, Running).
e. Start Time: Shows when the scheduler is set to begin execution.
f. End Time: Shows when the scheduler is set to stop execution.
g. Execution Count: Displays the total number of workflow executions.
h. Trigger Count: Shows how many times the scheduler has triggered the workflow.
i. History: Provides a record of past executions, including status and runtime details.
j. Click View to see the overall execution history.
k. Each row can be expanded via View to access detailed execution logs.

2. Queue-Based Scheduler

The Queue-Based Scheduler triggers workflows based on items available in a selected queue. It enables event-driven automation, making it suitable for processes that depend on incoming transactions or queued data.

Scheduler Details

a. Queue Name: Displays the name of the queue linked to the scheduler.
b. Workflow Name: Shows the workflow executed for the queue.
c. Version: Indicates the version of the workflow being used.
d. Status: Shows the current state of the scheduler.
e. Last Start Time: Displays the most recent workflow start time.
f. Last End Time: Displays the most recent workflow completion time.
g. History: Provides a record of previous executions, including status and timing details.
h. Click View to explore detailed execution information.

Scheduler

The Scheduler menu streamlines processes between robots and humans without manual intervention. It enables scheduling of automation workflows at regular intervals, facilitating efficient management and real-time monitoring of robot execution in RobilityManager.  This automation of scheduling tasks reduces human error and ensures timely execution of critical processes. By setting up scheduled triggers, you can automate repetitive tasks, manage resources efficiently, and monitor workflow progress seamlessly. 

Schedulers are essential in automation for several reasons:

1. Efficiency: Schedulers automate repetitive tasks, ensuring they are executed at predefined intervals without manual intervention. This improves overall process efficiency.
2. Resource Optimization: By scheduling tasks, you can allocate resources more effectively, ensuring that critical processes are executed when needed without overburdening systems during peak times.
3. Timely Execution: Scheduled tasks ensure that important processes are executed at the right time, reducing delays and improving overall workflow timelines.
4. Error Reduction: Automation through schedulers reduces human errors that can occur during manual execution, leading to more accurate and reliable results.
5. Real-Time Monitoring: Many schedulers provide real-time monitoring capabilities, allowing you to track task progress, identify issues promptly, and take corrective actions as needed.
6. Productivity: By automating routine tasks, schedulers free up time for employees to focus on more strategic and value-added activities, boosting overall productivity.

Within Robility Manager, the scheduler is a vital tool used to organize bot deployment using five distinct scheduling methods.

1. Daily Schedulers
2. Daily Multiple Schedulers
3. Weekly Schedulers
4. Weekly Multiple Schedulers
5. Monthly Schedulers

Scheduler Essentials

Let’s delve deeper into each type of scheduler to grasp how they operate within the automation framework.

Before proceeding with scheduling robots, it’s crucial to adhere to and maintain the following steps:

1. Publishing Solutions: Begin by publishing the solutions to the project in RobilityManager. This step ensures that the latest versions of your automation workflows are available for scheduling. You can find detailed instructions on how to publish solutions here.

2. Resource Allocation: Next, add the necessary resources with their respective licenses. This step ensures that the correct resources are available for executing the scheduled tasks. Refer to the documentation here for guidance on adding resources.

3. Resource Configuration: Finally, configure the resources inside the project to define their roles and permissions. This configuration step ensures that resources are utilized efficiently and securely during automation execution. Refer to the guide here for detailed instructions on resource configuration.

How to navigate to the scheduler section?

Once you have followed and configured the above three steps, you can navigate to the Scheduler section to schedule and deploy your robots on a timely basis.

1. Login to Robility manager.
2. Click on Projects from the left side menu bar and navigate to the respective project.
3. Now, click on scheduler from the left side menu bar.
4. Now we can see the different types of schedulers available on this screen.

Queue-based Scheduler

A Queue-Based Trigger automatically starts a bot whenever a new transaction is added or back-pushed to a selected queue. This removes the need for manual intervention or fixed schedules, ensuring that your automations respond the moment new work becomes available.

How It Works

1. The system checks the queue every minute for new transactions.
2. When a new transaction is detected, the associated process is automatically triggered.
3. The trigger runs only on provisioned and connected resources, giving you full control over where the automation executes.
4. Only one Queue-Based Trigger can be created for each queue.

Benefits

1. No manual effort: The bot starts on its own, no need to run the process manually.
2. Real-time processing: Work items are handled immediately as they enter the queue.
3. Consistent workflow: Continuous monitoring ensures that no transaction is missed.
4. Efficient resource usage: Bots execute only when needed, avoiding idle run time.
5. Faster turnaround: Immediate execution helps improve productivity and response time.

Limitations

1. Only one Queue-Based Trigger is allowed per queue.
2. Requires at least one connected and provisioned resource to run the process.
3. Trigger frequency is fixed at one check per minute (cannot be customized).

How to setup the trigger for the queue?

1. Navigate to the respective project and go to the “Schedule Robots” page.
2. Click on add button and choose the “Queue based” trigger.
3. Select the respective queue and choose the connected resource.
4. Now, click on add button and the queue-based trigger will be saved.

Queue-Based Scheduler for Robility Flow

The Queue-Based Scheduler enables scheduling of published Robility Flows for execution using queue-based triggers. Workflows are automatically initiated when items are available in the selected queue from Interact, supporting continuous and event-driven processing. The scheduler checks the configured Interact queue for new transactions every one minute and initiates the workflow accordingly.

Pre-requisites

1. A queue must be configured in Interact before you can set up a Queue-Based Scheduler.
2. Publish the queue to the manager from Robility Flow. Ensure the “Enable External Flow” option is enabled while publishing, if not enabled, the published flow will not appear in the Workflow Name dropdown when configuring the Queue-Based Scheduler.

Configuration Fields

1. Queue*: Select the Interact queue to associate with this scheduler trigger. The scheduler monitors this queue and initiates workflow execution based on incoming items.

2. Flow Type*: Defines the type of workflow to be executed. This must be set to Robility Flow for queue-based scheduling.

3. Workflow Name*: Displays a list of published queue workflows. Select the workflow that should be executed.

4. Timezone: Specifies the timezone for the scheduler to ensure trigger execution aligns with the selected regional time settings.

5. Non-Working Days: Upload an .xlsx or .xls file containing dates on which the trigger should not execute. A predefined template is available under the Non-Working Days Template option, and the uploaded file must follow the required format.

6. Save: After configuring all required fields, save the scheduler configuration to activate the queue-based trigger and enable automated workflow execution based on queue activity.

Scheduler Trigger Behavior

When Does the Scheduler Trigger?

The scheduler triggers each time a new item is detected in the monitored Interact queue and is available for processing.

Business Rules and Queue Transitions

When a business rule is configured in the scheduled queue, the business rule is evaluated first. If the rule moves the transaction to another queue, the Queue-Based Scheduler on the source queue will not be triggered.

For example, if Sample 1 has a business rule that moves any incoming transaction to Sample 2, and a Queue-Based Scheduler is configured on Sample 1, the scheduler will not be triggered. The business rule is completed first, moving the transaction out of Sample 1.

Time-Based Scheduler for Robility Flow

The Time-Based Scheduler enables automated execution of published Robility Flows at specific times or recurring intervals. It ensures reliable, time-driven processing without requiring manual intervention.

Prerequisites

Before configuring a Time-Based Scheduler, ensure the following:

1. The workflow is successfully published in Robility Flow Manager.
2. The “External Flow” option must be enabled during publishing.
     a. Workflows published without enabling this setting will not appear in the “Workflow Name” dropdown list during scheduler configuration.

Configuration Steps

1. Navigate to Schedulers in Robility Flow Manager.
2. Click Add → Time-Based Scheduler.
3. Fill in the required configuration fields:
a. Scheduler Name*: A unique identifier for the scheduler. It helps in tracking and managing scheduled executions.
b. Flow Type*: Defines the execution mode of the scheduler. Set this to Robility Flow for workflow execution.
c. Workflow Name*: Displays a list of published Robility Flows. Select the workflow you want to execute on schedule.
d. Frequency*: Determines how often the workflow runs. Available options include Daily, Weekly, Monthly, Daily Multiple, Weekly Multiple and Advanced (Cron-based scheduling)
     Note: If Advanced is selected, a valid cron expression must be provided.
e. Time/Date: Specifies the exact execution time and date of the workflow. This field dynamically adjusts based on the selected frequency.
f. Timezone: Defines the timezone for execution, ensuring the scheduler runs according to the selected regional time settings.
g. Execution Count: Specifies the number of times the workflow should execute based on the configured schedule.
h. Non-Working Days: Upload an .xlsx or .xls file containing dates on which the workflow should not run. A predefined template is available under Non-Working Days Template.
i. Save: Saves the configuration and activates the scheduler for automated execution.

Once saved, the scheduler is activated and displayed in the calendar view on the selected date(s), based on the configured frequency.

Types of Schedulers

RobilityManager provides different type of schedulers where you can deploy your automation workflows based on the preference. This helps in better planning and resource allocation ensuring that critical tasks on completed on time. 

Daily Scheduler

A daily scheduler triggers robots or processes to run once every day. Additionally, it can be used to ensure that tasks are completed on time and without any human intervention.

How to add daily scheduler to the bot?

1. Click on the Add button from the main screen.
2. The Scheduler screen will appear.
3. Fill in all the required details on the scheduler screen:
a. Ensure the selected solution is already added in the “Deploy Robots” menu, as this will automatically populate the “Resource” parameter with the resource name.
b. If the solution has not been added, click here to learn how to configure the robot in the resource menu.
4. In the “Frequency” option, for the Daily option:
a. Select the start date. The end date will automatically default to the same day but can be modified using the drop-down.
5. Specify the Start Time and End Time for the bot’s run.
6. Under the TimeZone parameter, select the appropriate time zone from the drop-down menu to match the machine’s time settings.
7. Click Save to complete the scheduling. The bot will now execute multiple runs within the scheduled day.

Daily Multiple Schedulers

The daily multiple schedulers allow you to schedule robot multiple times within a day. For example, you can set robots to run every few hours or at specific intervals throughout the day for continuous automation.

Steps to Schedule a Bot for Multiple Runs in a Day

1. Click on the Add button from the main screen.
2. The Scheduler screen will appear.
3. Fill in all the required details on the scheduler screen:
a. Ensure the selected solution is already added in the “Deploy Robots” menu, as this will automatically populate the “Resource” parameter with the resource name.
b. If the solution has not been added, click here to learn how to configure the robot in the resource menu.
4. In the “Frequency” option, for the Daily Multiple option:
a. Select the start date. The end date will automatically default to the same day but can be modified using the drop-down.
5. Specify the Start Time and End Time for the bot’s run. 
a. Click the Add (+) icon to add another time slot for the same day.
b. You can schedule the bot to run multiple times in a day. For example, set two different time slots for the bot to run.
6. Under the TimeZone parameter, select the appropriate time zone from the drop-down menu to match the machine’s time settings.
7. Click Save to complete the scheduling. The bot will now execute multiple runs within the scheduled day.

Block out Dates

The Block Out Dates option in the Scheduler allows you to configure all planned non-working days for the bot in advance. Instead of manually stopping the scheduler each time there is a holiday, maintenance window, or any operational downtime, you can simply add these dates to the block-out list. Once configured, the bot will automatically skip execution on those days.
This ensures uninterrupted operations, reduces manual intervention, avoids accidental bot triggers on restricted days, and provides better control over your automation schedule throughout the year.

How to add Block Out Dates?

1. Navigate to the project in Robility Manager.
2. Go to the Schedule Robots
3. Select an existing scheduler or create a new one.
4. Under Non-Working Days, select Non-Working Days Template to automatically download the Excel file.
5. Update the non-working dates in the template, then return to the Schedule Robots
6. Click Browse File and upload the updated template.
7. Save the scheduler to apply the changes.

Weekly Scheduler

The Weekly Scheduler option is used when you need to schedule a bot to run multiple times on specific days of the week. This configuration ensures that the bot operates on the selected days every week, at the same designated times. By automating recurring tasks, this scheduler streamlines operations and ensures consistency in executing processes at regular intervals

To configure the Weekly Scheduler, follow the same steps outlined for the Daily Multiple Scheduler. Adjust the settings to specify the days on which the bot should run. This ensures seamless automation for recurring processes. 

Weekly Multiple

Similar to the daily multiple schedulers, the weekly multiple schedulers let you schedule RPA tasks multiple times within a week. You can set RPA robots to run on specific days at different intervals during the week, ensuring timely automation of diverse tasks.

To configure the Weekly Multiple Scheduler, follow the same steps outlined for the Daily Multiple Scheduler. Adjust the settings to specify the days on which the bot should run. This ensures seamless automation for recurring processes. 

Monthly Scheduler

The monthly scheduler is selected when we want to schedule the bot only for the scheduler can be configured to run on specific days of the month at the same time.

To configure the Monthly Scheduler, follow the same steps outlined for the Daily Multiple Scheduler. Adjust the settings to specify the days on which the bot should run. This ensures seamless automation for recurring processes. 

Cron-based Schedulers

A cron expression is a string that precisely specifies when your automation should run, down to the second. It consists of multiple time-based fields arranged in a specific order, enabling you to define flexible schedules such as “every Monday at 9 AM” or “every 10 minutes.” This string follows the standard UNIX cron syntax used widely for task scheduling.

Unlike basic schedulers, cron expressions allow for advanced scheduling, letting you run automation tasks at exact intervals—hourly, daily, weekly, or according to complex patterns. This level of control is particularly useful for automating repetitive and time-sensitive tasks consistently over time.

Common uses of cron-based scheduling include:

1. Running scheduled reports
2. Performing regular backups
3. Sending periodic email notifications
4. Executing system maintenance tasks

How Cron Expressions Work

A cron expression is made up of six mandatory fields and one optional field, each representing a unit of time: 

Seconds | Minutes | Hours | Day of Month | Month | Day of Week | [Year – optional] 

Field Position Mandatory Allowed values Special characters supported
Second 1st Yes 0–59 * , - /
Minute 2nd Yes 0–59 * , - /
Hour 3rd Yes 0–23 * , - /
Day of Month 4th Yes 1–31 * , - / ? L W
Month 5th Yes 1–12 or JAN–DEC * , - /
Day of Week 6th Yes 0–6 or SUN–SAT * , - / ? L #
Year (optional) 7th No 1970–2099 * , - /

Special Character Usage

Character Usage
* Every possible value (e.g., every second)
, Multiple values (e.g., MON, WED, FRI)
- Range (e.g., 1-5 means 1 through 5)
/ Step values (e.g., 0/15 = every 15 seconds/minutes)
? No specific value (used in Day of Month or Day of Week to avoid conflict)
L Last (e.g., L = last day of month or last weekday)
W Nearest weekday (e.g., 15W = weekday near the 15th)
# Nth weekday of the month (e.g., 2#1 = first Monday)

Examples

Cron Expression Description
0 0 9 * * ?Runs every day at 9:00 AM
0 30 18 * * ?Runs every day at 6:30 PM
0 0/10 * * * ?Runs every 10 minutes, all day long
0 0 12 ? * MON-FRIRuns every weekday (Monday to Friday) at 12:00 PM
0 15 10 ? * 2#1Runs on the first Monday of every month at 10:15 AM
0 0 8 15W * ?Runs on the nearest weekday to the 15th of each month at 8:00 AM
0 0 6 ? * SUNRuns every Sunday at 6:00 AM
0 0 23 L * ?Runs on the last day of every month at 11:00 PM
0 0 1 ? * 5LRuns on the last Thursday of every month at 1:00 AM
0 0/5 9-17 * * MON-FRIRuns every 5 minutes between 9 AM and 5 PM, Monday to Friday
0 0 9 1 1 ? 2025Runs once on January 1, 2025 at 9:00 AM
0 0/15 * * * ?Runs every 15 minutes, throughout the day
0 0 0 ? * 7#2Runs on the second Sunday of every month at 12:00 AM (midnight)
Common Cron Expressions

Common Cron Expressions

Expression Meaning
0 0 * * * ? * Every hour
0 0 0 * * ? * Every day at 12:00 AM
0 30 9 * * ? * Every day at 9:30 AM
0 0/30 * 1/1 * ? * Every 30 minutes
0 0 12 ? * WED * Every Wednesday at 12 PM
0 0 12 L * ? * At 12 PM on the last day of month

Each field accepts specific values and special characters to define complex schedules, such as ranges, intervals, and wildcards. For example, the “?” character means “no specific value,” useful to avoid conflicts between Day of Month and Day of Week fields.

Setting a Cron Expression in Robility Manager

To create a cron-based schedule:

1. Navigate to your project in the tenant.
2. Confirm a resource is added in the “Deploy Robots” page.
3. Go to the “Schedule Robots” page.
4. Click “Add” and enter a scheduler name.
5. Select the machine and choose “Advanced” frequency.
6. Complete the required details.
7. Enter your cron expression in the Manual Cron Expression section.
8. A human-readable interpretation of your cron expression will be displayed.
9. Click Save to finalize the scheduler.

App Integrations

About

Robility’s App Integrations empower users to connect with third-party applications, seamlessly incorporating their services into automation workflows. Using API processes with secure authentication, Robility offers centralized control and customization for managing integrated systems. With a wide range of pre-built connectors for enterprise applications, Robility ensures quick and efficient automation, while also allowing for custom integration options to fit to unique business needs.

How does it help you?

1. Ensures secure and compliant data exchange between systems through robust authentication and encryption protocols, maintaining a higher level of compliance and governance through a standardized approach.
2. Simplifies the integration of a wide range of third-party applications to extend the functionality of your automation workflows.
3. Provides a unified environment for managing integrations, making it easier to maintain, troubleshoot, and update connections.
4. Access the ready-to-use library of connectors to streamline your automation processes. 

5. Ensures a consistent automation design experience across all Robility products.
6. Built on a cloud-native platform, enabling businesses to scale integrations and automation rapidly without worrying about infrastructure limitations.

Why Use App Integrations Over API Activities?

1. App Integrations streamline the process by offering pre-configured connectors, reducing the complexity of setting up API calls and handling authentication or data parsing manually.
2. App Integrations are often more scalable and easier to maintain. Changes in API endpoints or authentication can be managed centrally, preventing the need for modifications across numerous workflows.
3. You can easily reuse the same integration setup across multiple workflows, avoiding the need to re-implement API connection logic each time.

Click here to learn about the connectors. 

Connectors

About

Connectors in Robility act as bridges between third-party applications and the Robility platform, enabling automated workflows through Designer and Runner. These connectors allow users to integrate external systems, facilitating smooth automation of complex processes. Key connector categories include:

1. CRM Connectors: Seamlessly connect to CRM platforms like Salesforce, Microsoft Dynamics CRM, and Zoho CRM for managing customer data.

2. Cloud Service Connectors: Integrate with cloud platforms like Microsoft Azure, AWS, Google Cloud, and Salesforce.      –

     a. Google Sheets Connector: Automate and manage workflows involving Google Sheets.
     b. Google Docs Connector: Streamline document management tasks with Google Docs.

3. Document Management Connectors: Connect to document storage systems like SharePoint, Google Drive, OneDrive, and Dropbox to automate file storage and retrieval.

4. Customer Support Connectors: Integrate with helpdesk platforms such as Zendesk, Freshdesk, and ServiceNow to manage customer support workflows.

5. Google Speech-to-Text Connector: Convert spoken language into text for automation involving voice-based inputs.

6. Google Text-to-Speech Connector: Transform text into speech to enhance voice-based automation processes.

Each connector comes with detailed specifications and user guides, so always refer to the activity’s documentation for setup and usage.

Pre-requisites

Before integrating any application, ensure the necessary authentication details are collected. Common prerequisites include:

1. Client ID
2. Client Secret
3. Username and Password
4. Scope
5. Account Key
6. Account Name
7. OAuth credentials

How to Integrate the Connectors?

1. Log in to RobilityManager and navigate to your tenant.
2. Select the project where you want to configure the integration.
3. In the left-hand panel, click on App Integrations.
4. Choose the application you wish to integrate.
5. Enter the required details on the setup page.
6. Once the details are provided, click Submit.

After successfully integrating, manage the connectors through the Connections tab. All roles mapped to the project will have access to connect and manage integrations.

Activity Packages

Robility simplifies API-based integrations by offering a set of dedicated activities for each third-party application. These activities allow robots to communicate directly with external applications, reducing development effort. Users can leverage pre-built activities for common tasks in connected systems, improving efficiency in automation design. 

Click here to learn about the App Integration activities. 

Connections

This section allows you to manage your connected applications and monitor their status. The following information is available:

1. Connector: Displays the name of the connector.

2. Connection: Shows the name of the individual who initiated the connection.

3. Created On: Provides the date the connection was created.

4. Status: Indicates whether the connection is “Connected” or “Expired.”

5. Action: Offers the following options:
     a. View: Displays the details of the integration, including the “Integration Name” and the “Access Token.”
     b. Disconnect: Allows you to terminate the connection.

How to Manage token expiration?

Robility does not support or handle token expiration for connectors, users will need to manage token renewals and updates manually. This includes regularly checking token status, renewing tokens as they approach expiration, and updating connector configurations accordingly.

For applications like Google Sheets, Google Drive, and Google Docs, the token expires every hour. To refresh the token:

1. Navigate to App Integrations within your project on RobilityManager.
2. In the Connections tab, check the status of your Google application connection.
3. If the connection has expired:    
     a. Re-establish the connection from the Connectors tab.    
     b. The process automatically handles previously stored authentication details.    
     c. Click Connect to refresh the token.

Connectors like Zendesk support long-lived tokens that remain valid until manually revoked, whereas Salesforce connectors typically use tokens that expire after a certain duration or session timeout. To ensure proper authentication handling, always refer to the respective activity documentation for detailed guidance on token usage and management.

Troubleshooting Steps

This page highlights the most common issues that may affect the functionality of the Robility Automation extension installed on Chrome and Edge browser and provides step-by-step solutions to help users diagnose and resolve them efficiently.

Exception with Open Web Browser Activity: Browser Not Responding

The “Open Web Browser” activity may throw an exception “Browser Not Responding. Close and reopen the browser” if the CPU utilization is high. In some cases, the activity may fail, but the browser might still launch. When CPU usage is high, system resources are heavily utilized, causing the browser take longer to launch, leading to a timeout or failure in the activity. Click here to know about the minimum system requirements for Robility. 

How to resolve this?

1. Optimize CPU Utilization: Ensure that CPU usage is stable. If necessary, verify that the system meets the hardware requirements for running Robility Designer and Runner.
2. Modify Activity Properties: In the “Open Web Browser” activity, set the “WaitForReady” property to “Complete” and increase the wait time to allow the browser to launch properly. 

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions are removed automatically 

If the Robility Automation extension is removed automatically after installation, it may need to be reinstalled manually. This issue can occur due to various factors as below, 

1. User Profile Reset: If your browser profile is reset or corrupted, it may result in the removal of installed extensions.
2. IT Security Policies: Many organizations enforce group policies that restrict or remove extensions.

Click here to know how to install the extension. 

How to Resolve This Issue?

1. Manually reinstall the extension if it has been removed.
2. Verify browser settings to ensure extensions are allowed.
3. Whitelist Robility Automation in security software or IT policies.
4. Check with your IT administrator if the extension is being removed due to organizational policies.

If the issue persists, contact your Robility Support for further troubleshooting.

Extensions May Be Corrupted

If the Robility Automation extension displays the message “Extension may be corrupted,” it means the browser has detected potential issues that may affect its functionality. This could be due to security risks, firewall restrictions, or a corrupted installation.

Possible Causes:

1. Browser Security Alerts: Chrome and other browsers automatically check for extension integrity. If they detect unusual behavior or incomplete files, they may flag the extension as corrupted.
2. Firewall or Antivirus Interference: Certain security policies or firewall settings may block extensions, causing them to malfunction.
3. Incomplete Installation or Browser Updates: A failed installation or an interrupted browser update can corrupt the extension files.
4. Third-Party Software Conflicts: Some browser extensions or installed applications may interfere with Robility Automation, leading to corruption warnings.

How to Check and Fix the Issue?

1. Open Chrome Extensions by navigating to “Chrome:extensions”
2. Locate the Robility Automation extension and if marked as corrupted, you will see an option to “Repair” the extension.
3. Click the “Repair” button to allow Chrome to reinstall and fix the extension automatically.
4. Restart the browser and check if the issue is resolved.
5. Ensure your firewall, antivirus, or endpoint security is not blocking or restricting the extension.
6. If repairing does not resolve the issue, try removing and reinstalling the Robility Automation extension.

If the issue continues, contact your IT administrator for further troubleshooting.

Activity is not working properly, please close and re-open the browser and try again

If you encounter the message “Activity is not working properly, please close and re-open the browser and try again” while executing the robot, follow these steps to resolve the issue.

Step 1: Check If Extensions Are Installed and Enabled

The first step is to ensure that the Robility Automation extension is installed and enabled in your browser. If the extensions are not enabled, follow the instructions here to learn how to install them.

Step 2: Verify Native Messaging Host Functionality

If the extensions are installed and enabled but the issue persists, we need to check whether the Native Messaging Hosts are running. 

What is Native Messaging Host?

The Native Messaging Host is a communication port that enables interaction between the browser extension and the Robility activities. In Robility, the Native Messaging Hosts are:

a. RobilityChromeNativeApp (for Chrome)
b. RobilityEdgeNativeApp (for Edge)

Step 3: How to Check If the Robility NativeApp is Running

To verify that the Native Messaging Host is functioning properly, follow these steps:

1. Open Task Manager and navigate to the “Details” tab.
2. Check if RobilityChromeNativeApp.exe (for Chrome) or RobilityEdgeNativeApp.exe (for Edge) is running.
3. If the Native App is running or unavailable, move to the “Extensions” tab in your browser.
4. Enable “Developer Mode” at the top of the page.
5. Find the “RobilityAutomation” extension and click on the “Service Worker” link.
6. A new DevTools window will open, displaying the Native Messaging app logs.
7. If the log shows “Failed to connect”, it means the communication port is disabled, preventing the activities from working.

Note: The Native Messaging Host may be blocked by group policies in your organization. Click here to learn more about group policies.

Step 4: Checking the Native Messaging Host in the Registry Editor

We also need to check the Registry Editor because it contains essential configuration data for both the extension and its communication with Robility activities. If the registry entries are missing or misconfigured, it could prevent the extension from properly connecting with Robility activities.

Here are the two key registry entries you need to locate:

1. Extension ID – lgnoojafhdgcpllpgolgpmjjdejnneom (Robility Automation). This entry ensures that the extension is correctly installed in the browser.
2. Robility.Runtime.Automation – Facilitates communication between the extension and Robility activities.

Where to Find These Entries:

1. Verify Extension Installation: Navigate to: HKEY_USERS → Unique SID (e.g., S-1-5-21-2144601217-6038991-817656539) → SOFTWARE → Google → Browser → Extensions → lgnoojafhdgcpllpgolgpmjjdejnneom. This confirms that the extension is installed correctly in the browser.
2. Verify Extension-Activity Communication: Navigate to: HKEY_CURRENT_USER → SOFTWARE → Browser → Chrome → NativeMessagingHosts → Robility.Runtime.Automation.This ensures proper communication between the extension and Robility activities

Step 5: What to Do If Registry Entries Are Missing?

If the registry entries for RobilityAutomation or Robility.Runtime.Automation are missing:

1. Reinstall the Robility Extension: Reinstalling the extension ensures that these registry entries are created automatically. If the entries are not present after reinstalling, it indicates an issue with the installation process, and you may need to troubleshoot further with Robility Support team.

2. Check Group Policies: In some cases, group policies in your organization may prevent the registry entries from being created. Contact your IT administrator to ensure that these policies allow the installation and configuration of the required registry keys.

Co Pilot

Introducing Copilot feature in Robility Designer which aids the users in assisting them with providing development support in three core areas: generating VB.NET code, providing a dedicated GenAI Playground for testing the GenAI activity’s outcomes, and responding to queries related to Robility products, features and activities. 

How Does It Help Developers?

Generate Code

One of Copilot’s most powerful features is the ability to generate ready-to-use VB.NET code to handle routine development tasks.

Developers can:

a. Using this feature, developers can create and apply conditional logic within default validation activities such as Assign, If Else, While, and Do While. It enables data transformation, value filtering, extraction, and conversion through the generation of VB.NET code.
b. You can apply the generated VB.NET code using the Invoke Code activity in Robility Designer which allows you to embed and execute custom VB.NET logic directly within your workflow. It is particularly helpful when dealing with complex logic or data operations that are not easily achievable using standard activities.

GenAI Playground

The GenAI Playground is a dedicated testing space within Robility Designer that enables developers to experiment with and validate the outcomes of GenAI activities before executing them.

Key Capabilities:

1. Test and Preview Output: Developers can input sample data and immediately see how the GenAI activity responds—making it easy to evaluate the activity.
2. Model Switching and Comparison: Before finalizing an activity configuration, users can switch between different available GenAI models within the Playground to observe how each model interprets and responds to the same input.

Click here to learn more about how to use GenAI activities. 

Search Docs

The “Search Docs” feature in Copilot responds to user queries related to Robility activities and features by retrieving information directly from the Robility Help Documentation. This enables users to quickly access relevant guidance—such as activity properties, queries related to products and other features, best practices—without the need to manually browse through the documentation.

How to connect Co-pilot into Designer? 

1. Acquire a license for HarmonyAI and connect the Robility Copilot connectors from the App Integrations menu in Robility Manager.
2. Select the relevant project in your Designer at “designer taskbar” to activate and sync the Copilot.
3. Relaunch the Copilot — it’s now ready for use.

Interact Workflow Assistant

Interact Workflow Assistant is designed to simplify how you build Interact workflows. Instead of manually creating each activity, configuring JSON structures, and mapping fields, this feature generates the entire flowchart for you. By selecting the target queue and the operation you want to perform, AI Interact automatically creates the underlying activities, prepares the JSON input/output structure, and sets up the field requirements needed to read, process, or update data within Interact.

This feature significantly reduces manual effort, minimizes configuration errors, and accelerates the development of Interact-based automations, making it easier even for users to build consistent and reliable workflows.

How to use this feature:

Important:

Ensure the Robility Copilot integration is activated. Interact Workflow Assistant is available only when Copilot is enabled.

1. Select VB.NET and Interact Workflow Assistant option.
2. Choose the Interact workflow assistant
3. It checks whether the Interact package is already installed in your project.

a. If installed, it proceeds.
b. If not, it automatically installs and configures the required package, ensuring no manual setup is needed.

4. You will receive AI-assisted prompts to select:

a. The queue you want to work with, and
b. The action/activity you wish to automate (e.g., fetch data, update data, create a new record, etc.).
Based on your selection, AI Interact understands what type of flowchart and data mappings are needed.

5. Click “Create Workflow” and it generates a complete flowchart that includes:

a. The required Interact activities
b. Pre-configured JSON input/output schemas
c. Hardcoded field names
d. Property mappings
e. Auto-generated variables to store and retrieve output data

Preview Release Features

Welcome to the preview release of our new features. This document provides key information, best practices, and usage guidelines for preview features so you can make informed decisions while exploring early-stage innovations.

Overview of Preview Release Features

What are Preview Features?
Preview features are early versions of upcoming functionalities, labeled with the “Preview” tag, and shared for your evaluation and feedback. They are not production ready.

Purpose of Preview Release
Preview releases allow us to gather valuable user insights, test usability, and identify improvements before finalizing features in a stable release.

Important Usage Guidelines

1. Non-Production Ready – Preview features may be incomplete or experimental and may lack full quality assurance testing. Please use with caution and do not deploy in production environments.

2. Feature Evolution and Potential Changes – The product team continually evolves preview features based on user feedback, market needs, and competitive analysis. Features and functionalities may be modified, enhanced, or even disabled during the preview period to better align with product strategy and priorities.

3. Feedback Collection, Not Bug Reporting – Any issues or unexpected behavior with preview features should be submitted as feedback. These are not treated as formal bug reports. Feedback is used to guide the final product but does not guarantee immediate fixes or updates.

4. General Release Cycle for Updates – Preview feature updates and any issue resolutions are incorporated in line with our standard major release cycle, rather than through urgent or ad-hoc patches.

5. No Dedicated Support – There is no dedicated technical support or troubleshooting assistance for preview features. For help, use available resources like community forums, documentation, or FAQs for self-service solutions.

Best Practices for Using Preview Releases

1. Test in Non-Production Environments: Use preview features in sandbox or test environments to avoid disrupting production systems.

2. Regularly Backup Data: Backup important data before enabling preview features to safeguard against potential data loss.

3. Stay Current with Documentation: Preview features may change rapidly. Review release notes and documentation frequently for the latest details.

4. Participate in Feedback Channels: Submit clear, actionable feedback through official channels. Your input directly influences the final design and implementation.

5. Prepare for Changes or Feature Disabling: Be aware that features may change substantially—or be disabled—based on feedback or strategic direction. Plan your workflows so you can adapt quickly when features evolve or are retired.

6. Plan for Transition to General Availability: Workflows may need adjustment once preview features reach general availability due to changes in APIs or functionality. 

Summary Table

Aspect Preview Release Features
Production Ready? No — Use cautiously, not for production use
Support Availability No dedicated troubleshooting support
Issue Handling Feedback collected; addressed in major releases
Potential for Change Features may evolve, change, or be disabled during preview
Recommended Environment Test or sandbox environments only
Feedback Importance Critical for refinement and product development

Thank you for exploring preview features and providing crucial feedback. Your participation drives us toward delivering reliable, high-impact solutions. For more information and updates, refer to official documentation and our support community.

Preview Features

1. Robility Flow
Introducing agentic automation—intelligent workflows that think, decide, and act based on desired outcomes. Orchestrate multi-step tasks, collaborate in real time, and adapt dynamically to changing conditions.

2. Workflow Analyzer
Automatically validate workflows against best practices and organizational standards. Detect design issues early to maintain high-quality automation from the start. Read More. 

3. Security Scan
Perform real-time security scans of workflow logs to identify risks such as hardcoded credentials, hidden secrets, and sensitive data references, ensuring proactive compliance and security. Read More. 

4. Co-Pilot in Robility Designer
Your in-app AI assistant for smarter development. Co-Pilot answers product queries, suggests custom logic, and provides a playground for experimenting with GenAI activities. Read More. 

5. GenAI

Bring intelligence into your automations with GenAI-powered activities. From dynamic content generation and text summarization to PII filtering and entity extraction, Robility Flow enables context-aware decision-making within workflows—enhancing both efficiency and human-like interaction. Read More. 

Use the visual editor

Robility flow’s visual editor lets you design, test, and share flows—visual representations of application logic built from modular components. Each component reflects a specific step in your workflow.

With its drag-and-drop interface, Robility flow enables you to create sophisticated AI-powered workflows without writing complex code. You can seamlessly integrate various resources such as prompts, large language models (LLMs), data sources, agents, MCP servers, and other tools or connectors.

Workspace

The Workspace is your main canvas for creating flows. Here, you’ll add components, configure their behavior, and connect them to build out your workflow logic.

Workspace Interactions and Gestures

1. Pan View: Click and drag any empty space in the Workspace to move horizontally or vertically.
2. Rearrange Components: Drag and drop components to reposition them visually.
3. Modify Component Connections: To adjust the logical relationships between components, modify their edges or ports. (Refer to the Components Overview for more details.)
4. Lock Layout: Click Lock to fix the current position of components on the canvas.
5. Zoom Options:

a. Use your mouse wheel or trackpad to scroll up/down.
b.
Click Zoom In or Zoom Out.
c. Click Fit to Zoom to automatically scale the canvas to fit your entire flow.

6. Add Notes: Use Add Note to insert text boxes for comments or documentation purposes.

When your flow includes an Agent component, the Playground allows you to observe the agent’s tool calls and outputs in real time. This helps you understand how the agent makes decisions and uses its tools.

To explore how an agentic flow operates, create a flow using the Simple Agent template and open it in the Playground. For more information, see Test flows in the Playground.

Sharing and Integration Options

The Share menu offers multiple ways to integrate and distribute your flow outside the Robility environment:

1. API Access: Use auto-generated Python, JavaScript, or curl snippets to integrate your flow with external applications.
2. Export: Download your flow as a JSON file for local storage or version control.
3. MCP Server: Make your flow available as a tool for clients compatible with the MCP protocol.
4. Embed into Site: Seamlessly embed your flow into HTML, React, or Angular-based web applications.
5. Shareable Playground: Provide others with access to your Playground interface for demonstration or collaboration purposes.

Note: The Shareable Playground option is intended for previewing and testing, not for deploying flows in production environments.

Connect applications to agents

This tutorial shows you how to connect a JavaScript application to a Robility flow agent.

With an agent, your application can use any connected tools to retrieve more contextual and timely data without changing any application code. The tools are selected by the agent’s internal LLM to solve problems and answer questions.

Prerequisites

a. Create a Robility flow API key
b. Install the Robility flow JavaScript client
c. Create an OpenAI API key

This tutorial uses OpenAI LLM. If you want to use a different provider, you need a valid credential for that provider.

Create an agent flow

The following steps modify the Simple Agent template to connect a Directory component and a Web Search component as tools for an Agent component. The Directory component loads all files of a given type from a target directory on your local machine, and the Web Search component performs a DuckDuckGo search. When connected to an Agent component as tools, the agent has the option to use these components when handling requests.

1. In Robility flow, click New Flow, and then select the Simple Agent template. 
2. Remove the URL and Calculator tools and then add Directory and Web Search components to your flow. 
3. In the Directory component’s Path field, enter the directory path and file types that you want to make available to the Agent component.

In this tutorial, the agent needs access to a record of customer purchases, so the directory name is customer_orders and the file type is .csv. Later in this tutorial, the agent will be prompted to find email values in the customer data.

You can adapt the tutorial to suit your data and save it in a customer_orders folder on your local machine.

4. In the Directory and Web Search components’ header menus, enable Tool Mode so you can use the components with an agent. 
5. Connect the Directory and Web Search components’ Toolset ports to the Agent component’s Tools port. 
6. In the Agent component, enter your OpenAI API key.

If you want to use a different provider or model, edit the Model ProviderModel Name, and API Key fields accordingly.

7. To test the flow, click Playground, and then ask the LLM a question, such as Recommend 3 used items for john.smith@example.com, based on previous orders.

Given the example prompt, the LLM would respond with recommendations and web links for items based on previous orders in customer_orders.csv.

The Playground prints the agent’s chain of thought as it selects tools to use and interacts with functionality provided by those tools. For example, the agent can use the Directory component’s as_dataframe tool to retrieve a DataFrame, and the Web Search components perform_search tool to find links to related items.

Add a Prompt Template Component to the flow

In this example, the application sends a customer’s email address to the Robility flow agent. The agent compares the customer’s previous orders within the Directory component, searches the web for used versions of those items, and returns three results.

1. To include the email address as a value in your flow, add a Prompt Template component to your flow between the Chat Input and Agent components. 
2. In the Prompt Template component’s Template field, enter Recommend 3 used items for {email}, based on previous orders. Adding the {email} value in curly braces creates a new input in the Prompt Template component, and the component connected to the {email} port is supplying the value for that variable. This creates a point for the user’s email to enter the flow from your request. If you aren’t using the customer_orders.csv example file, modify the input to search for a value in your dataset.

At this point your flow has six components. The Chat Input component is connected to the Prompt Template component’s email input port. Then, the Prompt Template component’s output is connected to the Agent component’s System Message input port. The Directory and Web Search components are connected to the Agent component’s Tools port. Finally, the Agent component’s output is connected to the Chat Output component, which returns the final response to the application.

Send requests to your flow from a JavaScript application

With your flow operational, connect it to a JavaScript application to use the agent’s responses.

1. To construct a JavaScript application to connect to your flow, gather the following information:

a. ROBILITY FLOW _SERVER_ADDRESS: Your Robility flow server’s domain. The default value is 127.0.0.1:7860. You can get this value from the code snippets on your flow’s API access pane
b. FLOW_ID: Your flow’s UUID or custom endpoint name. You can get this value from the code snippets on your flow’s API access pane
c. ROBILITY FLOW _API_KEY: A valid Robility flow API key.

2. Copy the following script into a JavaScript file and then replace the placeholders with the information you gathered in the previous step. If you’re using the customer_orders.csv example file, you can run this example as-is with the example email address in the code sample. If not, modify the const email = “isabella.rodriguez@example.com” to search for a value in your dataset.

import { RobilityFlowClient } from "@datastax/robilityflow-client";

const ROBILITY_FLOW_SERVER_ADDRESS = "ROBILITY_FLOW_SERVER_ADDRESS";
const FLOW_ID = "FLOW_ID";
const ROBILITY_FLOW_API_KEY = "ROBILITY_FLOW_API_KEY";

const email = "isabella.rodriguez@example.com";

async function runAgentFlow(): Promise<void> {
    try {
        // Initialize the Robility Flow client
        const client = new RobilityFlowClient({
            baseUrl: ROBILITY_FLOW_SERVER_ADDRESS,
            apiKey: ROBILITY_FLOW_API_KEY
        });

        console.log(`Connecting to Robility Flow server at: ${ROBILITY_FLOW_SERVER_ADDRESS}`);
        console.log(`Flow ID: ${FLOW_ID}`);
        console.log(`Email: ${email}`);

        // Get the flow instance
        const flow = client.flow(FLOW_ID);

        // Run the flow with the email as input
        console.log("\nSending request to agent...");

        const response = await flow.run(email, {
            session_id: email // Use email as session ID for context
        });

        console.log("\n=== Response from Robility Flow ===");
        console.log("Session ID:", response.sessionId);

        // Extract URLs from the chat message
        const chatMessage = response.chatOutputText();

        console.log("\n=== URLs from Chat Message ===");

        const messageUrls =
            chatMessage.match(/https?:\/\/[^\s"')\]]+/g) || [];

        const cleanMessageUrls = [...new Set(messageUrls)].map(url => url.trim());

        console.log("URLs from message:");

        cleanMessageUrls.slice(0, 3).forEach(url => console.log(url));

    } catch (error) {
        console.error("Error running flow:", error);

        // Provide error messages
        if (error instanceof Error) {
            if (error.message.includes("fetch")) {
                console.error(
                    "\nMake sure your Robility Flow server is running and accessible at:",
                    ROBILITY_FLOW_SERVER_ADDRESS
                );
            }

            if (error.message.includes("401") || error.message.includes("403")) {
                console.error("\nCheck your API key configuration");
            }

            if (error.message.includes("404")) {
                console.error(
                    "\nCheck your Flow ID - make sure it exists and is correct"
                );
            }
        }
    }
}

// Run the function

console.log("Starting Robility Flow Agent...\n");

runAgentFlow().catch(console.error);

3. Save and run the script to send the request and test the flow.

Your application receives three URLs for recommended items based on a customer’s previous orders in your local CSV, all without changing any code.

4. To quickly check traffic to your flow, open the Playground. New sessions are named after the user’s email address. Keeping sessions distinct helps the agent maintain context. For more on session IDs, see Session ID. 

Next steps

For more information on building or extending this tutorial, see the following:

Model Context Protocol (MCP) servers

Supported Libraries & Packages

Dependency Groups Overview

The following dependency groups will provide the technical foundation for building, orchestrating, and operating AI-driven flows and agents across the platform. Each group will address a specific layer of functionality, from core orchestration to observability and infra integration.

Core Flow & Agent Frameworks

This group will form the backbone of the platform’s orchestration layer.

  1. Langgraph-base and Langchain will provide the visual and programmatic building blocks for creating flows, chains, and agents that combine LLMs, tools, and data sources.
  2. dspy-ai, pydantic-ai, and smolagents will enable more structured, programmatic agent design, helping you define tool-using agents with typed inputs/outputs, deterministic behavior, and optimization capabilities.
  3. litellm will act as a unified LLM interface and proxy, allowing the platform to route calls across multiple model providers while centralizing configuration, logging, and throttling.
  4. mcp (Model Context Protocol) will standardize how agents will talk to external tools and services, making the platform more extensible and interoperable.

Collectively, this group will orchestrate how flows and agents will execute end-to-end across the platform.

LangChain Integrations

This group will unlock the wider AI ecosystem through plug-and-play integrations.

  1. Model provider integrations (langchain-google-genai, langchain-cohere, langchain-anthropic, langchain-openai, langchain-groq, langchain-mistralai, langchain-aws, langchain-nvidia-ai-endpoints, langchain-sambanova, etc.) will let flows switch between different LLMs and embedding models without changing the core logic.
  2. Vector and storage integrations (langchain-pinecone, langchain-chroma, langchain-milvus, langchain-astradb, langchain-elasticsearch, langchain-
  3. mongodb, langchain-chroma, langchain-graph-retriever) will allow retrieval-augmented generation (RAG) patterns across multiple databases.
  4. Tooling and service integrations (langchain-unstructured, langchain-google-vertexai, langchain-google-calendar-tools, langchain-google-community, langchain-ollama, langchain-community) will give the platform access to document loaders, calendar operations, local models, and community-maintained connectors.

This group will ensure that LangChain-based flows will connect seamlessly to the models, storages, and services required by enterprise use cases.

AI / LLM Provider SDKs & Tools

These dependencies will provide direct access to commercial AI providers and LLM utilities outside LangChain, giving more flexibility in how the platform will use models.

  1. Provider SDKs such as openai, huggingface-hub[inference], qianfan, ibm-watsonx-ai, langchain-ibm, assemblyai, twelvelabs, and jigsawstack will let the platform call text, vision, speech, and multimodal models directly.
  2. mem0ai will add long-term memory capabilities for agents, improving continuity across sessions.
  3. cleanlab-tlm will help evaluate and improve output quality, especially around noisy or low-quality labels.
  4. gassist will introduce platform-specific helper capabilities on Windows where required.

This group will allow the platform to mix high-level orchestration (via LangChain) with low-level, provider-specific capabilities when needed.

Vector DB & Retrieval

This group will power semantic search, embeddings storage, and graph-based retrieval across structured and unstructured content.

  1. Hosted or managed vector stores such as qdrant-client, weaviate-client, zep-python, upstash-vector, astra-assistants[tools], and metal_sdk will let the platform scale RAG workloads with external services.
  2. Local / embedded vector solutions like chromadb, faiss-cpu, and pgvector will support on-prem or lightweight deployments.
  3. Search-layer integrations like opensearch-py and elasticsearch will combine full-text and vector search patterns.
  4. graph-retriever will allow graph-based retrieval, enabling more advanced knowledge graph and relationship-based querying.

Together, this group will enable flexible retrieval strategies ranging from simple document search to complex knowledge graph–driven reasoning.

Databases, Storage & ORM

This group will handle application state, logs, configuration, and analytical data.

  1. sqlalchemy (with aiosqlite and Postgres drivers) will provide the primary ORM and SQL abstraction for relational data.
  2. aiosqlite, pymongo, supabase, oracledb, and pyodbc will allow the platform to connect to SQLite, MongoDB, Supabase (Postgres), Oracle, and ODBC-compatible databases.
  3. redis will be used for caching, queues, and ephemeral state management.
  4. azure-storage-blob will support blob storage for large artifacts such as files, logs, and attachments.
  5. Serialization and analytics tools like fastavro, pyarrow, and fastparquet will handle efficient storage and processing of large datasets and event streams.

This group will ensure the platform will persist and manage data in a reliable, scalable, and provider-agnostic way.

Cloud & External Platform SDKs

These SDKs will connect flows and agents to cloud infrastructure and external SaaS platforms.

  1. boto3 will enable interactions with AWS services (S3, Lambda, Bedrock, etc.).
  2. kubernetes will allow the platform to query and manage K8s resources, for example to orchestrate workloads or monitor deployments.
  3. google-api-python-client will open up access to Google services like Drive, Sheets, and Gmail.
  4. msal will provide secure authentication against Microsoft identity platforms (Azure AD).
  5. atlassian-python-api will connect to Jira, Confluence, and other Atlassian tools for ticketing and documentation workflows.

This group will let agents move beyond pure “chat” and interact with real operational environments.

Web Search, Scraping & Data Sources

This group will allow the platform to pull information from the public web and external data sources for RAG and enrichment.

  1. Search wrappers such as google-search-results, duckduckgo_search, metaphor-python, yfinance, and wolframalpha will provide search, semantic search, financial data, and computational knowledge.
  2. Web automation and scraping tools like scrapegraph-py, apify-client, spider-client, beautifulsoup4, and fake-useragent will allow robust crawling and HTML extraction while mimicking realistic user agents.
  3. Content APIs like wikipedia and datasets (Hugging Face Datasets) will provide ready-to-use corpora and reference data.

This group will ensure that agents will ground their reasoning in real-world, up-to-date information where appropriate.

NLP, Parsing & Data Processing

These libraries will handle text processing, parsing, structural transformations, and numeric computation.

  1. nltk and lark will support classic NLP tasks and grammar-based parsing (e.g., for DSLs or configuration languages).
  2. jq and json_repair will help query, transform, and repair JSON structures produced by LLMs or external APIs.
  3. Markdown will convert Markdown documents into HTML, which the platform will then reduce to text as needed.
  4. Numeric and scientific computation will be handled by numexpr and scipy.
  5. networkx will model and analyze graph structures, useful for knowledge graphs and flow graphs.
  6. docling_core and docling will manage document parsing for complex formats like PDFs and office documents.

This group will give the platform the tools required to normalize, clean, parse, and analyze data before it is passed to models or stored.

Document, OCR & Vision

This group will focus on extracting text and information from documents and images.

  1. easyocr and opencv-python will enable OCR and basic computer vision operations for scanned documents, screenshots, and image-based inputs.
  2. pdfkit will convert HTML content back into PDF, allowing the platform to generate human-readable reports or exports.

These capabilities will allow the platform to handle both digital and scanned content end-to-end.

Agent Tooling & Automation Bridges

These dependencies will make it possible for agents to call rich sets of external tools without custom glue code for each integration.

  1. composio and composio-langchain will provide a tool hub that exposes many SaaS and productivity tools (e.g., calendars, task systems, communication apps) as callable actions from within a LangChain agent.

This group will turn agents into real “doers” by enabling workflows that perform actions across the user’s SaaS landscape.

Observability, Tracing & Experimentation

This group will provide full visibility into LLM behavior, performance, and reliability.

  1. langfuse, langwatch, langsmith, opik, and traceloop-sdk will capture traces, metrics, and evaluations of flows and agent runs.
  2. arize-phoenix-otel and openinference-instrumentation-langchain will integrate with OpenTelemetry-style pipelines for standardized tracing.
  3. newrelic will act as an APM layer to monitor application performance and error rates.
  4. pytest-codspeed will support performance benchmarking at the test level, while needle-python will provide code instrumentation and telemetry.

This group will ensure that the platform will remain observable, debuggable, and continuously improvable as workloads grow.

System, Security & Utility Libraries

These cross-cutting libraries will handle configuration, security, logging, and other foundational concerns.

  1. pydantic-settings will standardize configuration via environment variables and typed settings objects.
  2. filelock and aiofile will support safe, concurrent file access, including async workloads.
  3. MarkupSafe and certifi will handle HTML escaping and TLS certificate validation.
  4. cryptography will provide secure primitives for encryption, key handling, and secure communication.
  5. uv will improve Python environment and dependency management, particularly in containerized deployments.
  6. GitPython will allow programmatic interactions with Git repositories (e.g., pulling flows or scripts from version control).
  7. sseclient-py, types-cachetools, and structlog will support streaming, caching, and structured logging.

This group will underpin the non-functional aspects of the platform—security, reliability, and maintainability.

Feature Flags & Config

This group will control runtime behavior via feature flags.

  1. unleashclient will let the platform expose and evaluate feature flags, enabling gradual rollouts, experiments, and tenant-specific configurations without redeploying core services.

Feature-flagging will be critical for safely evolving the platform and testing new capabilities.

Platform-Specific (Windows / Conditional)

This group will cover OS-specific needs.

  1. pywin32 will expose Windows APIs (COM, registry, etc.), enabling automations or integrations that are only possible or necessary on Windows environments.

This group will be used selectively, ensuring the platform will support Windows-specific scenarios without affecting cross-platform deployments.

Whitelisting URLs

This document contains a list of external URLs that must be whitelisted to ensure proper functionality of RobilityFlow.

All listed URLs are required to be added to the organization’s approved whitelist to allow secure access from RobilityFlow. These URLs are trusted endpoints used for documentation references, integrations, or related platform operations.

Any URL not included in this list will be restricted and may result in limited functionality or access issues within RobilityFlow.

Category Component / Service Default Port Regex Pattern
AI/ML & Model Providers AI/ML API N/A *.aimlapi.com
AnthropicN/A*.anthropic.com
Azure OpenAIN/A*.openai.azure.com
Baidu (ERNIE)N/Aapi.baidu.com
CohereN/A*.cohere.ai
DeepSeekN/A*.deepseek.com
Google GeminiN/A*.googleapis.com
GroqN/A*.groq.com
Hugging FaceN/A*.huggingface.co
Hugging Face InferenceN/A*.huggingface.cloud
IBM watsonx.aiN/A*.cloud.ibm.com
LM Studio1234CUSTOM_URL
Mistral AIN/A*.mistral.ai
NVIDIA NIMN/A*.nvidia.com
Ollama11434CUSTOM_URL
OpenAIN/A*.openai.com
OpenRouterN/A*.openrouter.ai
PerplexityN/A*.perplexity.ai
Vertex AIN/A*.googleapis.com
Cloud & Infrastructure Amazon Bedrock N/A *.bedrock.amazonaws.com
Cloudflare Workers AIN/A*.cloudflare.com
Vector Stores & Databases Cassandra 9042 CUSTOM_URL
Chroma8000CUSTOM_URL
ClickHouse8123CUSTOM_URL
Couchbase8091CUSTOM_URL
DataStax Astra DBN/A*.astra.datastax.com
Elasticsearch9200CUSTOM_URL
FAISSN/AN/A
Milvus19530CUSTOM_URL
MongoDB AtlasN/A*.mongodb.net
PineconeN/A*.pinecone.io
Qdrant6333CUSTOM_URL
Qdrant Cloud443*.qdrant.io
Redis6379CUSTOM_URL
Supabase VectorN/A*.supabase.co
Weaviate8080CUSTOM_URL
Weaviate CloudN/A*.weaviate.network
Search & Data Tools Apify N/A *.apify.com
arXivN/A*.arxiv.org
Bing SearchN/A*.microsoft.com
Exa (Metaphor)N/A*.exa.ai
GleanN/A*.glean.com
SearchAPIN/A*.searchapi.io
SerperN/A*.serper.dev
TavilyN/A*.tavily.com
WikipediaN/A*.wikipedia.org
Document Processing AssemblyAI N/A *.assemblyai.com
CleanlabN/A*.cleanlab.ai
NotionN/A*.notion.com
MCP & Package Managers npm Registry N/A *.npmjs.org
npm Registry MirrorN/A*.npmmirror.com
PyPI RegistryN/A*.pypi.org
PyPI Simple APIN/A*.pypi.python.org
PyPI CDNN/A*.pythonhosted.org
GitHub API443*.github.com
GitHub Packages Registry443*.pkg.github.com
GitHub Raw CDN443*.githubusercontent.com
jsDelivr CDN443*.jsdelivr.net
unpkg CDN443*.unpkg.com
esm.sh CDN443*.esm.sh
MCP Registries & Discovery Official MCP Registry N/A *.modelcontextprotocol.io
Smithery RegistryN/A*.smithery.ai
MCP.so RegistryN/A*.mcp.so
mcpservers.orgN/A*.mcpservers.org
MCP Schema CDNN/A*.modelcontextprotocol.io
Required Infrastructure uv Package Manager N/A *.astral.sh
Docker HubN/A*.docker.com
Docker APIN/A*.docker.io
Popular MCP Servers GitHub MCP Server N/A *.github.com

v.1.3.7

In this release, new activities have been added to Datatable Automation to improve data comparison, modification, and text manipulation within DataTables, enabling more efficient and controlled data handling in workflows.

New Activities

1. Compare DatatableAllows users to compare two DataTables and identify differences based on defined matching criteria. 

2. Update Row ItemEnables users to update specific column values within a DataTable row that matches the given conditions. This simplifies in-place data updates without the need for complex looping or manual row handling.

3. Find and Replace in DatatableAllows users to search for a specific value or pattern within a DataTable and replace it with a new value. This activity is useful for data cleansing, standardization, and bulk text updates across rows and columns.

v.1.0.8

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.2.8

In this release, new activities have been introduced under the Collections feature to simplify comparison and value manipulation within collections, improving data handling and control in automation workflows.

New Activities

1. Compare Collection: Allows users to compare two collections and identify matching or non-matching items based on defined criteria. This activity helps in validating data, detecting differences, and supporting reconciliation and verification use cases.

2. Find and Replace Collection: Enables users to search for a specific value or pattern within a collection and replace it with a new value. This is useful for data cleansing, normalization, and bulk updates across collection items.

v.3.2.3

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.3.0

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

Virtual Machine (Docker) Deployment Prerequisites

This section outlines the infrastructure and software prerequisites required to deploy Robility Flow on one or more Virtual Machines using Docker and Docker Compose. This deployment model is designed for pilot implementations, proof-of-concept environments, development environments, and single-tenant deployments where a Kubernetes platform is not available or required.

The VM-based deployment model provides a simplified installation and operational experience by hosting all Robility Flow services as Docker containers managed through Docker Compose. This approach reduces infrastructure complexity while providing a consistent and portable deployment architecture.

Note: VM-based deployments do not provide native Kubernetes capabilities such as horizontal pod autoscaling, self-healing orchestration, rolling updates, or multi-zone high availability. For production environments requiring high availability, fault tolerance, and elastic scaling, Robility recommends deploying Robility Flow on a supported Kubernetes platform as described here. 

VM Sizing Overview

The following table summarises the VM configurations for pilot and production deployments. All services are co-located on the VM and run as Docker containers unless noted otherwise.

Deployment Type CPU Memory (RAM) Storage Notes
Pilot Deployment 8 vCPU 32 GB 250 GB SSD Suitable for pilot environments and small-scale workloads. All services are co-located on a single VM and run as Docker containers.
Production Deployment 16 vCPU 64 GB 500 GB SSD Recommended for production environments with higher transaction volumes and concurrent users. All services are co-located on the VM and run as Docker containers unless specified otherwise.

Operating System Requirements

The host VM must meet the following OS requirements before Docker installation:

1. OS: Ubuntu 22.04 LTS (recommended), RHEL 9, or Rocky Linux 9
2. Architecture: x86-64 (AMD64)
3. Kernel: 5.4 or higher
4. Swap: Disabled or set to a low value (Docker and database services perform better without swap)
5. Filesystem: ext4 or xfs on SSD-backed volumes
6. Time synchronisation: NTP / chrony configured and active

Required Software

The following software must be installed on the VM before the RobilityFlow Docker Compose stack is deployed:

Component Minimum Version Notes
Docker Engine 24.0+ Container runtime required for hosting all platform services.
Docker Compose v2.20+ Used to orchestrate and manage the multi-container application stack on the VM.
NGINX 1.24+ Acts as the reverse proxy and provides TLS/SSL termination for inbound traffic.
Cert-Manager / Certbot Latest Stable Automates TLS certificate provisioning and renewal processes.
PostgreSQL 15 or Higher Primary relational database. Can be deployed within Docker containers or installed natively.
Redis 7.0 or Higher In-memory cache and message broker service. Can be deployed within Docker containers or installed natively.
Object Storage Latest Stable Shared storage backend supporting NFS, Azure Files, AWS EFS, SMB, or CIFS.
Operating System Ubuntu 22.04 LTS / RHEL 9 64-bit Linux operating system with kernel version 5.4 or higher.

Note: Docker Engine and Docker Compose are the only mandatory prerequisites. PostgreSQL and Redis may optionally be deployed as managed cloud services rather than Docker containers.

Service Resource Allocation

All RobilityFlow services run as Docker containers on the host VM. The following table defines the recommended CPU and memory allocation per container. These should be enforced in the Docker Compose file using the deploy.resources.limits directives.

Service Containers CPU Allocation Memory Allocation Notes
RobilityFlow Designer 1 1–2 vCPU 2–6 GB NGINX serves the React Single Page Application (SPA). This service typically requires minimal CPU and memory resources.
RobilityFlow Runtime 1–2 4–6 vCPU 8–12 GB Primary consumer of compute resources. Scale vertically by increasing CPU and memory allocations based on workload demands.
PostgreSQL 1 2–4 vCPU 8–16 GB Requires a dedicated SSD-backed persistent data volume to ensure optimal database performance and durability.
Redis 1 1 vCPU 2–4 GB Single-node deployment with AOF (Append Only File) persistence enabled for data durability.
NGINX (Reverse Proxy) 1 0.5 vCPU 256 MB Handles TLS termination and routes incoming traffic to the RobilityFlow Designer and Runtime services.

Example Docker Compose resource limits for the Runtime container:

deploy:
resources:
limits:
cpus: ‘4.0’
memory: 8G
reservations:
cpus: ‘1.0’
memory: 4G 

Persistent Storage

Each container that requires persistence must mount a named Docker volume or a bind-mount to a host directory backed by SSD storage. The following volumes must be defined:

1. postgres-data – PostgreSQL data directory. Minimum 100 GB (pilot), 500 GB (production).
2. redis-data – Redis AOF/RDB persistence directory. Minimum 10 GB.
3. runtime-uploads – File uploads and execution payload attachments. Size based on expected usage.
4. object-storage-data – NFS, Azure Files, AWS EFS, SMB/CIF

All persistent volumes should reside on a separate SSD-backed disk or LVM volume from the OS partition to prevent I/O contention and enable independent resizing.

Networking & TLS on VM

The following network configuration must be applied at the VM OS and firewall level:

1. Port 443 (HTTPS) must be open inbound for end-user browser access.
2. Port 80 (HTTP) should redirect to 443; not required to be permanently open.
3. All inter-service communication (Runtime ↔ PostgreSQL, Runtime ↔ Redis) must be confined to the Docker internal network (not exposed on host interfaces).
4. NGINX on the host (or as a Docker container) must terminate TLS and proxy to Designer (port 3000) and Runtime (port 7860).
5. A CA-issued TLS certificate for the platform FQDN must be installed on NGINX. Certbot/Let’s Encrypt is recommended for automation.

VM-level network traffic matrix:

Source Destination Port Purpose
End-User Browsers NGINX (Host:443) 443 HTTPS Provides secure access to the RobilityFlow Designer user interface and Runtime APIs.
NGINX Designer Container 3000 HTTP Internal Docker network communication between the reverse proxy and the Designer service.
NGINX Runtime Container 7860 HTTP Internal Docker network communication between the reverse proxy and the Runtime service.
Runtime Container PostgreSQL Container 5432 Executes database queries and manages application data persistence.
Runtime Container Redis Container 6379 Supports caching, session management, and publish/subscribe messaging.
Runtime Container Object Storage 443 / 9000 Reads and writes files, documents, and workflow-related artifacts.
Runtime Container License Server 443 HTTPS Outbound connection used for license validation and entitlement checks. Refer to Section 8 for details.
Runtime Container External AI Providers 443 HTTPS Optional outbound connectivity for Large Language Model (LLM) APIs and other AI-powered services.

Backup & Recovery on VM

The following backup procedures must be established before going live on a VM deployment:

1. PostgreSQL: Configure daily pg_dump or pg_basebackup to an external destination (object storage or offsite volume). Minimum 7-day retention.
2. Redis: Enable both AOF (appendonly yes) and RDB snapshots. Copy snapshot files to an external destination daily.
3. VM-level snapshots: Take VM snapshots before each platform update to enable rollback.
4. Docker volumes: Script regular tar backups of named volumes to the backup destination.

Note: VM deployments do not benefit from Kubernetes PodDisruptionBudgets or multi-zone redundancy. A documented runbook for restart and recovery procedures is strongly recommended.

AWS Deployment Prerequisites

This document outlines the infrastructure, platform services, and AWS resources required to successfully deploy and operate Robility Manager in an Amazon Web Services (AWS) environment. 

Required Components

Component Notes
AWS Account Required to provision, deploy, and manage all AWS resources associated with the application.
Elastic Beanstalk Environment A managed application hosting environment used to deploy, run, monitor, and automatically scale the .NET web application.
Supported .NET Runtime The appropriate .NET runtime version required by the application must be installed and configured in the Elastic Beanstalk environment (.NET 8.0 or later).
Amazon RDS (SQL Server) A fully managed relational database service used to store application data, configuration, and transaction data with automated backups, high availability, and disaster recovery options.
Amazon S3 A scalable object storage service used to store application files, documents, reports, images, logs, backups, and other unstructured data.
AWS Secrets Manager A secure secrets management service used to store and manage sensitive information such as database credentials, API keys, connection strings, certificates, and application secrets.

To learn more about the infrastructure, operating system, software, and access requirements for the successful installation and operation of Robility Manager, click here.

Agent Group Dashboard

The Agent Group Dashboard provides an overview of agent group activity, compliance, policy events, and model usage within a project.

The dashboard consists of:

  • Agent Group Overview
  • Agent Controls

Agent Group Overview

The Agent Group Overview displays operational and compliance metrics across all agent groups.

The overview includes:

  • Trace Activity & Compliance – Trace volume and compliance outcomes.
  • Per-Agent Breakdown – Activity metrics for individual agent groups.
  • Top Triggered Policies – Policies triggered most frequently during execution.
  • Recent High-Risk Events – Recent events flagged as high risk.
  • Model Usage – Model usage across agent groups.
  • Tool Invocations – Tool usage during agent execution.

Trace Activity & Compliance

Trace Activity

The Trace Activity chart displays the number of traces processed over the last seven days, grouped by compliance outcome.

Compliance outcomes include:

Status Description
Passed Trace completed successfully without any compliance violations.
Redacted Sensitive content was detected and masked during processing.
Blocked Trace was blocked due to one or more compliance violations.
Trace Activity by Compliance Outcome

Compliance Split

The Compliance Split widget displays the distribution of trace outcomes across all processed traces as a donut chart.

Trace outcomes are categorized into:

Status Description
Passed Traces completed without compliance violations.
Redacted Traces where sensitive content was masked or modified.
Blocked Traces prevented from completing due to compliance violations.
Compliance Split

Per-Agent Breakdown

The Per-Agent Breakdown widget displays compliance and performance metrics for each agent group.

Health Score represents the percentage of requests handled successfully from a compliance perspective.

Formula:

Health Score = (Passed Traces + Sanitized Traces) ÷ Total Traces

The following metrics are displayed for each agent group:

Metric Description
Traces Total number of requests processed.
Passed Requests completed without compliance violations.
Sanitized Requests where sensitive data was successfully masked or redacted.
Blocked Requests prevented from completing due to policy violations.
Compliance Health Percentage of compliant requests.
Avg Runtime Average processing time per request.
Policies Number of active policies applied to the agent group.
Per-Agent Breakdown

Configure Agent Group

The Configure Agent Group screen allows users to define the operational settings, resources, and constraints for an agent group. Through a guided workflow, users can configure agent behavior, assign tools and skills, apply compliance requirements, and set execution limits.

Step 1: Agent Information

Provide the basic information required for the agent group.

Field Description
Description Describe what the agent group is responsible for, what tasks it is intended to perform, and how it is expected to behave.

Step 2: Adapter

Select the adapter that the agent group will use during execution.

Field Description
Adapter Choose an adapter from the available list. The selected adapter determines how the agent group interacts with underlying services and execution environments.

Supported Adapters: LangChain, Google ADK, Crew AI, and Strands.

Step 3: Tools Configuration

Manage the tools available to the agent group.

  • Selected Tools — Choose the built-in and custom tools that agents in the group can use during execution.
    Refer to Tools for more information.
  • Blocked Tools — Restrict access to tools that are unnecessary, sensitive, or irrelevant to the agent's intended purpose.
  • Custom Tools — If a required tool is not available, click Add Custom Tool to create a new project-scoped tool and make it available for selection.
    Refer to Custom Tools for more information.

Step 4: Agent Group Limits

Set execution boundaries and resource usage limits to help manage agent performance and system consumption.

Setting Description
Max Agent Calls Specify the maximum number of agent invocations allowed during execution.
Timeout (sec) Specify the maximum execution time, in seconds, before the request is terminated.
Input Tokens Specify the maximum number of input tokens that can be processed in a single request.
Output Tokens Specify the maximum number of output tokens that can be generated during execution.

Step 5: Compliance

Assign compliance to ensure agent interactions and outputs follow defined governance and regulatory requirements.

  • Select one or more compliance configurations from the available list.
  • Applied compliance rules are enforced during agent execution.
  • The policies associated with the selected compliance are listed. If you do not want to include a policy, you can disable it.

Step 6: Skills

Select the skills that should be available to the agent group during execution.

  • Selected Skills — Choose from built-in or project-specific custom skills available within the platform.
    Refer to Skills for more information.
  • Custom Skills — Click Add Custom Skill to create and register a new project-scoped skill. Newly created skills become immediately available for selection.
    Refer to Custom Skills for more information.

Step 7: Export Agent Slug

Export the agent group's unique identifier for use in integrations, deployments, or external references.

  • Generate the agent slug after completing the configuration.
  • Use the exported slug to reference the agent group in external systems and workflows.

Save Configuration

After completing all steps, review your settings and save the agent group. Once saved, the configured agent group becomes available for use within the selected project.

Trace Investigation

The Trace Investigation page provides a detailed audit trail for each request processed by an agent.

Each trace includes:

  • Input Context – The user request submitted for processing.
  • Processing Details – Information about the agent, model, and tool execution.
  • Response Output – The final response generated by the agent.

Trace outcome indicators:

  • Green – Passed
  • Amber – Redacted
  • Red – Blocked
Trace Investigation

Individual Trace Investigation Details

The Individual Trace Investigation Details page provides a detailed view of a single trace.

1. Execution Timeline

Displays all execution steps in chronological order.

2. Transaction Details Panel

Displays the request input, intermediate processing, model and tool interactions, and the final response.

3. Compliance Policies Panel

Displays the policies applied during execution. Expand a policy to view its evaluation results and the actions taken.

Individual Trace Investigation Details

Top Triggered Policies

The Top Triggered Policies widget displays the compliance policies that are triggered most frequently across all agent groups.

Severity levels are indicated by color:

  • Orange – High priority
  • Red – Critical
Top Triggered Policies
Note: This widget is read-only.

Recent High-Risk Events

The Recent High-Risk Events widget displays the latest policy enforcement events across all agent groups.

Each event includes:

  • Policy – The policy that was triggered.
  • Risk Category – The type of compliance risk identified.
  • Agent Group – The agent group associated with the event.
  • Time of Occurrence – The date and time when the event occurred.

Severity levels are indicated by color:

  • Red – Critical
  • Orange – High priority
Recent High-Risk Events
Note: This widget is read-only.

Model Usage

The Model Usage widget displays the number of LLM calls made by each model across all agent groups.

Each model includes:

  • Model Name – The name of the LLM model.
  • LLM Calls – The total number of calls made to the model.
  • Usage Bar – A visual representation of the total number of LLM calls.
Model Usage
Note: This widget is read-only.

Tool Invocations

The Tool Invocations widget displays the number of times each tool was invoked across all agent groups.

Each tool includes:

  • Tool Name – The name of the tool.
  • Invocation Count – The total number of times the tool was invoked.
  • Usage Bar – A visual representation of the total number of invocations.
Tool Invocations
Note: This widget is read-only.

Agent Controls

The Agent Controls page allows administrators to manage the execution of agent groups in real time. It provides controls for managing all agent groups, individual agent groups, and bulk operations.

Overall Controls

The Overall Controls section provides actions that apply to all agent groups.

  • Start All – Starts processing new traces across all agent groups.
  • Emergency Stop All – Immediately stops processing across all agent groups, including requests that are currently in progress.

Per-Agent Controls

The Per-Agent Controls section provides actions for managing individual agent groups.

  • Start – Starts processing new traces.
  • Pause – Temporarily pauses new trace processing while keeping the agent group available.
  • Stop – Immediately stops the agent group, including any requests that are currently in progress.
  • Drain – Stops accepting new traces while allowing in-progress requests to complete.
  • Adjust Rate Limits – Sets the maximum number of traces the agent group can process per minute.

Danger Zone

The Danger Zone section provides bulk actions that affect all agent groups.

  • Pause All Agents – Temporarily pauses processing across all agent groups.
  • Drain All Running Agents – Stops accepting new traces while allowing in-progress requests to complete.
  • Stop All Agents – Immediately stops processing across all agent groups, including any requests that are currently in progress.
Agent Controls
Note: Use Drain to stop an agent after all current executions are completed. Use Stop to terminate the agent immediately, including any requests that are still in progress.

Observability

Traces

A Trace represents the complete lifecycle of a single request or interaction within the application. It captures every stage of execution, from the initial input to the final output, providing a unified record of how the request was processed.

A trace includes:

  • Input received from the user or application.
  • Intermediate observations, such as model calls, tool executions, API requests, and workflow activities.
  • Outputs generated during execution.
  • Execution metadata, including timestamps, latency, token usage, cost, identifiers, tags, and environment information.

Each trace contains one or more observations (also referred to as spans or events) that represent the individual operations performed during execution.

Trace List View

The Trace List View provides a centralized view of all captured traces, enabling users to monitor, analyze, and troubleshoot application executions.

Each trace is displayed as a row in the table with the following information:

Column Description
Timestamp Date and time when the trace was created.
Input Request, prompt, or data submitted to the application.
Output Response generated by the application or model.
Observation Level Number and hierarchy of observations associated with the trace.
Latency Total execution time of the trace.
Tokens Total number of input and output tokens consumed.
Total Cost Processing cost incurred for the trace.
Environment Environment in which the trace was executed (for example, Development, Staging, or Production).
Tags User-defined labels associated with the trace.
Metadata Additional contextual information captured during execution.
Score Evaluation scores assigned to the trace.
Actions Actions available for the selected trace.

Filter Panel

Use Hide Filters to collapse the filter panel and maximize the space available for viewing trace data.

The panel offers a wide range of filter options to help you precisely narrow down and locate the specific traces relevant to your analysis.

Refresh Options

Configure automatic refresh using one of the following intervals:

  • Off
  • Every 30 Seconds
  • Every 1 Minute
  • Every 5 Minutes
  • Every 15 Minutes

Trace Detail View

Selecting a trace from the list opens the Trace Detail View, which provides comprehensive information about the selected trace, including execution details, observations, evaluations, and related metadata.

Trace Information

The header section displays key information about the trace.

Field Description
Trace ID A unique identifier for the trace that can be used for reference and troubleshooting.
Latency The total time taken to process the trace from input to output.
Usage Breakdown A detailed breakdown of token consumption and associated costs.
Session ID Identifies the session associated with the trace. Selecting the Session ID opens the corresponding session details page.
User ID Identifies the user associated with the trace. Selecting the User ID opens the corresponding user details page.

Trace Views

The Trace View includes the following tabs for viewing trace information.

  • Preview – Displays the trace input, output, and observations in a structured format for quick review.
  • Log View – Displays the complete execution sequence, including all observations and workflow activities in chronological order.
  • Scores – Displays evaluation scores and assessment metrics applied to the trace and its observations.

Actions

The Trace Detail View provides the following actions.

  • Add Item to Dataset – Saves the trace input and output as a reusable dataset item for testing, evaluation, and benchmarking.
  • Annotate – Applies predefined scores, labels, or evaluation metrics to a trace or observation.
  • Playground – Opens the trace in the Playground for testing and experimentation.
    • Fresh Playground – Creates a new Playground using the selected trace without affecting existing configurations.
    • Add to Existing – Adds the selected trace to an existing Playground for continued experimentation.
  • Add Comment – Adds comments to a trace for collaboration, feedback, or additional context.

Tracing Actions

The following actions are available within Tracing. These actions are also accessible from the Sessions and Users pages under Observability.

1. Add to Dataset

Adds the selected trace's input and output data to a dataset.

Datasets are collections of examples used for:

  • Testing AI applications.
  • Evaluating model performance.
  • Benchmarking application behavior.
  • Validating AI workflows using real-world interactions.

2. Annotate

Adds annotations to a trace or observation using predefined Score Configurations.

Annotations can be used to assign:

  • Scores.
  • Labels.
  • Evaluation metrics.

based on configured scoring criteria.

Annotations can be applied at the following levels:

  • Trace level – Applies evaluation results to the complete trace.
  • Observation level – Applies evaluation results to individual observations within a trace.
Note: For information about creating and managing scoring criteria, refer to Score Configurations and Annotation Queue.

3. Add Comment

Adds comments to a trace for documentation, review, and collaboration purposes.

  • Enter comments to provide additional context about the trace.
  • Use comments for review and collaboration among users.
  • Comments remain associated with the selected trace.

Comments remain associated with the trace and are visible to users with the appropriate permissions.

4. Usage Breakdown

Displays token usage details for the selected trace.

The usage breakdown includes the following metrics:

Metric Description
Input Usage Number of input tokens sent to the model.
Output Usage Number of tokens generated in the model response.
Total Usage Total number of input and output tokens consumed.
  • Monitor token consumption for individual traces.
  • Analyze usage patterns and model interactions.
  • Identify requests with high token utilization.

5. Download

Downloads the selected trace, session, or user data as a JSON file.

  • Select the required trace, session, or user data.
  • Click the Download option from the actions menu.
  • The system prepares the selected data in JSON format.
  • Download the generated JSON file for further analysis.
  • Use the downloaded file for auditing, troubleshooting, or record keeping.

The downloaded file contains the corresponding execution details and metadata for further analysis or record keeping.

Sessions

A Session groups multiple traces that belong to the same interaction, such as a multi-turn conversation or a long-running workflow. Each trace is associated with a Session ID, and traces that share the same Session ID are automatically grouped into a single session.

Session Creation and Grouping

Sessions are created by assigning a Session ID when a trace is generated. The Session ID can be generated automatically by the system or supplied by the application.

Once assigned, all traces and observations with the same Session ID are grouped into the same session.

For complete grouping, assign the Session ID at the beginning of the trace so that all subsequent observations inherit it.

Session ID Constraints

  • Must be a string containing standard ASCII characters.
  • Must be fewer than 200 characters.
  • Identifiers longer than 200 characters are ignored rather than truncated.
Session Grouping

Example

In a chatbot conversation, each user message is recorded as a separate trace, while the entire conversation is represented as a single session.

Users

A User represents an individual or entity interacting with the application. Each trace can be associated with a User ID, allowing all traces and sessions generated by the same user to be grouped and analyzed together.

The User ID can represent:

  • A registered user
  • A system or service
  • An anonymous user or session identifier

Example

A user with the User ID user_123 may generate multiple traces across different sessions. Because each trace is associated with the same User ID, all related activity can be viewed and analyzed together.

Users

User Views

  • User List – Displays all users tracked within the system, providing an overview of key metrics such as token usage, number of traces, and feedback. This enables quick analysis and comparison across users.
  • Individual User View – Provides a detailed view of a specific user, allowing all associated traces, sessions, and feedback to be grouped and analyzed together for deeper insights into user activity over time.

Tracing Actions

The following actions are available within Tracing. These actions are also accessible from the Sessions and Users pages under Observability.

1. Add to Dataset

Adds the selected trace's input and output data to a dataset.

Datasets are collections of examples used for:

  • Testing AI applications.
  • Evaluating model performance.
  • Benchmarking application behavior.
  • Validating AI workflows using real-world interactions.

2. Annotate

Adds annotations to a trace or observation using predefined Score Configurations.

Annotations can be used to assign:

  • Scores.
  • Labels.
  • Evaluation metrics.

based on configured scoring criteria.

Annotations can be applied at the following levels:

  • Trace level – Applies evaluation results to the complete trace.
  • Observation level – Applies evaluation results to individual observations within a trace.
Note: For information about creating and managing scoring criteria, refer to Score Configurations and Annotation Queue.

3. Add Comment

Adds comments to a trace for documentation, review, and collaboration purposes.

  • Enter comments to provide additional context about the trace.
  • Use comments for review and collaboration among users.
  • Comments remain associated with the selected trace.

Comments remain associated with the trace and are visible to users with the appropriate permissions.

4. Usage Breakdown

Displays token usage details for the selected trace.

The usage breakdown includes the following metrics:

Metric Description
Input Usage Number of input tokens sent to the model.
Output Usage Number of tokens generated in the model response.
Total Usage Total number of input and output tokens consumed.
  • Monitor token consumption for individual traces.
  • Analyze usage patterns and model interactions.
  • Identify requests with high token utilization.

5. Download

Downloads the selected trace, session, or user data as a JSON file.

  • Select the required trace, session, or user data.
  • Click the Download option from the actions menu.
  • The system prepares the selected data in JSON format.
  • Download the generated JSON file for further analysis.
  • Use the downloaded file for auditing, troubleshooting, or record keeping.

The downloaded file contains the corresponding execution details and metadata for further analysis or record keeping.

Budget Governance

Jul'26 Release

The July 2026 release delivers new capabilities across automation operations, workflow development, new integration, reporting, and AI governance, it enables to manage enterprise automation with greater visibility, control, and efficiency.

AUTOMATION GOVERNANCE

Centralized Runner Diagnostics

Robility Manager provides centralized management of machines hosting unattended runners, giving operations teams complete visibility and control from a single console. With remote diagnostics, real-time health monitoring, log management, and administrative capabilities, organizations can accelerate issue resolution, minimize operational downtime, and eliminate the need for direct machine access—ensuring resilient, uninterrupted automation at scale.

Dynamic Troubleshooting

Accelerate issue resolution for UI Automation activities with advanced Runner Troubleshooting. When enabled, Robility Runner automatically captures the application screen whenever an exception occurs and attaches it to the exception details, providing immediate visibility into the point of failure for faster root cause analysis and improved automation reliability.

WORKFLOW DEVELOPMENT

See Every Execution

Robility Designer introduces Execution Trial, providing complete visibility into workflow execution before production. Trace every activity, identify bottlenecks, and evaluate workflow health to optimize automations, reduce production risks, and deliver more reliable workflows.

Immediate Window in Debug Watcher

The new Immediate Window in Debug Watcher enables developers to evaluate workflow inputs and expressions in real time during debugging without adding temporary logging activities, reducing troubleshooting effort and accelerating development.

ENTERPRISE INTEGRATION

Expand Microsoft 365 Automation

Robility expands Microsoft 365 automation with Calendar and Outlook capabilities across Robility Activities and Flow. Automatic refresh token management eliminates manual token renewal, ensuring reliable Microsoft 365 automation with reduced administrative effort.

REPORTING

Secure. Simple. Accessible.

Authorized users can securely access reports directly from notification emails through Robility Manager authentication, eliminating manual report distribution while maintaining secure access.

FLOW ENHANCEMENTS

Centralize AI Configuration

Robility Flow introduces project-level Model Provider Configuration, allowing AI providers to be managed at the project level. Dedicated project configurations and project-level permissions provide greater governance while supporting project-specific AI requirements.

Release Date: 25.07.2026

ALTK Agent

The Agent Lifecycle Toolkit (ALTK) is a set of advanced capabilities designed to enhance agent behavior, reliability, and efficiency within Robility Flow. It provides intelligent controls and processing mechanisms that improve how agents interact with tools, handle responses, and execute workflows.

Key Features

a. Pre-tool Validation
Validates tool calls before execution to ensure they are appropriate and correctly structured. This is powered by the SPARC reflection component and helps prevent agents from executing invalid or unintended actions.

b. Post-tool JSON Processing
Efficiently processes large JSON responses from tools by dynamically generating Python code to extract only the relevant data. This reduces context size and improves performance when handling APIs that return extensive datasets.
Instead of passing the entire JSON response, the component outputs a concise Message containing only the necessary information, which is then forwarded to the next component in the flow.

For more details, refer to the Agent Lifecycle Toolkit documentation. 

ALTK Agent parameters

Some parameters are hidden by default in the visual editor. You can modify all component parameters through the component inspection panel that appears when you select a component.

Name Type Description
agent_llm Dropdown Input parameter. The model provider the agent uses to generate responses.
enable_tool_validation Boolean Input parameter. If enabled, tool calls are validated using SPARC before execution to check for appropriateness and correctness. Default: true.
enable_post_tool_reflection Boolean Input parameter. If enabled, tool outputs are automatically processed through JSON processing when the output is JSON and exceeds the size threshold. Default: true.
response_processing_size_threshold Integer Input parameter. Tool output is post-processed only if the response length exceeds this character threshold. Default: 100. Advanced parameter.
tools List[Tool] Input parameter. The list of tools available to the agent.
system_prompt String Input parameter. The system prompt to provide context to the agent.
input_value String Input parameter. The user's input to the agent.
memory Memory Input parameter. The memory for the agent to use for context persistence.
max_iterations Integer Input parameter. The maximum number of iterations to allow the agent to execute.
verbose Boolean Input parameter. This determines whether to print out the agent's intermediate steps.
handle_parsing_errors Boolean Input parameter. This determines whether to handle parsing errors in the agent.

User Management

User management is a centralized section for adding users, assigning roles, and managing access within the tenant. Only the tenant administrators have the privilege to access this section to modify the permissions of the users and ensures secure and efficient access control.

This section uses a Role-Based Access Control (RBAC) system, enabling users to have role-dependent capabilities in Robility Manager. The primary goals of the RBAC system ensure users have the appropriate level of access based on their roles, to streamline access management, and to enhance overall security. For detailed information on default roles and their permissions, click here.

Roles in the platform

Each role comes with predefined permissions that determine what users can access and modify within the platform. The roles are as follows,

1. Tenant Admin: This role has full administrative privileges across the platform, allowing users to configure settings, manage users, and access all platform features. Tenant Admins are responsible for overseeing the platform’s operations and ensuring that everything is set up according to the organization’s needs. 

2. RPA Developer: RPA Developers is intended for users who are responsible for designing and deploying automation workflows with Designer and Runner. 

3. User: The User role typically refers to standard users who interact with the platform without needing access to the administrative or any Robility products. These users can perform tasks assigned to them but have limited access in the platform. 

Learn more about project roles here.

Invitation Process

The Tenant Administrator has the privilege to invite users to the platform. The invitation process for each user is secure and automated. 

Robility Manager provides defined roles and access for User, RPA Developer, Tenant Admin in the platform. To get more detailed information about the default roles and permissions, click here

Steps to invite the user to the tenant

Below are the steps to invite the user to the tenant. 

1. On the left-hand side, select the “Invite” option to navigate to the “Manage Users” screen.
2. In the top right corner, click on “Add” to open the pop-up screen for adding users.
3. Enter the user’s email address. By default, the “User” role will be selected.
4. Click the “Invite” button to send an invitation email to the user.
5. The user has now been successfully invited to the tenant.
6. The user’s status will be marked as “Pending invitation” until they accept the invitation.
     a. Once the user’s status changes to “Active,” you can assign the appropriate roles within the tenant.

The tenant admin can invite up to 20 users at once to the platform using the “Add Member” option under the Invite feature.

User Sign-In Process

Once the tenant admin invites you to the platform, you will receive an invitation email from RobilityAI. Follow these steps to accept the invitation and sign in:

1. In the invitation email, click the “Confirm” button containing the invitation link.
2. You will be directed to the RobilityManager page.
3. Enter your first name, last name, and a custom password to complete the sign-in process.
4. After signing in, you will be directed to the “Home” page if you have access to only one tenant.
5. You can now access the platform and start using its features.

Manage Users

This section allows only tenant administrators to manage user accounts by editing roles, tracking user activity, exporting user lists, and re-inviting users with expired invitations. These actions help maintain control over access and ensure smooth operations.

Modifying the user role 

To modify or assign a user’s role in the tenant, the tenant admin can follow these steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Edit” icon.
4. Select the role to assign or modify for the user. Click here to view the default roles and their permissions.
5. Once selected, click the “Save” button to save the changes.

Track User Activity

To track and view the user activity on the tenant, the tenant admins can follow the below steps:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. Against the specific user details, click on the “Eye” icon.
4. A Pop up will appear on the screen with details of the user track and the action performed by the tenant administrators. 

Exporting User List

This option allows tenant administrators to export the user list into excel from the tenant which includes details such as usernames, email addresses, roles, user’s login time and statuses.

How to export the user list?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. On the top right corner, select the “Excel” icon indicating to export the user details. 

How to re-invite users?

Tenant administrators can re-invite users to the tenant only if their previous invitation has expired. The invitation link expires within 48 hours. Follow the steps below:

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users and their statuses will be displayed.
3. For the user with the status “Expired,” click on the “Mail” icon.
4. A re-invitation will be sent to the user.

License Renewal

Tenant administrators can renew licenses for RPA developers whose licenses have expired, either individually or in bulk. Follow the steps below:

1. On the Invite page, click the License Renew button.
2. A list of expired RPA developer users will be displayed.
3. Select users individually or choose multiple users to renew licenses in bulk.

Note: Licenses can only be renewed if available. If no licenses remain, you must follow the standard process to request licenses from the Settings page. Click here to view.

User Activation & Deactivation

This section is managed by tenant administrators, who have the privilege to oversee user accounts within the tenant. They can grant access to users based on assigned roles or restrict access when needed to maintain security and proper access control within the tenant.

How to deactivate the users?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users with their status will be displayed.
3. At the user details, you will see the “Thumbs Down” icon, indicating the option to deactivate the user.
4. Click on the icon to deactivate the user.
5. Once deactivated, the user will no longer have access to the tenant.

User Activation & Deactivation

This section is managed by tenant administrators, who have the privilege to oversee user accounts within the tenant. They can grant access to users based on assigned roles or restrict access when needed to maintain security and proper access control within the tenant.

How to deactivate the users?

1. On the left-hand side, select the “Invite” option to navigate to the “Manage User” menu.
2. A list of users with their status will be displayed.
3. At the user details, you will see the “Thumbs Down” icon, indicating the option to deactivate the user.
4. Click on the icon to deactivate the user.
5. Once deactivated, the user will no longer have access to the tenant.

HarmonyAI

About

Harmony AI, the AI component of Robility, powers a comprehensive range of AI-driven automation capabilities designed to enhance workflow efficiency and intelligence. It offers prebuilt and custom AI models for tasks such as document processing, text analysis, and image recognition. With features like Document Intelligence, Harmony AI combines OCR and machine learning to accurately extract data from unstructured documents, while its Natural Language Processing (NLP) capabilities enable sentiment analysis, entity extraction, and text classification. Additionally, Harmony AI’s UI Vision allows for seamless recognition of UI elements in diverse environments, and its Generative AI integrations provide advanced text generation, summarization, and language translation features.

Harmony AI also integrates effortlessly with popular AI platforms such as Google AI, AWS, and Microsoft Azure, enabling organizations to leverage advanced machine learning capabilities within their automation workflows. AI-powered chatbots, voice and speech analysis, and seamless integration with third-party AI services, Harmony AI drives intelligent automation across industries such as healthcare, finance, and customer service, making Robility a leading solution for AI-powered automation. 

HarmonyAI’s Capabilities

UI Vision: Revolutionizing UI Interaction

Harmony AI’s UI Vision is a cutting-edge, vision-driven capability that effortlessly transforms UI screens into structured, actionable elements. This breakthrough empowers Robility robots to navigate and interact with UI layers more intelligently and efficiently. By enabling seamless engagement with complex UI components, Harmony AI’s UI Vision can identify tables, icons, button, labels and text boxes. Click here to learn more.

Generative AI Activities: Transforming Automation with Intelligence

Harmony Generative AI Activities empower businesses to leverage artificial intelligence within their automation workflows. By offering key capabilities such as email generation, PII detection, content summarization, and text translation, these features enhance robotic efficiency, enable human-like informed decision-making, and unlock new automation opportunities. Click here to learn more.

Document Intelligence: AI-Driven Document Processing

Harmony Document Intelligence utilizes AI and machine learning to extract, interpret, and process data from structured and unstructured documents. It enhances accuracy and efficiency by automating data entry and validation tasks. With customizable features, it streamlines business workflows and reduces manual effort. Its seamless integration with the Robility Interact platform enables comprehensive automation. Empower your organization with intelligent document processing for greater operational efficiency. 

AI Search: Revolutionizing Information Retrieval

Harmony AI Search enables robots and humans to efficiently locate information within documents, transactions, and audio files ingested through automation or manual input. It provides powerful features such as natural language search, field-based filtering, and context-driven retrieval for accurate results. Leveraging AI-driven insights enhances accessibility and speeds up information retrieval. Seamlessly integrated into automation workflows, it boosts productivity and informed decision-making. 

Autonomous Agent AI

Understanding Autonomous Agent AI and Robility’s Harmony AI Support

Autonomous Agent AI refers to an advanced artificial intelligence system capable of functioning independently without the need for constant human supervision. These intelligent agents are designed to perceive their surroundings, analyze situations, and make informed decisions to achieve specific objectives. By operating autonomously, they can streamline processes and improve efficiency across various industries. 

Key Characteristics of Autonomous Agent AI

1. Perception: Autonomous agents have the capability to gather and interpret data from their environment through various sources such as sensors, APIs, and other input mechanisms. This allows them to understand their surroundings and respond accordingly.

2. Decision-Making: Equipped with sophisticated AI models, rules, and heuristics, these agents can analyze information and make decisions that align with predefined goals. They can evaluate different options and take the most suitable course of action.

3. Autonomy: A defining feature of Autonomous Agent AI is its ability to function without direct human oversight. Once programmed with specific objectives, these agents can adapt and respond to changing conditions on their own.

4. Goal-Oriented Behavior: Autonomous agents work with a clear purpose, striving to accomplish specific tasks efficiently and effectively. Whether the goals are pre-defined or dynamically adjusted, these agents stay focused on achieving the desired outcomes.

5. Interaction: These AI systems are capable of communicating with humans, other AI agents, or external systems. This interaction enables seamless coordination, collaboration, and execution of tasks in complex environments.

Harmony AI Privacy Layer

Harmony AI Privacy Layer is an advanced solution designed to empower enterprises with comprehensive control over the utilization of AI models by users, automation bots, and various components within the Robility ecosystem. This privacy-focused layer provides a robust framework that ensures compliance, security, and governance while enabling organizations to tailor AI interactions to their specific business needs.

The Harmony AI Privacy Layer offers a wide range of configurable settings that allow administrators to manage AI model integrations at multiple levels, including tenant-wide and project-specific configurations. This flexibility enables organizations to dictate which AI models can be utilized across different projects, ensuring alignment with their security policies and operational requirements.

Key capabilities of the Harmony AI Privacy Layer

1. Granular AI Model Integration Control: Administrators can define which AI models are permitted within the organization, ensuring adherence to internal policies and regulatory requirements. The layer supports integration with a variety of AI models, including custom and third-party solutions. Click here to learn more.

2. Personally Identifiable Information (PII) Filtering: The privacy layer incorporates advanced mechanisms to detect and mask PII, such as names, addresses, and financial details, ensuring compliance with data protection regulations like GDPR, HIPAA, and CCPA. Customizable filtering rules allow organizations to define what constitutes sensitive information based on their compliance needs.

3. Abusive Content Prevention: To maintain a safe and professional environment, the Harmony AI Privacy Layer includes content moderation features that identify and prevent the generation of abusive, offensive, or inappropriate content. This functionality helps organizations enforce ethical AI usage policies and maintain brand integrity.

4. Role-Based Access Control (RBAC): Enterprises can enforce strict access controls by assigning AI usage permissions based on user roles and responsibilities. This ensures that only authorized users, robots, and components can access AI functionalities as per defined policies.

5. Audit and Monitoring Capabilities: The layer includes comprehensive logging and monitoring tools that track AI interactions, providing insights into how AI models are being utilized across projects. Detailed audit logs support compliance audits and help identify any potential misuse or anomalies.

With these features, the Harmony AI Privacy Layer ensures that enterprises can confidently deploy AI solutions within the Robility platform, balancing innovation with robust security and compliance measures.

Integrations

Robility® offers a comprehensive suite of AI services and built-in open-source models that can be seamlessly integrated into automation workflows. These services empower users to enhance the intelligence and efficiency of their automations by enabling them to process unstructured data, understand human input, and make informed decisions within workflows.

The AI services are tailored to handle routine yet data-intensive tasks such as extracting key fields from documents, analyzing customer sentiments from text inputs, identifying and validating signatures, and recognizing both printed and handwritten text formats. These capabilities significantly reduce manual effort, improve data accuracy, and accelerate processing times across various business operations.

Robility’s AI services are created using trusted open-source tools, which are then improved with custom-built models to make them work better for specific tasks. These services are designed to understand complicated data, filter inappropriate content, pull out useful information from text, and create human-like responses. All of this happens automatically as part of the automation process. Whether you use Robility’s built-in AI tools or connect with other AI services, these features help make your automation smarter and more adaptable to different situations.

Available AI Services Powered by Robility:

1. Generative AI – Create dynamic text content or responses using AI-based natural language generation. To learn more about the activities, click here

2. OCR & ICR – Extract printed (OCR) and handwritten (ICR) text from documents, forms, and images.

3. Sentiment Analysis – Understand the emotional tone of customer feedback, reviews, or support queries.

4. Entity Extraction – Identify and extract structured information such as names, dates, and locations from unstructured text.

5. Text Moderation – Detect and filter out inappropriate or harmful language from content inputs.

These AI capabilities bring intelligence to your automation journey, helping businesses respond faster, work smarter, and scale efficiently.

Third Party integrations

HarmonyAI also provide AI integration with third parties such as Azure and Google to further extend our capabilities and enhance document automation.

Azure Integration

Azure AI in Robility offers a wide range of models and services designed to cater to different AI and ML needs. These models and services are accessible through Azure’s cloud platform and can be used for tasks such as computer vision, natural language processing, anomaly detection, and more.

You can now easily plug Azure AI models into your automation workflow to enhance solutions.

AI services in Azure:

1. Document Understanding
2. Azure OpenAI
3. OCR

Google Integration

Google’s advanced AI and machine learning models leverages to improve document processing and automation. By incorporating Google’s Gemini and Vertex AI capabilities, users can achieve more accurate data extraction, better natural language understanding, and seamless integration with other Google services.

AI services in Google:

1. Document Understanding
2. Vertex AI

Click here to know how to activate the HarmonyAI within your tenant.

Settings

This section enables tenant administrators to configure and activate HarmonyAI for their projects, offering step-by-step instructions for setup. It also provides a comprehensive overview of the AI agent, its features, and the use cases. 

Activation

How to activate the HarmonyAI?

1. Login to the RobilityManager and navigate to your tenant. 
2. On the left-hand side, select the “Settings” option, which will navigate you to the “License” screen.
3. Now, click on the “Harmony AI” menu.
4. Enter the endpoint service URL purchased in the box and click on “Validate”. Refer the tips below to learn about endpoints.
5. If your endpoint is validated, you will be able to integrate AI models into your workflow.

Once the key has been activated, all available AI services will be listed. Additionally, for certain AI models, we will provide the access key and endpoint URL for Azure AI service.

Setup

Integrating HarmonyAI into Interact Configuration

HarmonyAI can be seamlessly integrated into your Interact workflow to enhance automation through intelligent decision-making and AI-powered responses. This integration allows you to define AI queues within your project, configure access permissions, and tailor the behavior of AI agents using system prompts, user prompts, and accelerators.

Steps to set up HarmonyAI:

1. Navigate to your project and select the “Interact Workflow” menu.
2. Select the “Project Configuration” and proceed to the “Queues” step.
3. Now, select the “Queue Type” as “HarmonyAI”.
    a. This will list the integrations that has been added to the tenant.
    b. Under HarmonyAI, choose the respective model.
    c. Provide a name for the queue.
4. Now access to the queue and field along with the playground will be enabled.
5. Select the “Click here” option against the respective “AI Model name”.
6. A window appears on the screen where you will configure the setup, define system prompt and user prompt and customize your output with the desired accelerators. 

Each integrated AI model includes 18 categories of accelerators, designed to simplify automation with a plug-and-play approach. Each accelerator comes with clearly defined goals and step-by-step instructions, ensuring precise execution and highly accurate results for your automation workflows.

After creating the queue, the necessary fields for automation will be automatically generated, with all fields set as mandatory. 

Integrating HarmonyAI Activities through App Integration

HarmonyAI offers a collection of AI-driven activities that can be seamlessly integrated into your automation workflows to enhance intelligence, context-awareness, and adaptability. These activities are available through the App Integration module and enable you to build advanced automation logic without the need for AI expertise.

By incorporating HarmonyAI into your projects, you unlock functionalities across multiple domains such as:

Generative AI (GenAI): Generate contextual text, summaries, responses, or content on the fly.

UI Vision: Extract and interpret on-screen visual elements using AI-powered vision models.

Machine Learning (ML) Models: Predict, classify, and analyze structured or unstructured data using custom-trained ML models.

Document Intelligence: Automatically extract, classify, and validate data from scanned or digital documents, including invoices, forms, and handwritten notes.

Other Intelligent Services: Such as sentiment detection, entity extraction, text moderation, and more.

These activities are modular and built with a plug-and-play architecture, allowing automation developers to configure them as needed without complex coding or setup.

Steps to configure: 

1. Go to your project and open the App Integration menu.
2. In the search bar, type “Harmony” to locate all available HarmonyAI integrations.
3. Click on the desired integration to proceed with setup.
4. You’ll be redirected to a configuration page where you can define the necessary connection parameters.
5. Once filled, click Submit to establish the connection. 
6. After successful configuration, HarmonyAI activities become available in your designer and can be used across workflows to enhance intelligence and automation capabilities.

Access to HarmonyAI activities requires an active HarmonyAI license. Ensure that your organization has obtained the appropriate licensing to fully utilize the features offered under App Integration.

 Click here to access the HarmonyAI Activities Documentation for a full reference on each activity, including use cases, parameters, output formats, and examples.

AI Agent

Robility AI Agent is an intuitive and interactive platform designed for exploring and experimenting with advanced AI capabilities. It offers a plug-and-play environment, allowing users to quickly set up and configure pre-built models and accelerators with minimal effort.

By providing the right instructions and settings, users can leverage the platform to drive innovation and achieve the desired outcomes. This flexibility enables users to easily deploy AI models and retrieve precise results based on their unique requirements.

Just as ChatGPT offers a range of response options, our AI Agent delivers a diverse array of prompt responses, seamlessly integrated with your tenant. Choose your best response that suits your automation solution perfectly. 

Note: AI models can produce errors and/or misrepresent the information they generate. It is advisable to verify the prompt that is provided to generate the content by the AI model.

Key Benefits of AI Agent

1. The AI Agent enhances decision-making by adapting to user-defined rules and goals, optimizing processes for better outcomes, and helping businesses respond faster to changing demands.
2. The AI Agent helps users generate valuable insights from vast datasets. With the ability to process large volumes of information quickly, AI enhances reporting, forecasting, and trend analysis, enabling better business decisions.
3. The quick setup and easy integration of pre-trained AI models allow businesses to achieve faster time-to-value. Users can immediately apply AI to their workflows without needing to spend months on model development or training, driving rapid results.
4. AI agent enables automation of tasks that involve unstructured data, such as interpreting emails, understanding customer queries, or analyzing complex text. This broadens the scope of RPA, allowing bots to work on a wider range of tasks previously too difficult for traditional automation.

Configuration window in detail

Accelerators: These are pre-built AI components that can be readily integrated into the solution. There are 18 types of accelerators available, each with its own functionality. Explore them and choose the ones that suit your automation needs.

Input Type: This specifies the type of input that will be accepted for the bot to process the cases. There are two types of input:

a. Text
b. Email

System Prompt: A System Prompt is a predefined set of instructions designed to guide the AI model’s behavior, ensuring it responds appropriately to user inputs. It establishes the AI’s role, context, and operational framework by defining specific rules, limitations, and response patterns. These instructions help the AI stay within its intended scope, preventing deviations that could lead to irrelevant or inaccurate outputs.

By setting clear expectations, the System Prompt ensures that the AI remains aligned with its purpose, delivering responses that are accurate, relevant, and consistent. It serves as a fundamental component in shaping the AI’s interaction style, allowing developers or users to tailor its behavior to specific needs.

In practical applications, the System Prompt acts as the foundation for AI interactions. It can instruct the AI to function as a translator, summarizer, research assistant, or even a problem solver. By defining these roles, the prompt helps create a structured environment where the AI consistently follows predefined guidelines, ensuring it meets the user’s expectations effectively.

Moreover, the System Prompt plays a crucial role in maintaining coherence across AI-generated responses. Whether used in customer support, content generation, or technical assistance, it helps streamline interactions by setting boundaries on tone, formality, and response style. This structured approach enhances the AI’s ability to provide meaningful and contextually appropriate answers, making it a valuable tool in various applications.

User Prompt: The User Prompt is the specific input either text or email provided by the user to the AI model, based on the instructions set in the System Prompt the results will be generated. This input represents the task or query the user wants the AI to address. 

Generate: Selecting this option will generate responses based on the provided input. Three to four response options will be displayed below, allowing you to choose the best one.

Note: Private GPT1 and Private GPT2 will be the default models used for all types of AI services. This array of multiple responses will help you compare different options, each differing by a few seconds in response time.

Once the responses are generated, users will be prompted to choose one of the models based on their preferences. Then, they can proceed to click on “Save” to get the taxonomy as fields for the selected model.

Taxonomy Details: A taxonomy refers to the classification or structure used in the automation process. It defines fields, their respective data types, and other properties that enable the bot to process inputs effectively. Additionally, each field will have the option to enable “Co-pilot”.

What happens next?

Now, save the configuration to update your project settings. RobilityManager will create two additional queues:

HarmonyAI Queue: This queue is located under the “HarmonyAI” group and is created to process the input and result the output. Once a transaction is added to the HarmonyAI queue with the provided inputs, the bot initiates processing the output and moves it to the next queue based on the business rules provided.

Completed Queue: This queue is located under “Completed” group and is created to move the processed transactions from the ‘HarmonyAI’ queue.

To set up validations for the bot to execute in these specified queues, you can define business rules accordingly.

Use case

Use Case

Automating Language Detection and Translation

Objective: To automate the process of language detection and translation of user comments in an Excel sheet.

Problem statement: The company receives Excel sheets with user comments in multiple languages. Currently, the process of identifying the language and translating the text into English is performed manually.

Proposed Solution: Utilize HarmonyAI to automate the following steps:

1. Language Detection: The AI will first detect the language of the text in the Excel sheet.
2. Translation: The detected text will then be translated into English.
3. Output Generation: The translated text will be reviewed in the Interact page.

Let’s see how this process can be automated.

Setup the HarmonyAI Queues:

1. Login to the RobilityManager and navigate to your tenant.
2. Go to your projects and click on “Interact Workflow” option.
3. Select the “Project configuration” menu and navigate to “Queues”.
    a. Ensure that the “HarmonyAI” is activated in your tenant. Click here to know how.
4. Provide the queue name as “LDT process”.
5. Choose the queue type as “Azure Open AI” under “GenerativeAI” model in HarmonyAI.
6. Once the queue type has been chosen, select the “Azure OpenAI” to launch the playground.

Configuring the AI Agent:

Now, in the “AI Agent” window, we are going to use a pre-built model and use it right away to achieve the expected output by defining instructions in the system prompt. The AI Agent is where you can integrate with the chosen model and test the results. In this case, we have selected the model type “Azure OpenAI.”

1. In the “Accelerators”, choose the service as “Language translator”.
    a. Here we are choosing this service to detect and translate the language to English by default.
2. Let’s provide instructions to the AI to generate the required results. 
3. In the “System Prompt”, currently it is trained to translate the text into specified target language.
    a. Here provide the instructions as below,
“You are a language detection assistant. Your task is to identify the language of text inputs accurately. Ensure that the language detected reflects the actual language used in the text, and provide clear, concise information about the detected language. The detection should be precise, and the results should be easily understandable.”
  1. Detect the language of the input text.
  2. Translate the input text into the English.

Respond with the detected language and the translated text.

Input:
Text:
Detected Language:”

4. In the “User Prompt”, provide the text as below to test the AI,
“J’avais de grands espoirs pour cet endroit, mais ce fut une déception majeure. La nourriture était fade et pas assez cuite et le service était incroyablement lent. Nous avons attendu plus de 40 minutes pour nos entrées et quand elles sont finalement arrivées, elles étaient froides. Le personnel semblait désintéressé et inutile. Ne vaut vraiment pas son prix.”
5. Now click on “Generate” button.
6. Let’s wait for our responses and choose wisely and click on save.

Once you have chosen the respective model, click on “Save” button. Next you will be listed with taxonym for the fields and then click on save configuration button.

Provide queue access for the respective users and save the project configuration

Live review of the process:

1. Now, navigate to the “Queues” page in the “Interact workflow” menu. 
2. Click on the “HarmonyAI” queue and under the “GenerativeAI” queue, choose the “Azure OpenAI” queue and “LDTProcess” queue will be available. 
3. Click on the “Add” option on the top of the page and you will be directed to add the transactions manually. 
4. Provide any input text and click on “Submit” button. 
5. Now, the cases will be added successfully and then the “HarmonyAI” starts to process the input data and translates them. The output will be moved to the “LDTProcess_Review” queue under the “Processing” queue section. 

Archive Settings

Archive Settings

Archives are places where documents or files are preserved for future reference. They are used to collect multiple data files together into a single folder for easier storage. The runner application has archive properties that can be edited by navigating to the log settings on the logs screen. Please refer to the image below.

1. Archive Numbering: Specify the way the archive numbering should be performed.
   a. Rolling– Rolling style numbering where the most recent file is always numbered 0. Like if there are 4 files, the recently added file will have the number 0.
   b. Date– Date style numbering. The previous period’s date and time will be imprinted on all archives. Sequence style numbering, where the most recent file has the highest numbering. Like if there are 4 files, the recently added file will have the number 5.
   c. Date and Sequence– Archives will be stamped with prior period date and time and the most recent has the highest numbering. (In combination with the date)

2. Archive Period: This drop down is used to select the period to archive the files. We can choose not to archive the files or choose to archive on a daily, monthly, or yearly basis.
None– Choosing this option will not archive any files.
Daily- Choosing this option will archive the files daily.
Monthly– Choosing this option will archive the files monthly.
Yearly– Choosing this option will archive the files yearly.

3. Concurrent writes: Gets or sets a value indicating if many processes running on the same host are writing to the log file simultaneously. For example if we have more than
one process running in a single system, keeping this option to true will write the log file of all the process simultaneously.

4. File size: The file size is the size of the file that we set in the log settings of the runner. Any file which crosses the size limit mentioned here is automatically archived.

5. Maximum number of files: This shows the count for the files to be archived. When we choose a number from the drop down, for example if we choose 5, once the archived
folder reaches more than the number of files specified; the oldest file will be automatically deleted.

Auto Logon

The “Auto Logon” feature in RobilityRunner is designed to enhance automation efficiency by enabling a robot to automatically log in to a Windows system when it has been signed out or locked. This feature plays a critical role in scenarios where automation needs to function independently of human intervention, such as in unattended automation processes.

In environments where multiple robots share a single system or when systems are configured to log off users after a period of inactivity, the Auto Logon feature ensures that the robot can quickly regain access and resume its operations without manual input. Additionally, this functionality is particularly valuable after system restarts, where the login screen would otherwise prevent the robot from continuing its tasks.

Pre-requisites

1. The workflow execution will only commence once the “Auto Logon” feature has successfully unlocked the machine.
2. Remote Desktop Protocol (RDP) must be enabled on the machine for the robot to connect remotely. Enabling RDP allows users or robots to access the system from another machine, making it crucial for remote automation scenarios.

3. The username associated with the machine connection must be part of a user group (such as the “Remote Desktop Users” group) that has the necessary permissions to use RDP. Without this, even if RDP is enabled, the robot will not be able to auto log in remotely.
4. Robility Runner supports multi-user auto logon on a single machine; however, it allows only one active session per user at a time. If a VM or machine is configured with multiple sessions for the same user, auto logon or auto unlock will not function.

Points to note

1. The Resolution settings will apply exclusively to “Unattended and High-density Runner.”
2. This option is not supported for Attended robots.
3. After configuring the settings and initiating the Run process, if the resource is at logged off state, the changes will be reflected upon auto-login functionality.

4. If the machine is already in at unlocked state, initiating the robot won’t execute the specified resolution changes.
5. The specified resolution changes will be executed only when an auto-login functionality is applied or when the manual unlock action is performed in the machine. Click here to refer the Resolution Settings.
6. The user session must be active while executing the bot.  

Limitations

1. If the credentials provided are incorrect, the Auto Logon process will continue attempting to log in until manual intervention is required to unlock the virtual machine with the correct credentials.
2. The Auto Logon feature is not supported with the Attended robot license type.

How to set up the robot with credentials? 

1. Navigate to the Robility Manager.
2. Select the “Resources” menu to add the machine that will be used for provisioning and executing the workflow.
3. Select the type of license you need: either “Unattended” or “MachineTemplate” robot.
4. Next, go to the “Projects” menu and select the project to which you want to provision the machine for the workflow.

5. Go to the “Automation Ops” menu, click on the “Robot” tab, and then select “Add” to provision the machine.
6. Select the same license type that you chose for the machine.

7. Choose the “Resource Name” you added, where the workflow will be executed.
8. Select the desired solution for execution.
9. Enter the “Username and Password” for the machine to log in via RobilityRunner.
10. Click on the save button. Now, the license key will be created/ available for the runner connection.

How does it differ from normal start vs auto log on start?

When the system is already unlocked, the Runner will not perform the “Auto-logon” functionality and will proceed to initiate the workflow to start the process. Below is a sample log file:

Auto Log on:

The bot will check whether the machine is in locked state, and then proceeds to unlock the machine with the user credentials provided. In the below log file, the success message will be printed.

Save

Saving the workflows

There are always multiple ways to simplify the automation process, so we offer three options to save the workflow. Saving the workflow helps users avoid losing their automation progress.

1. Saving the workflow via the “Save” button: In the Designer’s “Home Menu” under the solution section, you will find an option labeled “Save.” Click on it to save the workflow. 
    a. If you have multiple workflows open and have made changes to all of them, the “Save” button also offers an option to save all workflows at once.

2. Saving the workflow using the save icon: At the top of the Designer’s menu bar, the first icon represents the “Save” functionality. Click on this icon to save the workflow.

Switching between tenants

Creation of Tenant’s Solution Folder

When the user activates the designer for a specific tenant, a new folder will be created in the following path, named with the tenant’s name:

“C:\Users\Username\Documents\Robility”

By default, all users activating the Designer will have a folder named “Robility” created in the above path. This path contains all the solutions and templates created using the Designer. Below is a list of items that will be available:

1. SolutionName.json: This file is automatically generated for each “.xaml” file marked as the “Main” workflow during the solution creation process. It contains metadata about the entire solution, including dependencies, solution settings, and package versions. It helps Robility Designer manage the solution’s configuration and ensure compatibility across different environment.

2. Workflowname.Xaml: This is also an automatically generated file created as the “Main” workflow during the solution creation process. It acts as the starting point for the entire automation solution. When you create a new solution, Robility Designer sets up this file with some basic configurations and structure to help you get started quickly.

Folder Creation Based on the “Tenant” Name

Robility Designer creates a folder in the location path where the solutions are stored. This folder is created based on the “Tenant” name associated with the designer activation. Refer to the image below, where the folder is created based on the tenant’s name within the location path. 

Example Folder Structure

Here’s an example of how the folder structure might look for a tenant:

Tenant Switch

When the user has access to multiple tenants and switches from one tenant’s solution to another, a prompt will appear on the screen. If the user opts to select “Yes”, the solution will be moved from one tenant to another. If there is already another solution with the same name, it will prompt the user to overwrite it.

Note: The solution folder will be completely moved from the previous tenant folder.

CheckAppState

CheckAppState

This activity helps the user to check the state of a desktop application by verifying the specified element in it. It enables automation processes based on the availability or disappearance of a particular element on the application, enhancing the control and flexibility of your automation workflows.

Properties

INPUT

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “300” milliseconds. When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “200” milliseconds. When the option is left blank, the delay will not be considered.

ExecuteBy:Gets auto filled once the “Active Application” is selected. This contains the set of attributes for the specific spied element. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in the “String” datatype.

WaitFor: Indicates to choose the event of the action to be performed.
Element to appear: It will wait for the detected element to appear in the UI on the webpage until the wait time provided.
Element to vanish: It will wait for the detected element to vanish from the UI on the webpage until the wait time provided.

WaitTime: It helps the user to add a delay for activity execution, either to wait for the element to appear or to disappear. The format of the delay here is milliseconds. The property provides 5,10,15,30 milliseconds in the drop-down. You can also provide the time in milliseconds.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Version: It specifies the version of the web automation feature in use.

Represents mandatory fields to execute the workflow.

Use Case

Let’s start with the example provided in the “Click” activity. (Click here to refer to the activity). In this example, we are automating the “Calculator” application. In the following scenario, I will check whether the application is accessible and available for automation.

 Steps to build the bot

1. Create a new solution or open an existing solution.
2. Install the latest feature of DesktopAutomation from the Manage features.
3. Drag and drop the “CheckAppState” activity to the workflow and set it as start node.
4. Double click on the activity to choose the element.
a. Here I have already launched the Calculator application.
b. Click on the “Select Element” option to detect the application.
c. Navigating to the application and detecting over the application.
d. Now, here I am not considering other attributes and going forward with default selected attributes.

e. Click on “Save” button, the attributes will be auto filled in the properties.
5. Now, select the “WaitFor” property as “Element to appear” since we are verifying the availability of the application. And I am choosing “WaitTime” as “10”. 
6. Now, if the calculator application is on the screen, the bot will continue to perform the next steps provided in the “Click” activity.
7. Next, In the “Target appear” we are adding the “WriteLog” activity to write a message.
a. In the “InputString” , provide the input as “Application is launched successfully!”.
b. Now, choose the log level as “Info” from the drop- down.
8. Here, in the “Target does not appear” area, I am adding the same “Writelog” activity to write the failure message. 
9. Now, save and execute the workflow.  

FormBuilder

Form builder in Robility enables automation where human intervention is necessary during automation. It facilitates seamless interaction between humans and robots, ensuring that manual inputs, approvals, or decision-making steps are efficiently integrated into the automation process.

This feature is particularly beneficial in attended automation, where bots and users work together in real time to complete tasks, improving accuracy, efficiency, and overall workflow collaboration.

Key Features

  1. Design and customize data-driven forms effortlessly while maintaining a professional look.
  2. Forms integrate smoothly into automation workflows, enabling efficient data input, validation, and processing.
  3. Create intuitive forms that enhance user interaction and improve workflow usability.
  4. Adapt form designs to match branding and specific process requirements for a consistent experience.

Role of Form Builder

Form Builder helps humans and robots work together efficiently in automation. Here are keyways it is used:

1. Data Input: Robots use Form Builder to collect user input and process it in web or desktop applications. For example, users enter data in a form, and the robot updates it in a system.
2. Notifications: Forms display information gathered by robots from users or external sources like websites and applications, ensuring accurate data integration.
3. Exception Handling: When automation encounters exceptions or unexpected situations, Form Builder allows users to provide input, helping the process adjust dynamically.
4. Process Monitoring and Reporting: Form Builder tracks automation progress and generates reports with key insights on performance and outcomes.

Release Notes

v.1.2.6

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.1.5

This release contains only enhancement.

Enhancement

The Form Builder Navigation Bar has been placed on top of the screen.

Release date

Overview

This section provides an overview of the Form Builder and its key functionalities.

Launching the Form Builder

1. Drag and drop the Form Invoker activity into the workflow.
2. Double-click the activity and select the Open Form Designer button.
3. The Form Builder page will launch on the screen.

Main Window

The main window consists of:

1. Menu Bar (Top) – Provides options for form management.
2. Tool Window (Left) – Contains controls for building forms.
3. Property Window (Right) – Displays properties of the selected form or controls.
4. Default Design Form (“General”) – The initial form template.

Form Menu Options

1. New Form – Click Add Form, enter the Form Name and Title, and select Add to create a new form.
2. Save – Saves the form, including any added controls or modifications.
3. Preview – Displays a preview of the selected form before integrating it into the activity.

Edit Menu Options

1. Clear – Removes all controls from the selected form.
2. Delete – Deletes the selected control or the entire form.

Property Window

Displays properties for the default form and any controls added to it.

Tool Window

Provides 15 different control options for building forms.

Sample Form

Below is a sample form created using various available controls.

Variable Creation

In the Form Builder, variables are used to store and retrieve values from specific controls within a form. Assigning a variable to a control ensures that data entered by users can be accessed and utilized within the automation workflow.

Steps to Assign a Variable

1. Open the Form Builder and choose the control (e.g., text box, dropdown, checkbox) to which you want to assign a variable.
2. Navigate to the “Variable Name” property on the right-hand side.
3. Locate the “Variable Name” property of the selected control and click on the three dots to open the Expression Editor.
4. Define the Variable in the Expression Editor
5. The Expression Editor provides two ways to assign a variable:

Creating a New Variable:

1. Enter a variable name (e.g., “UserInput”) in the editor.
2. Press CTRL + Q to declare the variable within the workflow.

Using an Existing Variable:

1. If the variable has already been defined in the workflow, simply enter its name in the editor.
2. The form control will be linked to this variable, allowing data exchange between the form and the automation.

FormInvoker

This activity is used to invoke the form that has been created with the Form builder tools to integrate it into the workflow.

Properties

INPUT

FormName: *Choose the form name from the drop-down which needs to be integrated into the workflow.

WindowAction: *Choose the window action from the drop-down as,

  1. Show Dialog – Launches the form and automatically closes it upon human approval.
  2. Show – Opens the form while allowing the workflow to continue executing subsequent actions without closing the form.
  3. Close – Closes the form if it was opened using the Show option.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Form builder feature in use.

* Represents the Mandatory fields to execute the workflow.

Tools

The Tool Window in the Form Builder provides a comprehensive set of 15 controls, each designed to enhance form creation and customization. These controls empower users to build forms tailored to their specific automation needs, offering flexibility and precision. Below is the list of controls available in the Tool Window, enabling seamless integration and efficient data handling within automation workflows.

Button

The button control is used to trigger actions such as OK, Cancel, or Clear, based on the specified configuration.

Properties

Appearance

BGColor: Choose the background color from the color wheel to be displayed for the timer box. 

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle: Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down. 

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

TabIndex: Specifies the position to which the cursor has to move when the tab on the keyboard is used. 

Type: This is auto populated once the button control is selected.

INPUTS

ButtonJson: This option allows viewing the button’s output in JSON format whenever it is selected by the user during automation.

ControlName: Default name given to the control used.

DisplayText: Specifies the text on the button which can be customized. 

EventType: Specifies the action the bot has to perform when the button is clicked. 

  • Ok
  • Cancel
  • Clear
  • None

FilePath: Specify the file path of an image if required to be displayed on the button. 

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction.

Stretch:

TextAlignment: Choose to align the text to the left, center or right. 

VariableName:  Declare a variable here to return/fetch the value of the button. Click here to know more. 

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up. 

SIZE (px)

Height: You can increase or decrease the height of the box. 

Width: You can increase or decrease the width of the box. 

Border

The border control is used to add a border to a picture box, table, or form.

Properties

Appearance

BGColor: Choose the background color to be displayed inside the box. 

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

BorderBrush: Specify the color of the border. 

CornerRadius: Specify how sharp the corner should be. By default, it is 0, 0, 0, 0. If the corners have to be blunt increase the number accordingly. 

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

TabIndex: Specifies the position to which the cursor has to move when the tab on the keyboard is used.

Type: This is auto populated once the border control is selected.

INPUTS

ControlName: Default name given to the control used.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side. This is a mandatory field to execute the workflow

Top: Increasing the count will bring the control down and decreasing the count will move the control up. This is a mandatory field to execute the workflow

SIZE (px)

Height: You can increase or decrease the height of the box. This is a mandatory field to execute the workflow

Width:  You can increase or decrease the width of the box. This is a mandatory field to execute the workflow

Checkbox

Checkboxes are used when multiple options are available, allowing the user to select any number of choices, including none, one, or several.

Properties

Appearance

BGColor: Choose the background color to be displayed inside the box. 

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom). 

FONT

FontColor: Specify the colour of the font to be used outside the box. 

FontName: Specify the font style to be used outside the box.

FontSize: Specify the font size to be used outside the box. 

FontStyle: Choose the style from the drop down to normal, Italic or oblique. 

FontWeight: Choose the font weight, to be light, normal or thick. 

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

TabIndex: Specifies the position to which the cursor has to move when the tab on the keyboard is used. 

Type: This is auto populated once the checkbox control is selected.

INPUTS

ControlName: Default name given to the control used.

DisplayText: Specifies the text related to the checkbox which can be customized. 

Ischeck: Check this box if the box has to be checked by default. 

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction

VariableName: Declare a variable here to return the value of the checkbox. 

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side. 

Top: Increasing the count will bring the control down and decreasing the count will move the control up. 

GIF

GIFs are used to insert and display animated images within the form.

Properties

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into

Type: This is auto populated once the checkbox control is selected.

INPUTS

ControlName: Default name given to the control used.

FilePath: Specify the file path in which the existing GIF is stored. 

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the GIF will still be displayed, but user interaction will not be possible.

Stretch: Defines how the image has to be displayed.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side. 

Top: Increasing the count will bring the control down and decreasing the count will move the control up. 

SIZE(PX)

Height: Specify the height of the Gif screen. 

Width: Specify the width of the Gif Screen. 

Line

Lines are used to separate, organize, highlight, or structure the page.

Properties

Appearance

Stroke: Specify the color of the line.

StrokeThickness(px): Specify the thickness of the stroke. Increase or decrease the number for the same. 

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

Type: This is auto populated once the Line control is selected.

INPUTS

ControlName: Default name given to the control used.

POSITION (px)

Alignment : Choose from the drop down for the line to be horizontal or vertical. 

Length: Specify the length of the line required. 

Location: Specify where exactly the line has to be placed. 

Startpoint: Specify from where the line has to start.

Textbox

Text box helps the user to collect user input or display text. This control is primarily used for editable text.

Properties

Appearance

BGColor: Choose the background color to be displayed inside the button. This is not a mandatory field to execute the workflow

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom). This is a mandatory field to execute the workflow

FONT

FontColor: Specify the colour of the font to be used inside the box. This is a mandatory field to execute the workflow.

FontName: Specify the font style to be used inside the box. This is a mandatory field to execute the workflow

FontSize: Specify the font size to be used inside the box This is a mandatory field to execute the workflow

FontStyle: Choose the style from the drop down to normal, Italic or oblique.

FontWeight: Choose the font weight,to be light, normal or thick.

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

MaxLength: Set the maximum number of characters that can be entered in the textbox.

TabIndex: Specifies the position to which the cursor has to move when the tab on the keyboard is used.

Type: This is auto populated once the checkbox control is selected.

INPUTS

ControlName: Default name given to the control used.

Hint: Editable text inside the box which gives a hint of what has to entered into the box.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the GIF will still be displayed, but user interaction will not be possible.

IsMandatory: Check this box if the details to be entered by the user is mandatory. This is denoted by an asterisk sign on top.

Text: This option allows a preset text to appear in the box during automation.

TextWrapping: Specifies whether the entered text should wrap. Choose an option from the drop-down:

No Wrap – Text stays on a single line.
Wrap with Overflow – Text wraps only if it exceeds the container.
Wrap – Text wraps to fit within the container.

ValueType: Specify if alphabets or alphanumeric or only numeric should be entered. Select the options from the drop-down, 
Alphanumeric 
Numeric 
Alphabets

VariableName: Declare a variable here to return the value of the textbox. Click here to learn more. 

LAYOUT

HorizontalContent: Specify how the given entry has to be taken.

VerticalContentSpecify how the given entry has to be taken.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE (px)

Height: Specify the height of the box

Width: Specify the Width of the box

Label

Custom labels help screen readers read text when a form field is focused.

Properties

Appearance

BGColor: Choose the background color to be displayed inside the label.

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

FONT

FontColor: Specify the colour of the font to be used inside the box.

FontName: Specify the font style to be used inside the box.

FontSize: Specify the font size to be used inside the box

FontStyle: Choose the style from the drop down to normal, Italic or oblique

FontWeight: Choose the font weight,to be light, normal or thick.

GENERAL PROPERTIES

FormName: Autofills to whichever form the control is dropped into.

Type: This is auto populated once the checkbox control is selected.

INPUTS

ControlName: Default name given to the control used.

DisplayText: Specify the text to be entered into the label box.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the label will still be displayed, but user interaction will not be possible.

LabelJson: This option displays the label’s output in JSON format when selected during automation.

VariableName: Declare a variable here to return the value of the labelbox. Click here to learn more. 

LAYOUT

HorizontalContentAlignement: Choose from the drop down on how the horizontal text should be aligned.

VerticalContentAlignement: Choose from the drop down on how the vertical text should be aligned.

POSITION (px)

Left: Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE (px)

AutoSize: Check this box, for the label box to get an automatic size based on the text entered.

Height: Specify the height of the box

Width: Specify the width of the box.

Timer

This control is used to add a timer to forms.

Properties

Appearance

BGColor: Choose the background color from the color wheel to be displayed for the timer box.

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

COLORCHANGE

Color: Choose the color to display for the next timer box when the time ends.

Time(Sec): Specify the time value in seconds to add in the form.

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the timer will still be displayed, but user interaction will not be possible.

LAYOUT

HorizontalContentAlignement: Choose the horizontal alignment from the drop-down for the content while displaying.

VerticalContentAlignement: Choose the vertical alignment from the drop-down for the content while displaying.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE (px)

AutoSize: Choose this option to automatically detect and fill the size of the control.

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

Radio Button

This control adds a radio button to forms, allowing users to select one option at a time. 

Properties

Appearance

BGColor: Choose the background color from the color wheel to be displayed for the timer box

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

TabIndex: Specifies the order in which elements receive focus when navigating with the Tab key. A lower value gets focus first.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

DisplayText: Specify the text to be entered into the label box.

GroupName: Assign a name to group related radio button options.

IsChecked: This option can be checked when you want to check that button in default.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the radio button will still be displayed, but user interaction will not be possible.

RadiobuttonJson: This option displays the selected radio button’s output in JSON format during automation.

VariableName: Declare a variable name for the radio button. Click here to learn more.

POSITION (px)

Left: Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

Picture Box

This control allows you to add a picture to the form, either for representation or to display an image.

Properties

Appearance

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

Eventtype: Choose the event that the picture needs to perform from the drop-down.

  1. OK
  2. Cancel
  3. Clear
  4. None

FilePath: Choose the file path from the local by selecting the three dots in the box.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the picture box will still be displayed, but user interaction will not be possible.

Stretch: Choose the stretch options from the drop-down to,

  1.  Fill the image according to the size of the box,
  2.  Align the image uniformly to the box,
  3.  Align the image uniformly to fill the box.

VariableName: Create a variable name to define the picture in the workflow. Click here to learn more. 

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE (px)

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

Password box

This control enables password input in forms, concealing the typed characters for security.

Properties

Appearance

BGColor: Choose the background color from the color wheel to be displayed for the timer box

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

TabIndex: Specifies the order in which elements receive focus when navigating with the Tab key. A lower value gets focus first.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

IsFocusable: When enabled, the button remains visible on the screen and is ready for user interaction. If disabled, the password box will still be displayed, but user interaction will not be possible.

PasswordChar: Specify the password characters that needs to be represented during the runtime. The default will be bullet.

LAYOUT

HorizontalContentAlignment: Choose the horizontal alignment from the drop-down for the content while displaying.

VerticalContentAlignment: Choose the vertical alignment from the drop-down for the content while displaying.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE(PX)

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

Group box

This control can be used to group related controls (such as option buttons, check boxes, or closely related contents) into one visual unit.

Group boxes are rectangular objects with optional labels. Use a group box to visually organize related items on a form. For example, in a customer order application, group the name, address, and account number of a customer. Or in an order form, group a list of available items.

Properties

Apperance

BGColor: Choose the background color from the color wheel to be displayed for the timer box

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

DisplayText: Specify the text here to display in the form.

POSITION (px)

Left: Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE(PX)

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

Date picker

This control allows the users to enter dates from the calendar pop-up.

Properties

Appearance

BGColor: Choose the background color from the color wheel to be displayed for the timer box

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

DATE

DefaultValue: Specify the default value either from drop-down,
Variable – You need to create a variable here to assign in the workflow.
Datepicker – You can select this option to select the date from the calendar.

MinimumValue: Specify the minimum value either from drop-down,
Variable – You need to create a variable here to assign in the workflow.
Datepicker – You can select this option to select the date from the calendar.

MaximumValue: Specify the maximum value either from drop-down,
Variable – You need to create a variable here to assign in the workflow.
Datepicker – You can select this option to select the date from the calendar.

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SIZE(PX)

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

Data grid

This control is used to display data in a series of rows and columns. DataGrid is used to display data in scrollable grid. It requires data source to populate data in the grid.

Properties

Appearance

AltRowColor: You can choose the color from the color wheel to set colors in alternative rows.

BGColor: Choose the background color from the color wheel to be displayed for the timer box

BorderThickness(px): Specify the border thickness value in pixels. The order of the border will be (left, top, right, bottom).

ColHeaderColor: You can set the colors for column headers from the color wheel.

CanUserReplace

Columns: You can set the columns resizable for the user here from the drop -down. Select either yes or no.

Rows: You can set the rows resizable for the user here from the drop -down. Select either yes or no

COLUMNS

HeaderList: If you are entering data inputs directly, mention the header list.

Controls

List: If you are entering data inputs directly, mention the list items.

FONT

FontColor: Choose the font color from the color wheel for the text/ value to display.

FontName: You can choose the font name from the drop-down for the text/ value to display.

FontSize: Specify the font size for the text/value to display.

FontStyle:Choose the font style from the drop – down,

  1.  Normal
  2.  Italic
  3.  Oblique

FontWeight: The thickness/ weight of the font can be selected from the drop-down.

GENERAL PROPERTIES

FormName: The name of the form will be displayed here.

Type: The type of the control will be displayed here.

INPUTS

ControlName: It displays the default name.

IsReadable: You can set the table to only read mode here from the drop-down.

VariableName: A default variable name will be available here; you can customize it accordingly.

POSITION (px)

Left : Increasing the count will move the control to the right side. Decreasing the count will move it to the Left side.

Top: Increasing the count will bring the control down and decreasing the count will move the control up.

SCROLL BAR

Horizontal: The scroll bar will be automatically created horizontally if it is set as Auto. The other options are , Auto, Disabled, Hidden, Visible.

Vertical: The scroll bar will be automatically created vertically if it is set as Auto. The other options are , Auto, Disabled, Hidden, Visible.

SIZE(PX)

Height: You can increase or decrease the height of the box.

Width: You can increase or decrease the width of the box.

GetModelInfo

This activity is used to get the model info from the train model activity. The Get model info activity gives us the model ID which is used to analyze custom forms.

Properties

INPUT

ModelLocationUrl:* Specify the model location URL which was derived in the output box of the train model activity.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step.
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureAIFormRecogniser feature in use.

OUTPUT

OutputJson: This is not a mandatory field. However, to see the model info declare a variable here to see the output in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not mandatory field.

* Represents mandatory fields to execute the workflow.

Gmail Automation

Introduction

Gmail automation in Robility involves bots to perform various tasks within Gmail accounts automatically. These tasks can include managing incoming and outgoing emails, organizing emails into folders, sending automated responses, monitoring for specific keywords or attachments, and generating reports based on email activity.

Benefits

1. Efficiency: Gmail automation streamlines repetitive tasks, such as sorting emails, sending responses, and generating reports, leading to increased efficiency and time savings.
2. Accuracy: Automation reduces the risk of human errors in email management, ensuring that emails are processed accurately and consistently.
3. Productivity: By automating routine email tasks, employees can focus on higher-value activities, leading to improved productivity and better use of resources.
4. Scalability: Automation allows organizations to handle large volumes of emails efficiently, scaling operations without significant increases in manpower.
5. Timeliness: Automated processes can ensure that emails are processed and responded to promptly, improving customer satisfaction and communication effectiveness.

UseCase

1. Email Filtering and Organization: Automatically categorize incoming emails into folders based on sender, subject, or keywords to streamline inbox management.
2. Automated Responses: Generate and send automated responses to common inquiries or requests, such as order confirmations or support ticket acknowledgments.
3. Email Monitoring and Escalation: Monitor urgent emails or specific keywords and escalate them to the appropriate team members for immediate attention.
4. Data Extraction: Extract data from incoming emails, such as contact information or order details, and input this data into CRM systems or databases.
5. Reporting and Analytics: Generate reports on email activity, including metrics like response times, email volume, and customer feedback trends, for analysis and decision-making.

Release Notes

v.1.1.2

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.1.0

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.9

We’re releasing version v1.0.9 with a key production fix to improve Gmail integration.

Bug Fix

Delegation Denied Exception: There was a problem with Gmail authentication via the OAuth flow. Specifically, the logic to dynamically retrieve the account address for token validation was missing. As a result, when the first Gmail account was used, switching to another account could take up to an hour due to token expiration delays.

Now, this issue has now been addressed and released the updated version.

Send Mail: The comma separator in the “To Address” and “CC Address” properties has been updated to support sending emails to multiple Gmail addresses simultaneously. 

Enhancement

Introduced the ‘IsBodyHtml’ option to fix the issue where <br> tags were not rendering correctly. This allows users to specify whether the email body is in HTML format.

Limitation

Downgrading to a lower version of Gmail automation from this release may result in missing activities, as the new property ‘IsBodyHtml’ has been introduced in the current version.

GmailScope

This activity serves as an authentication package for all the activities placed within this scope.

Properties

INPUT

AccountName: *This parameter indicates the “MailID” of the account for which the automation needs to be performed. It accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in “String” datatype.

KeyPath: *This parameter indicates the need to provide the path of the “Client Secret key” provided during registration. It accepts values in “String” datatype. You can either hardcode the values in “String” format or can enter the values in “String” datatype. (Refer the below documentation).

MISC

BodyGets auto filled once the “Activity” is dropped into the body.

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

Represents mandatory fields to execute the workflow.

How to get keypath?

Step 1: Login to Google Developer Console with your registered Gmail account details “https://console.developers.google.com/”.
Step 2: Create a Project if you haven’t created before and specify a valid Project Name and Organization for your reference.
Step 3: Search for “Gmail API” in the “Search for APIs and Services” tab.

Step 4: Select Gmail API from the marketplace list and it will be redirected to the Gmail API service page. Click on Enable API button and your Gmail API will be enabled after this
(You can disable this API anytime if you want to discontinue with this process if required).
Step 5: Click Credentials tab from the left side panel and click “CONFIGURE CONSENT SCREEN” button.

Step 6: Select External and click Create.

Step 8: Back to the API screen, Click on Create Credentials –> OAuth Client ID. 

Step 9: Specify Application Type as Desktop App and specify name of the App (you can use any desired name for your app, which will integrate with your Gmail account later).

Step 10: Click “Save” and OAuth Client will be created with Client API and Client Secret Keys.

Step 11: You can download it as a JSON file and store it in your local folder. 

Step 12: Provide the downloaded JSON file path in Gmail Automation Scope activity along with your Gmail Account. User needs to do one-time authentication while running the Read and Send activities first time.

Authentication of Gmail Account

GetMailDetails

This activity helps the user extract mail details from the specified Gmail account. Ensure it is used within the ‘GmailScope’.

Properties

INPUT

MailMessage: * Indicates to provide the “MailItem” variable (which will be declared in the “Read Mail” activity) to extract the emails from the provided “list”.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Body: This parameter enables to view the “Body” of the mail as an output of the activity in the “String” datatype, extracted from the email.

Date: This parameter enables to view the “Date” as an output of the activity in the “String” datatype, extracted from the email.

FromAddress: This feature enables you to view the “FromAddress” as an output of the activity in the “String” datatype, extracted from the email.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

MailSubject: It helps to view the output of the activity as “MailSubject” extracted from the mails. This field returns the values in the “String” datatype.
ToAddress: It helps to view the output of the activity as “ToAddress” extracted from the mails. This field returns the values in the “String” datatype.

Represents mandatory fields to execute the workflow. 

Prerequisites

1. The Gmail automation allows the following actions:
a. Extracting emails
b. Sending emails
c. Replying to emails
d. Moving emails
e. Reading emails
f. Saving emails

2. The bot must authenticate the specified Gmail account for secure access.
3. The KeyPath within the Gmail scope is required to grant the bot appropriate permissions.
4. The KeyPath must be provided in JSON format, containing the necessary credentials and configuration for authentication.
5. Proper setup of these prerequisites ensures smooth interaction with the Gmail account and allows the bot to perform the required actions effective

ReadMail

This activity helps the user to read the mails from the Gmail account. Ensure it is used within the ‘GmailScope’. 

Properties

INPUT

Filter: Specify the filter values that need to be applied while reading emails from the account name. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. It is an optional field and reads all emails if no value is provided.

SubFolderName: * Specify the folder name from which the emails need to be accessed and read. You can also provide the “SubFolderName” if you need to read emails from a subfolder.

IncludeSpamTrash: This parameter indicates to include spam and trash mails while reading emails from the specified account. Specify the boolean value as “True” or “False”.
True: Enables to include the spam and trash mails.
False:
The option will not be considered.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

MarkAsUnread: This property indicates whether read emails should be marked as unread after the automation is completed. Specify “True” or “False” to enable or disable the marking of emails as unread during the mail reading process.
True: Enables marking emails as unread after they are read.
False: Disables marking emails as unread after they are read.
None: If this option is left blank, the property will not take effect, and by default, emails will be read without marking as unread.

NoOfMails: * Enter the number of emails that need to be read within the specified account name. This parameter accepts values in “Integer” datatype. You can either hardcode the values in “Integer” datatype or can enter the values in “Integer”. 

Unread: Specify whether to read emails that have not been read yet in the mailbox. Specify either “True” or “False” in the field:
True – Enables reading only the “Unread” mails from the mailbox.
False – Disables the condition and reads emails according to the sorting order provided, irrespective of whether they are “Read” or “Unread” mails.
None – When left out blank, the activity will perform with “False” action.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

ListIt helps to store the mails in the list format that has been read from the mailbox. (Refer to the steps in creating a workflow.)
Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

Here’s an example of how “Read” activity works – 

In the following example, I am going to read the mail from the specified address. In this case, I am using my personal Gmail account to read from the specific mail address. 

Example

1. Create a new solution or open an existing workflow.
2. Install the latest version of “GmailAutomation” feature from Manage features.
3. Drag and drop the “Gmail scope” activity from the Gmail automation.
a. Navigating to the properties to provide the “mail account name” to authenticate and access the mailbox.
b. Next moving to the “keypath” and here i am providing my “Json” file path in “String” datatype. Click here to know how to get the keypath.
4. Now, placing the “Read mail” activity inside the body of the Gmail scope activity.
a. It helps to read the mails from the specified account.
b. Here in the “Filter” option, I am providing the mail address from which the mails need to be processed and read.
c. Next, as my specified mail address is available in the “Inbox” folder, I am providing the “FolderName” property value as “Inbox”.
d. Specifying the number of mails to be read as “5”.
e. Now, navigating to the “List” in the output section of the properties to declare a variable to view the output. 
     i. Method 1 – Click on the “List” property within the “ReadMail” activity and enter the variable name. In this case, we are using “Read_ml.” Then, press “Ctrl+Q,” which is a shortcut key to create a variable.
    ii. Method 2 – Click on the Variables pane and enter the name “Read_ml.” Then, in the “Variable Types” column, sele ct “Browse for Types” from the dropdown menu.
   iii. The .Net window for data types will appear on the screen, enter the type of name as “System.Collections.Generic.List” and choose “Robility.GmailAutomation.GmailMessage” then click on “OK” button.
5. Now, execute the workflow.

SendMail

This activity helps the user send an email from their Gmail address to another Gmail address. Users can compose emails, add recipients’ email addresses, specify the subject and body of the email, and send the message directly from their Gmail account. Ensure it is used within the ‘GmailScope’.

Properties

INPUT

AttachmentList: Indicate the list of attachments to include along with the mail. It accepts values in the form of a “list” datatype. When left blank, it will not be considered.

CCAddress: Provide the “CC address” of the recipients to send the email. This allows sending email to additional recipients for informational purposes. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

FromAddress:* Specify the “From address,” which is the sender’s email address used to send the email. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailBody: This parameter specifies the “Mail Body” that should be sent as an email. It accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

Subject: Specify the “Subject” of the email to be sent along with the mails. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

ToAddress: It specifies the “To address” of the recipient to send the mail. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
When left blank, it will not be considered.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

MoveMail

This activity allows users to organize emails by moving them to specific folders in their Gmail account. Users can select one or multiple emails and specify a destination folder for them. It must be used within the “GmailScope” activity.

Properties

INPUT

AddLabel: This parameter indicates the “Foldername” where in Gmail it’s specified as “Label” to which the mail needs to be moved. It accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.
MailMessage: * Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”
RemoveLabel: Indicates to provide the “FolderName” of the originated place from where the mail exists. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

ReplyMail

This activity helps the user to respond to specific emails received in their Gmail account. Users can compose a reply message directly within the email thread, addressing the sender’s message and providing their response. Ensure it is used within the ‘GmailScope’. 

Properties

INPUT

MailMessage:Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”
ReplyBody: This parameter specifies the “Reply Body” that should be sent as an email.
This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.
SkipOnError
Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

SaveAttachments

This activity helps the user to download and save attachments from their Gmail emails to their local storage. Users can select emails with attachment and specify the destination folder for storage. Ensure it is used within the “GmailScope” activity.

Properties

INPUT

FolderPath: Specify the “Folder path” to where the “Mails” are required to be saved from the list. This parameter accepts values in “String” datatype. You can either hardcode the values in “String” datatype or can enter the values in “String”. When left blank, it will not be considered.

MailMessage:Specify the “MailMessage” variable (which will be declared in the “Read Mail” activity) to reply to the emails from the provided “list.”

MISC

DisplayNameDisplays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version
It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.
Represents mandatory fields to execute the workflow.

AWS

AmazonRekognition

Introduction

Amazon Rekognition is a powerful cloud-based service that provides pre-trained and customizable computer vision capabilities. It enables businesses to extract information, detect objects, analyze images and videos, and gain valuable insights using advanced machine learning algorithms.

Benefits

1. Facial Recognition: Rekognition allows comparing faces in source and target images, enabling applications such as identity verification, access control, and personalized experiences.

2. Facial Analysis: Detect key facial features like emotions, age, gender, and facial expressions in input images, providing valuable insights for market research, customer analysis, and sentiment analysis.

3. Object Detection: Identify and detect objects present in images, supporting inventory management, security monitoring, and visual search applications.

4. Content Moderation: Detect evocative and provocative content in images, enabling content moderation and compliance with community guidelines and regulations.

5. Text Extraction: Recognize and extract text within images, including graffiti, license plates, clothing labels, product packaging, and more, enhancing data extraction and processing capabilities.

Use Cases

1. Retail and E-Commerce: Enhance product search and recommendation systems, detect counterfeit products, and monitor brand presence and compliance.

2. Media and Entertainment: Enable personalized content delivery, automate metadata tagging, and analyze audience engagement and sentiment.

3. Security and Surveillance: Monitor public spaces, detect unauthorized access, and identify suspicious activities for enhanced security and safety.

4. Healthcare: Analyze medical images for diagnostics, patient monitoring, and healthcare analytics, improving patient care and treatment outcomes.

5. Automotive: Enable autonomous driving capabilities, detect road signs, pedestrians, and obstacles for enhanced safety and navigation.

6. Document Analysis: Extract and process data from documents, invoices, forms, and receipts for automation, compliance, and data validation.

Release Notes

v.1.0.4

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

 

AmazonScope

Amazon Scope activity will act as an authentication for all the activities in the package. It is a drop Zone where all other activities in the package will be dropped for them to function.

Properties

AUTHENTICATION

AccessKeyID:* Enter the AWS AccessKeyID provided at the time of registration.

RegionEndPoint:* An endpoint is the URL of the entry point for an AWS web service. This is generated at the time of registration.

SecretAccessKey:* Enter the Secret access key provided at the time of registration.

MISC

Body: This will be empty and auto populates once an activity is dropped into the scope.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AmazonRekognition feature in use.

OUTPUT

Text: It specifies the version of the Amazon Rekognition feature in use.

* Represents mandatory fields to execute the workflow.

Once the amazon scope is dropped in the flowchart and the details are entered, we can drop the required amazon activities within the scope to execute the same.

CompareFaces

This activity facilitates measuring the degree of possibility that faces in two images are of the same person. Here it uses a similarity score to verify if it is the same person by comparing it against a reference photo in real time.

Properties

AUTHENTICATION

Similaritythreshould:* Specifies the percentage of similarity threshold to be applied to the comparative images.

SourceImagepath:* Specify the path of the source image to be compared.

TargetImagePath:* Specify the path of the target image path to be compared to.

MISC

Body: This will be empty and auto populates once an activity is dropped into the scope.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the Regex Automation feature in use.

OUTPUT

Output: This is not a mandatory field. However, to see the output of the match percentage declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Mandatory fields to execute the workflow.

Once the amazon scope is dropped in the flowchart and the details are entered, we can drop the required amazon activities within the scope to execute the same.

FaceDetection

FaceDetection activity provides the Detect Faces operation that looks for key facial features such as eyes, nose,and mouth to detect faces in an input image. It will return the estimated age range for detected faces, gender confidence, gender value, beard value.

Properties

INPUT

GetAttributes: There are two options ALL and Default. Choose ALL to get the value of all the features.

ImagePath:* Choose the path of the image file which has to be processed.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AmazonRekognition feature in use

OUTPUT

Output: This is not a mandatory field. However, to see the output of the face detected declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

LabelDetection

This activity is used to detect labels in a particular image. A label in this context means the objects that are present in an image. This activity Generates description for all the labels in the specified image and categorize them along with confidence scores. 

Properties

INPUT

ImagePath:Specify the path of the image that has to processed to detect the labels.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AmazonRekognition feature in use.

OUTPUT

Output: Enter a variable here to see the result of the labels detatced in an output box.

Result: Declare a variable here to validate the activity. It accepts only Boolean value.

* Represents mandatory fields to execute the workflow.

SafeSearch

This activity helps us to detect evocative or provocative content, such as adult content, violent content,weapons, and visually disturbing content in image. Beyond flagging an image based on presence of unsafe content, Amazon Rekognition also returns a hierarchical list of labels with confidence scores, to filter images based on your requirements.

Properties

INPUT

ImagePath:* Specify the path of the image file that has to be processed.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AmazonRekognition feature in use

OUTPUT

Output: This is not a mandatory field. However, to see the confidence the scores, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Represents mandatory fields to execute the workflow.

TextDetection

This activity is used to easily locate and extract text within images, including text in images of natural scenes such as Graffiti on walls,road signs or license plates, text over objects, such as clothing, mugs, etc., and text on screen such as captions or news. When analyzing an image, Text in Image will return the detected text description, along with a confidence score, for each detected words and lines.

Properties

INPUT

ImagePath:* Specify the path of the image file that has to be processed.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AmazonRekognition feature in use

OUTPUT

Output: This is not a mandatory field. However, to see the text detection result, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value.

* Represents mandatory fields to execute the workflow.

Delete Container

This activity is used to delete an existing container in the Microsoft Azure Blob storage.

Properties

INPUT

ContainerName:* Specify the name of the container to be deleted.

MISC

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError:It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”. By default, it is set to “False.”
True: Continues the workflow to the next step
False: Stops the workflow and throws an error.

Version: It specifies the version of the AzureBlob feature in use

OUTPUT

Output: This is not a mandatory field. However, to see if the container has been deleted, declare a variable here.

Result: Declare a variable here to validate the activity. It accepts only Boolean value. This is not a mandatory field.

* Mandatory fields to execute the workflow.

Example

The following activity illustrates on how we can use the delete container activity from a list of containers stored in the Azure blob storage. Here we are going to delete the container “azuretest1” from the blob storage.

Steps to execute the bot

  1. Drag and drop an azure scope activity to the workflow.
  2. Enter the account name and account key.
  3. Drag and drop the delete container activity within the Azure scope.
  4. Click on the activity.
  5. Enter a name for the container to be deleted within double quotes. Here it is “Azuretest1.”
  6. Enter the declared variable in the output box of the output segment. Here it is Deleted.
  7. Drag and drop a writelog activity below the azure scope.
  8. Enter the above declared variable in the input string of the write log activity and add.ToString to it as the writelog accepts only string values. E.g., Deleted.ToString
  9. Enter the log level as “Info.”
  10. Execute the activity.

The bot executes the activity and deletes the specified container from the azure blob storage.

CognitiveServices

Introduction

Cognitive services encompass advanced capabilities such as Optical Character Recognition (OCR), Address Matching, and Image Enhancement. These services enable developers to integrate AI functionalities into their applications, facilitating tasks such as text extraction from images, address validation, and image quality enhancement without requiring extensive AI expertise.

UseCase

1. Receipt Processing: OCR can extract information from receipts, invoices, and bills, enabling automated expense tracking and financial management.
2. Text Recognition in Images: OCR services help in extracting text from images, such as signs, labels, and captions, for applications like augmented reality and image-based search.
3. Address Validation: Address matching services validate and standardize addresses entered by users, reducing errors in shipping and logistics applications.
4. Photo Editing: Image enhancement services enhance photos by adjusting brightness, contrast, and color balance, improving the visual quality of images for social media and digital marketing.

Benefits

1. Efficiency: Cognitive services like OCR automate tasks like text extraction, address validation, and image enhancement, saving time and effort.
2. Accuracy: These services ensure data accuracy by reducing errors in data entry, address validation, and image quality.
3. Enhanced User Experience: Users benefit from searchable text, accurate addresses, and visually appealing images, improving overall satisfaction.
4. Cost Savings and Innovation: By streamlining processes and improving quality, cognitive services lead to cost savings and enable the development of innovative applications.

Release Notes

v.1.0.4

This release includes enhancement to dependent DLLs and Bug fixes in the following areas:

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Bug Fix

Image Enhancement Activity:
Previously, users encountered the error: “Error on Image Snipping – Dynamic Image Capturing Activity Error on deleting file: Could not find a part of the path.”
This issue has now been resolved through a fix in the file path handling logic.

Released Date: 09/03/2026

v.1.0.2

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

AddressMatch

This activity enables users to compare two different addresses as input and provides the percentage of similarity.

Properties

INPUT

Address1: *This parameter indicates to provide the first address that needs to be compared. It accepts values in “String” datatype. You can either hardcode the values in “String” format or enter the variable in “String” datatype.

Address2: *This parameter indicates to provide the second address that needs to be compared. It accepts values in “String” datatype. You can either hardcode the values in “String” format or enter the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

MatchPercentage: This parameter helps to view the output of the activity, displaying the “percentage” of the match. It returns the values in a “Double” data type.

* Represents mandatory fields to execute the workflow.

Here’s an example of how the “AddressMatch” activity is used in the workflow.
In the following example, I have two different sample addresses and by using this activity, I am going to compare and retrieve the percentage of similarity.

Example

1. Create a new solution or open an existing solution.
2. Install the latest version of “CognitiveServices” feature from the “ManageFeature”.
3. Now, I am adding the “AddressMatch” activity from the “CognitiveServices” feature and setting it as start node.

a. Navigating to the “Address1” in the properties to provide the first address. Here I am entering the value as “Cecilia Chapman, 711-2880 Nulla St., Mankato Mississippi 96522”.
b. Now, moving to the “Address2” in the properties to provide the second address. Here I am providing the value as “Aaron Hawkins, 5587 Nunc. Avenue, Erie Rhode Island 24975.” 
4. Next, moving to the “MatchPercentage” in the output of the properties to declare a variable to view the output. 
5. Then, adding the “writelog” activity to view the output.
a. Enter the input string as “Output.ToString”.
b. The “.ToString” is advised to use along with any other data types other than string format. It converts any data type into string.
c. Choosing the log level as “Info”. 
6. Now, Execute the activity.

The bot executes the activity and gives the percentage of address match in the output box. Here the match percentage is 0 % as they were two different addresses.

OCR

The OCR (Optical Character Recognition) activity helps the user to recognize and extract the text from images.

Properties

EXISTING IMAGE

InputImage: *This parameter indicates the “input image” that has been provided either as a path or as bytes.
It accepts the values in “String” datatype. You can either hardcode the values in the “String” format or can enter the values in “String” datatype.

InputType: *Indicates the “type” of the input image that has been passed in the “InputImage” property. Select the option from the drop-down:
Path: Use this option to refer the location of the input image.
Bytes: Use this option to pass the input image in (binary data) “Bytes” format.
By default, the option will be set to “Path.

TakeExistingImage: Indicates to process the existing image that has been passed as input. Specify the “Boolean” value as “True” or “False.”
True: It continues to take the existing image.
False: This option will not be considered.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

INPUT

LimitCharacters: Indicates the characters that needs to be limited while extracting text from the image. Select the value from the drop-down:
None: If the option is left blank, the activity will, by default, will not consider any option to limit.
Number: Specifies that only numeric characters (0-9) should be extracted.
Alpha: Indicates that only alphabetic characters (A-Z, a-z) should be extracted, excluding numeric and special characters.
AlphaNumeric: Specifies that both alphabetic and numeric characters should be extracted, while excluding special characters.
SpecialCharacters: Indicates that only special characters (e.g., @, #, $, %) should be extracted, excluding alphabetic and numeric characters.
Small Letters: Specifies that only lowercase alphabetic characters (a-z) should be extracted, excluding uppercase letters, numeric, and special characters.
Capital Letters: Indicates that only uppercase alphabetic characters (A-Z) should be extracted, excluding lowercase letters, numeric, and special characters.
NumberSpecialCharacter: Specifies that both numeric characters and special characters should be extracted, excluding alphabetic characters.

UseWindowTitle: Check this box if you want to use the window title option.

WindowTitle: *This parameter specifies to choose the applications from the list of active applications to where the text needs to be inputted. It accepts values in “String” datatype. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT
Text: *This parameter helps to view the output of the activity as the text extracted from the provided image input. It returns the values in “String” datatype.

PROCESSED IMAGE

ProcessedImage: Indicates to provide the “Path” along with the name of the image to save the processed image. This parameter accepts values in “String” datatype. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype

REFINEMENT*

BgColour: Indicates the “Background” color of the image to process. Choose the option from drop-down:
White: It provides the processed image background as “White”.
Black: It provides the processed image background as “Black”.
By default, it will be chosen as “White”. This field gets auto filled from the RobilityOCR wizard.

ConsoleImage: Indicates to provide the processed image in a console or command-line during the execution. Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.
This field gets auto filled from the RobilityOCR wizard.

Language: Indicates to recognize and translate the text to opted language. Choose the option from drop-down:
English: Use this option to translate other language option to English.
Arabic: Use this option to translate other language options to Arabic.
By default, it will be chosen as “English”. This field gets auto filled from the RobilityOCR wizard.

ScaleImage: This parameter allows to adjust the size or dimensions of the input image. You can adjust the size in the “Image Property” option in the RobilityOCR wizard.
By default, it will be chosen as “small”. This field gets auto filled from the RobilityOCR wizard.
REGION*

Height: Indicates the height of the processed image. This field gets auto filled from the RobilityOCR wizard.

Width: Indicates the width of the processed image. This field gets auto filled from the RobilityOCR wizard.

X: Indicates the “X” position of the processed image. This field gets auto filled from the RobilityOCR wizard.

Y: Indicates the “Y” position of the processed image. This field gets auto filled from the RobilityOCR wizard.

* Represents mandatory fields to execute the workflow.

 

How to use Robility OCR Wizard

The RobilityOCR wizard appears only when we drag and drop the activity into the workflow. Follow the below steps to snip the image.
1. Drag and drop the activity into the workflow.
2. Another pop-up will appear on the screen indicating to choose the options as “Single OCR image” or “Browse an image”.
a. The “Single Text OCR” feature enables you to capture the entire image at once and configure its properties. You can choose this option when you want to use the image statically.
b. “Browsing an image” allows you to select an image from a specified path. You can choose this option when you need to dynamically change the image during execution.

3. Once you have chosen the option, the “RobilityOCR wizard” window will appear on the screen.
4. Customize the properties to refine the image, limit the characters and adjust the image size.
5. If you want to view the output of the modified image, choose “RUN OCR” option and the preview will be available in the “Preview” area.
6. Click on “Save” option when you have finished configuring the properties.

ImageEnhancement

This activity assists the user in enhancing the quality of an image used for processing.

Properties

IMAGE ATTRIBUTES

BackgroundCleanAndBold: This parameter enables to clean up the background and bold characters in the image. Specify the “Boolean” value as “True” or “False.”
True: Continue to clean and bold the background of the image.
False: The option will not be considered.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

EdgeEnhancement: This parameter enables to enhance the edge of the input image and characters. Specify the “Boolean” value as “True” or “False.”
True: Continue to enhance the image.
False: The option will not be considered to enhance the image.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

ResizeScale: Indicates to provide the “re-size” value of the image if needed. This parameter accepts value in “Double” datatype.
You can either hardcode the value in “Double” format or can enter the values in “Double” datatype.

Sharpening: This parameter enables to sharpen the quality of the provided input image. Specify the “Boolean” value as “True” or “False.”
True: Continue to sharpen the quality of the image.
False: The option will not be considered.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

INPUT

ImageInput: *This parameter indicates to provide the “Path” of the input image that needs to be processed. It accepts values in “String” datatype.
You can either hardcode the values in “String” format or can enter the values in “string” datatype.
InputType: *Indicates the “type” of the input image that has been passed in the “InputImage” property. Select the option from the drop-down:
Path: Use this option to refer the location of the input image.
Bytes: Use this option to pass the input image in (binary data) “Bytes” format.
By default, the option will be set to “Path”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False:
 Halt the workflow if it encounters any errors.
None:
 If the option is left blank, the activity will, by default, behave as if “False” were chosen.
Version: 
It indicates the version of the feature being used.

OUTPUT

ImageOutput: *It helps to view the output of the activity as the processed image in the specified path. This parameter returns the value in “String” datatype. (Refer the tips below).

OutputType: Indicates to provide the “type” of the output image that has been passed in the “InputImage” property. Select the option from the drop-down:
Path: Use this option to refer the location of the output image.
Bytes: Use this option to pass the output image in (binary data) “Bytes” format. By default, the option will be set to “Path”.

SNIPPED IMAGE INPUTS

Height: Indicates the height of the snipped image. This field gets auto filled from the RobilityOCR wizard.

OnScreen: This parameter allows to view and interact with the image directly on the screen. Specify the “Boolean” value as “True” or “False.”
True: Allows to view the image on the screen.
False: The option will not be considered.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

UseWindowTitle: Check this box to use the window title.

Width: Indicates the width of the snipped image. This field gets auto filled from the RobilityOCR wizard.

WindowTitle: This parameter specifies to choose the applications from the list of active applications to where the text needs to be inputted. This parameter accepts values in “String” datatype. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype.
X: Indicates the “X” position of the snipped image. This field gets auto filled from the RobilityOCR wizard.
Y: Indicates the “Y” position of the snipped image. This field gets auto filled from the RobilityOCR wizard.

* Represents mandatory fields to execute the workflow.

Here’s an example of how the activity is used in the workflow –

In the following example, I am going to use a sample image to enhance the quality.

Example

1. Create a new solution or open an existing workflow.
2. Drag and drop the image enhancement activity into the workflow and set it as start node.
3. Here I am navigating to the “ImageInput” in the properties section, to provide the path of the image.
4. Then, moving to the “Sharpening” in the properties section to enhance the image quality.
    a. Here I am specifying the value as “True”.
5. Now, moving to the “ImageOutput” property to provide the path of the image to store the output.
6. Next, moving to the “On-screen image” property specifying the value as true.
7. Now, Execute the workflow.

PythonScriptLoader

This activity helps the user in loading and executing Python scripts. It might encompass functionalities like specifying the script location, managing dependencies, handling script execution, and capturing the output or results.

Properties

INPUT

FileName: Indicates the name of the “Python file” that is being used. By default, it will be auto filled and will be disabled to edit the name.

MethodName:* Select the “MethodName” from the drop-down. This parameter indicates the name of the method in the script to be automated. You can either hardcode the values in the “String” format or can enter the values in the “String” datatype.

Parameters: * This parameter helps you to provide the “inputs” that are required to pass during the execution of the “Python script”. This field accepts collection of argument types.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Idicates that the activity has been unsuccessful due to an unexpected error being thrown.

Text: It returns the output of the activity as the text extracted from the Python Script. It returns the output in “String” datatype.

Represents mandatory fields to execute the workflow.

Let’s see how to download and use the reusable component from the MarketPlace:

How to download?

How to download listings in MarketPlace at Designer?

All the scripts and solutions added in the Marketplace will be available in the Designer, empowering users with a rich library of pre-built components. This library includes integrations that facilitate seamless connections to external services, as well as custom activities, allowing users to incorporate specialized functionalities into their automation workflows.

Follow the below steps to download and integrate the scripts:

1. Launch the designer.
2. Navigate to the “MarketPlace”.
3. Here chooses the specified template that is suitable for your solutions.
4. Click on it and a pop-up window will appear on the screen. Here I am choosing the “PDF” specified as “Reusable component”.
5. It displays the description of the chosen listing along with the versions available, listing type, created by, license file and URL.
6. Review the “Terms & Conditions” and then proceed to check the box.
7. Select the “Download” option to download it in your local system.
8. Now, easily integrate the script in your automations.

You can view the downloaded MarketPlace file in the following path “C:\Users\Username\Documents\Robility\Marketplace”.

Steps to integrate the listing in the solutions/templates:

Example

In the following example, I have downloaded the “PDF” listed as “Reusable component” to integrate into the solutions.

1. Open an existing template or create a new template.
2. Navigate to the toolbox section and scroll to the end of the features.
3. Here, you will find the scripts downloaded under the feature as “Reusable Component”.
4. Now, I have dragged and dropped the “PDF” which acts as the “Load Environment” activity. It also acts as scope for the list of scripts available in it.
5. Now, navigating to the “PythonPath” in the properties to provide the path of the “Python” application. Here I am providing the value in the variable as “Path”.
a. There are two steps to provide the variable in the property.
b. Step 1: Click on the variable pane, enter your preferred name (here, I’m using “Path”), and choose the data type as “String” since the output value accepts the string data type. And provide the path of the python application as default value.
c. Step 2: Double-click on the variable parameter in the “PythonPath” section and enter a name as “Path”.
6. Now, I am adding the “Image conversion” script into “LoadEnvironment – PDF” activity to automate in the solutions.
7. Here I am choosing the file name from the drop-down as “Image_Conversion.py”.
8. Now, the “MethodName” option will be available and here I am choosing the method from the drop-down as “convert_pdf_to_images”.
9. Navigating to the “Parameters” in the properties section to provide the required inputs for the script.
a. Click on the Three dots and the “Parameters” dialog box will appear on the screen with the required inputs.
b. Here are two inputs required to automate the script. You can either enter the input values here in the specified datatype in the “Value” field or can hardcode the values in the specified datatype.
c. I have directly provided the values in the “Values” field for both the inputs, now click on “OK” button.
10. The parameter which indicates “OUT” as direction is indicated as the output of the activity. Here the “result” is indicated as “OUT”, so declaring a variable there to view the output.
a. Now, I am declaring a variable in the “Variables” section with the similar name “result” along with the specified datatype as “Jobject”.
11. Now, to view the output, add the “Writelog” activity and pass the required inputs.
12. Save and execute the bot.

Now, the script will be loaded and starts to create a virtual environment, which might get delayed on the first execution. Then the bot proceeds to execute the script. 

 

The bot will write the output in the “Output” section using the “writelog” activity.

Parallel

This feature enables users to execute workflows in an asynchronous mode. These actions facilitate concurrent task execution, eliminating the need to wait for one task to finish before starting another. Typically, tasks are executed synchronously, meaning they only progress to the next step when the current execution process is finished.

The parallel activity aids in executing tasks in scenarios where automation requires waiting for external resources or services, such as web requests or file operations. It enables your workflow to continue processing other activities while waiting for these operations to be completed.

Properties

MISC

CompleteCondition: This parameter enables you to execute tasks based on a Boolean value condition. Specify either ‘True’ or ‘False’ here.
True: Executes the first-found activity and cancels the execution of other activities.
False: Executes all the sequence of activities one by one without delays. If ‘True/False’ is not provided, it will default to the ‘False’ functionality.

Display Name: Displays the name of the activity. The activity name can be customized which will help in troubleshooting.

Dictionary

Introduction

In Robility, a dictionary refers to a data structure that stores key-value pairs. Each key in the dictionary maps to a corresponding value, allowing for efficient retrieval and manipulation of data elements. Dictionaries are commonly used in workflows scripting and automation to store and manage dynamic data sets, configuration settings, and temporary variables during process execution.

Benefits

1. Efficient Data Organization: Dictionaries allow for efficient organization of data elements using key-value pairs, enabling quick access and retrieval of specific data based on keys.

2. Dynamic Data Storage: Dictionaries can store dynamic data sets, allowing workflows to manage changing data values, configurations, or variables during automation tasks.

3. Fast Lookup and Retrieval: With dictionaries, the bots can retrieve data elements by directly accessing their corresponding keys, resulting in fast lookup and retrieval operations.

4. Flexible Data Manipulation: Dictionaries support flexible data manipulation operations such as adding, updating, or removing key-value pairs, making them versatile for data management tasks.

5. Reduced Code Complexity: Using dictionaries in RPA scripts can reduce code complexity by providing a structured and organized way to handle data, configurations, and temporary variables.

6. Enhanced Reusability: Dictionaries promote code reusability by allowing bot developers to define and reuse common data structures across multiple automation processes.

Use Cases

1. Configuration Settings: Use dictionaries to store and manage configuration settings such as API endpoints, credentials, timeouts, and application parameters. This enables easy configuration management and flexibility in automation scripts.

2. Data Mapping: Implement dictionaries for data mapping tasks in workflows. Map input data fields to output data fields using key-value pairs, facilitating data transformation and integration processes.

3. Dynamic Variable Storage: Store dynamic variables and temporary data elements in dictionaries during execution. This allows bots to manage and manipulate data based on runtime conditions and inputs.

4. Error Handling: Use dictionaries to store error messages, codes, and status flags during error handling processes. This helps in tracking and managing errors efficiently within automation workflows.

5.Localization and Globalization: Utilize dictionaries for managing localized or globalized data elements in workflows. Store language-specific strings, messages, or labels in dictionaries for multi-language support.

6. Data Validation Rules: Define data validation rules and conditions in dictionaries for data validation tasks. Store validation criteria as key-value pairs and validate input data against predefined rules during automation execution.

AddToDictionary

The Dictionary is a collection of Keys and Values, where key is like a word and value is like a definition.Thus, The Dictionary is a general collection of keys and values pair of data. This is used to store and retrieve data temporarily when the project is running. The Dictionary class implements the IDictionary<TKey,TObject> Interface. User can store the values in any defined data type in value.

Properties

INPUT

Dictionary:* Declare the name of the dictionary here as a variable.

Key:* This indicates the content in the dictionary. E.g., Name

Value:* This indicates the value that represents the key. E.g., Age

MISC

ArgumentType1:* This indicates the type of the key we will be using. Choose from the drop down.

ArgumentType2:* This indicates the type of the value that represents the key value. Choose from the drop down

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”

True: Continues to execute the workflow irrespective of any error thrown.

False: Stops the workflow if it throws any error

Version: It specifies the version of the Dictionary feature in use

OUTPUT

ResultProvides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation. It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Delete

This activity is used to delete specific keys from the dictionary.

Properties

INPUT

Dictionary: *Declare the name of the dictionary here as a variable.

Key: *This indicates the content in the dictionary which has to removed.

MISC

ArgumentType1: * This indicates the type of the key we have used in the dictionary. Choose from the drop down.

ArgumentType2: * This indicates the type of the value that represents the key value which we have used in the dictionary. Choose from the drop down.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Dictionary feature in use

OUTPUT

ResultProvides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation. It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

GetValue

This activity is used to get the value of a specified key from the dictionary.

Properties

INPUT

Dictionary:* Specify the name of the dictionary from which we need to get the value.

Key:* Specify the name of the key for which the value is required

MISC

ArgumentType1: This indicates the type of the key which was used in the dictionary. Choose it the drop from down.

ArgumentType2: This indicates the type of the value that was used to represent the key value. Choose from the drop down.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”

True: Continues to execute the workflow irrespective of any error thrown.

False: Stops the workflow if it throws any error

Version: It specifies the version of the Dictionary feature in use

OUTPUT

Result: Define a Boolean to validate if the activity has been completed successfully. This is not a mandatory field.

Value:* Declare a variable here to view the value of a specified key.

* Represents mandatory fields to execute the workflow.

SetValue

This activity is used to update an existing value of a respective key. It overwrites the value of the existing ones.

Properties

INPUT

Dictionary:*Specify the name of the dictionary in which the value has to be updated

Key:*Specify the key whose value has to be edited

Value:* Specify the new value that has to be updated in respect to the specified key.

MISC

ArgumentType1:* This indicates the type of the argument that we have used for the key. Choose from the drop down.

ArgumentType2:* This indicates the type of the value that represents the key value. Choose from the drop down.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False.”

True: Continues to execute the workflow irrespective of any error thrown.

False: Stops the workflow if it throws any error

Version: It specifies the version of the Dictionary feature in use

OUTPUT

ResultProvides the success status of the operation. This field indicates whether the VM was successfully stopped or if there were any issues during the operation. It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

View

This activity is used to view the details that are entered in the dictionary. This can be used along with other dictionary activities to view the content in the dictionary. The details in the dictionary are seen as a pop up.

Properties

INPUT

Dictionary:*The name of the dictionary for which we want to view the content.

ExpirySecs: ExpirySecs: Number of seconds the view page must be displayed on screen.

MessageTitle:* The title of the window in which the content has to be displayed.

MISC

ArgumentType1:* This indicates the type of the key we have used in the dictionary. Choose from the drop down.

ArgumentType2:* This indicates the type of the value that has been used to represent the key value. Choose from the drop down.

Display Name: Displays the name of the activity. You can also customize the activity name to help troubleshoot issues faster. This name will be used for logging purposes.

SkipOnError: It specifies whether to continue executing the workflow even if it throws an error. This supports only Boolean value “True or False”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error

Version: It specifies the version of the Dictionary feature in use.

Represents mandatory fields to execute the workflow.

EncryptText

This activity allows users to encrypt text using a selected key encoding and encryption algorithm.

Properties

INPUT

Algorithm: This parameter indicates to choose the algorithm type from the drop-down menu that is used to encrypt the text based on it.

1. AES(Deprecated)
2. AES GCM
3. DES (Deprecated)
4. RC2 (Non-FIPS) (Deprecated)
5. Rijndael (Non-FIPS) (Dperecated)
6. Triple DES.

Refer to the documentation below to view the types of algorithms.
By default, the activity recommends the most commonly used type, “AES GCM”.

DelayAfter: It assists the user to add a delay before initiating subsequent activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

DelayBefore: It assists the user in adding a delay before starting the execution of the activities. The delay duration here is in milliseconds. By default, it is set to “1000” milliseconds.
When the option is left blank, the delay will not be considered.

Input Text*: This parameter indicates to provide the input text which needs to be encrypted.

This parameter accepts the values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Key Encoding: It assists the user to choose the key encoding type from the drop-down menu that is used to perform the encryption algorithm.

Click here to refer the documentation to view the types of key encoding.

By default, the activity recommends the most commonly used type, “Unicode UTF-8”.

Secret Key*: This parameter indicates to provide the key which is used by algorithm chosen to encrypt as well as decrypt the file.

This field accepts values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output TextIt assists the user to declare a variable here to view output as the encrypted text. 

This field returns values in “String” datatype. You can either hardcode the values in “String” format or can provide the variable in “String” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Here’s an example of how to use the activity in a workflow:

Steps to build the bot:

In this example, we will use the “Encrypt Text” activity to encrypt text extracted from a website.  The text will be taken from the Sutherland website for encryption.

1. Create a new workflow/ open an existing workflow.
2. Drag and drop the “OpenWebBrowser” activity from the “WebAutomation” feature into the workflow to launch the Sutherland website and set it as the start node.
a. Double click on the activity.
b. Enter the “URL” as https://www.sutherlandglobal.com/.
3. Next, add the “GetText” activity from the “WebAutomation” feature next to the “OpenWebBrowser” activity to extract text from the website.
4. Double-click on the activity.
a. Click on the “Select Element” option and navigate to the website to identify the text.
b. Once you have selected the element, the attributes will be displayed in the “RobilitySpy” window.
c. In the “RobilitySpy” window, the default attributes required for automation will be pre-selected. If you need additional attributes to locate the element, select them as needed.
d. For this example, use the default selected attributes.
e. Click the “Save” button. The attributes will be automatically filled in the properties.
f. Next, navigate to the “Text” field in the output section of the properties to declare a variable for the output. Here it is as “Out_text”.
5. Now, place the “EncryptText” activity into the workflow next to the “GetText” activity.
a. This activity is used to encrypt the text extracted from the website and double-click on the activity.
b. Proceed with the default algorithm type (AES GCM).
c. Navigate to the “Input Text” field in the properties section to provide the input.
d. Use “Out_Text” as the value, which is the extracted text from the website.
e. Next, go to the “Secret Key” field and provide a random value as the key for encryption. For example: Use “ABC123456789TEXT” as the key.
f. Now, go to the “Output Text” field in the output section of the properties to declare a variable for the encrypted text. Here it is as “Encrypted_Text”.
6. Now, place the “WriteLog” activity into the workflow to view the encrypted text.
a. Provide the input as “Encrypted_Text” and set the log level to “Info”.
7. Save and execute the workflow.

DatabaseAutomation

Introduction

Database automation in Robility refers to the automated handling of database tasks and operations using software robots. These robots are programmed to execute tasks such as querying databases, updating records, extracting data, performing data validations, and generating reports. By automating database-related processes, organizations can streamline data management, improve accuracy, enhance efficiency, and reduce manual errors.

SQL Command

1. SQL (Structured Query Language) commands are instructions used to communicate with a database management system (DBMS) to perform various operations on a database.
2. These commands are used to create, retrieve, update, and delete data from tables, as well as manage the structure and configuration of the database itself.
3. Examples of SQL commands include SELECT (to retrieve data), INSERT (to add new records), UPDATE (to modify existing records), DELETE (to remove records), CREATE (to create new tables or databases), ALTER (to modify table structures), and DROP (to delete tables or databases).
4. SQL commands are essential for interacting with and managing databases effectively.

Authentication modes

Windows authentication mode and SQL Server authentication mode are two different authentication methods used to connect to a SQL Server database. The users can avail this option at “Connect DB” activity while initiating the connection to the database.

Windows Authentication Mode:

1. Also known as Integrated Security or Trusted Connection.
2. Relies on Windows user accounts and Active Directory for authentication.
3. Provides a more secure and convenient way to connect as it leverages existing Windows credentials.
4. Users are authenticated based on their Windows login credentials.
5. Generally preferred in environments where users are already authenticated by Windows domains.

SQL Server Authentication Mode:

1. Also known as SQL Server Authentication or Mixed Mode Authentication.
2. Requires users to provide a username and password specifically created within SQL Server.
3. Authentication is performed directly by SQL Server without relying on Windows credentials.
4. Allows for more flexibility in managing user access and permissions within SQL Server itself.
5. Suitable for scenarios where Windows authentication is not feasible or desired, such as external applications or non-Windows environments.

Benefits

1. Improved Efficiency: Automation reduces manual efforts in database operations, leading to faster data processing and task completion.
2. Accuracy: Robots perform database tasks with precision, minimizing errors and ensuring data integrity.
3. Cost Savings: Reduced manual intervention lowers operational costs associated with database management.
4. Scalability: Automation allows organizations to handle large volumes of data and scale operations as needed without significant resource constraints.
5. Compliance: Automated database processes can enforce data governance policies and ensure regulatory compliance.
6. Faster Decision-Making: Access to real-time and accurate data through automation enables quicker decision-making processes.

Use Cases

1. Data Entry and Updates: Automating data entry tasks into databases and updating records based on predefined criteria.
2. Data Extraction and Reporting: Extracting data from multiple sources, consolidating it, and generating automated reports for analysis.
3. Data Validation and Cleansing: Automating validation checks, data cleansing processes, and error handling in databases.
4. Database Backup and Maintenance: Scheduling automated backups, performing database maintenance tasks, and monitoring database health.
5. Data Migration: Automating data migration processes between different databases or systems.
6. Integration with Business Processes: Integrating database operations seamlessly with other business processes such as order processing, inventory management, and customer relationship management (CRM).

Release Notes

v.1.1.0

In this release, we have included enhancements to the DSN activity.

Enhancement

An “Insert” option has been added to the Query Type dropdown in the DSN activity, allowing users to perform data insertion without manually writing queries, making the process simpler and less error prone.

v.1.0.8

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.1.0.9

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

BulkInsert

This activity assists the user in uploading or inserting a large data table into the specified database server for a specific table.

Properties

INPUT

CommandTimeout: This parameter indicates the timeout value for executing the activity within the connected database. If the execution cannot be established within this specified time, it will throw an exception.

This parameter accepts values in “Integer” datatype. You can either enter the values hardcoded in “INT32” format or pass the values as “Int32” datatype.

Datatable*: This parameter indicates providing the “DataTable” value where the input has been stored to execute the bulk insert option. This parameter accepts values in the “DataTable” data type.

SQLConnection*: This parameter indicates the existing SqlConnection to be provided for execution of the activity. Here, you should mention the output variable declared in the “ConnectDB” activity. This parameter only accepts values in the “SqlConnection” data type.

TableName*: This parameter indicates providing the “TableName” from the connected database to perform a bulk data insertion.

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Here’s an example of how the activity is used in the workflow –

In the following example, utilizing this activity I am going to insert the data into a table in my database from an excel sheet. Here, I have already extracted the datatable value from an excel sheet and stored in a variable. You can refer the steps on how to extract the datatable from the excel sheet here – Click here.

Now I am continuing from the “ConnectDB” activity. 

Please note that in the following example, I have added the credentials in a respective variable which is then used in the example.

Steps to build the bot:

1. Create a solution.
2. Drag and drop the “BulkInsert” activity and place it below the “ConnectDB” activity.
a. Double click on the activity to provide the “TableName”.
b. Here I have already created a table in the provided database. Hence, my table name is “Employees”. Click here to know how to create a table
3. Now, navigating to the “Datatable” in the properties, here I am providing the input datatable as the variable declared as output in the “ReadRange” activity.
4. Next, moving to the “SqlConnection” in the properties, Here I am utilizing the variable “DB_OUTPUT” declared as output in the “ConnectDB” activity.
5. Moving to the “Result” in the output section of the properties to view the state of the activity.
a. There are two ways to declare a variable –
b. Method 1: Double-click on the variable parameter in the Output section and enter a name that helps you easily identify the flow. Here, I’m using the name “Bulk_Status” and using the shortcut key “Ctrl+Q” to create the variable.
c. Method 2: Click on the variable pane, enter your preferred name. (here, I’m using “Bulk_Status”), and choose the data type as “Boolean” since the values are returned as “True or False”.
6. You can use the write log activity to print the “Bulk_Status” variable output.
a. Here the input is “Bulk Insert Status:” + Bulk_Status. ToString”.
b. Then choosing the log level as “Info”.
7. Now, save and execute the workflow.

The bot will execute and insert the data into the table in the database. 

ConnectDB

This activity helps the user to initiate a connection with the provided database server using a standard connection string. It is essential for processes that rely on database interactions, such as data extraction, transformation, loading, and reporting.

It acts as a scope where the output from the “ConnectDB” activity is used in other activities to automate SQL commands with the database, except for the “DSN” activity.

Properties

INPUT

AuthenticationMode: This parameter indicates to choose the authentication mode to connect with the database. Select the option from the drop-down:

 Windows: This mode allows the bot to connect to the database using the Windows credentials of the user.
SQL: In this mode, the bot connects to the SQL Server using a specific SQL Server login (username and password) created within the SQL Server instance.

DatabaseName*: This parameter indicates the name of the database to which the robot needs to establish a connection in order to automate processes.
It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

DatabaseServer*: This parameter indicates the name of the server where the database is configured. The robot will establish a connection to this server to automate processes.
It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

Password: This parameter indicates the password of the database to which the robot needs to establish a connection in order to automate processes.
It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

Timeout: This parameter indicates the timeout value for establishing a connection to the database server. If the connection cannot be established within this specified time, it will throw an exception.

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

Username: This parameter indicates the username of the database to which the robot needs to access and establish a connection in order to automate processes.

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

SQLConnection: It helps to return the output as SQL connection which is required to automate with the other activities. It returns the values in “SQLConnection” datatype. (Refer the documentation below).

Represents mandatory fields to execute the workflow.

Here’s an example of how the activity is used in the workflow –

In the following example, I am going to use this activity to connect the Database and return the SQL connection as output to utilize it in the other activities.

Please note that in the following example, I have stored the credentials in a respective variable which is used in the example.

Steps to build the bot:

1. Create a solution.
2. Install the latest feature of “Database Automation” from the “Manage features”.
3. Drag and drop the “ConnectDB” activity into the workflow and set it as start node
4. Navigating to the “Authentication mode” in the properties, here I am choosing the value as “SQL” since I am authenticating my database with SQL credentials.
5. Now, moving on to the database server details, I have hardcoded the values in a variable
a. Here in the properties, (“Database name,” “Database server,” “Username,” and “Password”) i have added the variable respectively.
6. Next in the “Timeout” parameter, I am mentioning the value as “10000” seconds.
7. Moving to the “SqlConnection” in the output section of the properties to declare a variable here to view the output.
a. This step is crucial as it will be used as input in other activities except DSN activity. There are two ways to declare a variable –
b. Method 1: Double-click on the variable parameter in the Output section and enter a name that helps you easily identify the flow. Here, I’m using the name “DB_OUTPUT” and using the shortcut key “Ctrl+Q” to create the variable.
c. Method 2: Click on the variable pane, enter your preferred name. (here, I’m using “DB_OUTPUT”), and choose the data type as “BrowseForTypes”.
d. Select the value as “System.Data.Sqlclient.SqlConnection”.
8. Now, save and execute the workflow. You can view the state of the activity by declaring a variable in the “Result” properties.

DisconnectDB

This activity assists the user in terminating the connection with the specified database.

Properties

INPUT

SqlConnection*: This parameter indicates the existing SqlConnection to be provided for disconnection.

Here, mentions the output variable declared in the “ConnectDB” activity.
It accepts values in the “SqlConnection” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Here’s an example of how the activity is used in the workflow –

In the following example, I am going to continue from the “ConnectDB” activity and utilizing the Disconnect DB activity I am terminating the connection with the provided database.

Steps to build the bot:

1. Create a solution.
2. Drag and drop the “DisconnectDB” activity and place it below the “ConnectDB” activity in the workflow.
3. Navigate to the “SqlConnection” in the properties to provide the input values.
a. Here I am utilizing the variable “DB_OUTPUT” declared as output in the “ConnectDB” activity.
4. Now, you can declare a variable in the “Result” property to view the state of the activity.
a. There are two ways to declare a variable –
b. Method 1: Double-click on the variable parameter in the Output section and enter a name that helps you easily identify the flow. Here, I’m using the name “Result” and using the shortcut key “Ctrl+Q” to create the variable.
c. Method 2: Click on the variable pane, enter your preferred name. (here, I’m using “DB_OUTPUT”), and choose the data type as “Boolean”.
5. You can view the output using the “Writelog” activity.
6. Save and execute the workflow.

DSN

The DSN (Data Source Name) activity is used to establish a database connection using a pre-configured ODBC (Open Database Connectivity) Data Source Name.

What’s a DSN and why do we need it?

1. A DSN is a configuration setting that defines a connection to a specific database instance.
2. It includes information such as the database server’s address, database name, authentication credentials, and other connection parameters.
3. It acts as an intermediary that allows applications to communicate with databases without needing to know the intricate connection details.

Limitations

1. The DSN activity typically relies on ODBC (Open Database Connectivity) connections, which may limit compatibility with other database connection types.
2. DSN configurations are often static and may not support dynamic changes during runtime, requiring manual adjustments for any modifications.
3. Proper installation and configuration of ODBC drivers are necessary for the DSN activity to function correctly, adding complexity to setup and maintenance.
4. Each DSN activity usually connects to a single data source at a time, which can be restrictive when dealing with multiple databases or data sources in a single automation process.
5. The activity may offer limited configuration options for advanced database interactions, such as custom queries, stored procedures, or specific authentication methods.
a. The custom queries referred as “CREATE, READ, DELETE” SQL commands are restricted and may not be fully supported.
b. Execution on “Stored Procedures” is restricted from this activity.
c. DSN activity supports only “Windows” and “SQL Server” authentication modes, other modes of authentication are limited.

6. The activity is only compatible with the 64-bit version of the ODBC driver.

Properties

CREDENTIALS

Password: This parameter specifies the password associated with the DSN. You need to provide the password that was configured during the creation of the DSN in ODBC. (Refer to the documentation below for more information)

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

Username: This parameter specifies the Username associated with the DSN. You need to provide the username that was configured during the creation of the DSN in ODBC. (Refer to the documentation below for more information)

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

INPUT

CommandTimeout: This parameter indicates the timeout value for executing the activity within the connected database. If the execution cannot be established within this specified time, it will throw an exception.

It accepts values in “Integer” datatype. You can either enter the values hardcoded in “INT32” format or pass the values as “Int32” datatype.

DSNFilepathName: Indicates the file path location of the DSN where the configuration details are stored. It enables the robot to access and utilize the stored connection information for establishing connections with the specified data source.

This is not a mandatory field; you can choose either the “DsnName” or “DsnFilepathName” property.

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

DsnName: Indicates the “Name” of the DSN created while configuration in ODBC.

This is not a mandatory field; you can choose either the “DsnName” or “DsnFilepathName” property.

It accepts values in “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as “String” datatype.

Query*: This parameter indicates to provide the SQL Command/ query that needs to be executed via DSN. You should mention the “Query” based on the “Command Type” chosen in the “QueryType” parameter.

It accepts values in the “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as a “String” datatype.

QueryType: Indicates to choose the “Command Type” that is required to execute along with the provided “SqlQuery”. Select the option from drop-down:

Select: It is used to retrieve data from one or more tables in a database.
Update: It is used to modify existing records in a database table.
Insert: It is used to add new records (rows) into a database table.

By default, the “Select” query is chosen. Refer the tips below in the documentation.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: It helps to view the output of the activity in a table view format as the output executed from the provided SQL query. It returns the value in “Datatable” datatype.  

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

How to create a DSN file in the ODBC?

ODBC is a standard interface for accessing and working with data from various database management systems (DBMS) using a common method.

1. Interface Standardization: ODBC ensures consistent interaction with databases across different DBMS.
2. Driver-Based Approach: ODBC uses specific drivers for each DBMS, translating commands for smooth communication.
3. Connection Establishment: Configure a DSN for connecting applications to databases via ODBC drivers.
4. Supported Operations: ODBC supports SQL queries, data manipulation, transactions, and stored procedures.

Creating a DSN

To facilitate secure connection with the database and streamline processes, a “DSN” is created. The 64-bit ODBC is accessible to all users through the Windows administrative system. Creating a DSN in ODBC aids users in managing connections with ease and ensuring a secure bridge between the Designer and database server.

Steps to create the DSN:

1. Open the “ODBC Data Source Administrator” dialog by navigating Start -> Control Panel -> Administrative Tools -> Data Sources (ODBC).
2. Select the “System DSN” tab if you want to create the DSN that needs to be accessible for all the users on the system.
a. If you create “DSN” against the “User DSN” tab, it will be accessible only for the user account that created them. Other users cannot access it.
3. Now, click on “Add” option from the right-hand side.
4. A pop-up will appear on the screen, first you need to choose the data source where you want to set up the driver.
a. To automate via SQL server database, you need to choose the “SQL server” option.
b. Now, click on “Finish” button.
5. The next window will prompt you with the configuration steps to create a new data source in the SQL Server.
a. Provide any name with description for the “DSN” to be created.
b. Provide the “SQL Server” name where the DSN needs to be configured; then click on “Next” button.
6. Choose the authentication to verify and login with the provided SQL Server database.
a. Windows NT – If you are authenticating with “Windows” NT credentials, you can opt this option.
b. SQL Server – If you are authenticating with “SQL server” credentials, you can opt this option.
c. If you choose the “SQL Server” option, you need to provide the Server credentials in the next step; then click on “Next” button.
7. Next steps of configuration will be to setup the default file of DSN Configuration. To know about further information, click here.

Here’s an example of how the activity is used in the workflow –

In this example, I’ve already set up the “DSN” in ODBC. Now, I’ll use a “Select” query to retrieve the list of tables available in the DSN.

Please note that I’ve stored the credentials in a corresponding variable, as shown in the example.

Steps to build the bot:

1. Create a new solution.
2. Drag and drop the “DSN” activity into the workflow and set it as the start node.
3. Navigating to the “Credentials” in the properties to provide the database credentials.
a. Here in the properties, (“Password,” and “Username”) i have added the variable respectively.
b. Since my “DSN” is configured in the SQL Server, I have provided the database credentials.
4. Next, navigating to the “DsnName” in the properties to provide the name of the DSN created.
a. Here it is as “Documentation”.
5. Moving to the “QueryType” property, here I am fetching the tables list available in my DSN hence my query is,
a. “SELECT name FROM sys.tables”.
6. Choosing the “QueryType” as “Select” according to my query.
7. Now, declaring a variable in the “Datatable” property to view the output.
a. Click here to refer how to create variables.
8. You can add the “Table Viewer” activity to view the output of the Datatable.
9. Now, save and execute the workflow.

The bot will fetch the tables list available in the DSN in a table format.

ExecuteNonQuery

This activity assists users in executing SQL commands on the provided database that do not return any data as output. It enables users to carry out essential operations such as inserting new data into the tables (INSERT), deleting existing records (DELETE), updating information (UPDATE), dropping tables (DROP TABLE), creating new tables (CREATE TABLE), and various other data manipulation tasks.

Limitations

1. When using the “CREATE TABLE” command to create a table and if there are spaces in the column names, you should enclose the column names within square brackets []. For instance, in the command below, “Start date” has a space, so it’s enclosed in brackets:
a. “CREATE TABLE Employees (
 Name VARCHAR(100),
 Position VARCHAR(150,
 Project VARCHAR(100),
 Location VARCHAR(150),
 [Start date] DATE,     
Salary DECIMAL(10, 2)
);”
2. The column names in the database table must exactly match the names in the “Datatable” variable when uploading values via the “Bulk Insert” option. Any differences in lowercase or uppercase letters will cause a mismatch error.

Properties

INPUT

CommandTimeout: This parameter indicates the timeout value for executing the activity within the connected database. If the execution cannot be established within this specified time, it will throw an exception.

It accepts values in “Integer” datatype. You can either enter the values hardcoded in “INT32” format or pass the values as “Int32” datatype.

DBConnection*: This parameter indicates the existing SqlConnection to be provided for execution of the activity. Here, you should mention the output variable declared in the “ConnectDB” activity.

This parameter only accepts values in the “SqlConnection” data type.

Parameters: Indicates to provide the collection of parameters that are required to be passed in the SQL query provided.

This parameter accepts the “Dictionary” datatype, which is bound to the SQL query. Refer the below documentation on how to provide the parameters.

SqlQuery*: This parameter indicates to provide the SQL Command/ query that needs to be executed. You should mention the “SQLQuery” based on the “Command Type” chosen in the “Type” parameter.

It accepts values in the “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as a “String” datatype.

Type: Indicates to choose the “Command Type” that is required to execute along with the provided “SqlQuery”. Select the option from drop-down:

Text: Use this option when you want to execute a straightforward SQL command directly without involving stored procedures.
StoredProcedure: Use this option when you want to execute a pre-defined stored procedure that resides in your database. Refer the below documentation.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Text & Stored Procedure

The choice between using the “Text” and “Stored Procedure” types in the Execute Non-Query activity depends on the nature of the SQL command you want to execute:

1. Text (SQL Query):
a. Use the “Text” type when you want to execute a straightforward SQL command directly in the activity without involving stored procedures.
b. This is suitable for commands like INSERT, DELETE, UPDATE, and other data manipulation tasks where you provide the SQL query directly in the “SQLQuery” parameter.

2. Stored Procedure:
a. Use the “Stored Procedure” type when you want to execute a pre-defined stored procedure that resides in your database.
b. This is beneficial for complex operations or when you have stored procedures designed to handle specific tasks within your database.
c. Instead of providing the SQL query directly, you specify the name of the stored procedure in the “SQLQuery” parameter.

Here’s an example of how the activity is used in the workflow –

In the following example, I have already created a stored procedure in the provided database. Using this activity, I am going to delete the stored procedure from the database. Here I am continuing from the “ConnectDB” activity. 

Please note that in the following example, I have added the credentials in a respective variable which is then used in the example.

Steps to build the bot:

1. Continuing from the “ConnectDB” steps.
2. Drag and drop the “Execute Non-Query” activity and place it below the “Writelog”.
3. Navigating to the “DB Connection” in the properties and providing the “SQL Connection” variable declared as output in the “Connect DB” activity. Here it is as “DB_OUTPUT”.
4. Now, moving to “SqlQuery” and providing the query to delete the table. Here it is as,
a. “DROP PROCEDURE InsertEmployee;”
b. In my case, the stored procedure created in the database is known as “InsertEmployee”, hence I have mentioned the same.
5. Next, since here I am providing the SQL command directly, I am opting the “Type” as “Text” in the properties.
6. Moving to the “Result” in the output section of the properties to view the state of the activity.
a. There are two ways to declare a variable –
b. Method 1: Double-click on the variable parameter in the Output section and enter a name that helps you easily identify the flow. Here, I’m using the name “Table_Delete” and using the shortcut key “Ctrl+Q” to create the variable.
c. Method 2: Click on the variable pane, enter your preferred name. (here, I’m using “Altered_Table”), and choose the data type as “Boolean” since the values are returned as “True or False”.
7. You can use the write log activity to print the “Table_Delete” variable output.
a. Here the input is “Delete Status:” + Table_Delete. ToString”.
b. Then choosing the log level as “Info”.
8. Now, save and execute the workflow.

The bot will execute the workflow and initiates to connect the Database, once it has been connected, it will proceed to delete the mentioned stored procedure. In the above image, you can view the success state of the “Execute Non-Query” activity.

ExecuteQuery

This activity helps the user to perform SQL queries against a database. It allows users to execute SELECT statements to retrieve data from a database table or perform other SQL operations that return results, such as counting records, calculating values, or filtering data.

Properties

INPUT

CommandTimeout: This parameter indicates the timeout value for executing the activity within the connected database. If the execution cannot be established within this specified time, it will throw an exception.

It accepts values in “Integer” datatype. You can either enter the values hardcoded in “INT32” format or pass the values as “Int32” datatype.

DBConnection*: This parameter indicates the existing SqlConnection to be provided for execution of the activity. Here, you should mention the output variable declared in the “ConnectDB” activity.

This parameter only accepts values in the “SqlConnection” data type.

Parameters: Indicates to provide the collection of parameters that are required to be passed in the SQL query provided.

This parameter accepts the “Dictionary” datatype, which is bound to the SQL query. Refer the below documentation on how to provide the parameters.

SqlQuery*: This parameter indicates to provide the SQL Command/ query that needs to be executed. You should mention the “SQLQuery” based on the “Command Type” chosen in the “Type” parameter.

It accepts values in the “String” datatype. You can either enter the values hardcoded in “String” format or pass the values as a “String” datatype.

Type: Indicates to choose the “Command Type” that is required to execute along with the provided “SqlQuery”. Select the option from drop-down:

Text: Use this option when you want to execute a straightforward SQL command directly without involving stored procedures.
StoredProcedure: Use this option when you want to execute a pre-defined stored procedure that resides in your database. Refer the below documentation.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: It helps to view the output of the activity in a table view format as the output executed from the provided SQL query. It returns the value in “Datatable” datatype.

Represents mandatory fields to execute the workflow.

Text & Stored Procedure

The choice between using the “Text” and “Stored Procedure” types in the Execute Non-Query activity depends on the nature of the SQL command you want to execute:

1. Text (SQL Query):
a. Use the “Text” type when you want to execute a straightforward SQL command directly in the activity without involving stored procedures.
b. This is suitable for commands like INSERT, DELETE, UPDATE, and other data manipulation tasks where you provide the SQL query directly in the “SQLQuery” parameter.

2. Stored Procedure:
a. Use the “Stored Procedure” type when you want to execute a pre-defined stored procedure that resides in your database.
b. This is beneficial for complex operations or when you have stored procedures designed to handle specific tasks within your database.
c. Instead of providing the SQL query directly, you specify the name of the stored procedure in the “SQLQuery” parameter.

Execute Non-query & Execute Query

Here’s an example of how the activity is used in the workflow –

In the following example, I am continuing from “BulkInsert” activity example, using a query I am going to alter the table and add a new column in addition to it.

The table in the database already contains Name, Position, Project, Location, Salary. In addition to it, I am adding a column as “Email” to it.

Steps to build the bot:

1. Continuing the steps from Bulk Insert activity.
2. Now, I am adding the “ExecuteQuery” activity and placing it below the “Writelog” activity.
a. Here I am using this activity to alter the table using the SQL Query.
b. Navigating to the “DB Connection” property in the properties section to provide the sql connection variable declared as output in the “ConnectDB” activity.
c. Here it is as “DB_OUTPUT”.
d. Next, moving to the “SqlQuery” property to provide the query that satisfies the condition.
e. Here I am providing the query as
“ALTER TABLE Employees
ADD Email VARCHAR(255)”
f. Now, choosing the “Type” as “Text” since here I am directly providing the query to alter the table and not through the stored procedure.
g. Then, moving to the output section of the properties to declare a variable in the “Datatable” field to view the output.
3. To view the output, I am adding a table viewer activity.
a. Here I am providing the “Input Datatable” as “Altered_Table”.
4. Save and execute the workflow.

The bot will create a new column as “Email” in the provided table “Employees”.

WriteCSV

This activity allows the user to write an input DataTable value to the specified CSV file. It is widely used to export the tabular data into CSV format for data storage and interchange.

Properties

INPUT

Delimiter: This parameter refers to a character used to separate values in a CSV file. Select the delimiter from the drop-down menu:

Comma (,): Use this when the data in the input sheet is separated by commas.
Tab: Use this when the data in the input sheet is separated by tabs.
Semicolon (;): Use this when the data in the input sheet is separated by semicolons.
Pipe (|): Use this when the data in the input sheet is separated by pipes.
Caret (^): Use this when the data in the input sheet is separated by carets.

Filepath:* This parameter requires you to provide the path of the CSV file to execute the activities.

Datatype: This parameter accepts input values in the “String” datatype.
Browse Option: You can browse and select the file using the “Browse” option in the activity.
Manual Entry: Alternatively, you can either hardcode the input value in “String” format or manually provide the values in “String” datatype.

Hasheader: If this option is enabled, the first row in the specified CSV file will be treated as the header. If it is not enabled, the first row will not be considered a header. 

IgnoreQuotes: If this option is enabled, the quotes in the data will be ignored during the reading process. 

WriteData:* This parameter specifies the input DataTable value that needs to be written to the CSV file. It accepts the values in the “Datatable” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

WriteStatus: It provides the ability to view the status of the data written in the CSV file. It returns values in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.

False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

*Represents mandatory fields to execute the workflow

Click here to view how the activity is used in the workflow. 

Excel Automation

Introduction

Robility’s Excel automation streamlines tasks in Microsoft Excel, such as data processing, extraction, manipulation, and report generation, providing seamless integration with workbooks and worksheets.

Compatible versions:

1. This feature supports only “.xlsx”, “.xlsb”, “.xlsm” and .xls” excel sheets. CSV sheets will not be supported by this feature.
2. Microsoft Office (versions 2007, 2010, 2013, 2016, 2019, or 365 desktop editions) these versions are supported for automating tasks in Excel.

Use Cases

1. Report Generation: With excel automation, bots can leverage the “Macros and VBA scripts” to pull data from various sources and generate comprehensive reports automatically.  
2. Data validation: Bots can be used to automate the excel data to clean, validate, and standardize, ensuring data quality and consistency.
3. Invoice Processing: Bots can automate the extraction of data from invoices, such as invoice numbers, amounts, and due dates, and populate this information into Excel for further processing.
4. Data Analysis: Banks and financial organizations manage several types of data in excel sheet to perform calculations, generate financial reports, and analyze financial data. 

Release Notes

v.1.7.6

In this release, we have fixed the bug:

Bug Fix
InsertAndDeleteColumn activity tooltip contained a spelling error. This issue has now been fixed.

Released Date: 25/03/2026

v.1.7.5

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.1.7.1

This release includes enhancements to the following areas:

Enhancement

  1. NLog Package Upgrade
    The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.
  2. Removal of NPOI Package
    The Excel activities have been updated by replacing the NPOI dependency with EPPlus.

Released Date: 09/02/2026

v.1.7.0

This release introduces the Create Pivot Table and Refresh Pivot Table activities under the Excel Automation feature.

New Activities

  • Create Pivot Table: Enables users to create a pivot table from a designated table in a specified Excel sheet.
  • Refresh Pivot Table: Allows users to refresh an existing pivot table in the specified Excel sheet.

Released Date: 31/01/2026

v.1.6.6

This version introduces important bug fixes and enhancements to Excel automation.

Bug Fix

Excel Scope – Fixed a production issue where the Excel Scope activity was not working for “.xls” files. The issue has been resolved to ensure smooth operation across all supported Excel file formats.

New Activities

This release introduces three new activities to further enhance Excel automation capabilities:

1. Text to Column – Inserts new columns in an Excel sheet by identifying and using specified text from a selected data range.
2. Get Chart – Retrieves chart information from an Excel sheet.
3. Insert Chart – Allows users to create charts in an Excel sheet based on the selected data range.
4. Change Pivot Data SourceUpdates the data source of an existing Pivot Table.
5. Filter Pivot TableApplies filters to Pivot Table data.
6. Update Chart: A parent activity that groups multiple chart update actions, including:
a. Update Chart Title – Updates the chart title.
b. Change Data Source – Changes the chart’s data source.
c. Update Axis Title – Updates the axis titles.
d. ShowHide Legend – Toggles the visibility of the chart legend.
e. ShowHide Data Labels – Toggles the visibility of data labels.
f. Update Axis Bounds – Modifies the minimum and maximum bounds of chart axes.

v.1.1.8

This version brings bug fixes and enhancements to Excel automation.

Bug Fix

Auto Fill Range – Resolved an issue reported in production where the Auto Fill Range activity was not functioning for files in the “.xls” format. This issue has been fixed, ensuring seamless operation across supported file types.

New Activities

This release introduces three new activities to enhance Excel automation:

  • Create Table: Automate the creation of structured tables in Excel.
  • Sort Table: Easily sort table data based on specified criteria.
  • Filter Table: Apply filters to tables to streamline data analysis

v.1.3.0

This version brings new addition of activities to Excel automation.

New Activities

Below are the activities released:

Released Date: Jan-24-2025

AppendRange

This activity allows the user to append the specified data table to an existing workbook in Excel. It functions within the Excel Scope activity.

Properties

INPUT

Datatable: * This parameter specifies the input datatable to append to the chosen sheet and accepts values in the “Datatable” datatype. 

SheetName: * Specify the “SheetName” where the data will be appended. This parameter accepts values in the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean”.
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

AutoFillRange

This activity allows users to automatically fill specified ranges in an Excel sheet, including predefined formulas. It operates within the Excel Scope activity.

Properties

INPUT

Destination Range: *Specify the “range” where the data should be auto filled in the designated sheet. This parameter accepts values in the “String” data type. 

Sheet Name: *Specify the “SheetName” where the data needs to be processed. This parameter accepts values in the “String” datatype.”

Source Range: *Specify the source range from which the values will be copied. The input for this range must be provided in the “String” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Utilization of AutoFillRange

Download the sample excel sheet. 

1. To fill a range with a single cell value:

For example, let’s say we have a column titled “Remarks,” and we want to auto-fill it with the value “20.”

Steps:
a. Add the “AutoFill Range” activity, ensuring it is used within the “Excel Scope.”
b. Specify the “Source Range” as C3.
c. Specify the “Destination Range” as C3:C10.
d. Provide the sheet name and execute the activity.

Result: The range C3:C10 will be auto filled with the value 20.

2. To auto-fill a range with a predefined formula for incrementing values:

For example, let’s say we have a column titled “Remarks,” and we want to increment values across the range. (Refer to the attached sheet.)

Steps:
a. Add the “AutoFill Range” activity, ensuring it is used within the “Excel Scope.”
b. Specify the “Source Range” as C2:C10.
c. Specify the “Destination Range” as C2:C10.
d. Provide the sheet name and execute the activity.

Result: The range C2:C10 will be auto filled with incremented values based on the predefined formula.

Change Pivot Data Source

This activity allows users to update or modify the data source of an existing Pivot Table. It is used when the underlying data range, worksheet, or datatable has changed and the Pivot Table needs to reflect the updated source data. It must be used within the Excel Scope activity.

Properties

Input

Source Sheet Name: * Specifies the name of the worksheet where the existing Pivot Table is located. It accepts values of the String data type.

Pivot Table Name: * Specifies the name of the Pivot Table which needs to be updated. It accepts values of the String data type.

New Source Sheet Name: * Specifies the name of the worksheet from which the new data should be fetched to update the existing Pivot Table. It accepts values of the String data type.

Range: * Specifies the data range from the new source sheet to be used for updating the existing Pivot Table. It accepts values of the String data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Change Data Range

This activity can be used only within the Update Chart scope. It helps the user to update the data range for the existing chart created in the excel sheet.

Properties

INPUT

Range: *Specify the “Range” to read the data in the specified excel sheet, and it accepts values in the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow. 

ClearWorksheet

This activity enables the user to clear data from a specific worksheet. It operates within the Excel Scope activity.

Properties

INPUT

SheetName: *Specify the “SheetName” to clear the data from the worksheet, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean”.
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

CreateWorksheet

This activity helps the user to create a new worksheet. It functions within the Excel Scope activity.

Properties

INPUT

SheetName:  *Specify the “SheetName” to create the worksheet and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean”.
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Create Pivot Table

This activity enables users to create a pivot table from a designated table in a specified Excel sheet. It must be used within the ‘Excel Scope’ activity.

Properties

INPUT 

Destination Cell: Specify the exact cell location in the destination sheet where the pivot table should be placed. This parameter accepts input in the String data type (for example, “A1” or “B5”).

Destination Sheet Name: Specify the “Sheet name” where the pivot table should be created from the source table. This parameter accepts input in the String data type.

Layout: Specify the display format of the pivot table by selecting a layout option from the dropdown.
a. Compact Layout: Shows multiple row fields in a single column with indentation to represent hierarchy and save space.
b. Tabular Layout: Displays each row field in its own column, creating a clear table format for analysis.
c. Outline Layout: Displays row fields in separate columns and groups related data together, with subtotals shown for each group.

Overwrite Table Name: Select this checkbox to overwrite an existing pivot table with the same name in the destination sheet. When selected, the existing pivot table is replaced; when cleared, the existing pivot table is retained.

Pivot Table Name: Specify a name for the pivot table to be created. This parameter accepts input in the String data type.

Source Range: Provide the data “Range” from the source sheet to create the pivot table. This parameter accepts values in the String data type (for example, “A1:D100”).

Source Sheet Name: Specify the sheet name from which the pivot table should be created. This parameter accepts input in the String data type.

Values Added As: Specify how the values should be displayed in the pivot table by selecting an option from the dropdown (Columns or Rows).

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Create Table

This activity allows users to create a table from the specified range in the Excel sheet. It should be used within the “Excel Scope” activity.

Properties

INPUT

Range: *Provide the “Range” from which the table should be created in the specified sheet. This parameter accepts values in the “String” data type.
Note: If the specified range does not contain any values, a blank table will be created in the sheet.

SheetName: *Specify the “SheetName” where the table needs to be created, and it accepts values in the “String” datatype.

TableName: This parameter indicates to provide a name for the table to be created in “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Copy Paste Range

This activity enables the user to copy a specified range, including values, tables, cell formats, and formulas, and paste it into a designated sheet. It must be used within the “Excel Scope” activity.

Properties

INPUT

Source SheetName: *Specify the “SheetName” from which the range of values needs to be copied, and it accepts value in “String” datatype.

Source Range:  *Specify the range of cells from the source sheet to be copied and it accepts values in “String” datatype.

Destination Sheet:  *Specify the destination sheet name where the range of values to be pasted and it accepts values in “String” datatype.

Destination Cell:  *Specify the “cell” number from the destination sheet to paste the values and it accepts values in “String” datatype.

Options: This parameter allows you to choose what to be read and copied from the range of values. Select the values from the drop-down, 

Value: Allows to copy and paste only the values from the specified range. 
Formula: Allows to copy and paste values along with their formulas from the specified range.
Number Format: Allows to copy and paste the numeric values along with their number formatting, such as currency, percentage, or decimal places.
Cell Format: Allows to copy and paste the cell formatting, including font styles, background colors, borders, and alignment, without copying the actual cell values or formulas.
All: Allows you to copy and paste everything from the specified range, including values, formulas, number formatting, and cell formatting to the destination sheet.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

DeleteWorksheet

This activity enables the user to delete a specific sheet from an Excel workbook. It operates within the ‘Excel Scope’ activity.

Properties

INPUT

Sheetname: *Specify the “SheetName” where the worksheet to be deleted, and it accepts values in the “String” datatype.”

MISC

Displayname: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

DeleteRange

This activity deletes a specific range of cells from a specified Excel sheet and operates within the “Excel Scope” activity.

Properties

INPUT

Range: *Provide the “Range” from the Excel sheet to be deleted. This parameter accepts values in the “String” data type.

SheetName: *Provide the “SheetName” to delete the range. This parameter accepts values in the “String” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Delete Table Column

This activity helps the user to delete the column from the specified table in the excel sheet. It must be utilized within the “Excel Scope” activity. 

Properties

INPUT

ColumnName: *Specify the name of the column to be deleted from the table and it accepts the values in “String” datatype. 

SheetName: *Specify the “SheetName” where the column to be deleted from the table, and it accepts values in the “String” datatype. 

TableName: *Specify the name of the table where the column to be deleted, and it accepts values in the “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Duplicate Sheet

This activity allows users to create a duplicate of an existing sheet within an Excel workbook. It operates within the ‘Excel Scope’ activity.

Properties

Input

Sheet to Duplicate: *Specifies the name of the sheet to be duplicated from the existing workbook. Accepts values in String datatype.

Rename To: *Specifies the new name for the duplicated sheet. Accepts values in String datatype.

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ExcelToDatatable

This activity helps the user to convert the “Excel” sheet into “Datatable” format. It functions within the Excel scope activity.

Properties

INPUT

IncludeColumnHeader:Include the “Column Headers” from the Excel sheet when converting the data to the “DataTable” data type. If left blank, column headers will not be included in the conversion.

Sheet Name: *Provide the “SheetName” from which the data is to be converted. This parameter accepts values in the “String” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: *It helps to view the output as converted sheet in “Datatable” format and returns the values in “Datatable” datatype.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ExecuteMacro

This activity allows the user to execute a pre-existing “Macro” method in the specified Excel file. It operates within the “Excel Scope” activity and requires the file format to be “.xlsm”.

Properties

INPUT

MethodName: *Provide the “Macro” method name from the Excel sheet. This parameter accepts values in the “String” data type.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow. 

What is “Macro” method and why is it needed?

In Excel, the term “macro” refers to a recorded sequence of actions or a set of Visual Basic for Applications (VBA) code that automates tasks.

Benefits:

1. Macros can automate repetitive tasks in Excel, such as data formatting, calculations, or data import/export. 
2. It is useful for performing complex calculations or data manipulations that may be impractical or error-prone to do manually.
3. It can create user interfaces (forms or dialog boxes) to interact with Excel users, making it easier for non-technical users to perform specific tasks.

How to create “Macro” in Excel sheet?

1. Open or create a blank excel sheet.
2. Now, select the “View” menu on the top of the sheet.
a. Here, you will find the “Macro’s” as the last option on the Menu.
3. Select the “Macro’s” drop-down menu, it will display a context menu.
a. Here we are going to choose the “View Macros” from the drop-down.
b. You can also record the steps that needs to be automated using the “Record Macro” option and provide the name in the “ExecuteMacro” activity.
4. Once you click on the “View Macros” option, a dialog box will appear on the screen.
a. Here, provide a name for the “Macro” in the box as “Welcome Message”.
b. Now, the “Create” option will be enabled, click on it to write the code.
c. The VBA code window appears on the screen.
d. Here I am providing a sample VBA code as “MsgBox “Hello Everyone! Welcome to Robility !””.
e. Now, save “Excel with macro enabled workbook extension” and close it.
5. That’s it, a simple Macro code has been created. 

ExcelScope

The “ExcelScope” activity serves as the scope for all other activities within this feature. All the functionalities which include creating new data, inserting content, deleting entries, extracting the data, writing data, and executing macro functions will be performed within this scope.

The Excel application should be closed during the runtime. 

Properties

INPUT

CreateNewWorkbook: Indicates whether to create a new workbook at runtime. You can check this box if required. If left unchecked, it will not be applied.

ExcelPath: *Specifies the “Path” of the Excel file for automation. To select the file, click the three dots next to “FilePath” in the activity. Alternatively, you can hardcode the path in a “String” variable or manually enter it as a “String” value. 

Password: Provide the “Password” to securely access the specified Excel sheet at runtime. This field accepts values in the “String” data type.

MISC

Body: Gets auto filled once the “Activity” is dropped into the body.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

*Represents Mandatory field to execute the workflow. 

Filter Pivot Table

This activity allows users to apply filters to a specified Pivot Table by selecting one column (field) names. It is used to refine and display only the required data within the Pivot Table. It must be used within the “Excel Scope” activity.

Properties

Input

Sheet Name: *Specifies the name of the worksheet where the Pivot Table is located. It accepts values of the String data type.

Pivot Table Name: *Specifies the name of the Pivot Table within the selected sheet that needs to be filtered. It accepts values of the String data type.

Column Name: *Specifies the name of the Pivot Table column to apply the filter, along with the condition defined in the configuration.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Options

Configure Filter: Enables configuring a filter condition where the selected column value is matched against the specified value.

Disable filter: Removes the applied filter from the selected column.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Filter Table

This activity allows users to filter table values based on a specified column in an Excel sheet. It must be used within the “Excel Scope” activity. 

Properties

INPUT

Sheet Name: *Specify the sheet name where the filter options will be applied to the specified table. This field accepts values in the “String” data type, which can either be hardcoded or assigned to a “String” variable.

Table Name: *Specify the name of the table where the filter options will be applied. This field accepts values in the “String” data type, which can be either hardcoded or assigned to a “String” variable.

Column Name: *Specify the name of the column to apply the filter options. This field accepts values in the “String” data type, which can be either hardcoded or assigned to a “String” variable.

FilterOptions: *Provide the filter options to be applied to the specified column. This parameter accepts values in the “Array of String” data type, which can be either hardcoded or assigned to an array of “String” variables.
Note: You can specify a single filter value or multiple values, e.g., {“100”, “150”}.
 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Find Or Replace Value

This activity allows users to search for a specified value in an Excel sheet and replace it with another value. It must be used within the Excel Scope activity.

Properties

INPUT

Look In: Specifies the option to search within the provided range in the sheet.
Available options:

1. Values
2. Formulas

Match Case: Ensures that the search matches the case (uppercase or lowercase) of the provided value exactly.

Match Entire Cell Contents: Enables matching the entire cell content instead of partial matches.

Operation: Specifies the operation to be performed in the Excel sheet.
Available options:

a. Find: Finds and returns the first matching cell value.
b. Find All: Finds and returns all matching cell values.
c. Replace: Finds and replaces the first matching cell value.
d. Replace All: Finds and replaces all matching cell values.

Range: *Specifies the range in the Excel sheet where the operation should be performed. Accepts values in String datatype.

Replace With: *Specifies the value to replace the found text with. This parameter is applicable only when Replace or Replace All is selected. Accepts values in String datatype.

Sheet Name: *Specifies the sheet name where the operation is to be performed. Accepts values in String datatype.

Value to Find: *Specifies the input value to be searched within the Excel sheet. Accepts values in String datatype.

MISC

Display Name: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”

True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Found At: Returns the output as the cell value where the operation has been performed in String datatype.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”

True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Get Chart

This activity allows users to retrieve an existing chart from a specified worksheet in an Excel file and either save it as an image or copy it to the clipboard. It must be used within the Excel Scope activity.

Properties

Input

Action: Specifies the action to be performed when retrieving the chart.

a. Save as picture
b. Copy to clipboard

Chart Name: *Specifies the name of the chart to be retrieved from the worksheet. It accepts values of the String data type.

Sheet Name: *Specifies the name of the worksheet where the chart is located. It accepts values of the String data type.

File name: Specifies the full file path and name (including extension) where the chart image should be saved. This option is enabled only when Save as picture is selected.

Replace existing file: When enabled, the existing file with the same name will be replaced.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Get Table Range

This activity allows the user to retrieve the range of a table or pivot table from a specified Excel sheet. It must be used within the “Excel Scope” activity.

Properties

INPUT

Sheet Name: *Specify the sheet name from which the table range should be retrieved, and it accepts values in String datatype, either hardcode the value or assign it to a variable of the String datatype.

Table Name: *Specify the name of the table to extract the range and it accepts values in String datatype, either hardcode the value or assign it to a variable of the String datatype.

OPTIONS 

IsPivot: This parameter lets you specify if the table is a pivot table. By default, this option is not selected.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Range: It provides the result of the range retrieved from the specified sheet and returns values in “String” datatype. 

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Get Selected Range

This activity helps the user to retrieve the range from the selected range of cells. It must be utilized within the “Excel Scope” activity.

Properties

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Range: It allows you to view the range extracted from the excel sheet and returns the value in “String” datatype. 

InvokeVBA

This activity enables the user to execute custom VBA code directly within an Excel sheet. It must be used within the “Excel Scope” activity and supports execution in both “.xls” and “.xlsx” file formats.

Pre-requisites

This activity allows the execution of VB script only if access is enabled in the Excel sheet. Follow the steps below to enable it:
1. Open Excel and navigate to File → Options → Trust Center → Trust Center Settings.
2. Under Macro Settings, select the checkbox for Trust Access to the VBA project object model.
Ensure this setting is enabled before using the activity.

Properties

Input

VBScriptPath: *Indicates to provide the VB script path and it accepts values in “String” datatype. You can either hardcode the values or use a variable of the “String” datatype. 

MethodName: *Specify the “Method name” from the script to be called and execute the functionality. It accepts values in “String” datatype, either hardcode the values or use a variable of the “String” datatype. 

MethodParameters: This parameter specifies the input arguments to be provided for the specified method name.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean”.
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Output: This parameter allows you to view the output of the script execution and result from the script. 

* Represents mandatory fields to execute the workflow.

Example 

In the following example, the “Invoke VBA” activity is utilized to highlight the text based on the length in the provided sheet. Here we are highlighting the text value that exceeds more than 10 characters in red in the sheet. Refer the attached sample VBS code. 

HighlightText VB script

Note: Download the above VBS code and save it as “.vbs” extension type. 

1. Drag and drop the “Excel Scope” activity into the workflow and choose the downloaded excel sheet path to automate. 
2. Add the “InvokeVBA” activity within the body of the excel scope.
a. Now, choose the downloaded “VB script path”. 
b. Enter the method name as “HighlightLongTextWithParams”. Refer the attached code. 
3. Before moving to the “Method parameters”, create 2 variables as below. 
a. SheetName with “String” as datatype to provide the sheet name. 
b.  TextLength as “Integer” as dataype to provide the length as “10”.
c. Now, add these values to the “MethodParameters” property. 
4. Save and execute the workflow. 

InsertandDeleteColumn

This activity allows the user to add or delete the number of specified columns from the specified excel sheet. It must be used within the “Excel Scope” activity.

Properties

INPUT

Action: Indicates to choose the action from the drop-down.
Insert: Helps to insert number of specified columns in the specified sheet.
Delete: Helps to delete the number of specified columns from the sheet.

By default, it will be configured to “Insert” option.

NumberOfColumns: *Specify the number of columns to be added or deleted in the provided sheet. This parameter accepts values in the “Integer” data type, which can be either hardcoded in an “Integer” variable or directly entered as an “Integer” value

SheetName: *Specify the “SheetName” to insert/delete the column, and it accepts values in the “String” datatype.”

StartingColumn: *Specify the “Position” of the column to insert/ delete from the provided sheet. The index position of the column begins from “0” and it accepts values in “Integer” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

InsertandDeleteRow

This activity allows the user to add or delete the number of specified rows from the sheet. It must be used within the “Excel Scope” activity.

Properties

INPUT

Action: Indicates to choose the action from the drop-down.
Insert: Helps to insert number of specified rows in the specified sheet.
Delete: Helps to delete the number of specified rows from the specified sheet.  

By default, it will be configured to “Insert” option.

NumberOfRows: *Specify the number of rows to be added or deleted in the provided sheet. This parameter accepts values in the “Integer” data type, which can be either hardcoded in an “Integer” variable or directly entered as an “Integer” value. 

SheetName: *Specify the “SheetName” to insert/delete the rows. This parameter accepts values in the “String” datatype.”

Starting Of Row: *Specify the “Position” of the row to insert/ delete from the provided sheet. The index position of the row begins from “0” and it accepts values in “Integer” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Insert Table Column

This activity helps the user to add a new column to the specified table in the excel sheet. It must be utilized within “Excel Scope” activity. 

Properties

INPUT

ColumnName: *Specify the name of the column to be created in the table and it accepts the values in “String” datatype. 

Position: Specify the position where the column needs to be inserted in the table. It accepts ‘Integer’ values, which can be hardcoded or provided from an “Integer” variable.
If left blank, the column will be inserted at the end of the table. 

SheetName: *Specify the “SheetName” where the column needs to be inserted in the table, and it accepts values in the “String” datatype. 

TableName: *Specify the name of the table where the column needs to be created, and it accepts values in the “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Insert Chart

This activity allows users to generate a chart in an Excel sheet based on the selected data range. It must be used within the “Excel Scope” activity.

Properties

INPUT

Chart Category*: Specifies the chart category to be generated. Available options include:

• Area

• Bar

• Column

• Line

• Pie

• Scatter

Chart Type*: Specifies the chart type within the selected category. Examples include:

• Stacked Bar

• Clustered Bar

• 100% Stacked Bar

Sheet Name*: Indicates the name of the sheet containing the data and accepts input value of String datatype.

Data Range*: Specifies the data range from the sheet that will be used to create the chart and accepts the input value of String datatype.

Insert Into Sheet*: Specifies the sheet where the generated chart should be inserted and accepts the input value of String datatype.

Chart Name: Specifies to provide the name for the chart being created and accepts the input value of String datatype.

Height: Specifies the height of the chart and accepts an Int32 value.

Width: Specifies the width of the chart and accepts an Int32 value.

Left: Indicates the starting column position in the sheet where the chart will be placed and it accepts values in Int32 datatype. Position starts from 0.

Right: Specifies the starting row position in the sheet where the chart will be placed and accepts values in Int32 datatype. Position starts from 0.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Inserted Chart Name: Returns the name of the chart created in String datatype.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Lookup Range

This activity searches for a specific value within a range in the specified sheet and returns the corresponding cell value. It functions within the “Excel Scope” activity.

Properties

INPUT

SheetName: *Specify the “SheetName” from where the value needs to be found, and it accepts values in the “String” datatype. 

Range:  *Specify the range of values to be read from the specified sheet and it accepts values in the “String” datatype. 

Value: *Specify the input “value” to be found within the defined range, and it accepts values in “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

CellValue: This parameter allows you to view the cell reference value where the specified text is found and returns the value in “String” datatype. 

* Represents mandatory fields to execute the workflow.

ListToExcel

This activity helps the user to provide the values in list format to insert in the specified sheet. It must be used within the “Excel Scope” activity.

Properties

INPUT

Cell: *Indicates to provide the “Cell” reference to write the data and it accepts values in the “String” datatype.

ListData: *Indicates to provide the “List of data” to be inserted in the specified sheet and it accepts values in the “List Of String” datatype. 

SheetName: *Indicates to provide the “SheetName” to insert the data, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

ReadCell

This activity reads and extracts data from a specified cell in the specified sheet. It functions within the “Excel Scope” activity. 

Properties

INPUT

Cell: *Specify the “Cell” reference value to read the data from it, and it accepts values in the “String” datatype.

Sheet Name: *Specify the “Sheet Name” to read the data, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Text: It helps to view the output as the extracted value from the specified cell in “String” datatype. 

* Represents mandatory fields to execute the workflow.

ReadCellFormula

This activity helps the user to read and extract the formula from the specified cell. It functions within the “Excel Scope” activity.

Properties

INPUT

Cell: *Specify the “Cell” reference value to read the formula from it, and it accepts values in the “String” datatype.

Sheet Name: *Specify the “SheetName” to read the formula, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Formula: It helps to view the output as the extracted formula from the specified cell in “String” datatype. 

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ReadRange

This activity helps the user to read and extract the range of values from the specified sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

Range: *Specify the “Range” to read the data in the specified excel sheet, and it accepts values in the “String” datatype.

Sheet Name: *Specify the “SheetName” to read the data, and it accepts values in the “String” datatype.”

MISC

AutomaticCalculations: This parameter helps you to perform “Automatic calculations” if any formulas are available in the excel sheet. If left unchecked, it will not be considered.

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

IncludeColumnHeader: Include the “Column Headers” from the Excel sheet when extracting the data. If left blank, column headers will not be included.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: *It helps to view the output as extracted range in “Datatable” datatype. 

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

 * Represents mandatory fields to execute the workflow.

ReadColumn

This activity reads and extracts the specified column value from the specified sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

Include Column Headers: *Include the “Column Headers” from the Excel sheet when extracting the data. If left blank, column headers will not be included. 

Sheet Name: *Specify the “Sheet Name” to read the data and it accepts values in the “String” datatype.”

Start Column: *Specify the “Position” of the column to read the data from the provided sheet. The index position of the column begins from “0” and it accepts values in “Integer” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Datatable: *It helps to view the output as extracted range in “Datatable” datatype. 

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ReadRow

This activity helps the user to read and extract the specified row from the specified sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

Sheet Name: *Specify the “Sheet Name” to read and extract the row and it accepts values in the “String” datatype.”

Start Row: *Specify the “Position” of the column to insert/ delete from the provided sheet. The index position of the column begins from “0” and it accepts values in “Integer” datatype. 

MISC

DisaplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DataTable: * It helps to view the output of the activity as extracted row in “Datatable” datatype. 

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

ReadWorkbook

This activity helps the user to read all the sheets from the specified excel. It functions within the “Excel Scope” activity.

Properties

INPUT

Include Column Header: Include the “Column Headers” from the Excel sheet when extracting the data. If left blank, column headers will not be included.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

DataSet: *It helps to view the output as extracted data from all the sheets in “Dataset” value.

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

SheetNames: It helps to view the output as the list of sheets extracted from the specified excel workbook and it returns values in “list of string” datatype. 

* Represents mandatory fields to execute the workflow.

Refresh Pivot Table

This activity allows the user to refresh an existing pivot table in the specified sheet. It functions within the “Excel Scope” activity

Properties

INPUT

Pivot Table Name: *Specify the name of the pivot table to be refreshed, and it accepts values in the String datatype. 

Sheet Name: *Specify the sheet name where the pivot table needs to be refreshed, and it accepts values in String datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Remove Duplicates Range

This activity allows the user to remove duplicate rows from the specified range of cells in the sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

SheetName: *Specify the “SheetName” where the duplicate rows to be removed, and it accepts values in “String” datatype. 

Range: *Specify the “Range” from the specified sheet, and it accepts values in the “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Show / Hide Data Labels

This activity can be used only within the Update Chart scope. It allows users to show or hide the data labels in an existing chart created in the Excel sheet.

Properties

Input

Show Legend: When this option is enabled, the data labels are displayed on the chart. When disabled, the data labels are hidden.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

Show/ Hide Legends

This activity can be used only within the Update Chart scope. It allows users to show or hide the legend in an existing chart created in the Excel sheet.

Properties

Input

Show Legend: When this option is enabled, the legend is displayed on the chart. When disabled, the legend is hidden.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

SecureWorkbook

This activity lets the user protect or unprotect the excel workbook with a password. It functions within the Excel Scope activity.

Properties

INPUT

Password: *This parameter helps you to set passwords for the workbook and it accepts values in the “String” datatype.

Type: Indicates to choose the type from the drop-down.
Protect: Helps to lock the workbook. 
Unprotect: Helps to unlock the workbook.

By default, it will be configured to “Protect”.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

SetCellColor

This activity helps the user to set “color” either to the “Text” or to the specified “Cell” in the specified sheet. It functions within the Excel scope activity.

Properties

INPUT

Cell:  *Specify the “Cell” reference value to set the color, and it accepts values in the “String” datatype.

CellColor: *This parameter helps you to choose a wide range of colors to be applied in the font. You can choose the colors from the drop-down.

FormatStyle: Choose whether the “Style” should be applied to the text or the cell. Select the desired option from the drop-down menu.
Font: Allows applying color to the text within a cell.
Background: Enables applying color to the entire cell, including its background.

By default, it will be configured to “Font”.

SheetName: *Specify the “SheetName” to set the color against the cell, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow. 

Sort Table

This activity helps the user to sort the specified table values in Ascending or descending order in the specified sheet. It functions within the “Excel Scope” activity and only table values can be sorted. 

Properties

INPUT

Column Name: *Specify the column name where the data needs to be sorted, and it accepts values of the String datatype. 

Order: *This parameter indicates to choose the order in which the values need to be sorted. Select the values from the drop-down, 
Ascending: Sorts the values from smallest to biggest order (A to Z). 
Descending: Sorts the values from biggest to smallest order (Z to A). 

Sheet Name: *Specify the sheet name where the table is available, and it accepts values of the String datatype. 

Table Name: *Specify the table name where the column needs to be sorted, and it accepts values of the String datatype.  

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Text to Columns

This activity helps the user to insert columns with the text specified from the chosen data range in the excel sheet. It must be used within the “Excel Scope” activity.

Properties

Input

Sheet Name*: Indicates to provide the “SheetName” to insert the data, and it accepts values in the “String” datatype.”

Source Range*: Specifies to provide the source range from where the text needs to be retrieved and it accepts values in “String” datatype.

Destination*: Specifies to provide the destination column range where the text needs to be inserted and it accepts values in “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Options

Delimiter Options

Comma: Splits the text into columns wherever a comma ( , ) is found.

Semi Colon: Splits the text into columns wherever a semicolon ( ; ) is found.

Space: Splits the text into columns wherever a space character occurs.

Tab: Splits the text into columns wherever a tab character is present.

Line Break: Splits the text into columns at each line break (new line) in the text.

Other: Allows users to specify a custom delimiter character not listed in the default options.

Other Delimiter: Specifies the custom character to be used as the delimiter when the Other option is selected.

Consecutive Operator as One: When enabled, treat multiple consecutive delimiters as a single delimiter during the split operation.
Note: You can use this option when your data has inconsistent spacing, empty columns or extra delimiters.

Data Type: Specifies to choose the option on how the text should be split into columns.

• Delimited: Splits text based on the selected delimiter(s).

• Fixed Width: Splits text based on a fixed number of characters per column.

Number of Characters per Column: Specifies the number of characters to be used for each column when Fixed Width is selected. This option is applicable only for the Fixed Width data type.

Text Qualifier: Specifies a character that encloses text values. Text within the qualifier is treated as a single value even if it contains delimiters.

• None: No text qualifier is applied.

• Double Quote ( ” ): Treats text enclosed in double quotes as a single value.

• Single Quote ( ‘ ): Treats text enclosed in single quotes as a single value.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow

Update Axis Bounds

This activity can be used only within the Update Chart scope. It allows users to update the range of the chart axes (X-axis or Y-axis) to improve data visibility and readability.

Properties

Input

Axis: *Specifies the axis to be updated in the selected chart. Choose one of the following options from the dropdown:

a. Horizontal (X-axis)
b. Vertical (Y-axis)

Min bound: *Specifies the starting value of the selected axis range and it accepts values of the Int32 data type.

Maximum Bound: *Specifies to provide the maximum value to end with the chart axis range. It accepts values in “Int32” datatype.  

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Update Axis Title

This activity can be used only within the Update Chart scope. It helps the user to update the axis title for the existing chart created in the excel sheet.

Properties

Input

Axis: *Specifies the user to choose where the axis title needs to be added.

Horizontal: Adds the specified title horizontally
Vertical: Adds the specified title vertically.

Show Axis Title: *Enables or removes the axis title from horizontal or vertical. The user can choose “Yes” to display the title or “No” to hide it.

Title: Specifies to provide the name of the title to be changed/added and it accepts values in String datatype. This option will be enabled only when the “Show title” is enabled.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

Update Chart

This activity allows users to modify an existing chart by performing actions such as updating the data range, axis titles, axis bounds, chart title, and showing or hiding legends and data labels.

It functions as a scope activity for all chart-related modifications, and this activity must be placed inside the Excel Scope.

Properties

Input

Sheet Name: *Indicates to provide the “SheetName” to insert the data, and it accepts values in the “String” datatype.”

Chart Name: *Specifies to provide the “Chart name” generated and it accepts values in “String” datatype.

Add the modification from the below button:  Allows users to choose and add the modification action to be performed. Selecting the action will automatically include the child activity into the scope.

Modification Options

a. Update Chart Title: Updates the main title of the chart.
b. Update Axis Title: Modifies the title of the X-axis or Y-axis.
c. Update Axis Bounds: Adjusts the minimum and maximum values displayed on the chart axes.
d. Change Data Range: Updates the existing data range with a new one for the chart.
e. Show/Hide Legend: Displays or removes the chart legend.
f. Show/Hide Data Labels: Shows or hides data labels on the chart for better visualization.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Update Chart Title

This activity can be used only within the Update Chart scope. It allows the user to update the title of an existing chart in the Excel sheet.

Properties

INPUT

Show title: * Enables or removes the chart title. The user can choose “Yes” to display the title or “No” to hide it.

Title: Specifies to provide the name of the title to be changed and it accepts values in String datatype. This option will be enabled only when the “Show title” is enabled.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

WriteCell

This activity helps the user to provide the “Input” text to the specified cell in the sheet. It functions within the Excel scope activity.

Properties

INPUT

Cell: *Specify the “Cell” reference value to write the data in it, and it accepts values in the “String” datatype.

InputString: *Specify the “Input” data to enter it in the specified cell value. It accepts input values in the “String” datatype.

SheetName: *Specify the “SheetName” to write the data, and it accepts input values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

WriteCellFormula

This activity enables the user to write any formula to a specified cell in the sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

Cell: *Specify the “Cell” reference value to insert the formula, and it accepts input values in the “String” datatype.

Formula: * Specify the “Formula” that needs to be inserted in the specified cell. This parameter accepts input values in the “String” datatype.

Sheet Name: *Specify the “SheetName” to enter the data, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

WriteRange

This activity helps the user to provide the text to the specified range of cells in the sheet. It functions within the “Excel Scope” activity.

Properties

INPUT

Datatable: *Specify the “Datatable” value/ variable that stores the input value to be written in the specified sheet. This parameter accepts input values in “Datatable” datatype.

Include Column Headers: Include the “Column Headers” from the Excel sheet when writing the data in the sheet. If left blank, column headers will not be included.

Range: *Specify the “Range” to write the data in the specified sheet, and it accepts values in the “String” datatype.

Sheet Name: *Specify the “Sheet Name” to write the data, and it accepts values in the “String” datatype.”

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

* Represents mandatory fields to execute the workflow.

GetWorkbookSheet

This activity helps the user to retrieve the sheet name from the specified excel workbook. It functions within the “Excel Scope” activity. 

Properties

INPUT

Index: *Specify the “Position” of the sheet from the Excel workbook. The index position of the column begins from “0” and it accepts values in “Integer” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Sheet: This parameter retrieves the sheet name from the specified position in the workbook and returns the value in “String” data type.

* Represents mandatory fields to execute the workflow.

GetWorkbookSheets

This activity helps the user to retrieve all the list of sheets available in the Excel workbook. It functions within the “Excel Scope” activity. 

Properties 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnErrorSpecify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

Output

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Sheets: This parameter retrieves the list of sheets from the specified workbook and returns the values in “List of String” data type.

Example

In the following example, I am using a sample excel sheet to retrieve the list of sheets. 

Click here to get the sample excel file. 

Steps to execute the bot:

1. Open an existing solution. 
2. Drag and drop the “ExcelScope” activity into the workflow. 
3. Double click on the activity and choose the input excel file attached. 
4. Now, place the “GetWorkbookSheets” activity inside the body of excel scope activity. 
a. Navigate to the “Sheets” in the output section of the “GetWorkbookSheets” to create a variable. 
b. Here, the variable is created as “List_Sheets” by pressing “CTRL +Q”.  
5. Next, place the “ForEach” next to the “GetWorkbookSheets”. 
a. Choose the “TypeArgument” as “String” since we are iterating and retrieving the list of string values. 
b. Provide the values as “List_ Sheets”. 
c. Add a “Writelog” activity into the body of “ForEach” activity and provide the input as “item”. 
6. Now, save and execute the workflow. 

FS Automation

Introduction

File System (FS) automation involves automating interactions with files and folders on a computer’s file system. This also involves managing and manipulation of files and directories inside a computer’s file system.

Supported File Systems

FS automation supports the following file systems:

1. Local Files: Files stored within local folders on the system.
2. Shared Network Paths: Files located on shared network paths, if appropriate access permissions have been granted.

Use Cases

1. Data Ingestion and Extraction: Bots can automatically ingest data from various file formats, such as spreadsheets or text files, and extract relevant information for further processing.
2. File Transfer and Synchronization: Automate the transfer of files between different systems or directories, ensuring data synchronization and maintaining consistency.
3. Data Backup and Archiving: Implement automated processes to regularly back up important files and archive data based on predefined criteria.
4. File Monitoring and Alerts: Implement automated monitoring of specific folders or files, triggering alerts or actions when certain conditions are met, such as the arrival of a new file.
5. Document Management: Automate document-related tasks, such as renaming files, organizing them into folders.

Release Notes

v.2.1.6

This release includes enhancements to dependent DLLs.

Enhancement

All dependent DLLs have been upgraded to the latest stable versions, enhancing security, performance, and workflow reliability. This update ensures smoother execution and maintains compatibility with both existing and new workflows.

Released Date: 09/03/2026

v.2.1.5

This release includes enhancements to the NLog package.

Enhancement

The NLog package has been upgraded to version 6.0.7, delivering improved logging reliability, performance, and compatibility. The update supports both existing and new workflows.

Released Date: 09/02/2026

v.2.1.1

This release includes bug fixes and enhancements.

Bug Fixes

Previously, users encountered exceptions when attempting to retrieve folder or file information from shared path folders. This issue has been resolved for the following activities:

1. Get Folder Information
2. Get File Information

Enhancements

1. Introduced two new properties “Accessibility” and “IsValidPath” to the below activities, 

a. Get Folder Information
b. Get File Information

2. The Size property has been removed, and the folder size is now displayed directly for the provided folder path at “SizeOnDisk” property.

Released date: 23-Jan-2025. 

Beep

This activity helps the user to generate a beep sound or notification on the local system.

Properties

INPUT

Duration: *Specify the duration for the beep sound to be played. It accepts the values in “Milliseconds”. By default, the values will be set to 1000ms.

Volume: *Specify the number here to set the volume of the sound and it accepts the values in “Milliseconds”. By default, the values will be set to 1000ms. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: This parameter allows you to view the execution status of the activity and returns a value in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown

* Represents mandatory fields to execute the workflow.

CopyFile

This activity helps the user to copy file from the respective location to another location specified with it. We can also copy read-only files from one location to another. We can also copy a file from a shared folder, granted we have access to it.

Properties

INPUT

From:* Specify the file path of the file to be copied. You can also select the file manually by selecting the three dots adjacent to the path. This accepts only “String” datatype.

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen.
By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

To:Specify the file path to where the selected file needs to be pasted. You can also select the file manually by selecting the three dots adjacent to the activity. This accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Copy Folder

This activity is used to copy a folder from one location to another specified location even if the folder is in read-only format. We can also copy a file from a shared folder, granted we have access to it.

Properties

INPUT

From:Indicates to specify the path in which the folder to be copied is located. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

IncludeSubfolder: Check this box if the sub folders within the folders must be copied. If this box is left unchecked, only the files in the folder are copied to the given location and the folders inside this folder are not copied. By default, it is unchecked.

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen.
By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

To:Specify the file path to where the selected file needs to be pasted. You can also select the file manually by selecting the three dots adjacent to the activity. This accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

CreateDirectory

This activity helps the user to create a new folder (Directory) in the specified path of the system.

Properties

INPUT

Name: *Provide a name for the folder to be created within double quotes. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

Path: *Specify the path where the folder needs to be created in double quotes or select it manually. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

CreateFile

This activity helps the user to create a new file in the specified location. We can also create a file in a shared folder, granted we have access to it.

Properties

INPUT

Extn:* “Specify the desired file type by selecting the appropriate extension for creation. From the dropdown, choose one of the following:
Txt: This option generates a Notepad document. It is the default selection.
Xlsx: This option enables the creation of an Excel spreadsheet document.
Docx: This option generates a Microsoft Word document compatible with versions from 2007 onwards.
Doc: This option enables the creation of a Word document for versions before 2007.”

FileName:Specify the name of the file to be created. It accepts the “String” datatype. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

FilePath:* Indicates to provide the path where the folder needs to be created. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

OverWright: When this parameter is checked, it allows you to overwrite the file. If the parameter is unchecked, the file will not be overwritten. By default, this parameter is unchecked.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

DeleteDirectory

This activity helps the user to delete a folder (Directory) in the specified path. We can also delete a directory from a shared folder, granted we have access to it.

Properties

INPUT

DirectoryPath:* Specify the path from where the directory/folder needs to be deleted. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen.
By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

To:Specify the file path to where the selected file needs to be pasted. You can also select the file manually by selecting the three dots adjacent to the activity. This accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

DeleteFile

This activity helps the user to delete a file from the specified location. We can also delete a file from a shared folder, granted we have access to it.

Properties

INPUT

FilePath:* Specify the path of the file which has to be deleted. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

ForEach

This activity helps the user to perform bulk file operations in loop to read, extract, move and perform other operations with it. 

Properties

INPUT

Extension: This parameter indicates to provide the type of extension that needs to be extracted particularly. It accepts “String” datatype. You can either hardcode the values in “String” datatype or provide the value in String format. 

RootDirectory: *Indicates the provide the folder path for execution of file operations. It offers multiple ways to choose the folder:

1. Browse Option: When selecting the “Browse” option, it will automatically list the folders available for the specified account. The user must manually select the spreadsheet each time when using this option.
2. Variable option: You also have the option to provide the values in variable format. You can either hardcode the value in String datatype or provide the values in String format.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Output: It helps to view the output of the activity as the result of File path. It returns the values in “String” datatype. 

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow.

Property Configuration

Root Directory: Indicates the provide the folder path for execution of file operations.

Type/Extension (Optional): Users can limit the scope for the file system operation by including the file extensions here. The input should be string with only comma for separating multiple file extensions. Example jpg,png.

Include Subfolders (Optional): When enabled users can increase the scope of file operations by including all the sub folders under the selected root directory.

Skip and continue for access denied (Optional): This will log all the access denied errors and continue to the next file.

Advanced Options (Optional):

File Name: Use this option to configure an advanced filter to specify any conditions for the files to be read.
     a. And / OR condition: The “AND” function returns results that meet all specified conditions, while the “OR” function returns results that meet any of the specified conditions.

Size: Allows users to limit scope for file selection by its Size. Four conditions available equal to, Greater than, lesser than and range.

Created date: Allows users to limit the scope for file selection by file created date.  Four conditions available equal to, Greater than, lesser than and range.

Modified date: Allows users to limit the scope for file selection by file modified date.  Four conditions available equal to, Greater than, lesser than and range.

Limit number of files to: Integer input here is to limit the output file count to match this number.

GetFileInformation

This activity helps the user to retrieve detailed information about a specific file. It’s possible to obtain file information from a shared path as well, assuming access permissions are granted.

Properties

INPUT

FilePath: *This parameter specifies to provide the “Path” of the input file to extract the information. It accepts values in “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Accessibility: This parameter returns the accessibility status of the specified file in a Boolean datatype.
True: Indicates the file is accessible during automation.
False: Indicates the file is not accessible due to insufficient permissions

AccessTime: This parameter enables you to retrieve the last accessed time of the file and returns the values in “DateTime” data type displayed as 12-hour time format.

CreatedDateAndTime: This parameter helps you retrieve the “Date and Time” when the folder was created and returns the values in “DateTime” data type format. 

HiddenIt helps to identify whether the file is hidden or not and returns the values in “Boolean” data type. 
True: Indicates the file is hidden. 
False: Indicates the file is not hidden. 

IsValidPath: This parameter returns whether the specified path is valid or not in “Boolean” datatype. 
True: Indicates the folder path is valid. 
False: Indicates the folder path is not valid.

ModifiedTime: This parameter enables you to retrieve the “Date and Time” when the file was last modified, and it returns the values in “DateTime” data type format. 

ReadOnly: This parameter helps you determine whether the file is in read-only mode or not and returns the values in “Boolean” data type.
True: Indicates the file is in read-only mode. 
False: Indicates the file is not read-only mode. 

SizeOnDisk: It returns the size of the file in “Int64” data type. 

TypeOfFile: This parameter helps you identify the type of the provided file and returns the values in “String” data type.

UserPermission: It returns the list of users along with their permissions for this specific file in “DataTable” data type. 

* Represents mandatory fields to execute the workflow.

GetFolderInformation

This activity helps the user to retrieve detailed information about the specified folder. 

Properties

INPUT

FolderPath: *This field specifies the path of the folder from which the information needs to be retrieved. It accepts values in “String” datatype. 

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Accessibility: This parameter returns the accessibility status of the specified folder in a Boolean datatype.
True: Indicates the folder is accessible during automation.
False: Indicates the folder is not accessible due to insufficient permissions.

CreationDateTime: This parameter helps you retrieve the “Date and Time” when the folder was created in “DateTime” data type format. The output will be in a 12-hour format.

Files: It returns the list of files from the folder in “List of string” data type. 

Folder: It returns the list of sub folders available in the folder in “List of string” data type.

IsValidPath: This parameter returns whether the specified path is valid or not in “Boolean” datatype. 
True: Indicates the folder path is valid. 
False: Indicates the folder path is not valid. 

SharingEnabled: It returns whether sharing is enabled or disabled for the specific folder in “Boolean” data type.
True: Indicates the folder is enabled for sharing.
False: Indicates the folder is not enabled for sharing. 

SizeOnDisk: It returns the size of the folder in “Int64” data type. 

UserPermission: It returns the list of users along with their permissions for this specific folder in “DataTable” data type. 

* Represents mandatory fields to execute the workflow.

GetSpecialDirectory

This activity helps the user to access directory information for applications or files within a machine. It helps retrieve the path of a targeted folder for further action.

Properties

INPUT

SystemFolder:* This parameter displays the list of directories available in the system folder. You can choose the drop-down to get the special directory. By default, “Desktop” will be selected.

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen. By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

To:Specify the file path to where the selected file needs to be pasted. You can also select the file manually by selecting the three dots adjacent to the activity. This accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Path:A variable declared here is used to store information about the special directory. It is stored in the “String” data type.

Represents mandatory fields to execute the workflow

Exist

The “Exist” activity is employed to determine whether a specific file or directory exists in the designated path. We can also assess the existence status of a file or directory within a shared folder, granted we have access to it.

Properties

INPUT

Mode:* Select from the dropdown the option for which you want to check the existence status.
File: Choose this to check the existence status of a file.
Directory: Choose this to check the existence status of a directory. This is the default selection.

Path:* This field represents the path where the specified file or directory is located. You have the option to either hardcode the values in the “String” variable or pass the values as “String” datatype. This accepts only the “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

MoveFile

This activity facilitates the user in moving files from one location to another destination by specifying the path. It can also be employed to transfer files from a shared folder, provided that we have access to it.

Properties

INPUT

DestinationPath:* This parameter indicates to specify the “Path” to where the input files need. You can either hardcode the values in “String” datatype or can enter the values in “String” format. This parameter accepts the vales in “String” datatype.

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen.
By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

FilePathList:* This parameter indicates to specify the “Path” of the input files that needs to be moved. You can either hardcode the values in “Array of String” datatype or can enter the values in “Array of String” format. This parameter accepts the vales in “Array of String” datatype.(Refer the tips below)

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

RenameFile

This activity assists in renaming files within a designated folder. It’s also feasible to rename files within a shared folder, provided there is permission to access them

Properties

INPUT

FilePath:* Provide the name of the file along with the path that needs to be renamed. It accepts only “String” datatype.

NewFileName:* Indicate the new file name along with its path. Alternatively, we can opt for a different path to store the renamed file. It aceepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

RunningProcess

This activity assists the user in retrieving information about the currently running applications and processes, either for the current user or the entire system.

Properties

INPUT

UserOrSystem:* This parameter indicates to choose the specific option from the drop-down,
User: It retrieves the process list running against the user logged in credentials.
System: It retrieves the process list running against the system credentials.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

ProcessList: It helps to view the output of the activity as the processes running against the system or user specified in “Datatable” format. This field returns the output in “Datatable” datatype.

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

FileSystemTrigger

This activity helps the user monitor changes in a specified file or folder, such as the creation, deletion, or modification of files or folders. When such changes occur, the activity triggers the execution of a specific set of actions or a workflow.

Pre-requisites

1. This activity must be set as the initial activity in the workflow and cannot be used at the end or in the middle of the automation process.
2. Only one trigger activity is allowed per workflow and its sub-workflows. Multiple triggers are not supported.

Properties

INPUT

Extension: Indicates the file extension that needs to be filtered and monitored during workflow execution.
This parameter accepts values in the String datatype. You can either hardcode the values in “String” format or provide them in a “String” variable.

If left blank, all extension types will be considered.

IsIncludeSubfolders: When this option is checked, it enables monitoring of changes in the subfolders within the specified folder.
If left unchecked, subfolders will not be considered.

RootDirectory:* This parameter specifies the folder or directory path where the activity should monitor changes.
It accepts input values in the String datatype. You can either hardcode the values in a “String” variable or provide them in “String” format.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Conditions

The advanced filter option allows you to validate against any of the specified conditions and trigger the workflow based on the selected action. By default, the trigger is set to activate when a file is created. You can select multiple filters to validate and trigger the action.

File System Events: Indicates to choose on which event the bot needs to filter and monitor the type of change. The action will be triggered immediately when the chosen action is met,

  • All: If a file or folder is created, renamed, modified, or deleted in the specified root directory.
  • Created: If a file or folder is created in the specified root directory.
  • Renamed: If a file or folder is renamed in the specified root directory.
  • Modified: If a file or folder is modified in the specified root directory.
  • Deleted: If a file or folder is deleted in the specified root directory.

Notify Filters: Based on the filter type chosen, it will validate with the file system events above to trigger the action workflow.

  • File name: Changes to file\folder name in the specified root directory.
  • Directory name: Changes to Directory name in the specified root directory.
  • Attributes: Changes to file\folder attribute in the specified root directory.
  • Size: changes to file size in the specified root directory.
  • Last write: Changes to last write date\time in the specified root directory.
  • Last access: Changes to last access date\time in the specified root directory.
  • Creation time: Changes to creation date\time in the specified root directory.
  • Security: Changes to File\folder security in the specified root directory.

Unzip

This activity is used to unzip any previously zipped file or folder. It is used to extract files from a compressed file or folder during run time. We can unzip a file or directory within a shared folder, granted we have access to it.

Properties

INPUT

OverWrite: Check this box if you want to overwrite a file if it is already available in the path that you have chosen. By default, it is checked. When left blank, it will not be considered. 

Password: This indicates the password of the file (if any) to be unzipped. You can either hardcode the values in “String” datatype or can enter the values “String” format.  This parameter accepts only “String” datatype.

SavePath: This indicates the path where the extracted files need to be saved. It accepts only “String” datatype.

ZipFilePath:*  Choose the file path of the zipped folder from which the files must be extracted. It accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Zip

This activity is used to compress a folder during the execution of a robot. We can zip a file or directory within a shared folder, granted we have access to it.

Properties

INPUT

FileList:* Specify the declared variable name in this box. Refer to the tip below to see how it can be done. It accepts “List of string” datatype.
FileName: Specify the name of the file or folder that you want to zip. It accepts only “String” datatype.
FolderPath: Specify the directory path in which the file to be zipped is located. It accepts only “String” datatype

OverWrite: Check this box if you want to overwrite a file, if it is already available in the path that you have chosen.
By default, it is unchecked. This means if the zipped file which we are trying to save to location is already available there, it wouldn’t get saved in that location.

Password: If there is any password for the zipped file or folder, enter the same here.It accepts only “String” datatype.
SavePath: Specify the path in which the zipped file or folder must be saved. It accepts only “String” datatype.

MISC

DisplayName: Displays the name of the activity. The activity name can be customized, which aids in troubleshooting.

Mode: Choose from the drop down.
File –  Choose this to zip a file.
Folder – Choose this to zip a folder. This is the default selection.

SkipOnError: Specify the “Boolean” value as “True” or “False.”
True: Continue executing the workflow regardless of any errors thrown.
False: Halt the workflow if it encounters any errors.
None: If the option is left blank, the activity will, by default, behave as if “False” were chosen.

Version: It indicates the version of the feature being used.

OUTPUT

Result: It provides the ability to view the execution status of the activity. It returns values in “Boolean.”
True: Indicates that the activity has been executed successfully without any errors.
False: Indicates that the activity has been unsuccessful due to an unexpected error being thrown.

Represents mandatory fields to execute the workflow

Integration Activities

Installation

Robility Designer and Runner can be installed using two convenient methods to suit different deployment requirements. Detailed below are the steps for each method:

1. Installation via Robility Manager: 
This method lets users easily download and install the Robility Designer or Runner directly from the Robility Manager, simplifying setup. It’s quick, user-friendly, and ensures a smooth start to your automation projects. Click here to refer. 

2. Installation from command-line prompt: 
This method lets users to install the Robility Designer or Runner through a command-line interface, offering greater control and flexibility. This approach is ideal for automated or large-scale deployments, ensuring a streamlined process. Click here to refer. 

Before proceeding with the installation, it is important to ensure that your system meets the necessary hardware and software specifications. For detailed information about these specifications, click here.

Installation via Robility Manager

For Designer

Follow these steps to download and install the Designer MSI from Robility Manager. This process is straightforward and does not require additional assistance or administrative rights.

1. Log in to Robility Manager using your credentials.
2. If you have access to a single tenant, you will be directed to the Home page upon login.

     a. For multiple tenants, choose the tenant where you want to download the Designer and start building automations.
3. Navigate to the “Products” page to explore Robility’s product offerings, including their latest versions.
4. Locate “Robility Designer” and click the Download button.
5. Before the download starts, review the user license agreement displayed on your screen and click Agree to proceed.

6. Once the MSI file is downloaded, double-click it to launch the installation wizard.
7. Follow the on-screen prompts:

    a. Click Next to continue.
    b. Accept the license agreement and click Next again.
8. The installation process will complete, and the Designer will be successfully instal