packages/workflow. Each page path uses the block ID converted to kebab-case.
AI
Ask AI
Makes a call to an LLM chat model.
AI Filter
Applys a AI call to each item in a list of values.
AI Scorer
Scores each message in a chat-message[] array using an AI model. Each message is scored between 0 and 1 based on the provided scoring criteria.
Analyze Image
Analyzes the contents of an image. If the image is a chart, it will provide an analysis of any trends or insights.
Analyze Table
This node allows you to analyze a table using AI. You can describe the analysis you would like to perform on the table and the AI will generate the code for you.
Assemble Message
Assembles a single chat message from multiple parts. Parts can be text, images, audio, or files. Not every model supports all modalities, so ensure that the downstream model supports the parts you include.
Categorizer
Classifies messages into predefined categories using an AI model. Each category has a title and description that defines what types of messages belong to it. The LLM will evaluate the messages against each category’s criteria and classify accordingly.
Create Chart
This node allows you to create a chart image using AI. You can describe the chart you would like to create using the input table and the AI will generate the code to create the graph for you.
Extract Data
Applies an LLM to extract data from the supplied context, based on the schema.
Generate Questions
Generates a number of questions given the context and supplied instructions.
Research AI
Researches sources that answer your query using our Research AI. It can search any of our public stores or your private document stores.
Input/Output
Input
Defines an input for the flow which can be passed in when the flow is called, or defines one of the input ports when the flow is a subflow.
Output
Each instance of this node represents an individual output of the flow. The value passed into this node becomes part of the overall output of the flow.
User Input
Prompts the user for input during the execution of the flow. The user’s response becomes the output of this node.
Upload File
User input node for file uploads. Outputs the file as a file object or list of file objects for further processing.
Confirm
Prompts the user for a confirmation to continue. Outputs the value if the user confirms.
Data
Array
Creates an array from the input values. By default, flattens any arrays which are inputs into a single array. Can be configured to keep the arrays separate, or deeply flatten arrays. Useful for both creating and merging arrays. The number of inputs is dynamic based on the number of connections.
Bool
Outputs a boolean constant, or converts an input value into a boolean.
Date
A date picker node to select a date.
File
Provides an static file to use.
Image
Defines a static image for use with other nodes. Can convert a binary type into an image type.
Number
Outputs a number constant, or converts an input value into a number. Can be configured to round the number to a certain number of decimal places.
Object
Creates an object from input values and a JSON template, escaping the input values and inserting them into the template. Use double-quotes around the input values to escape them. String values are automatically escaped. Useful for creating objects from multiple inputs.
Random Number
Outputs a random number between the configured min and max values. Can be configured to output only integers, and whether the max value is inclusive or exclusive.
Text
Outputs a string of text. It can also interpolate values using . The inputs are dynamic based on the interpolation tags.
Loaders
Read Binary
Reads the contents of the specified file and outputs it as binary.
Read Images
Reads the contents of the specified file and outputs each page as an image.
Read Table
Reads and parses a CSV file into a table data type.
Read Text
Reads the contents of the specified file and outputs it as a string.
Transcribe Audio
Transcribes speech from an audio file or audio data using an LLM. Accepts either audio data type or file data type as input.
Logic
Abort Flow
Aborts the execution of the entire flow immediately. Can either “successfully” abort the flow (early-exit), or “error” abort the graph.
Checklist
Evaluates messages against a list of conditions. All conditions must be satisfied for the messages to be routed to the success output. If any condition fails, the messages are routed to the failure output.
Coalesce
Takes in any number of inputs and outputs the first value that exists. Useful for consolidating branches after a Match node. This node can also “consume” the “Not Ran” value.
Compare
Compares two values using the configured operator and outputs the result. If the data types of the values do not match, then the B value is converted to the type of the A value.
Delay
Delays the execution and then passes the input value to the output without any modifications.
If/Else
Takes in three inputs: a condition, a true value, and a false value. If the condition is truthy, the true value is passed through the output port. If the condition is not truthy, the false value is passed through the output port. This node can “consume” a
Not Ran to continue a graph from that point.Match
Any number of regular expressions can be configured, each corresponding to an output of the node. The output port of the first matching regex will be ran, and all other output ports will not be ran.
Passthrough
Simply passes the input value to the output without any modifications.
Race Inputs
Takes in multiple inputs and outputs the value of the first one to finish. The other inputs are cancelled.
Route
Routes messages to different outputs based on LLM evaluation of multiple conditions. Each option has a prompt that describes when messages should be routed to that output. The LLM will evaluate the messages against each option’s criteria and route accordingly.
Switch
Takes in a condition and a value. If the condition is truthy, the value is passed through the True port, and the False port is not ran. If the condition is falsy, the value is passed through the False port, and the True port is not ran.
Modifiers
Chunk
Splits the input text into an array of chunks based on an approximate GPT token count per chunk. The “overlap” setting allows you to partially overlap the chunks for redundancy. Can also be used for string length truncation by only using the
First or Last outputs of the node.Convert File
Converts a file between PDF and DOCX formats.
Convert Format
Converts data to a text format. - JSON — converts the input to a JSON string - YAML — converts the input to a YAML string
Destructure
Destructures the input value by extracting values at the specified paths. The paths use JSONPath notation to navigate through the value.
Extract from Text
Extracts structured data from text. Supports multiple formats: - JSON — finds and parses the first JSON object or array - YAML — finds and parses YAML by a root property name - Code Blocks — extracts fenced code blocks from markdown - Tables — extracts tables from markdown - Pattern — extracts text using a regular expression
Filter
Takes in both an array of values, and an array of booleans of the same length, and filters the array where the corresponding boolean is true.
Flatten
Takes in a nested array and flattens the array to a single level.
Get Value
Gets a value from an object using a path expression. Use JSONPath notation to navigate through the object, for example: -
$.name — get the “name” field - $.items[0] — get the first item - $.users[*].email — get all user emailsHash
Computes a hash of the input value using the configured hash function.
Index
Takes in both an array of values, and an index value or an array of indicies, and selects the values at the given indicies.
Join
Takes an array of strings, and joins them using the configured delimiter. Defaults to a newline.
Merge PDFs
Merges multiple PDF files into a single PDF document. The files will be merged in the order they are provided. Supports up to 10 input ports, each accepting either a single file or an array of files.
Pop
Pops the last value off the input array and outputs the new array and the popped value. Can also be used to just extract the last value from an array.
Shuffle
Shuffles the input array. Outputs the shuffled array.
Slice
Slices an array from the start index for the count number of elements. Useful for extracting a portion of an array.
Draft
AI-Fill PDF
Fills a PDF form using AI. Extracts form fields from a PDF and uses a vision-language model to populate them based on the provided context.
Draft
A versatile drafting node that has a selection of pre-configured drafting templates for common use cases.
Populate Template
Populates a template document using AI-extracted field values from the input messages. Fields that cannot be determined from the messages are left blank.
Table To File
Converts a table to a file based on the specified formats.
Text To File
Converts text to files based on the specified formats.
Advanced
Code
Executes a piece of Python code. See the Documentation for more information on how to write code for the Code Node.
Comment
A comment node is a node that does nothing. It is useful for adding notes to a graph.
HTTP Call
Makes an HTTP call to the specified URL with the given method, headers, and body.
Raise Event
Raises an event that the host workflow or a ‘Wait For Event’ node can listen for.
Subflow
Executes another flow. Inputs and outputs are defined by Flow Input and Flow Output nodes within the subflow.
Wait For Event
Waits for a specific event to be raised by a ‘Raise Event’ node or the host workflow. The event name can be configured.
Agents
Agent
Executes a task by intelligently selecting and using available tools. The agent will analyze the task, break it down into steps, and execute the appropriate tools to accomplish the goal.
Template Agent
Intelligently populates templates by gathering missing information using tools or by asking users. Features flexible tool-based operations, batch template population, and intelligent context gathering.
Documents
Add File to Document Store
Adds a file to the selected document store.
Analyze Documents
Analyzes documents in a document store using aggregations like count, sum, and average. Describe your analysis in plain English — for example, “count contracts by jurisdiction” or “total settlement amount by year”.
Find Document
Finds a single document in a document store by matching metadata fields. Add match criteria to create input ports — wire values from upstream nodes to look up documents by case number, reference ID, client name, etc.
Search Documents
Searches document stores to find relevant documents. Supports semantic search (vector similarity), structured filtering (metadata queries), or hybrid mode that combines both and re-ranks results. Can search across multiple stores simultaneously.
New Document Added
Triggers when a new document finishes processing in a document store. Outputs the document metadata including title, type, extracted metadata, and content URL.
Triggers
Schedule
Run workflow on a schedule using cron expressions. Configure the cron expression and timezone to schedule when the workflow should execute.