Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
An overview of Kognitos, key features, and capabilities.
Kognitos is an automation platform that enables users to automate end-to-end business processes in plain English. It’s designed to manage complex tasks, including those with many exceptions, and improves over time based on user feedback.
Traditional automation tools require months of training and only work for simple processes with few exceptions. However, businesses need tools that can handle complexity and change. Kognitos is built to be easy to use and requires minimal training. You can create automations, manage exceptions, and review logs—all in plain English.
Getting Started
Learn how to get started and begin your automation journey.
Writing Automations
Understand how to write and structure automations.
Books
Discover integrations and extended functionalities.
Processes
Transform your automations into reusable processes.
Exception Handling
Learn how to provide guidance to an automation.
Account Management
Understand your user settings and permissions.
Automation using plain English
Advanced natural language understanding
Self-learning and adaptability
Effortless integration with third-party applications
Kognitos simplifies automation development, making it easier to create automations and not just use them. Unlike traditional RPA (Robotic Process Automation) tools, Kognitos eliminates the complexity of managing bots or desktop installations.
Kognitos runs fully from your browser and allows for stable API-based automations. No need to set up and configure multiple applications to run one automation, Kognitos allows you to get up and running quicker than ever with a single, integrated application.
Bot Management
No bots required
Requires managing bots
Installation
Fully browser-based
Requires desktop installations
Setup Complexity
Simple, single platform
Complex, multiple applications needed
Licensing
No bot licensing required
Requires bot licenses and management
Explore our extensive library of use cases to discover how Kognitos can be applied across various industries. These real-world examples showcase our platform's power, flexibility, and potential in addressing diverse business challenges.
Process Mode
Attended and unattended modes available
Typically requires separate configurations
Integrations
Seamless, API-based automation
Integration often requires complex setups
Use comments to add notes or disable parts of your automation.
A comment is a line in an automation that is skipped during execution. Comments are used to add notes and annotations. Additionally, they can be used to disable a part of your automation temporarily.
To add a comment, use the # symbol at the beginning of a line. For example:
Currently, the platform only supports single-line comments. If you want to add multiple lines of comments, you’ll need to use the # symbol on each line. For example:
Learn the fundamentals of writing automations in Kognitos.
Guides for different components of the automation editor.
# This is a comment and will be ignored
say "Welcome to Kognitos!"# This is the first line of a multi-line comment
# This is the second line of the comment
# This is the third line of the commentFollow these steps to log into Kognitos and securely access your account.
This guide will walk you through setting up and configuring your new Kognitos account.
Within your organization, you can create . Agents act as divisions within your organization, allowing you to separate processes across teams, agents, and geographic regions. Each agent is equipped with its own set of learned knowledge, configurations, and connections to other tools, allowing it to operate independently and securely. To create a new agent:
Click on the dropdown menu in the top right
Understand how to apply learning suggestions in the Guidance Center.
Within the Guidance Center, you may see Suggestions listed below an exception. These suggestions represent learning techniques provided by the system as potential solutions, ranked by how closely the current document matches the document where the learning technique was previously applied.
Hover over a Technique to see the confidence level displayed as a percentage. This score measures how similar two documents are.
Hover over the top right corner of the Technique and click on the Play button to open a Mini-Playground. This is where you can test the learning without affecting the main process run.
If the result is as expected, click Next and then click Use this method to apply the learning. If the result is not as expected, you can modify the technique in the Mini-Playground to get the correct value.
Learn about writing loops in Kognitos to repeat actions for multiple items.
Discover how to teach your automations so they can learn.
Learn how to schedule automated process runs in Kognitos.
Scheduling a process enables you to automate processes to run at set intervals—such as hourly, daily, or weekly. This ensures tasks are completed consistently without manual input, improving efficiency by minimizing the need for oversight. This feature is particularly useful for time-sensitive or repetitive tasks, enabling users to focus on more critical work while Kognitos takes care of background processes.
Learn how to write conditional statements in Kognitos.
Kognitos allows your automation to make decisions based on logic. The keywords if, then, and else help control your automation's behavior in different scenarios, enabling dynamic workflows.
if / then Syntax
The basic syntax for a conditional decision is:
Example
if / then / else Syntax
To add more flexibility, you can use an else statement to specify an alternative action when the condition is not met:
Example
Charts & Plots
Date & Time
Department Boxes
Excel Files
Files & Documents
Image Manipulation
Large Language Models
Numbers
Tables
Text
Select Create New.
Configure your new Agent and click Submit.
Click on Invite members in the drop-down menu.
On the Collaborators screen, click on + Add User.
Add the User's email and select their role.
Click on Add User. The user will receive an invitation email to join your Agent.


This section explains how to call a process within another process as a subprocess using the invoke keyword.
subprocess name: The name of the subprocess.
inputs: Any data elements the subprocess needs to run.
In this example, the subprocess verify applicant qualifications is called with the resume as input.
To start a loop, use the following syntax:
By indenting the lines after process each {item} as follows, Kognitos will know which instructions to follow for each item.
Indentation is Key
Remembering to indent when looping through objects in your automation is very important!
To track the number of iterations in a loop, you can use a counter. A counter is a numeric data element that starts at an initial value (usually zero) and increments with each iteration of the loop. This allows you to keep track of how many times the loop has executed.
Initialize the counter before starting the loop. Within each iteration, increment the counter by 1.
In this example, a loop is used to iterate through each page in a document. The counter is incremented after each page is processed.
Nested if / then / else statements
You can nest if / then / else statements to add more layers of logic for more complex conditions:
Don't Forget to Indent!
Proper indentation is crucial when writing if / then / else statements, especially when nesting them. It ensures the automation logic is clear, easy to follow, and runs as expected.
if {condition} then
{do an action}if the number of team members < 10 then
send "Let's have lunch outside!" to the team membersif {condition} then
{do an action}
else
{do a different action}invoke {subprocess name} with
{inputs}invoke verify applicant qualifications with
the resumeprocess each {item} as follows
{actions to perform on each item}process each document as follows
get the document's invoice number
get the document's fieldsthe counter is 0
process each {item} as follows
{actions to perform on each item}
add 1 to the counterthe counter is 0
process each page as follows
get the page's invoice number
get the page's booking reference
add 1 to the counterif the number of team members < 10 then
send "Let's have lunch outside!" to the team members
else
send "Meet you in the cafeteria!"if the partner is "partner a" then
use 0.1 as the rate
else
if the partner is "partner b" then
use 0.2 as the rate
else
use 0.4 as the rateTo use it, hover over the left side of the line where you want to add a debug point and click on the bug icon (🕷️) that appears. Two options appear: a Start and a Pause point. Click to enable either one:
Start: Will run the automation from this line.
Pause: Will run the automation until this line (execution will stop at the line before).
Add all debugging markers before running the automation. Markers added while the automation is running will not take effect until the next run.
These are the markers used in the interface to indicate different states of execution:
Start: A green dot marks where automation execution will begin.
Stop: A red dot indicates that automation execution pauses before this line.
Paused: A yellow line marks where the automation is currently paused.
You can add multiple breakpoints within a single run. Utilizing multiple breakpoints can significantly enhance your development workflow, making it easier to identify and resolve issues within your automations.
Execution is context-dependent and does not guarantee it will begin from a specified line. The system automatically adjusts the start point based on execution history and surrounding control structures.
You can access and manage your Learnings by navigating to the Learnings tab.
The list on the Learnings page provides an overview of all the defined rules. Each entry in the list includes the following columns:
Guidance for – Describes the question to which the learning applies.
While doing – Specifies the action, context, or data where the learning is used.
Resolve By – Indicates the resolution technique for the question.
Specific Context – Provides additional details.
Applied in – Shows whether the learning is in Draft status or actively in use.
Actions – Allows you to edit or delete a learning as needed.
Filtering options make it easy to find specific learnings. You can refine the list using the following filters at the top of the page:
Process – Show learnings associated with a particular process.
Question Type – Narrow results based on the type of question.
Learning Type – Filter by the type of learning: Value, Technique, Skip, Retry.
Created By – Filter by learnings added by a specific user.
Additionally, you can use the search bar to search for specific rules or keywords.
Navigate to Processes.
Click on a process, then click on View Runs.
Navigate to the Schedules tab.
Toggle the Enabled option to activate scheduling. You can then set the desired timing for your automation to run.
Learn how to call and run a subprocess using the process run widget.
One of the three ways a parent process can call a subprocess in Kognitos is by using the Process Run Widget. In this setup, the parent process controls the execution and output of the subprocess.
This method is ideal for single-run scenarios where you need to capture the result and status of a subprocess.
In your automation, write the keyword run followed by a slash /
From the menu that appears, select Process.
Click on the Process drop-down menu to select the process you want to call.
Click Save.
Passing data to a subprocess allows the parent process to provide the specific inputs the subprocess needs to do its work. This makes subprocesses more dynamic and reusable, as they don’t depend on hardcoded values. To enable this, the parent process must explicitly pass the required data, and the subprocess must be designed to accept and return values accordingly.
In your parent process, add a new line after run <subprocess>. Indent and reference the data needed for the subprocess run on the new line. If a data element is required but not explicitly provided, Kognitos will raise a .
In your subprocess, include one of these lines at the end of your automation to return data to the parent process. This syntax informs Kognitos of the subprocess's result so it can be accessed in the parent process.
For a single result: the result is {result}
For multiple results: the results are {result 1}, {result 2}, ...
This example shows how a subprocess can be used to calculate a total. The main process, Process an Invoice, calls the subprocess calculate the total and provides the price. The subprocess uses the price to calculate and return the total.
This example shows how to return multiple results from a subprocess. Here, the subprocess Split Full Name returns two results: the first name and the last name .
If you need to run multiple instances of a subprocess in parallel, see for details on using the start a run syntax.
Learn what exceptions are and why they keep your automations accurate.
In Kognitos, exceptions occur when an automation cannot proceed without additional context or clarification. Instead of making an assumption that could lead to errors, the system raises a question (also called an exception) and routes it to a human for review.
This human-in-the-loop design ensures that business processes remain accurate, reliable, and trustworthy. Exceptions are not system failures — they are intentional checkpoints that keep automations accurate and reliable.
Exceptions can arise in Kognitos for a variety of reasons. The most common include:
Multiple possible interpretations are possible, and the system cannot determine which is the correct one without user input.
Example: An email approval workflow asks, “Approved?” but doesn’t specify if it refers to cost, vendor, or timeline, so an exception is raised for review.
A required data input is not available, preventing the automation from completing the step.
Example: While processing an employee expense report, the system detects that a hotel receipt is missing the check-in date, so it raises an exception for confirmation.
The information exists in the document, but appears in an unexpected format or structure. This makes it difficult to extract with certainty.
Example: An invoice shows the total amount as “$5,000 (including VAT)” in a note at the bottom instead of in the standard “Total” field, so the system raises an exception for review.
A step requires human decision-making, often due to risk, compliance, or policy considerations.
Example: While reviewing a contract, the automation extracts a clause about early termination fees. Because company policy requires legal review of any termination penalties above $10,000, the system raises an exception so a human can confirm how to proceed.
Exceptions in Kognitos are resolved by providing guidance — giving the system the input it needs to understand how to proceed. This can include clarifying ambiguous values, pointing to the correct information in a document, or confirming a decision.
The makes this process efficient by allowing you to review open exceptions across automations in one place and provide the necessary clarification or correction. Once guidance is provided, the automation resumes where it left off.
Guidance Examples:
Identifying the correct field in a scanned invoice that represents the “Total Amount Due.”
Selecting the correct shipping address from a document that lists multiple locations.
Confirming the contract start date when it appears in narrative text instead of a standard date field (e.g., “services commence on June 1st”).
Verifying the correct vendor name when variations or abbreviations appear across different documents (e.g., “Northstar Technologies” vs. “Northstar Tech LLC”).
Exceptions in Kognitos are not errors; they are intentional checkpoints that safeguard accuracy. By providing guidance in the , you ensure that automations continue smoothly, learn from your input, and become more resilient over time.
Learn how to transform your automations into reusable processes.
After testing your automation in the Playground, the next step is to save it as a draft process. A draft process allows you to formalize and iterate on your automation before publishing it to production.
Convert a Playground
Click Create Process after building your automation in the Playground.
Name Your Process
Give your process a name. For example:
validate the reports
review the submissions
Create a Draft Process
Click on Create a Draft Process.
When your draft is ready, you can publish it to make it production-ready. Publishing locks the process to prevent further edits, ensuring consistency across all runs. To publish your process, click on Publish Process.
Once a process is created, you can edit it to make improvements or updates. Edits are made in a draft state, allowing you to test changes before publishing them live.
Navigate to Processes
From the left navigation menu, go to Processes.
Select a Process
Click on the process you want to edit.
Highlight key data elements in a process run to easily track and reference across executions.
the username for my salesforce account is XXXXXin the case of an invoice, where to explicitly look on a document to find a specific field





CBL aims to make your document handling process as efficient and accurate as possible. It's designed to learn and adapt based on the documents it encounters, continually improving its performance over time. It can:
Automatically classify between different document types
Handle new document types on demand, without the need for process modifications
Eliminate the need for complex if-else structures, reducing process length and complexity
Provide learning suggestions for incoming exceptions, making your workflows smoother
Learn from user interactions and improve over time
A confidence score is used to determine the similarity between documents. This score is essentially a measure of how identical two documents are (based on the numerical values assigned to their key information through vector embeddings).
The default confidence score set in CBL is 95%. For a learning to be applied, the match between the current document and the learned document must be 95% or higher. This high threshold ensures that the applied learnings are highly relevant and accurate. However, if you need to adjust this percentage, here’s how:
Add the following line to your automation, replacing <percent> with the new threshold.
For example:
The above will set the similarity score to 0.92 (the matching threshold would be 0.92 instead of 0.95).
Reducing the similarity below 0.90 is not recommended unless you have absolute certainty of the implications. This adjustment may result in false positives.
To start using CBL, include the line "get the file as a scanned document" in your process. The modifier “scanned document” ensures that CBL will be applied for that line.
When writing processes, ensure all document extractions are written as a single line. The keyword “document” should always be present. For example:
In the event of an exception:
If this is the first instance with no learnings, select the answer type from the drop-down.
This will open a Mini-Playground, where you can test and run modifications without affecting the primary process.
If the result is as expected, click Next. It will show the document if it's a CBL-based exception. You can learn the answer as usual, or just the answer for that instance. Next time, when the exception occurs for a similar document type (context), at the same step-path, the learning will be applied to the document automatically.
Note: CBL will be applied to a learning if the exception occurs for any step that contains “document” as a keyword (except “get the file as a scanned document”).
CBL is designed to learn and adapt over time, but there may be instances where it doesn't yield the expected results. In such cases, you can manually correct it. Here's how:
If a learning is applied using CBL and it fails to yield a value (learning fails): You can manually correct it by providing the value directly or trying out a new learning in the Mini-Playground.
If a learning is applied using CBL and yields an invalid value: This might have downstream effects where it will fail. In such cases, consider editing the technique to ensure it deals with both previous cases and the new ones.
CBL is designed to work with OCR documents processed with AWS Textract and Azure Form Recognizer. The goal of CBL is to streamline your document handling process, regardless of the document type. As we continue to develop and improve CBL, we aim to expand its compatibility to include even more document types and data structures.
run /calculate the total
the price is $3
get the above as the totalthe tax is $0.87
the total price is the price + the tax
the result is the total pricerun /Split Full Name
the full name is "Ada Lovelace"
get the above as the resultssplit the full name into parts
get the first part as the first name
get the second part as the last name
the results are the first name, the last namethe minimum document similarity is <percent>the minimum document similarity is 0.92get the attachment as a scanned document
imagine the document’s ocr info
get the document’s ocr info’s billing number
get the document’s ocr info’s shipper
get the document’s ocr info’s shipping dateClick the actions menu (⋮) in the top right corner.
Edit in Draft
Click Edit, then select Edit in Draft in the confirmation popup. Your draft is now open for editing.
Draft changes won't affect your process until you republish. All runs will continue using the previously published version. To make your changes live, navigate to Processes and click on Publish Agent at the top.
Insert Markdown content into your automation, including headings, bold/italic text, lists, etc.
Add a link into your automation to embed references.
Add a , used to dynamically populate and transform data in a table. When using this widget, provide a Description that explains what the formula does and enter the formula expression in the Value field.
A widget for filtering data based on certain conditions. When using this widget, provide a Description that explains what the formula does and enter the formula expression in the Value field.
Embed another process into your automation. This enables you to call other processes. Select the process to call from the process dropdown menu.
Apply a transformation to an existing table. This is useful when preparing data before applying further logic or formulas.
This widget enables you to describe a browser automation task for a web-based agent to execute.
Select Choose an Existing Task or configure a new task by providing the following details:
Task Name
A short, descriptive name for the task (e.g., Check Website for Updates).
Task Instructions
Describe what you want the browser to do in plain English (e.g., Go to example.com, log in, and check for new messages).
Output Format (Optional)
Define how you want the results formatted. It is recommended to use key-value pairs for clarity (e.g., {"key": "value"}). If specified, the agent will format the result accordingly.
Credentials (Optional)
If your task requires access to a secure website or account, provide the necessary credentials (e.g., username and password). You can select from existing connections in your agent or add a new connection.
Use this feature to:
Track important identifiers or values across executions
Troubleshoot a process by monitoring specific data points
Quickly scan and compare outputs across multiple runs
To star data of interest in a process:
Open a Process
Navigate to Processes in the left sidebar and select a process.
Access a Process Run
To view a previous run, click on View Runs in the upper-left and choose a run from the list. To start a new run, click on Run in the upper-right.
Select Data
Click on the name of a data element in your process.
Star Data
In the Information panel on the right, click the star icon (⭐️) next to the data element. The star will turn yellow to indicate the value is starred.
After you’ve starred one or more data elements, you can view them in the list view of a process’s runs. This is visible to anyone with access to the agent.
Open a Process
Navigate to Processes in the left sidebar and select a process.
View Runs
Click on View Runs in the upper-left to see a list of your process's runs.
You'll see a column for each starred data value in this list view.
You can modify starred data at any time by removing existing stars or starring new values. Changes to starred data are visible to all users with agent access.
Hover over a starred data value in the Information panel and click the yellow star (⭐️) icon next to it to unstar it. The value will no longer appear in the process runs list view.
API keys can be created and managed by:
Organization Admins: Can create and manage organization-level and agent-level keys.
Agent Admins: Can create and manage only agent-level keys.
An organization can have up to 10 API keys in total, including organization-level and agent-level keys. Follow these steps to create a new one:
Navigate to API Keys
Click on the user icon in the top right, then navigate to API Keys.
New API Key
Click on New API Key.
Configure and Create
Configure your key's Name and Scope. If scoping the key to an agent, select the agent from the dropdown menu. Then, click on Create to generate your secret key.
Secure Your Secret Key
Copy and save your secret key. Then, click on Done.
For security reasons, the secret won’t be accessible again through Kognitos. If you lose it, you'll need to generate a new one.
Click the three-dot menu (⋮) to the right of an API key to access management options. From there, you can edit, delete, or check the usage of an existing key.
API keys can be renamed at any time. However, a key's scope (organization or agent) cannot be changed after creation.
Usage displays the rate limits, quotas, and utilization details for a given key.
API keys do not expire automatically. If a key is no longer needed, you can delete it to revoke access immediately.
This error typically means your API key is invalid or has been revoked. If a key was working previously but is now returning this error, it may have been deleted by an administrator.
If you're an admin and can't create new API keys, you may have reached your organization's limit. An organization can have up to 10 API keys in total, including organization-level and agent-level keys. You'll need to delete an existing, unused API key to free up a slot before you can create a new one.
Here to Help!
If you have questions or need assistance with API Keys, please contact our support team at [email protected] or via our platform's Support AI Assistance Chat (preferred).
Learn how to trigger an automation process run by email.
You don't have to trigger every automation run manually. Kognitos lets you trigger automations by sending an email — a powerful way to automate tasks like onboarding or invoice processing.
A unique email address is generated for every Kognitos process. When someone sends an email to this address, it automatically starts a new process run and passes the email contents to the automation, including:
Subject line
Sender address
Body (plain text or HTML)
Attachments (files, spreadsheets, images, etc.)
Kognitos does not monitor your inbox for new emails. Email triggers work when emails are sent to the uniquely-generated email address for a process. You must manually configure email triggers for a process using the steps below.
Navigate to Processes
Navigate to the Processes tab via the left sidebar.
Select a Process
Click on the Process you want to set up email triggers for.
Once you've configured email triggers for your process, anyone with the proper permissions can start a process run by sending an email. Here's how:
Compose a new email in your email client (Gmail, Outlook, Apple Mail, etc.)
Set the recipient to the unique email trigger address you copied during configuration.
Write your email with any relevant information: subject line, email body, and attachments.
Send the email — this immediately triggers a process run in Kognitos.
As soon as your email is delivered, Kognitos automatically starts a run of that process. Your automation can access all parts of the email (subject, body, attachments, sender info).
If your process isn't starting when emails are sent:
Ensure the sender has adequate permissions to send emails that trigger the process.
Double-check the trigger email address — did the email go to the correct address?
Check if the email delivered successfully. If the email fails to deliver, the process won't trigger.
If you're using an email forwarding rule, verify that it's active and correctly configured.
Use the most restrictive permission setting that meets your needs:
Collaborators: Best for internal-only workflows.
Restricted: Ideal when only a specific set of users should be able to trigger the process.
Anyone: Use with caution & ensure the automation includes validation steps to prevent misuse.
Add logic in your automation to validate the email content, such as checking for specific subject lines, senders, or attachments. For example, to access the attachments of an email that triggers a process, we would write:
This statement grabs each attachment from the email in order to take further action. You can also use the following phrases to get details about the email to use in your automation:
get the text
get the sender
get the recipients
Learn how to perform batch processing.
Batch processing is a method of handling data by dividing it into smaller groups (batches) and processing each group separately. This is useful when working with large volumes of information such as customer records, invoices, or files as it improves efficiency and error handling.
When you create batches, the items are divided into groups of the specified batch size. Each batch becomes a separate collection that you can process independently.
Example: Instead of sending 1,000 customer emails all at once, you can create batches of 50 emails each, resulting in 20 manageable batches to process one at a time.
Below is a line-by-line overview of the automation syntax. Expand each line to learn more.
After creating batches, process each one individually using:
Within the processing logic, reference the items in the current batch using the batch's <collection>. For example:
The following example shows how to create batches from a simple list of numbers:
Batch 1: [1, 2, 3]
Batch 2: [4, 5, 6]
Batch 3: [7]
Here, the customers are processed in batches of 10.
In this example, the table's rows are broken up in batches. Then, each batch is processed in parallel using .
Learn how to validate data in your automations.
Data validation ensures that a process’ data is appropriate and logical, allowing it to be trusted for decision-making. In Kognitos, you can use the ensure keyword to specify conditions for data validation. When data cannot be validated, the automation will raise a question, allowing you to review, edit, and confirm values in a single location.
ensureThe ensure keyword is used within a validation statement that:
Begins with ensure
Is indented within validate the following
Uses an operation that:
validate the followingThe phrase validate the following groups multiple validation statements together. When a validation fails, the data from all statements will be aggregated into a single view.
1. Validating Text Data
2. Validating Numeric Data
3. Validating Multiple Data Elements
Each validation statement evaluates to Condition Met (true) or Condition Not Met (false).
The automation proceeds when all validation statements have a Condition Met. However, if any statement has a Condition Not Met, the system raises a question, requiring you to provide guidance to proceed.
A validation statement is marked as Skipped when the syntax is invalid. To avoid this, ensure the operation is a valid boolean operation supported in Kognitos.
For example, the statement above is skipped because the use of "has" is not supported in a Kognitos operation. Instead, the validation statement could be written using the contains keyword: ensure the vegetables contains "broccoli".
When a validation statement within validate the following has a Condition Not Met, a question is asked to Please review the following facts.
Data is listed for review in the same order it appears in the validation statements. For conditions that are not met, a message will appear below the data value in red, stating the failed validation.
You can manually edit and override data values as needed.
Confirm your review by checking the box labeled "I have reviewed all values and they are accurate". Then, click Submit.
The spot check percentage controls the likelihood of a question being raised when all the validation statements evaluate to true. The percentage does not represent accuracy or error rate; it controls the probability of triggering a question.
If any validation statement fails, a question is always raised.
If all validation statements pass, a question is raised based on the spot check percentage.
Example: If the spot check percentage is 30, then there is a 30% chance that a question is raised when all the validation statements evaluate to true.
In this example, there is a 50% chance that a question is still raised for review, since both validation statements evaluate to true.
Learn how one process can call another process in Kognitos.
In Kognitos, one process can call and run another process. The called process is referred to as a subprocess. There are many advantages of using subprocesses:
Modularity: Decomposing automations into smaller processes enhances structure and organization.
Readability: Well-organized automations are easier to read and understand.
Scalability: Automations can be scaled to handle multiple tasks.
Maintainability: Isolated processes simplify debugging and updating individual components.
There are several ways to call another process in Kognitos:
: This method is ideal for single-run scenarios where you need to capture the result and status of a subprocess.
: This method is useful for scenarios where the parent process can continue executing without waiting for the subprocess's status or completion.
: This method provides control over parallel execution when handling multiple subprocesses simultaneously.
Learn about the core concepts and components of Kognitos.
An agent in Kognitos is a dedicated execution environment where your automations live and run. Each agent is equipped with its own set of learned knowledge, configurations, and connections to other tools, allowing it to operate independently and securely.
An automation is a series of instructions that tells Kognitos what to do. It can refer to either a draft workflow in the or a fully developed and reusable .
A is a set of related automation . Books can be added to an agent to expand automation functionality and integrate with external tools. Kognitos offers a library of standard Books for common skills and integrations, including Microsoft Excel, Salesforce, and Slack.
The is a software toolkit for developing custom books in Kognitos. Using the BDK, developers can write code that translates plain English procedures in Kognitos to actions that a specific third-party application can understand.
An exception (question) arises when the system needs additional clarification to proceed with an automation. Exceptions are resolved by providing user guidance in the .
The Guidance Center is where you manage all in one place. When an automation encounters an issue or requires additional context, it raises a for your input. Here, you can view and resolve exceptions across all processes in your agent.
Kognitos tracks major changes to an Agent, allowing users to review and restore past versions through the History tab. You can click on any of the options displayed in the History tab to view the Agent at that point in time.
The Kognitos AI Assistant (KAIA) is used to answer questions, find guidance, or get in touch with our support team. You can use this tool to get help anytime by accessing it in the bottom left corner of the platform.
Learnings are rules that guide your automation’s decision-making. When you resolve an , you can teach the agent how to handle similar situations in the future. These learned responses are stored as "learnings, " allowing the automation to become more intelligent and autonomous over time.
The Playground is a dynamic development environment where you can create, test, and refine your automation workflows. It provides a flexible space to write procedures in plain English, run them to see the immediate results, and debug any issues before creating a .
A procedure is a single automation task defined in plain English. Each procedure describes a specific action and follows a defined grammatical syntax that Kognitos understands, such as open a file, extract data, or send an email. These procedures are the building blocks for Kognitos automations.
A process is an automation workflow built using one or more . It represents a complete business task, such as processing an invoice from receipt to payment.
Processes can be in a Draft state during development and testing, or in a Published state that is production-ready. Each version of a process is tracked, allowing for clear change management.
A run is a single execution of an automation. All automations, whether a Playground, a Draft Process, or a Published Process, can be run manually. However, only published Processes support automatic triggers like email, API, or scheduled runs. Every time a process is triggered, either manually or by a scheduled event, it creates a new run.
A subprocess is a process that is called by another process. Learn more .
Learn how to export and import automation agents.
Kognitos supports the ability to export automation agents from one environment and import them into another. This allows you to move published automation content across agents in a controlled way.
Exporting lets you download a snapshot of an agent’s published state. The export includes only published processes, learnings, and books — draft processes, playgrounds, and configuration credentials are not exported. Anyone with access to the agent can export it.
Navigate to Agents
Open the agent menu and select View All.
Select an Agent
Check the box next to the agent you want to export.
You can import an agent using a .json file generated from the export process. There are two ways to do this — into a new agent or into an existing agent. All imported items are added as drafts. The agent's published content is not affected unless you review and publish the imported content.
Use this option to create a new agent.
This option allows you to update an existing agent and is available only to agent admins.
Navigate to Agents
Open the agent menu and select View All.
Start Import
Click on Import to start the import.
Learn how to use the ask keyword to create custom exceptions.
The ask keyword allows automations to prompt the user with a custom question. These prompts are raised as custom exceptions during execution.
Write the keyword ask followed by your question in quotation marks. When raising an exception, Kognitos will use this text for the question:
Optionally, you can provide a set of answer choices. Kognitos will display these options in a dropdown menu where the user can select a value for guidance.
In this example, the automation will raise an exception asking What is the notification method? and the user will be presented a list of dropdown choices including Email, SMS, and Push Notification.
Here, the automation will raise an exception asking What is the preferred language? The user will be presented with a list of dropdown choices that contain English, Spanish, Hindi, and French.
When Kognitos raises a custom exception with the keyword, you’ll need to guide the automation by choosing how to respond. The resolution methods depend on whether the exception includes choices.
In this case, the recommended resolution method is to Pick a Suggested Value. This will allow the user to select one of the predefined options from the dropdown list. This is the safest and most reliable way to resolve the exception.
Type a value directly into the text box for the requested field.
Indicate that no value should be used for now. A dash (-) will be inserted as a placeholder. This is best used when the information is unavailable or not relevant.
Bypass the current step entirely.
Be cautious: skipping may cause additional exceptions later if other steps depend on the missing data.
Modify the automation syntax to avoid this exception. Use the Mini-Playground to test changes safely before applying them.
Learn how to configure assignment and notification rules for exceptions in Kognitos.
Exception routing is a process configuration setting. It allows agent admins to configure assignment and notification rules for exceptions. When a process encounters an (a question requiring guidance), these rules ensure that the right person is automatically assigned to handle it and that the appropriate team members are notified.
Securely connect and manage your LLM providers with custom API credentials.
Learn how to define data in Kognitos.
A process is an automation workflow built using one or more procedures. It represents a complete business task, such as processing an invoice from receipt to payment.
A process can exist in one of two states:
Draft – A version of the process for development and testing.
Published – A finalized, production-ready version of the process.
Processes are also versioned, allowing every update to be tracked. The draft–publish workflow ensures automations can be safely developed, tested, and deployed without disrupting business operations.
Batch 3: Item 7
Example
✅ Yes — Replace x with an integer value representing the number of items per batch.
Example
create batches from the itemsthe batch size is 3Evaluates to true to false (boolean operation)






process each batch as followsthe batch's usersthe batch's invoicesthe batch's documentsthe items are 1, 2, 3, 4, 5, 6, 7
create batches from the items
the batch size is 3the customers are the above
create batches from the customers
the batch size is 10
process each batch as follows
send an email to "[email protected]" where
the subject is "Currently processing 10 customers"
the message is "The users are {the batch's customers}"get the invoice table's rows
get the above as the invoices
create batches from the invoices
the batch size is 20
process each batch as follows
the results are the batch's invoices
start a run where
the procedure is "to process the invoices"
the results
wait for the runsthe first name is "Jennifer"
validate the following
ensure the first name is started by "Jenn"the quantity is 10
validate the following
ensure the quantity is greater than 5the username is "kognitosuser"
the password is "123456789!"
the user age is 20
the user roles are "viewer", "editor", "commenter"
validate the following
# True:
ensure the username is started by "k"
ensure the password is ended by "!"
ensure the user roles contains "editor"
# False:
ensure the user age is greater than 21the department's spot check percentage is <percentage>the book name is "Happy Automations"
the book rating is 7.8
the department's spot check percentage is 50
validate the following
ensure the book name starts with "Happy"
ensure the book rating > 5ask "Your question here"ask "Your question here"
the choices are "Option 1", "Option 2", "Option 3", "Option 4" ...ask "What is the billing code?"ask "What is the total amount approved?"ask "Who is the hiring manager?"ask "What is the notification method?"
the choices are "Email", "SMS", "Push Notification"ask "What is the preferred language?"
the choices are "English", "Spanish", "Hindi", "French"Click the menu ⋮ button on the right, then select Configure Email Trigger.
Configure Permissions
Choose who can send emails to trigger this Process:
Collaborators: Only members of the agent can send emails to trigger this process. This is the default for new processes. Note: For processes created before July 3, 2025, the default setting is "Anyone".
Restricted: Only users listed under "People with permission to trigger" can send emails to trigger the process.
Anyone: Anyone can send emails to trigger this process, including non-Kognitos members.
Copy the Email Address
Copy the Email Trigger address. This is the email address that people will send emails to in order to start the process.
Save Your Changes
Click Done to save your configuration changes.
Confirm the automation is a published process. Email triggers do not work with Playground automations.
get the dateget the subject
get the hyperlinks
get the attachments
get the body as text
get the body as html
Faster for many items (since runs happen in parallel)
General Usage
When tasks or items are independent and you want the result / status of a run
When tasks or items are independent and you don't need the result / status or a run
When tasks or items are dependent or rely on one another
Document Processing
Use when each document is independent and can be processed in isolation
Use when each document is independent and can be processed in isolation
Use when documents are dependent on one another, or the final outputs need to be aggregated
Example
Syntax
Execution Style
Sequential Processing
Sequential Processing
Parallel Processing
Performance
Slower overall (each subprocess runs separately)
Slower overall (each subprocess runs separately)
Click on Actions, then select Export from the dropdown.
Confirm Export
In the confirmation popup, click on Export again. This will download a .json file containing the agent's current state, which can be later imported into a new or existing agent.
Add Import Details
Upload a .json file of an exported agent.
Choose one of the following options:
Select Create New Agent and provide a name for the new agent.
Select Import to Existing Agent and select an existing agent from the dropdown menu. Note: This option is only available to agent admins.
Click Next to continue.
Review and Confirm
Review the summary of the import and click Import to finish importing.
Agent admins can configure exception routing for a given process, including the following settings:
Exception Assignment
Specifies who is automatically assigned to handle exceptions.
Email Notifications
Specifies who receives email alerts when exceptions need guidance.
Follow these steps to configure exception routing for a process:
Select a Process
Navigate to Processes and click on the process to be configured.
Exception Routing
Click on the three-dot menu ⋮ in the top-right and select Exception Routing.
The process must be in draft mode. If the process is published, click Edit first.
Exception Configurations
Configure the following details, which may be updated at any time:
Save and Publish
Press Save to apply your configuration changes. Then, publish your process to make the changes live.
In this example, exceptions go to the process creator with no notification recipients.
Exception Assignee
[email protected] (Process Creator)
Notification Recipients
None
Here, exceptions are assigned to the process creator while the team lead and backup get email notifications.
Exception Assignee
[email protected] (Process Creator)
Notification Recipients
Here, the current on-call person is assigned exceptions while the manager stays informed through email notifications.
Exception Assignee
[email protected] (current on-call person)
Notification Recipients
BYOM supports the following providers and models:
OpenAI
GPT-4o, GPT-4o Mini, gpt-4o-realtime-preview, gpt-4.1-mini
Google Gemini
Gemini 2.5 Pro, Gemini 2.0 Flash, gemini-2.5-flash, gemini-2.5-flash-lite
Google Vertex AI
Gemini 2.5 Pro, Gemini 2.0 Flash, gemini-2.5-flash, gemini-2.5-flash-lite
Anthropic Claude
claude-opus-4, claude-sonnet-4.5, claude-haiku-4.5
Custom
Any custom LLM model not listed above
Follow these steps to configure an LLM provider in Kognitos:
Note: BYOM must be configured separately for each agent.
After configuring models through BYOM, automations will use your stored credentials when executing LLM procedures.
For standard providers like OpenAI, Google Gemini, or Anthropic, reference the model directly in your automation. The example below uses the extract data procedure with an OpenAI model:
For custom models, specify the provider ID, indented within the LLM procedure:
For example:
Retrieve the ID from the BYOM interface after saving a custom LLM configuration:
A value, which represents the information itself. Values can be singular or plural.
To define a singular data element, use "is":
To define a plural data element, use "are":
In this example, the customer is the data name. It is assigned the singular value "John Smith":
Here, the items is the plural data name. It is assigned the plural value of the documents.
In this example, the fruits is the plural data name. It is assigned a list (plural) of fruit values:
Make sure singular names pair with singular values, and plural names pair with plural values! For example, you wouldn’t write “the fruits is the orange”. Instead, you would write: “the fruits are the oranges”.
Data names define how information is labeled and referenced. The following rules apply:
Data names must be prefaced with the. For example:
Data names can be simple or descriptive. Adjectives can be used in descriptive names to provide additional clarity or context. For example:
Simple Name
Descriptive Name
Data values can be singular or plural. Possible data types include numbers, text, dates, lists, or references to other data elements.
Numeric values can be assigned to data such as age, balance, or rates. For example:
Text values can be words, sentences, or phrases. They can include any characters—letters, numbers, symbols, or spaces—as long as they are enclosed in double quotes (""). For example:
A date value represents a specific calendar day, such as a due date, birthday, or event date. Be sure to enclose date values in double quotes (""). For example:
To define a list, separate the values by commas. For example:
The value of a data element can also be a reference to another data element. In these cases, the data value is set to another data name. For example:
Note: You can only reference another data element if it has been defined earlier in the automation.










Learn how to start your automation journey in Kognitos.
Kognitos empowers you to write automations in plain English, turning natural-language instructions into executable workflows. This guide will walk you through core concepts, the development lifecycle, and the basics of writing an automation.
Make sure you're all set up before jumping in!
Let’s kick things off with two important ideas: and .
An agent is a dedicated execution environment. Each agent comes with its own skills and settings, enabling it to operate independently. Agents are created to handle specific business tasks and can contain one or more to complete them.
An automation is a set of instructions that tells Kognitos what to do — process data, work with documents, send emails, call other processes, and more. These are workflows that can take the form of an early idea (playground) or a complete process.
Automations come in different forms as they evolve from early ideas into production-ready processes, following this lifecycle:
Playground
Every automation starts as a playground. These are initial automation workflows used to explore, create, and test new ideas.
Draft Process
Once a playground automation is working as intended, solidify it as a draft process. Drafts let you refine and test the workflow in a structured way before finalizing it for production.
Start in the Playground — your initial workspace for writing and testing automations.
Create a new Playground by navigating to Playground , then click on + New Playground.
The input area of the editor is where you can define your automation workflow.
Looking for ? Describe your intent in plain English and let auto-write draft the workflow for you.
Kognitos automations are written in English. They are composed of small, readable steps called procedures. By combining multiple procedures, you can form a complete automation workflow.
A procedure is a single automation task. Each procedure describes a specific action and follows a defined grammatical syntax that Kognitos understands, such as , , or . Procedures are the building blocks for Kognitos automations.
Combine procedures to create an end-to-end automation. For example, you might extract fields from a receipt, summarize them in a table, and then email the result:
With Kognitos’ Hyperautomation Lifecycle (HAL), you can describe what you want in plain English and let the platform auto-write the automation for you. No need to worry about syntax or structure; write naturally (e.g., “extract date and total from a receipt and email me a summary”).
HAL interprets your intent, selects the right actions, and produces a draft workflow that you can run or edit as needed, allowing you to move from idea to execution faster.
Beyond procedures, use , , , and other elements to write and structure automations in Kognitos. Learn more below:
A is a set of related automation procedures (actions) that can extend an agent’s capabilities. Adding a book to an agent enables the agent to learn new skills and integrate with external tools. Kognitos offers many Books that can be added to your agents, which are built around either:
A specific domain (Document Processing, HTML)
An integration (Microsoft Excel, Slack, Salesforce, etc.)
Explore the most common exceptions in Kognitos and discover best practices for handling them effectively.
This exception occurs when the system fails to access a file due to formatting, permissions, or network errors.
This exception occurs when the system is unable to complete a specific action. The exception message starts with "Could not" and describes the action that could not be completed. For example:
Could not ask koncierge
Could not dump a file
Could not extract a table
This exception occurs when the system cannot find a match for a specified field. The exception message starts with "Please provide" and describes the required data.
This exception occurs when attempting to access a key missing in the current context or data structure.
This exception occurs when the system doesn’t know how to proceed. For example:
I don't know how to convert 'ADFB00' into a number
I don't know how to process this billing code
I don't know how to translate this to a string
It usually occurs due to one of the following issues:
The agent doesn’t have the skills needed to perform the task (a missing Book).
The automation syntax is incorrect.
The data is in the wrong format or type.
This exception occurs when there are multiple procedures with a similar syntax and the agent needs clarification on which one to use.
This exception occurs when an automation previously crashed during execution, and the system needs confirmation that it’s safe to resume.
This exception occurs when a previous run has crashed, and the system needs confirmation to restart the automation.
Discover the different ways to run an automation process in Kognitos.
get the email's attachments
process each attachment as follows
...run <procedure name>invoke <procedure name>start a run where
the procedure is <procedure name>extract data from the document
the dpi is 144
the openai model is "gpt-4.1-mini"
the first field is "po number"
the first field's format is "string"
the first field's rule is "the po number has 10 characters"the model provider is "provider-id"extract data from the document
the model provider is "custom-custom-llm-1764100945699-r6jisd"
the first field is "invoice number"
the first field's format is "string"<name> is <value><name(s)> are <value(s)>the customer is "John Smith"the items are the documentsthe fruits are the apple, the banana, the orangethe emailthe phone numberthe primary usernamethe messagethe very special user greeting messagethe age is 21the bank balance is $120.20the interest rates are 5.67, 6.25the message is "Welcome to Kognitos!"the username is "i-like-to-automate-123"the announcement is "We're so glad you're here. Let's build something great together."the due date is "2024-11-05"the project start date is "January 1, 2024"the birthday is "March 22, 1990"the test scores are 95, 86, 100, 77, 65 and 99the coupon codes are "SAVE20", "SALE2024", "HAPPYHOUR" and "JUST4U"the email addresses are "[email protected]", "[email protected]" and "[email protected]"the username is the customer emailthe documents are the receipts the approver is the manager




Could not convert a datetime to a textNote: Skipping a step can lead to another exception if the step resolves data that is referenced later in the automation.
Example: An exception occurs with the message "Could not get a file as a scanned document". The user chooses the Skip this step option. Later, the automation attempts to reference the document, resulting in a new exception: "Please provide scanned document.
3. Retry
Retry the failed automation step. This may be helpful if the exception was potentially caused by a network error or a timeout.
4. Compute an answer
This method allows you to modify the automation to avoid the exception. Use the Mini-Playground to test changes safely before applying them.
5. No value
Indicate that no value is needed at this time. This option is useful when a value is unavailable or not applicable. A dash ("-") will replace the value as a placeholder.
6. Skip this step
Bypass the field extraction step.
Note: Skipping a step can lead to another exception if the step resolves data that is referenced later in the automation.
Example: An exception occurs with the message "Please provide the scanned document's arrival time". The user chooses the Skip this step option. Later, the automation attempts to reference the "arrival time" again, resulting in a new exception: "Please provide arrival," as the value was not established.
I don't know how to transform a contact<Book Name>: <Procedure Name>sharepoint: to get a folder at a stringrun "to process the sales order"
the attachmentinvoke "to process the sales order" with
the file is the documentget the attachments
process each attachment as follows
start a run where
the procedure is "to process the sales order"
the attachment
wait for the runs
get the runs's results as the sales ordersOnly collaborators of the agent can be selected as assignees.
To add additional users, go to Settings → Invite Users → Add Collaborator.
Exception Assignee (Required)
The user(s) to assign to handle exceptions for this process. At least one user is required.
Notify Members (Optional)
The user(s) to notify via email when exceptions need guidance. This is optional and may be left blank.

Published Process
When your automation is finalized and production-ready, promote it to a published process. These workflows are reliable, secure, and fully ready to execute business tasks.
Once HAL is enabled, clicking on + New Playground will open a menu, allowing you to select a template or start from scratch. Then describe your task in plain English, and Auto-Write will generate the automation for you.


All processes can be run manually (draft or published). Published processes can also be triggered to run automatically by email, via API, or on a schedule.
Manual Run
Run directly from the platform by navigating to Processes, selecting a process, and clicking Run to start a new run.
Draft
Published
Trigger a run by sending an email to a unique email address.
Draft
Published
Trigger a run by making an HTTP request to the Kognitos REST API.
Runs execute asynchronously, moving through the following status transitions: Pending → Running → Succeeded, Failed, or Cancelled. Once a run completes successfully, its output becomes available for review or use in subsequent actions.
Pending
Run is queued for execution.
Running
Run is currently executing.
Succeeded
Run completed successfully.
Failed
Run encountered an error.
Cancelled
Run was cancelled by user.
TimedOut
Run exceeded maximum execution time.
Once a process has been executed, you can manage individual runs through various actions. To access these options:
Navigate to Processes
From the left navigation menu, go to Processes.
Select a Process
Click on the process you want to manage.
View Runs
Click View Runs to see all the process runs.
Select Runs and Choose an Action
Select the checkbox next to one or more runs. The following actions become available:
1. Re-run
Re-executes a process using the same inputs and configuration as the selected run. This is useful for retrying failed runs or reproducing results with identical parameters.
2. Archive
Moves runs out of the main view to help organize and declutter your run history. Archived runs can be restored at any time.


Learn how to test and validate changes made to your processes.
The Test Suite empowers you to test and validate any changes made to your processes. After modifying a process, run the Test Suite to compare the new results against expected outcomes. This makes it easy to assess the impact of your changes and ensure everything still works as intended.
Test changes made to your processes with this 3-step process:
Create Test Cases
Create test cases from successful process runs. These runs serve as baselines that define the expected behavior and output when a process operates as intended.
Run Tests
Run tests to compare your current process against your test cases. The Test Suite analyzes output to identify changes between your baseline and current version.
Get started by creating test cases. To do this, you'll need to add test cases and identify output.
A test case is a process run that serves as the baseline for how a process should perform. Test cases establish the standard against which future runs are compared. They can be added from existing runs directly within the Test Suite or from individual process runs.
The next step is to define what a successful outcome looks like for your test case. This is done by — highlighting important data elements in a process run. By doing so, you tell the Test Suite which output (ex: total cost, destination, payment status) should be validated to ensure a process runs as expected.
Once you've added test cases and identified output, you're ready to run tests. During a test run, the Test Suite runs the current version of each selected process for every test case. Then, it compares the output generated by the runs against the expected output in your test cases.
Follow these steps to start a test run:
Navigate to the Test Suite
From the left navigation menu, go to the Test Suite.
Run Tests
In the Test Suite, select Run Tests.
Run Tests for a Single Process
You can also run tests for an individual process directly.
Click on a process within the Test Suite, then select Run Process Tests.
To stop a test run in progress, click Stop Test Run on the Test Run page.
All your test runs are summarized in the Test Runs tab of the Test Suite. Access the results of a specific test run by clicking on it from this overview page.
Here's a visual guide to reviewing your test run results:
Displayed at the top of a Test Run are the following metrics:
Passed Runs: The number of runs where all the output matches the expected results.
Failed Runs: The number of runs where one or more outputs does not match the expected results.
Guidance Required: The number of runs that paused during execution and required user guidance to proceed. These runs are neither passed nor failed until guidance is provided.
Below the overall summary on the Test Run page is a list of processes included in the test run. For each process, you can see a summary of the overall status, pass percentage, and run metrics. Click into a process to drill down into individual test cases.
Once you've clicked into an individual process within a test run, you'll see a breakdown by test case. Click on any test case to view a side-by-side comparison between the expected output and the test run output.
Test failures generally occur in one of the following scenarios:
The test fails because the expected output doesn't match the current output from your process. To address this issue, you need to analyze the discrepancy and ask: is the new output correct?
If no, there is an issue with your process. Fix the automation logic causing the incorrect result.
If yes, the test case is outdated. Remove the test case and add a new one that contains the updated output.
The expected output is missing entirely, pointing to an issue with the process itself. To address this, update your process to ensure it generates the expected output. This involves debugging your automation workflow and logic to understand why the data isn't being generated.
Note: If you modify the line in the automation where the output was marked, the test may not be able to find the expected output.
Remove invalid or outdated test cases from your Test Suite to keep it up-to-date. Test cases can be removed directly from the Test Suite or from process runs.
From the left navigation menu, go to the Test Suite.
Click on the Test Cases tab.
Click on a process to see its associated test cases.
Select one or more test cases to remove.
From the left navigation menu, go to Processes.
Select a process.
Access a process run.
To view a previous run, click on View Runs
Learn how to start parallel runs in Kognitos.
In Kognitos, a process can call and run multiple subprocesses in parallel using the start a run syntax. Starting parallel runs enables the parent process to explicitly wait for the runs, retrieve the statuses, and fetch the outputs.
This is ideal when multiple subprocesses need to run simultaneously and you need to retrieve the statuses or outputs of multiple runs.
This section describes how to start parallel runs using the start a run syntax.
item: Object to loop over.
subprocess: The name of the subprocess.
input: Objects to pass to the subprocess, if necessary.
Use the Process Widget
When defining the procedure name, use the Process Run Widget:
Type a forward slash / after "the procedure is ".
Click to walk through an end-to-end example.
Remember to Publish Your Process
You need to promote your automation from the Playground to a Process in order to start parallel runs. This applies to both the main parent process and the subprocess. Otherwise, you will get an Assertion Error saying procedure not found.
A parent process can explicitly wait for the runs of a subprocess to complete. Once all runs have finished executing, the system notifies the parent process which runs will proceed further. This allows the parent to respond accordingly, such as collecting data and output from each subprocess, or taking further action based on the results.
To add an explicit wait, include the following line into your automation after starting parallel runs:
To get results from subprocesses that are called with the start a run syntax, use the following syntax after adding an explicit wait:
Below is a line-by-line overview of the automation syntax. Expand each line to learn more.
1. Singular Run
2. Multiple Runs
This is an example walkthrough of invoking multiple instances of a subprocess in parallel runs.
In line 9, the greetings is referenced as output from the subprocess runs. The results are:
Hello Eva
Hello Ian
Hello Leo
Hello Nia
A guide to understanding the Performance Dashboard in Kognitos.
The Performance Dashboard provides a centralized view of your automation performance. It also calculates and displays your return on investment (ROI), giving you a clear picture of the value your automations are generating. To access the dashboard, click on Performance in the top navigation bar.
The dashboard is updated daily to ensure you have access to the latest metrics.
(Updates occur every day at midnight UTC.)
The dashboard can be filtered by agents, published processes, or date ranges.
The agent filter allows you to narrow metrics by specific agents. By default, it includes all agents.
The process filter allows you to narrow metrics by specific processes. By default, it includes all processes from all agents.
The date range filter allows you to narrow metrics by time period. Filter options include:
6M: Last 6 months, including the current month
12M: Last 12 months, including the current month (default)
YTD: Year-to-Date, including the current date
Custom range: A custom range within a 2-year period
Value Insights offers an overview of the time and money saved by using Kognitos. These insights are calculated using the agents and processes selected in the . The summation (Σ) is taken across all selected processes using the date ranges selected.
Configuration Required
Value Insights are based on user-submitted cost and time estimates. Process owners need to for their processes to generate these insights. Click on Request Estimate to send an email notification to process creators, or click on Configure to set them up.
A calculation of your dollar savings based on cost estimates configured for your processes.
Money Saved ($) = Σ (Total Completed Published Runs × Average Money Saved per Run)
A calculation of your time savings based on the time estimates configured for your processes.
Time Saved (Hours) = Σ ((Total Completed Published Runs × Average Time Saved per Run) ÷ 60)
Usage shows the total number of published process runs (regardless of completion status). The number is calculated based on the agents and date ranges selected in the . You can view usage Over Time or By Process by choosing the corresponding filter.
Completion metrics track the success of your published process runs. They are calculated using the agents and date ranges selected in the .
The completion rate is the percentage of published process runs that have successfully completed out of the total number of published runs. It accounts for:
Runs that completed automatically (STP)
Runs that completed with user intervention (Guidance Provided)
Completion Rate (%) = (Total Completed Published Runs ÷ Total Published Runs) × 100
This metric calculates the Straight Through Processing (STP) rate, which is a measure of the runs that completed without user intervention. The STP rate is translated to an efficiency score, which represents how much more work can be completed with the same resources due to automation.
Efficiency Score = 100 ÷ (100 - STP)
Example
An 80% STP results in 5x efficiency.
With 80% STP, only 20% of the work remains manual.
The same resources can handle 5 times more work.
Contract details provide an overview of your current contract, including:
Start date: Date your contract began
End date: Date your contract ends
Expiration: Remaining days until your contract expires (e.g., 35 days)
Runs Used: Total number of published and test runs used (e.g., 151)
Runs Remaining: Total number of published and test runs still available (e.g., 349)
Total Allowed Runs: Maximum number of runs permitted under your contract (e.g., 500)
If you have questions about your contract or need assistance, please contact our support team at or via our platform's Support AI Chat.
Kognitos makes it easy to share insights from your dashboard, without the hassle of screenshots or manual copy-and-pasting.
You can download a PNG image of any individual metric directly from the dashboard:
Hover over any section (Value Insights, Usage, or Completion).
A download icon labeled "Download this section as an image" will appear in the top-right corner.
Click on the icon to download a .png of that section to your device.
Click on Export Data to export an Excel report of your dashboard data. Kognitos will automatically email the .xlsx file to you. This feature is great for in-depth analysis, reporting, or sharing insights in spreadsheet format.
are generated off user-submitted cost and time estimates. While it's not required to provide estimates for every process, these metrics are only generated when the data is configured.
To configure process estimates, follow these steps:
Click on Configure in the top right corner. This will open up a menu showing all your processes across agents.
For a given process, enter in the following details:
Time: Average time saved per process run (in minutes).
Cost: Average cost savings per run (in dollars).
Handling Invoked Process Estimates
If the process invokes another process, please exclude the invoked process estimates from the parent process estimates.
Click Save to apply your configuration.
You can set quarterly goals for Value Insight metrics. To do this:
Click on Set Goal underneath either Money Saved or Time Saved.
Enter your goal (dollars or hours).
Click Save.
upload a document where
the file is Uber-Receipt.pdf
extract data from the document where
the first field is "date"
the first field's format is "text"
the second field is "location"
the second field's format is "text"
the third field is "total"
the third field's format is "text"
create a table where
the column names are "Date", "Start Location", "Total Cost"
the row count is 1
insert a row in the table where
the Date is the data's date
the Start Location is the data's location
the Total Cost is the data's total
send an email where
the recipient is "[email protected]"
the subject is "Rideshare Receipt Summary"
the message is the table3. Unarchive
Restores previously archived runs back to the main run view. This makes them visible again in the default run list (without filters).
4. Add Test Case
Creates a test case from the selected run. Test cases can be used to validate process behavior in the Test Suite.
Draft
Published
Schedule the process to run automatically at specific times / intervals (e.g., every hour, daily, or weekly)
Published









Select Process from the menu.
Select the process you want to call from the Process drop-down menu.
Click Save.
Line 7
Sets an explicit wait for the subprocess runs.
Line 8
Explicitly retrieves the greeting output from the subprocess runs.
Line 1
The wait count is set to 10 seconds (2 intervals of 5 seconds).
Line 2
A data element is defined as a list of names.
Line 3
Initiates a loop across the list of names.
Line 4
Initiates subprocess invocation using start a run where syntax.
Line 5
Specifies the name of the published subprocess to call.
Line 6
Passes input to the subprocess: the name is passed as the user.
Line 1
Data is defined as a string that says "Hello "
Line 2
The user is added to the end of the greeting.
Line 3
The automation outputs a greeting with the user's name at the end.

Parent Process
│
┌-----------------------┴------------------------┐
│ │ │
│ │ │
Parallel Subprocess Parallel Subprocess Parallel Subprocess
process each item as follows:
start a run where
the procedure is {subprocess}
{input}the items are "apples", "flour", "eggs", "milk"
process each item as follows
start a run where
the procedure is /to make apple pie
the ingredient is the itemwait for the runsretrieve data from the run where
the fact names are "output sum"
get the output sum from the dataretrieve data from the runs where
the fact names are "status"
get the statuses from the datathe department's max retry wait count is 2
the names are "Eva", "Ivan", "Leo", "Nia", "Zoe"
process each name as follows
start a run where
the procedure is /to greet the user
the user is the name
wait for the runs
retrieve data from the runs
the fact names are "greeting"
get the greetings from the dataReview Changes
Review the test results to check for any differences in expected outcomes.
Select Draft or Published to filter runs.
Select one or more process runs to add as test cases.
Click Add Selected.
To view a previous run, click on View Runs and choose a run from the list.
To start a new run, click on Run.
Click the menu ⋮ button, then select Add to Test Suite.
Confirm the addition of the test case by clicking Add.
To view a previous run, click on View Runs and choose a run from the list.
To start a new run, click on Run.
Select data by clicking on the name of a data element in your process.
In the Information panel on the right, click the star icon (⭐️) next to the data element. The star will turn yellow to indicate the value is now starred.
Learn more about Starring Data here.
A Run Tests pop-up will appear, displaying a list of processes to select from:
Ready for Testing: At the top of the list, you'll see processes that are ready for testing. All eligible processes are selected by default. You can uncheck processes to exclude them from the test run.
Ineligible for Testing: At the bottom of the list, you'll find processes that cannot be tested yet. These will be categorized as either Missing Test Cases or Missing Outputs. You cannot select these processes until you've added test cases or identified output for them.
Confirm Test Run
Confirm the test run by clicking on Run Tests.
Click on Remove from Test Suite.
Confirm the removal of the test case(s) by clicking Remove.
To start a new run, click on Run.
Click the menu ⋮ button, then select Remove from Test Suite.
Confirm the removal of the test case by clicking Remove.
<id>@app.kognitos.com, where the id corresponds to the ID of your Playground or Process run.Below is a line-by-line overview of the automation syntax. Expand each line to learn more.
The following syntax formats are all supported equivalents and produce the same results.
Syntax: send an email
Syntax: send an email to {recipient}
Syntax: send {message} to {recipient}
When multiple messages are specified, Kognitos sends a single email containing all of them:


Learn how to provide guidance to automations in the Guidance Center.
When an automation needs additional context or clarification to proceed, it will raise a question (also called an exception). In Kognitos, exceptions are resolved by providing guidance — giving input to the system so it understands how to proceed. Using the Guidance Center, you can quickly provide guidance across automations to keep your processes running smoothly.
Access the Guidance Center from the top navigation menu. Here’s a quick walkthrough: ⬇️
The Guidance Center contains the following key features:
Exceptions are grouped based on the automation step where each exception occurred. Using guidance groups, you can resolve similar issues together, instead of handling them individually.
Sort and filter exceptions by:
Agent
Assignee
Status (Pending, Archived, Answered)
Date (1 Week, 1 Month, 3 Months, Custom Range)
Use the Try New Flow toggle to switch between:
Group Handling (Try New Flow: enabled) - Resolve multiple related exceptions at once.
Individual Handling (Try New Flow: disabled) - Resolve exceptions one by one, a workflow used in the former Exception Center.
Providing guidance is the process of giving input (guidance) that helps the system understand how to resolve exceptions and continue execution. Guidance can take the form of a specific value, a decision to skip the issue, or another form of clarification. Additionally, guidance can be provided for individual exceptions or for an entire group of exceptions.
We recommend group handling — It’s the fastest and easiest way to resolve multiple exceptions!
Group exception handling allows you to resolve multiple exceptions at once. The Guidance Center automatically identifies and groups exceptions based on the automation step where each exception occurred. Instead of handling each exception individually, you can address the entire group. Additionally, group exception handling allows you to provide guidance using natural language instructions. Here's how:
Navigate to the Guidance Center
From the top navigation menu, go to the Guidance Center.
Try New Flow
Enable Try New Flow for group exception handling.
The individual exception handling workflow (previously used in the Exception Center) is also available in the Guidance Center.
Navigate to the Guidance Center
From the top navigation menu, go to the Guidance Center.
Disable Try New Flow
Disable Try New Flow for individual exception handling.
When resolving exceptions in the Guidance Center, you can choose from several resolution methods:
Manually enter a static value to resolve the exception. Use this when you know the exact answer for simple values like names, numbers, dates, or text. Supports multiple input types (text, number, date, boolean, file upload, or no value). Character limit: 5,000.
Example:
Write executable automation code (a technique) that calculates the answer dynamically. Use this when the answer needs to be calculated from data, varies based on context, or requires extraction/transformation. The technique runs in a mini playground, and you can choose to use the output as the answer, retry the step, or skip the step. Character limit: 15,000.
Example:
Bypasses the current step and continues to the next step. Use this for optional or non-critical steps, when you want to continue despite failures, or for testing. You can optionally provide additional facts before skipping.
Skipping a step may cause another exception if it resolves data needed later. For example, if you skip getting a document, later references to that document will raise new exceptions.
Re-executes the failed step. Use this for temporary failures (network issues, rate limits, timeouts) or when waiting might resolve the issue. You can configure a minimum delay (wait time before retry) and timeout (maximum retry duration), both in seconds. Optionally provide additional facts before retrying.
Example:
Approves a review request when the system needs human verification. Use this to approve extracted data, confirm actions should proceed, or validate quality control checkpoints.
Example:
Provide or correct facts that failed validation. The system will run a technique with your corrected facts, then you choose to retry or skip the original step. Use this when extracted data is incorrect or incomplete, or when validation rules need to be overridden.
Example:
Replaces the problematic step with new steps you provide. Use this when the original step is fundamentally wrong, you need to change the approach entirely, or for one-time workarounds.
Example:
Most resolution methods can be learned, meaning the same resolution will automatically apply to identical exceptions in the future. When submitting an answer, check the "Remember" checkbox and select where to apply (Draft Mode and/or Published Mode for processes, or agent's playgrounds). The learning will be stored and applied automatically to future identical exceptions, eliminating the need for repeated human intervention.
The Guidance Center only shows exceptions for published runs. Draft runs are treated as test runs, so they don’t generate exceptions. If you don’t see an exception, first check whether the process is published.
Learn about the basic keywords in Kognitos, their usage, and examples.
the KeywordIntroduces a new object, concept, or data element.
Example
In this example, we are introducing a file to Kognitos.
get KeywordUsed to retrieve objects or to obtain values from a document.
Example
In these examples, we are first retrieving a document, and then retrieving the id and date values from the document.
find KeywordUsed to search for and obtain details from a document.
Example
Here, we are searching for a document's date and invoice number.
get and findBoth get and find can be used to obtain information from a document:
The difference between the two is how they handle exceptions when a specified item is not found in the document:
The get keyword raises a Question and pauses execution.
The find keyword returns Not Found and continues execution.
use Keywordsay KeywordOutputs the value of a data element or text.
Examples
stop KeywordHalts a run or process from progressing further.
Example
In this example, say "Goodbye!" will not run.
imagine KeywordThe imagine keyword is used to declare a data element as a placeholder.
Example
set KeywordAssigns a specific value to a data element.
Example
In the example above, the nameis assigned the value John Smith.
remove KeywordUsed to delete specified elements, such as characters, words, or items, from a variable or dataset.
Example
convert KeywordTransforms data from one format to another.
Example
add KeywordThe add keyword is used to combine, extend, or append data to an existing set or structure. This includes both mathematical addition and data aggregation in various formats.
Arithmetic Addition
Used to add two numerical values to produce a single sum.
Date and Time Addition
Used to add a specified time duration to a given date.
Data Aggregation
Used to expand datasets by adding new items, rows, or entries.
contains KeywordUsed to check if a string, list, or dataset includes a specific value.
Example 1: Strings
In this example, contains is used to check if the surname Smith is present in the full name John Smith.
Example 2: Sets
In this example, contains is used to check if oranges is present in the set of values.
Example 3: Tables
The contains keyword can be used with tables to retrieve rows whose columns include a specific value.
Example
Consider the following table that lists various zoo animals, their ages, and their favorite foods.
The contains keyword is used to retrieve the rows where the Favorite Food column includes the value Fruits.
Result
ask KeywordThe ask keyword is used to ask a question to the user. The question will be raised as a . Additionally, you can specify answers as a set of choices.
the above KeyphraseWhen a data element's value is set to the above, Kognitos makes a copy of the value from the previous lines in the automation:
<data name> is the aboveIn this example, the backup email is assigned the value [email protected].
the customer email is "[email protected]"
the backup email is the aboveHere, the invoice total is assigned the value 150.
In this example, the file is assigned a copy of the above file in the automation.
Use the use keyword to reassign a data element, which copies the reference to the original data value:
send an email where
the recipient is "[email protected]"
the subject is "Kognitos: Welcome Aboard"
the message is "We're happy to have you here! Let's automate!"send an email to "[email protected]" where
the subject is "Kognitos: Welcome Aboard"
the message is "We're happy to have you here! Let's automate!"send "We're happy to have you here! Let's automate!" to "[email protected]" where
the subject is "Kognitos: Welcome Aboard"send an email to "[email protected]" where
the subject is "Invoice Summary"
the message is "Attached below is the invoice summary for July 2025."
the attachment is the invoicecreate a sample table
use the above as the table
send "Here is your table" to "[email protected]" where
the attachment is the tablesend an email to "[email protected]" where
the subject is "Onboarding Materials"
the message is "Here are your onboarding materials!"
the attachments are the new hire paperwork, the onboarding document, the filethe instructions are "Log into Kognitos", "Build your automation in the Playground"
send the instructions to "[email protected]"send "Hello!" to "[email protected]" where
the cc emails are "[email protected]", "[email protected]"
the bcc emails are "[email protected]"the fileIn this example, the registration date is reassigned the value 11-05-2024.
In this example, the order name is assigned a copy of the reference to the last name, meaning it will point to the same value.
If the last name changes, the order name will also change, because it references the same value. When the last name changes to Smith-Brown (line #3), the order name also changes (line #4):
the order total is 150
the invoice total is the abovethe file is the aboveuse <data value> as the <data name>use "11-05-2024" as the registration dateuse the last name as the order namethe last name is "Smith"
use the last name as the order name
the last name is "Smith-Brown"
the order nameSelect a Guidance Group
Select a guidance group by clicking on it.
View More Details
Open any run to view more details about an exception.
Provide Guidance in Natural Language
Provide instructions for resolving the exception. Then, click on Generate to create answer suggestions.
➡️ Best Practices
Provide clear instructions, including necessary context to avoid misinterpretations.
If the system has pulled incorrect data, override it by clearly stating what to use and what to ignore.
Specify if you need data returned in a specific format (especially for dates or numbers).
Review Suggestions
Review the suggested answers. Hover over the ✨ icon to view an explanation summary.
Take Action
Decide how to handle each run, after reviewing the suggested answers. You can choose to submit, provide alternative guidance (individually or for multiple runs), or leave certain runs unresolved and return to them later.
Individual Resolution Actions
These resolution actions can be taken on individual runs:
Enter your own answer directly, instead of using the system-generated suggestion. You can choose one of the following value types: Text, File Upload, or No Value. This option may be useful when the automation can’t infer the right answer.
Let the system calculate or derive the answer using available data or logic. You can use this when the answer isn’t directly available, but can be computed.
This option bypasses the step in the automation. This is helpful if the step is not applicable or doesn't need resolution at the moment. For this resolution method, you can also add a delay or timeout.
Note: Skipping a step may cause another exception if it resolves data that's needed later in the automation.
For example: An exception occurs with the message "Could not get a file as a scanned document". The user chooses the Skip this step option. Later, the automation attempts to reference the document, resulting in a new exception: "Please provide scanned document."
Use this option to re-execute the failed automation step. This may be helpful if the exception was caused by a network error, a timeout, or temporary issues.
Bulk Resolution Actions
Select one or more runs, then choose one of the following actions to apply to all:
Skip the current step for all the selected runs.
Retry the automation step for all the selected runs.
Submit answers across all the selected runs.
Assign the selected questions to a user.
Select an Exception
Select an exception to resolve from the bottom.
Select a Resolution Method
Select a resolution method to handle the exception.
Check always use this answer for this process to automatically reuse your response if the same exception reoccurs in the future.
Submit
Click Submit to submit the resolution.
🐒 Monkey
4 years
Fruits
🦁 Lion
7 years
Meat
🐘 Elephant
10 years
Fruits
🦓 Zebra
3 years
Grass
🦒 Giraffe
7 years
🐘 Elephant
10 years
Fruits
🐒 Monkey
4 years
Fruits
Use the use keyword to reassign a data element, which copies the reference to the original data value:
use <data value> as the <data name>Updating a referenced data element can overwrite previous data — see Example 2 for more details.
In this example, the registration date is reassigned the value 11-05-2024.
In this example, the order name is assigned a copy of the reference to the last name, meaning it will point to the same value.
If the last name changes, the order name will also change, because it references the same value. When the last name changes to Smith-Brown (line #3), the order name also changes (line #4):
When a data element's value is set to the above, Kognitos makes a copy of the value from the previous lines in the automation:
<data name> is the aboveIn this example, the backup email is assigned the value [email protected].
the customer email is "[email protected]"
the backup email is the aboveHere, the invoice total is assigned the value 150.
In this example, the file is assigned a copy of the above file in the automation.
Leaves
the subject is "IMPORTANT: Memo"Reference the currently supported capacities of the Kognitos platform to confidently design, deploy, and manage automations.
For the date, use the one from the invoice.Match based on the Customer Name from the billing section.Calculate the tip as 15% of the total. Ignore the tip in the document.Set quantity to 0. Don’t use the value extracted from the scanned form.Question: "What is the customer name?"
Answer: "John Smith"Question: "What is the invoice total?"
Technique:
open the invoice document
extract the table named "Line Items"
sum the "Amount" columnScenario: API call failed
Action: Retry after 5 seconds with 60-second timeoutRequest: "Please review this extracted invoice data"
Action: Approve to proceedIssue: Invoice date extracted incorrectly
Action: Correct the date valueOriginal: "open file.xlsx"
Replace with: "open invoice_2024.xlsx"get the document
get the document's "id"
get the document's "date"find the document's "date"
find the document's "invoice number"get the document's phone number
find the document's phone numbersay "Hello World!"say the namesay "Hello!"
stop
say "Goodbye!"imagine a value
imagine templatesset the name to "John Smith"remove punctuation from the textconvert the file to a gif fileadd 10 and 5the date is "2024-11-01"
add two days to the dateadd a column to the tablethe full name is "John Smith"
if the full name contains "Smith" then
say "The surname is correct!"the values are "apples", "bananas", "oranges"
if the values contain "oranges" then
say "The oranges are available."get the table's rows whose Favorite Food contains "Fruits"ask "What is your age?"ask "The access code"ask "When does the flight depart?"
the choices are "Morning", "Afternoon", "Evening"ask "preferred language"
the choices are "English", "Spanish", "Hindi", "French"the message is "Please take a look at the provided chart."the attachment is the tablethe attachments are the invoice, the user summary, the documentthe recipients are "[email protected]"the cc emails are "[email protected]"the bcc emails are "[email protected]"Playgrounds (per agent)
Up to 200 playgrounds
Processes (per agent)
Up to 200 processes
A playground or process automation should be written within the following capacity guidelines:
1-200 lines
Great — Fastest execution and easiest to maintain
200-500 lines
High — Suitable for more complex workflows
500-1200 lines
Moderate — Can be optimized by breaking into subprocesses
1200+ lines
Needs Optimization — Should be broken into smaller subprocesses
Number of Loops
Up to 200 loops
Split large automations into subprocesses to improve performance and maintainability.
A run is a single execution instance of a process. Concurrent runs refer to the total number of runs executing at the same time across your organization. Runs can be started manually, triggered via email or API, or scheduled. The platform can support the following number of concurrent runs:
Concurrent Runs
150 runs
The total number of actively running instances across your entire organization. This includes all process runs (you can run the same process multiple times), parallel child runs, and test suite runs.
Parallel Runs
50 runs (per process)
The maximum number of child processes that a parent process can call and run at the same time. These count toward the concurrent run capacity.
Test Suite Runs
40 runs
The maximum number of test runs that can execute simultaneously in the Test Suite when validating process changes. Test runs also count toward the concurrent run capacity.
Learnings are rules that guide your automation's decision-making. Learnings are isolated to each agent, with no limit on the total number of learnings per agent.
Learning Length
15,000 characters
For optimal performance, we recommend keeping the total number of learnings under 500 per agent.
Kognitos supports sending and receiving emails with attachments up to 20 MB. Outgoing emails with oversized attachments are handled using download links. These limits apply only to native email functionality and not to Books (e.g., Outlook, Gmail).
Email Size
20 MB (including attachments)
The platform supports uploading and processing the following file types:
1 GB
Images
.jpeg, .jpg, .png, .tif, .tiff
1 GB
Data
.txt, .yml, .yaml, .csv
1 GB
Documents
.docx, .doc
When extracting data or tables from documents using LLMs, the maximum supported document size depends on the model provider:
Gemini
50 MB (per document)
OpenAI
512 MB (per document)
For large documents, consider processing them in smaller chunks (e.g., 50-100 pages at a time) to improve performance and reliability. You can use subdocument extraction to split documents into manageable sections.
Store structured information at scale with capacities designed for fast retrieval and updates.
Entries
150,000 (per department box)
These capacities reflect current performance levels and will continue to expand as the platform grows. If your workload requires higher limits, please reach out to our support team via in-app chat (preferred) or email us at [email protected].
Agents are dedicated execution environments that contain and manage your automations. Each agent is dedicated to your organization, with its own skills and settings, and can hold multiple automations.
Automations are sets of instructions that tell Kognitos what to do — process data, work with documents, send emails, call other processes, and more. These are workflows that can take the form of an early idea (playground) or a complete process. Both playgrounds and processes are considered automations.
The optimal capacity recommendations (100 agents, 200 playgrounds, 200 processes) are guidelines, not hard limits. You can create unlimited agents, playgrounds, and processes. However, exceeding these recommendations may slow down the user interface, causing delays when loading dashboards, navigating lists, or accessing settings. For the best experience, we recommend staying within these ranges.
Concurrent runs refer to the total number of active runs across your entire organization. You can run the same process multiple times, and each run counts as one concurrent slot.
Example: With a 150 concurrent run limit, you could run the same process 150 times, or 75 runs each of two different processes, or any other combination up to 150 total running instances.
Parallel runs refer to child processes that a single automation spawns to execute simultaneously. One parent process can spawn up to 50 parallel children at once. These parallel runs count toward your concurrent run capacity.
Example: If one process spawns 50 parallel children, it uses 51 concurrent slots (1 parent + 50 children).
Test suite runs are special runs used to validate process changes by comparing results against expected outcomes. You can run up to 40 test runs simultaneously. Test suite runs also count toward the concurrent run capacity.
Only active runs count toward the concurrent run capacity. Process runs do NOT count when:
Waiting for user input (exceptions)
Waiting to retry after an error
Completed (successfully, failed, or stopped)
When a process pauses for user input, it releases capacity for other processes to run.
No. All runs count toward the run limit regardless of how they're started — whether triggered manually, via API, by email, or on a schedule.
When you reach the capacity limit for concurrent runs:
API calls to trigger new runs may return 403 errors or "Resource Not Available" messages
Process crashes may occur and require reruns or retries
Processes beyond the capacity threshold may experience failures
Yes. If a process is rejected due to exceeding capacity, you can retry it once capacity becomes available. We recommend staying within the capacity thresholds to prevent unexpected behavior.
Yes, API endpoints all share the same rate limit pool, including both trigger and query operations (such as status checks). Rate limits differ by region. To check your rate limits, go to API Keys → click on the menu (⋮) to the right of an API key → Usage.
Agents (per organization)
Up to 100 agents








use "11-05-2024" as the registration dateuse the last name as the order namethe last name is "Smith"
use the last name as the order name
the last name is "Smith-Brown"
the order namethe order total is 150
the invoice total is the abovethe file is the aboveExtract the date in YYYY-MM-DD format.Return the amount with two decimal places.1 GB
HTML
.html, .htm
1 GB
.eml, .msg
1 GB
ERP
.edi
1 GB
Media
.wav, .mp3, .mp4, .mov, .avi
1 GB
Other
.ttf
1 GB
Excel
.xlsx, .xls, .xlsb, .xlsm
250 MB (.xlsx and .xlsm) 150 MB (.xlsb and .xls)
JSON
.json
1 GB* While uploads up to 1 GB are supported, files larger than 100 KB can't be fully displayed in the interface. These can be downloaded to view the complete content locally.

An overview of users, roles, and permissions in Kognitos.
This document describes our new enhanced RBAC system, which is currently being rolled out to organizations gradually. If your organization hasn't been migrated yet, see the Legacy Roles & Permissions section at the bottom of this page. Contact our support team at [email protected] or via our in-app chat (preferred) for more information.
Kognitos uses a role-based access control (RBAC) system to manage who can access your automations and what actions they can perform. Roles can be assigned at two levels: organization-wide, which grants access and permissions across all agents in the organization, or agent-specific, which limits access and permissions to individual agents.
A user in Kognitos is an individual who is a member of an organization and has been granted access to interact with the platform. Users are assigned specific roles that determine their permissions and what actions they can perform.
To manage an agent's users, click on the user icon (👤) in the top-right → Users.
Only , , and can add, edit, or remove users.
To add a new user, click on the user icon (👤) in the top-right → Users → Invite User. Select the user's role and enter their email address. They will receive an email invitation to join your agent.
To change a user's role or remove a user, click on the user icon in the top-right 👤 → Users. Then click on the menu (⋮) next to a user and select either Change Role or Remove from Agent.
Organization-level roles provide broad access across all agents in an organization. These roles are designed for executives, administrators, and support personnel who need organization-wide visibility and control for management, oversight, and troubleshooting.
An Organization Owner has complete administrative control over the entire organization and all its agents. This person can perform all actions across the organization, including creating the first agent and managing agents, users, processes, connections, and integrations.
This role is automatically assigned to whoever owns the organization and cannot be manually assigned to other users. However, ownership can be by either the current owner or the Kognitos support team.
The Support role provides near-complete administrative access for troubleshooting and managing your organization. Users with this role have the same permissions as Organization Owners, with one exception: they cannot create new agents. This ensures support personnel can assist with configuration, user management, process debugging, and operational issues without modifying the organization's agent structure.
An CXO has high-level oversight across the organization with read-only access to analytics, metrics, and dashboards. This role is designed for those who need visibility into organizational performance, rather than operational access.
Agent-level roles are scoped to individual agents. Unlike organization-level roles that span the entire organization, users within an agent can have different roles based on their responsibilities in the automation workflow.
An Admin has complete control within an agent. This role can manage all aspects of the agent, making them responsible for overall administration and configuration.
An Author focuses on developing and testing automations within their agent. This role can create, edit, and test automations, manage integrations, and work with learnings, but cannot publish processes, create or update credentials, or access dashboards and API keys.
An Operator can run and monitor automation processes. This role is focused on day-to-day execution, resolving exceptions, and managing learnings without the ability to modify the processes themselves.
An Integrator manages connections, credentials, and integrations within their agent. This role has no access to processes, runs, dashboards, or learnings, ensuring clear separation between integration management and process execution.
Organization ownership can be transferred to another user when needed, such as during personnel changes or organizational restructuring. Transfers can be initiated by either the current Organization Owner or requested through the Kognitos support team. When ownership is transferred, the previous owner is automatically assigned the Admin role across all agents in the organization, ensuring continuity while transitioning control to the new owner.
This section describes the legacy role system that is being phased out. If your organization has been migrated to the new RBAC system, refer to the section above.
The legacy system used a simplified two-role model at the agent level: Admin and Member. Admins had full control over the agent, while Members could draft automations, run processes, and handle exceptions, but had limited access to administrative functions.
Delete Agents
✅
✅
❌
Manage Users (Add, Edit, Remove)
✅
✅
✅
Manage Connections (Add, Edit, Remove)
✅
✅
❌
Manage Books (Add, Edit, Remove)
✅
✅
❌
Manage Playgrounds (Create, Edit, Delete)
✅
✅
❌
View Processes
✅
✅
✅
Manage Processes (Create, Delete, Edit)
✅
✅
❌
Manage Runs (View, Start, Edit, Archive)
✅
✅
❌
Manage Exceptions (View, Resolve)
✅
✅
❌
Manage Learnings (Create, Edit, Delete)
✅
✅
❌
View Dashboard
✅
✅
✅
Manage ROI Goals
✅
✅
✅
Manage Agent-Level API Keys (View, Add, Edit, Remove)
✅
✅
❌
Manage Org-Level API Keys (View, Add, Edit, Remove)
✅
❌
❌
✅
❌
❌
✅
View Connections
✅
✅
✅
✅
Manage Connections (Add, Edit, Remove)
✅
❌
❌
✅
Manage Books (Add, Edit, Remove)
✅
✅
❌
✅
View/Create Playgrounds
✅
✅
✅
❌
Edit/Delete Playgrounds
✅
✅
❌
❌
View Processes
✅
✅
✅
❌
Manage Processes (Create, Edit, Delete)
✅
✅
❌
❌
View Runs
✅
✅
✅
❌
Start Runs
✅
✅
✅
❌
Edit Runs
✅
✅
❌
❌
Archive Draft Runs
✅
✅
✅
❌
Archive Published Runs
✅
❌
✅
❌
Manage Exceptions (View, Resolve)
✅
✅
✅
❌
Manage Learnings (Create, Edit, Delete)
✅
✅
✅
❌
Manage Test Suites (Add, Edit)
✅
❌
✅
❌
View Dashboard
✅
❌
❌
❌
Manage Agent-Level API Keys (View, Add, Edit, Remove)
✅
❌
❌
✅
Manage Org-Level API Keys (View, Add, Edit, Remove)
❌
❌
❌
❌
Learnings
View, create, edit, delete
View-only
Processes
View, create, edit, delete, activate, deactivate, duplicate
View-only
Process Versions
View and restore process versions
View-only
Agent Management
Publish, export, import
Export, import (into new agents only)
Preferences
Enable beta features in user settings
Cannot update preferences
View Agents
✅
✅
✅
Create Agents
✅
❌
❌
Edit Agents
✅
✅
Edit/Delete Agent
✅
❌
❌
❌
Manage Users (Add, Edit, Remove)
✅
❌
❌
❌
Users
Can add new users to an Agent
Cannot add new users to an Agent
Playgrounds
View, create, edit, delete, configure routing
View, create, edit, delete
Exceptions
View, handle, archive
View, handle, archive
Books
View, learn, edit, delete
View-only



❌
Manage API Keys (View, Add, Edit, Remove)