Utility
Introduction
The Utility category groups together all the Actions and Triggers in AI Workflows that are not tied to a specific third-party app. Instead of connecting to a service like Gmail or Salesforce, these are the general-purpose building blocks you use to move data around, transform it, control the path your flow takes, schedule executions, call external endpoints, and handle files. They are the connective tissue of almost every workflow you'll build.
The Utility category is made up of two kinds of element:
- Flow Blocks — Code, Router, and Loop on Items. These are built directly into the flow builder, are always available, and require no connection. They control the structure and logic of your flow rather than performing an app-specific task.
- Core Pieces — general-purpose Pieces such as HTTP, FTP/SFTP, Schedule, Text Helper, Date Helper, and many more. These behave like any other Piece in AI Workflows but provide app-agnostic functionality.
About Continue on Failure and Retry on FailureThese two Properties are available on every Action across the Utility category, just as they are throughout AI Workflows:
- Continue on Failure: Skip the current step and continue the flow normally if it fails.
- Retry on Failure: Automatically retry the current step up to four attempts when it fails.
To avoid repetition, these two options are described here once and are not repeated under each individual Action below.
Many Actions accept dynamic values through the Data Selector, letting you combine static text with values produced by earlier steps.
Code
The Code block lets you write and run custom JavaScript (TypeScript) directly inside your flow. Use it whenever the transformation or logic you need isn't covered by an existing Piece — for example, reshaping a complex object, performing custom calculations, or calling an npm library.
Code is a Flow Block, not a Piece: it's always available from the Actions menu and requires no connection.
Properties
Inputs
Define the values your code will receive, as a set of key/value pairs. Each input has a name (the key you'll reference inside the code) and a value, which can be static text or a dynamic value from the Data Selector. All inputs are passed to your code as a single inputs object.
Code
The body of your function. Your code runs as an asynchronous function that receives the inputs object and returns a value:
export const code = async (inputs) => {
return inputs.firstNumber + inputs.secondNumber;
};
Warningconst code is the entry to the code. If it is removed or renamed, your step will fail.
Whatever you return becomes the Action's output and can be used by later steps.
Packages (package.json)
You can import npm packages by declaring them as dependencies. Once declared, you can import or require them inside your code. This makes the Code block extremely flexible for tasks that have a well-supported library.
Output
The output of this block is whatever value your function returns. It can be a simple value (text, number, boolean), an object, or an array, and is made available to subsequent steps.
Example
Inputs
- firstNumber = 5
- secondNumber = 7
Codeexport const code = async (inputs) => { return { sum: inputs.firstNumber + inputs.secondNumber }; };
Output
- sum = 12
Router
The Router block splits your flow into multiple branches, each guarded by its own set of conditions. When the flow reaches the Router, it evaluates the branches in order and runs the steps inside the branch(es) whose conditions are met. This is how you build "if this, then that" logic in AI Workflows.
Router is a Flow Block, not a Piece, and is only available as an Action.
Properties
Execution Type
Determines how many branches are allowed to run:
- Execute First Match: Only the first branch whose conditions are met is executed. Once a match is found, the remaining branches are skipped.
- Execute All Matches: Every branch whose conditions are met is executed.
Branches
Add one or more branches. Each branch is one of two types:
- Condition branch: Runs only when its conditions evaluate to true.
- Fallback (Otherwise) branch: Runs when no condition branch matched. Useful as a catch-all default path.
Conditions
Within each condition branch, you build one or more conditions. Each condition compares a value (typically a dynamic value from the Data Selector) against another using an operator. Available operators include:
- Text: Contains, Does Not Contain, Exactly Matches, Does Not Exactly Match, Starts With, Does Not Start With, Ends With, Does Not End With
- Number: Is Greater Than, Is Less Than, Is Equal To
- Boolean: Is True, Is False
- Date: Is Before, Is Equal, Is After
- List: Contains, Does Not Contain, Is Empty, Is Not Empty
- Existence: Exists, Does Not Exist
You can combine multiple conditions within a branch using AND/OR logic.
Output
The Router itself does not return a data object; it directs execution into the matching branch(es). The steps placed inside each branch produce their own outputs as usual.
Example
Execution TypeExecute First Match
Branches
- Branch 1 (Condition) — Amount
Number Is Greater Than1000→ run the "Manager approval" steps- Branch 2 (Condition) — Amount
Number Is Greater Than0→ run the "Auto-approve" steps- Branch 3 (Fallback) — run the "Reject" steps
An invoice with an Amount of 500 skips Branch 1, matches Branch 2, and the "Auto-approve" steps run.
Loop on Items
The Loop on Items block iterates over a list (array) and runs the steps inside the loop once for each item. Use it to process every record returned by a previous step — for example, sending an email to each contact in a list, or extracting data from each file in a folder.
Loop on Items is a Flow Block, not a Piece, and is only available as an Action.
Properties
Items
Provide the list you want to iterate over. This is typically a dynamic array value coming from an earlier step (selected via the Data Selector), such as the rows of a spreadsheet or the results of an HTTP request.
Output
For every iteration, the loop exposes the current item and its index (starting at 0) to the steps placed inside it. These can be referenced from any step nested within the loop. After the loop completes, the flow continues with the next step after the loop.
Example
ItemsA list of three contacts returned by a previous step:
[{ "email": "[email protected]" }, { "email": "[email protected]" }, { "email": "[email protected]" }]The steps inside the loop run three times. On the second iteration, the current item is
{ "email": "[email protected]" }and the index is1.
HTTP
The HTTP Action sends HTTP requests and returns the responses. It's the universal way to integrate with any service that exposes a REST API, even when no dedicated Piece exists for it.
Send HTTP Request
Sends a configurable HTTP request to a URL and returns the response.
Properties
- Method: The HTTP method to use (GET, POST, PUT, PATCH, DELETE, HEAD, etc.).
- URL (required): The full URL to send the request to.
- Headers: Key/value pairs sent as request headers.
- Query Params: Key/value pairs appended to the URL as query parameters.
- Authentication: Choose the authentication scheme. Options are None, Basic Auth (Username + Password), and Bearer Token (Token).
- Body Type: For methods that send a body, choose the format (e.g., None, JSON, Form Data, Raw). Depending on the choice, you'll provide the body content or, for form data, a set of fields (each field can be a text value or a File).
- Response is Binary: Enable for binary responses such as PDFs or images; the response body is returned as base64.
- Use Proxy / Proxy Settings: Route the request through a proxy server when needed.
- Timeout (in seconds): Maximum time to wait for a response.
- Follow Redirects: Whether the request should follow HTTP redirects.
- On Failure: Controls how the Action behaves when the server returns an error status.
Output
The Action returns the response, including:
- status: The HTTP status code (e.g., 200, 404).
- headers: The response headers.
- body: The response body, parsed as JSON when applicable, or as text/base64 otherwise.
Example
MethodGET
URLhttps://api.example.com/v1/customers/42
Response
- status = 200
- body =
{ "id": 42, "name": "Acme Corp", "plan": "enterprise" }
GraphQL
The GraphQL Action makes requests to a GraphQL API endpoint.
Send Request
Sends a GraphQL query or mutation to an endpoint.
Properties
- URL (required): The GraphQL endpoint URL.
- Query (required): The GraphQL query or mutation document.
- Variables: A JSON object of variables referenced by the query.
- Headers: Key/value pairs sent as request headers (commonly used for authorization).
- Query Params: Key/value pairs appended to the URL.
- Use Proxy / Proxy Settings: Route the request through a proxy server when needed.
- Timeout (in seconds): Maximum time to wait for a response.
- No Error on Failure: When enabled, the step does not raise an error if the request fails.
Output
The response returned by the GraphQL endpoint, including the data object and any errors reported by the server.
Example
Queryquery GetUser($id: ID!) { user(id: $id) { name email } }
Variables
{ "id": "42" }
Response
- data =
{ "user": { "name": "Ana", "email": "[email protected]" } }
FTP/SFTP
The FTP/SFTP Piece connects to FTP, FTPS, or SFTP servers to manage files and folders remotely. It provides both Actions (to read, write, and organize files) and a Trigger (to react to new or modified files).
Actions
Create File from Text
Creates a new file at the given path from text content.
Properties
- File Path (required): The destination path (including file name) on the server.
- File content (required): The text content to write to the file.
Output: Confirmation details of the created file, including its path.
Upload File
Uploads a file (rather than raw text) to the given path.
Properties
- File Path (required): The destination path on the server.
- File content (required): The File to upload.
Output: Confirmation details of the uploaded file.
Read File Content
Reads the content of a file from the server.
Properties
- File Path (required): The path of the file to read.
Output: The content of the file.
Delete file
Deletes a file at the given path.
Properties
- File Path (required): The path of the file to delete.
Output: Confirmation that the file was deleted.
Create Folder
Creates a folder at the given path.
Properties
- Folder Path (required): The path of the new folder.
- Recursive: (SFTP only) Create parent directories if they don't exist.
Output: Confirmation that the folder was created.
Delete Folder
Deletes an existing folder at the given path.
Properties
- Folder Path (required): The path of the folder to delete.
- Recursive: Delete the folder and all of its contents, including subfolders and files.
Output: Confirmation that the folder was deleted.
List Folder Contents
Lists the contents of a given folder.
Properties
- Directory Path (required): The path of the folder to list.
Output: An array describing the files and folders found at the path.
Rename File or Folder
Renames (or moves) a file or folder.
Properties
- Old Path (required): The current path of the file or folder.
- New Path (required): The new path.
Output: Confirmation of the rename operation.
Trigger
New File
Triggers when a new file is created or modified in a watched location.
Properties
- Path (required): The path to watch for new files. Defaults to
./. - Ignore hidden files: When enabled, hidden files do not trigger the flow.
Output: Details of the new or modified file that triggered the flow.
SMTP
The SMTP Piece sends emails using a custom Simple Mail Transfer Protocol server. Use it when you want to send mail through your own mail relay rather than a dedicated email Piece.
Send Email
Sends an email through the configured SMTP server.
Properties
- From Email (required): The sender's email address.
- Sender Name: An optional display name for the sender.
- To (required): One or more recipient addresses.
- CC / BCC: Optional carbon-copy and blind-carbon-copy recipients.
- Reply To: An optional reply-to address.
- Subject (required): The email subject line.
- Body Type (required): Whether the body is plain text or HTML.
- Body (required): The email content.
- Custom Headers: Optional additional email headers as key/value pairs.
- Attachments: One or more Files to attach. For each attachment you can optionally override the Attachment Name.
Output
Confirmation that the email was sent, including the server's response details.
Example
To
SubjectYour invoice is ready
Body TypeHTML
Body
<p>Hi Ana, your invoice for May is attached.</p>
Webhook
The Webhook Piece lets your flow receive incoming HTTP requests at a unique URL, and respond to them. It's the foundation for building APIs and integrations that push data into AI Workflows.
Trigger
Catch Webhook
Receives incoming HTTP requests using any method (GET, POST, PUT, DELETE, etc.) at a unique, automatically generated URL.
Properties
- Authentication: Optionally secure the webhook. Options include None, Basic Auth (Username + Password), Header (Header Name + Header Value), and HMAC signature verification (Signature Header Name, Secret, Algorithm, Signature Encoding, and an optional Signature Prefix).
Output: The full incoming request, including its method, headers, query parameters, and body.
Actions
Return Response
Returns an HTTP response to the caller that triggered the webhook.
Properties
- Response Type: The format of the response (e.g., JSON).
- Response: The status, headers, and body to return.
- Flow Execution: Whether to stop the flow after responding or continue running.
Output: Confirmation that the response was sent.
Respond and Wait for Next Webhook
Returns a response and then pauses the flow until the next webhook call is received, at which point the flow resumes. Useful for multi-step, conversational, or callback-based integrations.
Properties
- Response Type: The format of the response (e.g., JSON).
- Response: The status, headers, and body to return immediately.
Output: When resumed, the data from the next incoming webhook request.
Schedule
The Schedule Piece triggers a flow on a fixed schedule. It provides only Triggers (no Actions) and is one of the most common ways to start a flow automatically.
Triggers
Every X Minutes
Triggers the flow every X minutes.
Properties
- Minutes (required): How often to run, as a value between 1 and 59.
Every Hour
Triggers the flow once every hour.
Properties
- Run on weekends (Sat, Sun): Whether the trigger should also fire on weekends.
Every Day
Triggers the flow once every day.
Properties
- Hour of the day (required): The hour at which to run.
- Timezone (required): The timezone used to interpret the schedule. Defaults to UTC.
- Run on weekends (Sat, Sun): Whether the trigger should also fire on weekends.
Every Week
Triggers the flow once every week.
Properties
- Day of the week (required): The weekday on which to run.
- Hour of the day (required): The hour at which to run.
- Timezone (required): The timezone used to interpret the schedule. Defaults to UTC.
Every Month
Triggers the flow once every month.
Properties
- Day of the month (required): The day on which to run.
- Hour of the day (required): The hour at which to run.
- Timezone (required): The timezone used to interpret the schedule. Defaults to UTC.
Cron Expression
Triggers the flow according to a custom cron expression, for full control over the schedule.
Properties
- Cron Expression (required): A standard cron expression (e.g.,
0/5 * * * *for every five minutes). - Timezone (required): The timezone used to interpret the expression. Defaults to UTC.
Output (all Schedule triggers): Each trigger fires on schedule and provides the execution timestamp to the flow.
Example
Cron Expression0 9 * * 1
TimezoneAmerica/Lima
The flow runs every Monday at 9:00 AM Lima time.
Delay
The Delay Piece pauses the execution of the next action, either for a fixed duration or until a specific moment in time.
Delay For
Delays the execution of the next action for a given duration.
Properties
- Amount (required): The number of units to wait.
- Unit (required): The unit of time (e.g., seconds, minutes, hours, days).
Output
Confirmation that the delay completed, after which the flow continues.
Delay Until
Delays the execution of the next action until a given timestamp.
Properties
- Date and Time (required): The timestamp until which execution should be paused. Multiple formats are supported, including ISO format.
Output
Confirmation that the delay completed at the specified time, after which the flow continues.
Example
Date and Time2026-12-31T09:00:00Z
The flow pauses and resumes at 9:00 AM UTC on December 31, 2026.
Storage
The Storage Actions stores and retrieves data from a key/value database that persists across flow runs. Use it to remember values between executions — for example, the timestamp of the last processed record, or a running list of IDs.
Store Scope
Several Storage Actions include a Store Scope property, which controls how widely the stored value is shared:
- Flow: The value is available only within the current flow.
- Project: The value is shared across all flows in the project.
Get
Retrieves a value by its key.
Properties
- Key (required): The identifier of the value to retrieve.
- Default Value: A value to return if the key is not found.
- Store Scope (required): The scope to read from (see Store Scope above).
Output: The value found for the key, or the default value if none exists.
Put
Stores a value under a key, creating it or overwriting any existing value.
Properties
- Key (required): The identifier under which to store the value.
- Value (required): The value to store.
Output: The stored key and value.
Append
Appends text to an existing value in storage.
Properties
- Key (required): The identifier of the value to append to.
- Value (required): The text to append.
- Separator: An optional separator placed between the existing and appended values (use
\nfor newlines).
Output: The updated value.
Remove
Removes a value from storage.
Properties
- Key (required): The identifier of the value to remove.
Output: Confirmation that the value was removed.
Add to List
Adds one or more items to a stored list.
Properties
- Key (required): The identifier of the list.
- Value (required): The item(s) to add.
- Ignore if value exists: When enabled, items already present in the list are not added again.
Output: The updated list.
Remove from List
Removes an item from a stored list.
Properties
- Key (required): The identifier of the list.
- Value (required): The item to remove.
Output: The updated list.
Example
Action: Put
- Key = "last_run"
- Value = "2026-06-15T09:00:00Z"
Action: Get (in a later run)
- Key = "last_run"
- Response = "2026-06-15T09:00:00Z"
Sub Flows
The Sub Flows Piece lets one flow call another flow and (optionally) wait for a response. This enables a modular design where reusable logic lives in a dedicated flow that other flows can invoke, similar to calling a function.
Trigger
Callable Flow
Marks a flow as callable from other flows. A flow must use this trigger before it can be selected as a sub flow elsewhere.
Properties
- Mode (required): Simple for key/value input, or Advanced for a JSON schema.
- Sample Data (required): The schema of the data the calling flow will pass in.
Output: The data passed in by the calling flow.
Actions
Call Flow
Executes another flow (one that uses the Callable Flow trigger).
Properties
- Flow (required): The callable flow to execute.
- Mode (required): Simple for key/value input, or Advanced for JSON.
- Inputs: The values to pass to the called flow.
- Wait for Response: When enabled, the calling flow pauses until the sub flow returns a response.
Output: The response returned by the called flow (when Wait for Response is enabled).
Return Response
Returns a response from a callable flow back to the flow that called it.
Properties
- Mode (required): Simple for key/value, or Advanced for JSON.
- Response (required): The data to return to the calling flow.
Output: Confirmation that the response was returned.
Approval (Legacy)
The Approval (Legacy) Piece builds a human approval step into your workflow, pausing execution until a person approves or rejects via a generated link.
Legacy PieceThis Piece is marked as Legacy. For new flows that require human input or approval, consider the Human Input Piece instead, or the Actions in the dedicated Approvals section.
Create Approval Links
Creates approval and rejection links without pausing the flow. Use this when you want to send the links (for example, by email) before the flow reaches the point where it waits.
Properties
- Markdown: Informational guidance shown in the builder; this Action has no configurable input fields.
Output: An approval link and a disapproval link.
Wait for Approval
Pauses the flow and waits for the user to act on the approval link.
Properties
- Markdown: Informational guidance shown in the builder; this Action has no configurable input fields.
Output: The approval result — whether the request was approved or rejected.
Example
- Create Approval Links generates an approval and a rejection URL.
- A Send Email step sends both links to a manager.
- Wait for Approval pauses the flow until the manager clicks one of the links, then resumes along the appropriate path.
Human Input
The Human Input Piece lets a person start or interact with a flow through a form or chat interface. It provides Triggers that begin a flow from human input, plus an Action to send a response back to the user.
Triggers
Web Form
Triggers the flow when a user submits a form.
Different types of FormsThe Web Form Trigger should not be confused with the Public Form Submitted Trigger from the ElectroNeek integrations, which leverages ElectroNeek's customizable Forms product. The forms created in the Web Form Trigger are not as customizable and are meant for simpler use cases.
Properties
- Inputs (required): The fields that make up the form. For each field you define a Field Name, a Field Type, an optional Field Description, and whether it is Required.
- Wait for Response: When enabled, the form waits for the flow to finish and can display a response back to the user.
Output: The submitted form values, keyed by field name.
Chat UI
Triggers the flow when a user sends a message through a chat interface.
Properties
- Bot Name (required): The display name of the chatbot. Defaults to
AI Bot.
Output: The user's message, which the flow can process and respond to.
Action
Respond on UI
Returns a response — text (Markdown) or a file — to the user who submitted the form or chat message.
Properties
- Text (Markdown): The text response to display.
- Attachment: An optional File to return to the user.
Output: Confirmation that the response was delivered.
Example
Trigger: Chat UIBot Name = "Support Assistant"
Action: Respond on UIText (Markdown) = "Thanks! Your ticket #4821 has been created."
XML
The XML Piece converts data between XML and JSON.
Convert JSON to XML
Converts a JSON object into an XML string.
Properties
- JSON (required): The JSON to convert.
- Attribute field: The key used to denote XML attributes in the JSON input.
- Header: Whether to add an XML header to the output.
Output: The resulting XML string.
Convert XML to JSON
Converts an XML string into a JSON object.
Properties
- XML (required): The XML string to convert.
- Ignore Attributes: When enabled, XML tag attributes are ignored. When disabled, attributes are included in the output.
Output: The resulting JSON object.
CSV
The CSV Piece manipulates CSV text — converting it to and from JSON, and converting Excel files to CSV.
Convert CSV to JSON
Reads a CSV string and converts it into a JSON array.
Properties
- CSV Text (required): The CSV content to convert.
- Does the CSV have headers? (required): Whether the first row contains column headers.
- Delimiter Type (required): The character that separates values (e.g., comma, semicolon, tab).
Output: A JSON array of objects (or arrays, if there are no headers) representing the rows.
Convert JSON to CSV
Reads a JSON array and converts it into CSV text.
Properties
- JSON Array (required): The array of objects to convert.
- Delimiter Type (required): The character used to separate values in the output.
Output: The resulting CSV text.
Convert Excel to CSV
Converts an Excel file (.xlsx or .xls) into CSV text.
Properties
- Excel File (required): The Excel file to convert.
- Sheet Name: The sheet to convert. Leave blank to use the first sheet.
- Delimiter (required): The character used to separate values in the output CSV.
Output: The resulting CSV text.
Example
CSV Textname,plan Acme Corp,enterprise Globex,starter
Does the CSV have headers?Yes
Response (Convert CSV to JSON)
[ { "name": "Acme Corp", "plan": "enterprise" }, { "name": "Globex", "plan": "starter" } ]
Data Mapper
The Data Mapper Piece reshapes data from one structure into another, so you can adapt the output of one step to the input expected by the next.
Advanced Mapping
Maps data from one format to another using a mapping definition.
Properties
- Mapping (required): A JSON definition that describes the target structure, with each field set to a static value or a dynamic value from the Data Selector.
Output: A new object built according to your mapping definition.
Example
Mapping
{ "fullName": "{{step_1.first}} {{step_1.last}}", "email": "{{step_1.contact_email}}" }
Response
{ "fullName": "Ana Pérez", "email": "[email protected]" }
Text Helper
The Text Helper Piece provides a toolbox of text-processing Actions — concatenating, searching, replacing, splitting, converting between HTML and Markdown, and more.
Concatenate
Joins two or more texts together.
Properties
- Texts (required): The list of texts to join.
- Separator: An optional separator placed between each text.
Output: The combined text.
Replace
Replaces all instances of a word, character, or phrase with another.
Properties
- Text (required): The source text.
- Search Value (required): The text or regular expression to search for.
- Replace Value: The replacement; leave empty to delete matches.
- Replace Only First Match: When enabled, only the first match is replaced.
Output: The resulting text.
Split
Splits a text into parts using a delimiter.
Properties
- Text (required): The text to split.
- Delimiter (required): The character or string to split on.
Output: An array of the resulting parts.
Find
Finds the first substring matching a regular expression or text pattern.
Properties
- Text (required): The text to search within.
- Expression (required): The regex or text to search for.
- Ignore Case: When enabled, matching is case-insensitive.
Output: The first match and any capture groups.
Find All
Finds all substrings matching a regular expression or text pattern.
Properties
- Text (required): The text to search within.
- Expression (required): The regex or text to search for.
- Ignore Case: When enabled, matching is case-insensitive.
Output: A list of every match found.
Markdown to HTML
Converts Markdown into HTML.
Properties
- Markdown Content (required): The Markdown to convert.
- Flavor of Markdown (required): The Markdown flavor to use (e.g., GitHub).
- Minimum Header Level (required): The smallest header level to use during conversion.
- Support Tables, No Header ID, Simple Line Breaks, Open Links in New Window: Conversion options that fine-tune the HTML output.
Output: The resulting HTML.
HTML to Markdown
Converts HTML into Markdown.
Properties
- HTML Content (required): The HTML to convert.
Output: The resulting Markdown.
Extract from HTML
Extracts specific elements or data from an HTML document.
Properties
- HTML Content (required): The raw HTML to extract from.
- Extraction Target (required): What to extract from the page.
- Custom CSS Selector: A CSS selector, required when targeting a custom element.
- Extraction Type (required): Which part of the element to extract (e.g., text or an attribute).
- Attribute Name: The attribute to read, when extracting an attribute.
- Return Multiple Elements: When enabled, returns all matching elements; otherwise only the first match.
Output: The extracted value(s).
Remove HTML Tags
Removes every HTML tag and returns plain text.
Properties
- HTML content (required): The HTML to strip.
Output: The plain text content.
Slugify
Converts text into a URL-friendly slug.
Properties
- Text (required): The text to slugify.
Output: The slugified text.
List to Text Table
Converts a list of items into a plain-text (ASCII) table.
Properties
- List (required): The list of items to render as a table.
Output: The text table.
Use Default Value if Input is Empty
Returns a default value when the input is an empty text or list.
Properties
- Enter value: The value to check.
- Default Value (required): The value to return when the input is empty.
Output: The original value, or the default value if the input was empty.
Example
Action: Replace
- Text = "Hello {{name}}"
- Search Value = "{{name}}"
- Replace Value = "Ana"
Response"Hello Ana"
Date Helper
The Date Helper Piece provides Actions for working with dates and times — getting the current date, formatting, adding or subtracting time, calculating differences, and finding specific calendar dates.
About From/To Time FormatsAcross this Piece, From/To Time Format properties let you specify how an input date is interpreted and how the result is formatted, and Time Zone properties handle conversions (including Daylight Saving Time) correctly.
Get Current Date
Gets the current date and time.
Properties
- To Time Format (required): The format of the returned date.
- Time Zone (required): The timezone for the returned date. Defaults to UTC.
Output: The current date and time in the chosen format.
Format Date
Converts a date from one format to another.
Properties
- Input Date (required): The date to convert.
- From Time Format (required) / From Time Zone (required): How the input date is interpreted.
- To Time Format (required) / To Time Zone (required): How the output date is rendered.
Output: The reformatted date.
Add/Subtract Time
Adds or subtracts an amount of time from a date.
Properties
- Input Date (required): The starting date (or enable Use Current Time to start from now).
- From Time Format (required) / To Time Format (required): Input and output formats.
- Expression (required): The change to apply, using units of year, month, day, hour, minute, or second (e.g.,
+ 1 year - 3 day - 2 month). - Time Zone: An optional timezone to handle DST correctly.
- Set Time To (24h format): Optionally set the result to a specific time of day.
Output: The resulting date.
Date Difference
Gets the difference between two dates.
Properties
- Starting Date (required) and Ending Date (required), each with their own format.
- Output unit options for expressing the difference (e.g., days, hours).
Output: The difference between the two dates.
Extract Date Parts
Extracts individual components (such as year, month, day, hour) from a date.
Properties
- Input Date (required) with its From Time Format (required).
- Unit to Extract: One or more parts to pull from the date.
Output: The requested date parts.
Next Day of Week
Gets the date and time of the next occurrence of a given weekday.
Properties
- Weekday: The target weekday.
- 24h Time, Use Current Time, To Time Format, Time Zone: Control the time of day and output format.
Output: The date of the next occurrence of that weekday.
Next Day of Year
Gets the date and time of the next occurrence of a given month/day.
Properties
- Month and Day of Month (required): The target date.
- 24h Time, Use Current Time, To Time Format, Time Zone: Control the time of day and output format.
Output: The date of the next occurrence.
First Day of Previous Month
Gets the date and time of the first day of the previous month.
Properties
- 24h Time, Use Current Time, To Time Format (required), Time Zone (required).
Output: The first day of the previous month.
Last Day of Previous Month
Gets the date and time of the last day of the previous month.
Properties
- 24h Time, Use Current Time, To Time Format (required), Time Zone (required).
Output: The last day of the previous month.
Example
Action: Add/Subtract Time
- Input Date = "2026-06-15"
- Expression = "+ 30 day"
Response"2026-07-15"
Math Helper
The Math Helper Piece performs basic arithmetic and generates random numbers.
Addition / Subtraction / Multiplication / Division
Each of these Actions takes two numbers and returns the result of the operation.
Properties
- First Number (required) and Second Number (required).
Output: The result of the operation.
Modulo
Returns the remainder of dividing the first number by the second.
Properties
- First Number (required) and Second Number (required).
Output: The remainder.
Generate Random Number
Generates a random number between two values (inclusive).
Properties
- The minimum and maximum values of the range.
Output: A random number within the range.
Data Summarizer
The Data Summarizer Piece computes simple aggregate statistics over a list of values.
Calculate Sum
Calculates the sum of a list of values.
Properties
- Values (required): The list of numbers to sum.
Output: The total.
Calculate Average
Calculates the average of a list of values.
Properties
- Values (required): The list of numbers to average.
Output: The average.
Find Min and Max
Gets the smallest and greatest values from a list of numbers.
Properties
- Values (required): The list of numbers to evaluate.
Output: The minimum and maximum values.
Count Uniques
Counts the number of unique values, optionally across specific fields.
Properties
- Values (required): The list to evaluate.
- Fields: The specific fields to consider when determining uniqueness.
Output: The count of unique values.
Files Helper
The Files Helper Piece reads, creates, and transforms files — including encoding changes, type checks, and zipping/unzipping.
Read File
Reads a file and returns its content.
Properties
- File (required): The file to read.
- Output format (required): The format in which to return the content.
Output: The file content in the chosen format.
Create file
Creates a file from text content.
Properties
- Content (required): The content to write.
- File name (required): The name of the file to create.
- Encoding (required): The character encoding to use.
Output: The created File.
Get File Name
Gets the name of a file.
Properties
- File (required): The file to inspect.
Output: The file's name.
Check file type
Checks the MIME type of a file and filters based on selected types.
Properties
- File to Check (required): The file to inspect.
- Select MIME Types (required): One or more MIME types to check against.
Output: Whether the file matches one of the selected types, and its detected type.
Change File Encoding
Changes the character encoding of a file.
Properties
- Source file (required) and Source encoding (required).
- Output file name (required) and Output encoding (required).
Output: The re-encoded File.
Zip Files
Creates a compressed zip file from one or more files.
Properties
- Files (required): The files to include, each with an optional File Path in zip.
- Name of zipped file (required): The output file name.
- Use password: Optionally protect the archive with a password, with a selectable Encryption Method.
Output: The resulting zip File.
Unzip File
Extracts the contents of a zip file.
Properties
- Zip File (required): The archive to extract.
- Max Results: An optional limit on the number of extracted files.
- Use password: Provide a password if the archive is protected.
Output: The extracted files.
Image Helper
The Image Helper Piece provides Actions for manipulating images — converting, cropping, resizing, rotating, compressing, and reading metadata.
Keep in mindMost Actions accept an optional Result File Name (without extension) for the output image.
Image to Base64
Converts an image to a URL-like Base64 string.
Properties
- Image (required): The image to convert.
- Override mime type: Optionally override the default MIME type (e.g.,
image/png).
Output: The Base64 string.
Get image metadata
Reads metadata from an image.
Properties
- Image (required): The image to inspect.
Output: The image metadata (such as dimensions and format).
Crop an image
Crops an image to a rectangular region.
Properties
- Image (required).
- Left, Top (required): The starting position of the crop, in pixels from the top-left corner.
- Width, Height (required): The size of the cropped area.
Output: The cropped image.
Resize an image
Resizes an image.
Properties
- Image (required).
- Width, Height (required): The target dimensions.
- Maintain aspect ratio for height: Preserve the aspect ratio when resizing.
Output: The resized image.
Rotate an image
Rotates an image clockwise.
Properties
- Image (required).
- Degree (required): The clockwise rotation to apply.
Output: The rotated image.
Compresses an image
Compresses an image to reduce its size.
Properties
- Image (required).
- Quality (required): The quality of the result (0–100).
- Format (required): The output image format.
Output: The compressed image.
PDF
The PDF Piece reads, creates, and manipulates PDF documents.
Extract Text
Extracts the text from a PDF file or URL.
Properties
- PDF File or URL (required): The PDF to read.
Output: The extracted text.
PDF Page Count
Gets the number of pages in a PDF.
Properties
- PDF File or URL (required).
Output: The page count.
Convert to Image
Converts a PDF into one or more images.
Properties
- PDF File or URL (required).
- Output Image Type (required): Whether to produce a single image or multiple images (e.g., one per page).
Output: The generated image(s).
Extract PDF Pages
Extracts or rearranges specific pages from a PDF.
Properties
- PDF File or URL (required).
- Page Ranges (required): One or more ranges, each defined by a Start Page and End Page.
Output: A new PDF containing the selected pages.
Merge PDFs
Merges multiple PDFs into a single document.
Properties
- PDF Files (required): The PDFs to merge, in order.
- Output File Name: The name for the merged file.
Output: The merged PDF.
Text to PDF
Creates a PDF from text.
Properties
- text (required): The text to convert.
Output: The generated PDF.
Image to PDF
Creates a PDF from an image.
Properties
- image (required): A PNG, JPEG, or JPG image, scaled to fit the page if larger than A4.
Output: The generated PDF.
Add Text to PDF
Stamps one or more text strings onto a PDF at exact pixel positions.
Properties
- PDF File or URL (required).
- Text Items to Insert (required): For each item — the Text, target Page Number (or Apply to all pages?), Distance from Left/Top Edge in pixels, Font, Font Size, and Line Spacing.
Output: The stamped PDF.
Add Image to PDF
Stamps one or more images (PNG or JPG) onto a PDF at exact pixel positions.
Properties
- PDF File or URL (required).
- Image Items to Insert (required): For each item — the Image File, target Page Number (or Apply to all pages?), Distance from Left/Top Edge in pixels, and Image Scale.
Output: The stamped PDF.
QR Code
The QR Code Piece generates QR codes.
Text to QR Code
Converts text into a QR code image.
Properties
- Content (required): The text or URL to encode.
Output: The generated QR code image.
Crypto
The Crypto Piece generates random passwords, hashes and signs text, and handles encoding and encryption.
Text to Hash
Hashes text using a chosen algorithm.
Properties
- Method (required): The hashing algorithm (e.g., SHA-256, MD5).
- Text (required): The text to hash.
Output: The resulting hash.
Generate HMAC Signature
Produces an HMAC-signed hash of text.
Properties
- Secret key (required) and Secret key encoding (required).
- Method (required): The hashing algorithm.
- Text (required): The text to sign.
- Output Encoding: The encoding of the resulting signature (e.g., hex).
Output: The HMAC signature.
Generate RSA Signature
Signs text with an RSA private key using SHA-256, SHA-384, or SHA-512.
Properties
- Private Key (required): The RSA private key in PEM format.
- Passphrase: The passphrase protecting the key, if any.
- Method (required): The hashing algorithm.
- Text (required): The text to sign.
- Output Encoding: The encoding of the resulting signature.
Output: The RSA signature.
Generate Password
Generates a random password.
Properties
- Password Length (required): The length of the password (maximum 256).
- Character Set (required): The character set to use (e.g., alphanumeric).
Output: The generated password.
Base64 Encode
Converts plain text into Base64.
Properties
- Text (required): The text to encode.
Output: The Base64-encoded text.
Base64 Decode
Converts Base64 back into plain text.
Properties
- Text (required): The text to decode.
Output: The decoded text.
OpenPGP Encrypt
Encrypts a file using an OpenPGP public key.
Properties
- File (required): The file to encrypt.
- Public Key (required): The PGP public key in ASCII armor format.
Output: The encrypted file.
Example
Action: Text to Hash
- Method = SHA-256
- Text = "electroneek"
ResponseA 64-character hexadecimal SHA-256 digest of the input text.
Tags
The Tags Piece adds custom tags to a flow run, which can then be used to filter and find runs later.
Add Tag
Adds a custom tag to the current run.
Properties
- Tag Name (required): The tag to attach to the run.
Output: Confirmation that the tag was added.
Connections
The Connections Piece reads a stored connection dynamically at runtime, so a flow can fetch connection details by name rather than having them fixed at design time.
Read Connection
Fetches a connection by its external ID (name).
Properties
- Connection External ID (required): The name/external ID of the connection to read.
Output: The requested connection's details.
Tables
The Tables Piece works with AI Workflows' built-in data tables, providing Actions to create, read, update, and delete records, plus Triggers that fire on record changes.
Triggers
New Record Created
Triggers when a new record is added to the selected table.
Output: The newly created record.
Record Updated
Triggers when a record in the selected table is updated.
Output: The updated record.
Record Deleted
Triggers when a record is deleted from the selected table.
Output: The deleted record.
Actions
Create Record(s)
Inserts one or more new records into a table.
Properties
- Records (required): One or more records to insert.
Output: The created record(s).
Get Record
Gets a single record by its ID.
Properties
- The record's ID.
Output: The requested record.
Find Records
Finds records in a table using filters.
Properties
- Filters: One or more conditions, each defined by a Field, an Operator, and a Value.
- Limit: The maximum number of records to return.
Output: The matching records.
Update Record
Updates the values of an existing record.
Properties
- The record to update and the Values to change (leave a value empty to keep it as-is).
Output: The updated record.
Delete Record(s)
Deletes one or more records from a table.
Properties
- Records IDs (required): The IDs of the records to delete.
Output: Confirmation of the deletion.
Clear Table
Deletes all records from a table.
Output: Confirmation that the table was cleared.
Download Table
Exports a table as a CSV file.
Properties
- Include Headers (required): Whether to include column headers as the first row.
Output: The CSV file.
Manual Trigger
The Manual Trigger starts a flow on demand, with no extra configuration. It's most often used while building and testing a flow.
Trigger
Manual Trigger
Manually starts your flow without any additional configuration.
Properties
- None.
Output: Starts the flow, providing any sample/test data configured for the run.
