Overview

Tool Name

autonomous_process_tools

Purpose

This tool allows users to execute predefined processes efficiently, including workflows powered by related tools like notebooks, scheduling, Google Drive integrations, and test management. It ensures systematized and automated execution of operational, development, or analytical tasks.

Functions Available

  1. run_process: Executes a process based on its unique identifier or name.

  2. process_manager_tools: Facilitates managing and executing defined processes within workflows.

  3. process_scheduler_tools: Includes scheduled tasks and timer-based executions for specific processes.

Key Features

User Defined Autonomous Process Creation

Create and define detailed processes tailored to specific automation workflows.

Autonomous Process Configurations

Update and manage configurations for pre-existing processes.  

Autonomous Process Deletion

Delete or hide redundant processes to streamline bot operations.

Input Parameters

run_processRun Autonomous Process
Input ParametersDefinition
process_idUnique identifier for the targeted process (e.g., analytics_proc-abcdef).
process_nameHuman-readable name for the process (e.g., Analytics Refresh Workflow).
parametersJSON object containing process-specific inputs (e.g., {"schema": "SALES", "limit": 100}). 
concise_mode(Optional): Boolean flag to determine the verbosity of returned outputs. Default: False
process_manager_toolsAutonomous Process Manager
Input ParametersDefinitionFormat
process_idIdentifier of the process to manage.String
process_instructionsInstructions or steps to modify or define within the process.String
process_scheduler_toolsAutonomous Process Scheduler
Input ParametersDefinitionFormat
task_idUnique ID for scheduled tasks.String
action_trigger_detailsSchedule timing details (e.g., “Once, Every weekday at 9 AM”). 
next_check_tsTimestamp for the next scheduled execution (format: YYYY-MM-DD HH:MM:SS). 

Genbot Tip

Processes must include comprehensive and clear instructions for smooth execution.

How It Works

Using this tool, users specify the desired process to run along with optional inputs (JSON parameters or execution settings). These processes may involve complex workflows that entail notebook executions, external file handling, test management, or scheduled tasks, based on user customization. 

Reminder

Deleting a process permanently removes it, so validate before proceeding with this action.

  • Processes marked as “hidden” won’t appear in default views but are still executable.

process_manager_tools – These tools help create and manage processes. They might be used to define workflows, start, stop, or monitor processes, and handle tasks that are part of larger business functions.

Genbot Tip

Example of How Process Manager Tools + Process Runner Tools Are Complimentary

Process Runner Tools:

  • This would be used to execute the SQL query and retrieve data.

  • Run the Python script to process the data and generate the report.

  • Orchestrate the message to send the report.

Process Manager Tools:

  • This would set up the entire workflow.

  • Using Process Scheduler to schedule the data retrieval and processing to run weekly.

  • Ensure the report generation runs only after data retrieval finishes.

  • Integrate any error handling if data retrieval or processing fails.

Putting It Together

Process Runner: Start Task -> Run Process -> End Task

Process Manager: Define Workflow -> Define Steps -> Schedule Workflow -> Monitor & Orchestrate Steps

Example on Streamlit

In this example, we’ll be showing the full process instructions for the multi-step Formula 1 data analysis process.

Example on GenesisAPI

User: run the process Monitor Unused Tables

Genbot: 🧰 Using tool: RunProcess...

🧰 Using tool: RunQuery...

🧰 Using tool: RunProcess...

Here are the results from the process "Monitor Unused Tables," which identified the top 10 largest unused tables across all databases in your Snowflake environment:

Database: GENESIS_BOTS, Schema: APP1, Table: HARVEST_RESULTS, Size: 11,048,960 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: MESSAGE_LOG, Size: 274,944 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: BOT_SERVICING, Size: 56,320 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: BOT_SERVICING_BACKUP, Size: 56,320 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: TOOL_KNOWLEDGE, Size: 16,896 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: PROCESSES, Size: 11,776 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: KNOWLEDGE, Size: 10,752 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: DATA_KNOWLEDGE, Size: 10,240 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: USER_BOT, Size: 8,192 bytes
Database: GENESIS_BOTS, Schema: APP1, Table: HARVEST_CONTROL, Size: 6,656 bytes
These tables are potential candidates for optimization or removal to save costs. If you have any further questions or need additional actions, feel free to let me know! 🌟

Example on Slack

How To Use

Suppose you’re looking to create a repeatable and automated step-by-step process that you can also schedule to run in the background. These are known as “Tasks”. Tasks are objectives that the Genbots are assigned to carry out autonomously.

Process Scheduler Tools

Overview

Tool Name

process_scheduler_tools

Purpose

This tool enables bots to schedule processes to run automatically at specified times or intervals. It ensures time-based automation and helps manage recurring or one-time tasks without manual intervention.

Key Features

Schedule Autonomous Processes

Schedule processes with flexible time intervals or specific calendar dates. 

Configure Scheduled Autonomous Processes

Update or deactivate existing schedules to adapt to changing workflow needs.  

List All Scheduled Autonomous Processes

List and monitor schedules to ensure seamless task management. 

Input ParametersDefinition
process_idThe unique identifier for the process to execute.
parameters(Optional): A dictionary or JSON object containing inputs specific to the selected process.
task_idUnique ID for a scheduled task.
task_details.process_nameName of the process to be scheduled (e.g., Daily Sales Refresh).
task_details.action_trigger_typeAlways set to TIMER.
task_details.action_trigger_detailsDescription of the schedule (e.g., “Every day at 9 AM”).
task_details.next_check_tsTimestamp for the next process run (e.g., 2023-12-01 09:00:00).
task_details.task_activeBoolean to set the schedule to active (True) or inactive (False).
Deactivate orDeactivate or Delete a Schedule
Input ParametersDefinition
task_idID of the task to deactivate or delete.

Genbot Tip

Ensure the next_check_ts is formatted in the correct timestamp format and lies in the future.

  • Descriptive and clear action_trigger_details improve readability and manageability of schedules.

How It Works

The tool accepts a process name and scheduling details, creating a timer-based trigger to execute the specified process. Schedules can be updated or removed as workflows evolve.

NOTE: Deactivating a schedule does not delete it, meaning it can be reactivated later if needed. 

Example on Slack

Genbots know whether a message was sent due to an automated scheduled task.

Genbots Send Alerts For Task Problems

If a Genbot encounters an issue with a scheduled task, it will notify you with details along with suggestions to resolve it. If the issue is bad enough, it will suspend the task until the user can fix or clarify the task.

Process Example

In this example scenario, we have a process for “Generating Sales Reports” that runs weekly and includes the following steps:

1. Importing sales data from a Snowflake stage.

2. Cleaning the data to remove any inconsistencies.

3. Aggregating the data to get weekly totals.

4. Generating the final report and sending it via Slack.

Process Runner Tools

Overview

Tool Name

process_runner_tools

Purpose

This tool allows genbots to execute step-by-step predefined processes effectively. It ensures tasks are carried out in a systematic manner by utilizing streamlined and automated workflows.

Key Features

Step-By-Step Autonomous Process

Enables running step-by-step pre-defined processes to perform specified tasks or workflows. 

User Defined Process Creation and Configuration

Provides flexibility by running processes based on user-defined configurations or parameters.  

Input ParametersDefinitionFormat
process_idThe unique identifier for the process to execute.String
parameters(Optional): A dictionary or JSON object containing inputs specific to the selected process.

Genbot Tip

Processes must be defined and validated before execution to avoid runtime errors.

How It Works

The tool identifies and runs processes that are already defined and configured. Tasks are completed in alignment with the predefined logic, leveraging any required tools or steps. 

Reminder

The tool fails if the process is unregistered or improperly configured. Refer to “How To Use Process Runner Tools” To learn how to create a process.

Creating a Process Using Genesis Process Runner Tools

This section will guide you step-by-step on how to create a process in Genesis using the process runner tools. By the end of this guide, you will have a clear understanding of how to define, configure, and execute a process. We will also provide a simple example process for you to follow along.

Understand the Components of a Process

Before creating a process, it’s essential to understand the key components:

  1. Process Name: A unique identifier for the process.

  2. Process Instructions: Detailed steps or logic the process will follow.

  3. Process Configuration: (Optional) settings or parameters that the process may require.

  4. Visibility: (Optional) Whether the process is visible in the list of processes or hidden.

Step-by-Step: How to Create An Autonomous Process

Step 1: Start By Asking To Create A New Process

User: I want to create a new process.

Step 2: Provide The Process Details

1. Process Name: Choose a descriptive name for your process. For example, Example_Process.
2. Process Instructions: Write clear and detailed instructions for the process. These instructions should outline the exact steps the process will perform.
3. Process Configuration(Optional): If your process requires specific settings, include them here. For example, you might define parameters like start_date or end_date.
4. Visibility: Decide whether the process should be visible in the list of processes. For example, you might hide test processes.

1. Uses a naming convention that highlights the objective. Upon note creation, the process ID will be automatically populated following a naming convention such as <bot_id>_<task_name>_<random_id>

2. This is where you put step-by-step instructions for the Genbot to use as a workflow. These steps follow the Let’s Verify Step-By-Step and the Genbot goes through a verification of each step of the autonomous process before proceeding onwards to the next step.

Here is an example with the objective of calculating the Sum of Two Numbers that you can copy and try below.

User Prompt

Process Name: Sum_Calculator
Process Instructions:

  This process takes two numbers as input and calculates their sum. 
  The user will provide the numbers as parameters: `number1` and `number2`.
  The process will output the result of the addition.
  
Process Configuration:
  {
    "number1": "The first number to add",
    "number2": "The second number to add"
  }

Process Configuration is optional! this following example includes a configuration where the user can define what number 1 and number 2 is to add together.

Recap of The Process Instructions:

Step 1. Input Parameters:

  • number1: The first number for the addition.

  • number2: The second number for the addition.

Step 2. Calculation:

  • Calculate the sum of number1 and number2.

Step 3. Output:

  • Output the result of the addition.

Step 3: Seeing The Process In Action

Now that the process has been created, the next step is to test the process and ensure it’s running as intended.

Genbot Tip: Notice how in this example, the supervisor flagged an instance where a step of the process was skipped or not done correctly.

  • Process Runner Tools are a great way to automate workflows, handle complex step-by-step operations in a scalable repeatable way.

Example on Streamlit

In this example, we are asking the Genbot to run the multi-step autonomous process Formula 1.

Example on Slack