Skip to content

Workflows

Workflows are automated flows that help you automate tasks in your system. By connecting different visual nodes (called Nodes) together in a workflow, you can build custom automations that run when records are created, when a button is clicked, or on a scheduled calendar timer.


A Workflow is essentially an interactive workflow. It consists of nodes (each performing a single task, like updating a record or sending an alert) and Connecting Lines (which pass information from one node to another).

Workflow Editor

Each node in your workflow has Input Ports (on the left, where it receives information) and Output Ports (on the right, where it sends completed information). Connecting an output of one node to the input of another tells the system to pass that data along. All of the available nodes can be found in the left sidebar of the workflow editor, organized by category.

Workflow Nodes

Also, some nodes after placing them can be configured with additional settings. Double-click almost any node to open its configuration panel, where you can set static values or customize how it behaves.

Node Configuration

How the Automation Runs (Automatic Waiting)

Section titled “How the Automation Runs (Automatic Waiting)”

The automation engine runs your workflow step-by-step:

  1. The Starting Event: The flow starts when a special Trigger node fires (for example, when a new customer record is added to the system).
  2. Step-by-step Completion: Each node automatically waits until it has received all the necessary information from the previous steps. As soon as the required information arrives, the node runs and passes its result to the next steps.
  3. Safety Limits: To prevent flows from getting stuck in an endless loop, the system caps the total number of steps a single run can take. If a flow appears to be looping forever, it will automatically shut down safely.

Conditional Execution (The “Trigger” Input)

Section titled “Conditional Execution (The “Trigger” Input)”

Almost every node has a special input at the very top called Trigger. This is a conditional gate that lets you decide whether a step should run:

No Connection: If nothing is connected to the Trigger input, the node runs normally.

If Yes (Truthy): If you connect a Yes/No decision (or any actual information) to the Trigger port, and that decision is “Yes” (or the information is successfully found), the node runs.

If No (Falsy/Empty): If the decision is “No” (or no information is found), this node is skipped. Most importantly, the system will automatically skip all remaining nodes connected after this one, making it easy to create branching paths.

Some nodes allow you to repeat steps (like Map, Reduce, or ForEach). These nodes act as “containers” for a mini-workflow. For example, if you have a list of 10 items, the loop node will run its internal workflow 10 times—once for each item—and compile the final results automatically.


The Workflows page is the main entry point for viewing, creating, and managing all workflows in your system.

Workflows Listing Page
ActionDescription
Execution HistoryOpens the global Execution History page, where you can audit and review past workflow runs across all workflows.
Add WorkflowCreates a new, empty workflow and opens the workflow editor so you can start building your automation.

The main area displays a paginated table listing every workflow in your system. Each row represents a single workflow and shows the following columns:

ColumnDescription
NameThe workflow’s name. Click on it to open the workflow editor.
DescriptionA brief summary of what the workflow does.
ActiveIndicates whether the workflow is currently enabled (Yes) or disabled. Only active workflows will listen for trigger events and run automatically.
TriggersA summary of all trigger nodes configured in the workflow. This shows what events will cause the workflow to run (e.g., When a record of the entity Book is Created, When action reload-book is executed, One-time execution at 12:00).

Each row also has a (three-dot) menu on the right side with additional actions for managing that workflow.

Click the Filters control at the top of the table to narrow down the displayed results. You can filter by workflow name, active status, or other available criteria to quickly locate specific workflows.

The table is paginated for performance. Use the controls at the bottom of the page to:

Rows per page: Choose how many entries to display per page (default: 10).

Record count: The total number of matching records is displayed (e.g., “1-2 of 2”).

Navigation buttons: Jump between pages using the first, previous, next, and last page controls.

The workflow editor toolbar contains the main controls for managing your workflow.

Workflow Editor Toolbar
OptionDescription
NameA text input field for the workflow’s name. This is a required field.
DescriptionA text input field for a brief summary of what the workflow does. This is an optional field.
ActiveToggle switch that enables or disables the workflow. When Active is turned on, the workflow will listen for its trigger events and run automatically. When turned off, the workflow is paused and will not execute even if triggered.
TestOpens a testing panel that lets you manually run and debug the workflow without needing to trigger it through a real event. Use this to validate your flow logic before activating it.
Execution HistoryOpens a log of all past workflow runs. Use this to review execution statuses, inspect input/output data for each node, and troubleshoot failures.
SaveSaves all current changes made to the workflow, including node positions, connections, and settings.

Clicking the gear icon (⚙) in the toolbar opens a dropdown with additional options:

Workflow Editor Toolbar Dropdown

Copies the entire workflow structure — including all nodes, connections, and settings — to your clipboard. This is useful for:

Duplicating workflows: Paste the definition into a new workflow to quickly replicate an existing automation.

Backup and versioning: Save a copy of the workflow definition externally before making major changes.

Sharing with others: Send the workflow definition to a colleague who can paste it into their own environment.

Loads a workflow definition from your clipboard into the current workflow editor. When used, it replaces the existing canvas content with the pasted definition. This is useful for:

Restoring from backup: Paste a previously copied definition to revert changes.

Importing workflows: Receive a workflow definition from another user and load it directly into your editor.

Migrating between environments: Move a workflow from one DatAscend instance to another by copying and pasting the definition.

Opens the configuration dialog for managing how execution history is stored. See the Execution History Settings section below for details on each available setting.


You can configure how your workflow’s execution history is stored and managed by opening the Execution History Settings dialog from the workflow editor toolbar.

Execution History Settings Dialog
SettingDescription
Execution Retention LimitMaximum number of past executions the system will keep in history for this workflow. Once the limit is reached, the oldest executions are automatically deleted to make room for new ones.

For example, if you set the limit to 100, the system will only store the last 100 runs. The 101st oldest execution will be removed automatically when a new one is recorded.

Tip: Set a reasonable limit based on your auditing and debugging needs. A higher limit preserves more history but uses more storage.


SettingDescription
Run As UserWhen a specific user is selected, the workflow will execute with that user’s permissions instead of the permissions of the user who triggered the workflow.

This is useful when you need the workflow to perform actions (such as creating or editing records) that the triggering user may not have access to. For example, if a regular user triggers a workflow that needs to create records in a restricted domain, you can set the “Run As User” to an admin account so the workflow runs with elevated permissions.

Tip: If the Run As User field is left empty (no user selected), the workflow runs under the triggering user’s own permissions by default.


The Workflow Test panel lets you manually run and debug your workflow without needing to trigger it through a real event. Open it by clicking the Test button in the workflow editor toolbar.

Workflow Test Panel

Before running the test, you need to define the input data that the workflow will receive.

ComponentDescription
Trigger NodeA dropdown selector that lets you choose which trigger node to simulate. The dropdown lists all trigger nodes present in your workflow (e.g., a Custom Action Button or Record Created trigger).
JSON EditorA text area where you provide the mock input payload as a JSON object. This simulates the data that a real trigger would send. For example, to test a workflow triggered by a record, you might write {"record": {"id": "123", "name": "Sample"}}.
Run >Starts the test execution using the provided mock input and trigger node selection.

Once a test is executed, a status bar appears at the top of the panel displaying summary information about the run:

FieldDescription
Start TimeThe timestamp when the test execution began.
End TimeThe timestamp when the test execution finished.
DurationThe total time the execution took, displayed in milliseconds (ms).
StatusThe outcome of the test run. Shows Success (green badge) if the workflow completed without errors, or Failed (red badge) if an error was encountered.
ControlDescription
Search in logsA text input field that lets you search across all execution logs for specific node names, values, or keywords. Useful for quickly locating a particular node in complex workflows.
Filter by node typesA dropdown that filters the visible rounds to only show specific node types (e.g., only show loop nodes, only show record operations). This helps isolate the behavior of certain node categories.

The test results are organized into Rounds, displayed as horizontal cards. Each round represents a logical step or parallel execution phase in the workflow.

RoundDescription
Round 0The initial round. Contains the first nodes that execute immediately after the trigger fires (e.g., a ConstantValue node or the first data transformation).
Round 1+Subsequent rounds contain nodes that depend on the output of previous rounds. Each round may contain one or more nodes that ran in parallel.

Each round card displays:

Node Name: The type of node that executed (e.g., ConstantValue, Compare, StringTemplate, PushItem).

Node ID: A unique identifier for that specific node instance.

Timestamp: When the node executed (e.g., 9:04:14 AM).

Duration: How long the node took to complete (e.g., 1 ms, 0 ms, 3 ms).

Clicking on a node card within a round expands its details, showing the full execution context:

SectionDescription
InputsThe data the node received from previous nodes or the trigger, displayed as a JSON object.
ConfigurationThe static settings configured on the node (e.g., field paths, operation types, template strings).
OutputsThe data the node produced after execution, displayed as a JSON object. This is what gets passed to the next connected nodes.

Tip: Use the execution details to verify that each node is receiving the expected input and producing the correct output. If a node fails or produces unexpected data, check its configuration and the outputs of the nodes connected before it.

The Execution History page lets you audit and review all past workflow runs. Access it by clicking the Execution History button in the workflow editor toolbar.

Execution History Page

The page displays a paginated table containing every recorded execution of your workflow. Each row represents a single run and shows summary information at a glance.

ColumnDescription
StatusThe outcome of the execution. Shows Success (green badge) if the workflow completed without errors, or Failed (red badge) if an error was encountered during the run.
WorkflowThe name of the workflow that was executed.
Start TimeThe date and time when the execution began.
End TimeThe date and time when the execution finished.
DurationThe total time the execution took to complete, displayed in milliseconds (ms).
SourceWhat triggered the execution. Common values include Record Created, Record Updated, Trigger (manual or scheduled), Custom Action Button, or Webhook.
Triggered ByThe user who initiated the workflow run, or the role that triggered it. Displays a dash (-) when the workflow was triggered automatically by the system (e.g., via a scheduled timer).
LogsA button that opens the detailed execution log for that specific run, allowing you to inspect the input and output of each individual node.

Click the Filters control at the top of the table to narrow down the displayed results. You can filter by status, workflow name, start/end time ranges, duration, source type, and triggering user. This makes it easier to quickly locate specific executions.

The table is paginated for performance. Use the controls at the bottom of the page to:

Rows per page: Choose how many entries to display per page (default: 10).

Record count: The total number of matching records is displayed (e.g., “1-9 of 9”).

Navigation buttons: Jump between pages using the first, previous, next, and last page controls.

Clicking the Logs button for a specific execution opens a detailed log of that run, showing every node that executed, along with its inputs, configuration, outputs, and any errors encountered.

Execution Logs

Starting Event nodes are the entry points of your workflow. They do not have inputs; they fire when an event occurs and produce the initial details.

Description & Use Case: Runs the workflow automatically when a new record is added to your app. Use this to auto-assign a task when a lead is added, or to send a welcome email the second a user registers.

Details Table:

NameTypeRequiredDescriptionDefault
EntitySettingsText (List)The database category to monitor (e.g. Customers, Invoices).Required
Run StageSettingsText (Enum)Choose "before" (to check fields before saving) or "after" (to trigger actions post-save)."after"
Record DetailsOutputRecord DetailsComplete field values of the newly added record.-

Node usage example scenario:

Record Created Node

Description & Use Case: Fires when an existing record is edited. Use this to notify supervisors when a project status changes to “Completed”, or to recalculate scores when test answers are updated.

Details Table:

NameTypeRequiredDescriptionDefault
EntitySettingsText (List)The database category to monitor.Required
Run StageSettingsText (Enum)Choose whether to run "before" or "after" edits are saved."after"
Record DetailsOutputRecord DetailsThe record fields with the newly saved updates.-
Previous DetailsOutputRecord DetailsThe record fields before the updates were applied.-

Node usage example scenario:

Record Updated Node

Description & Use Case: Fires when a database record is removed. Use this to notify managers of deletion audits, or to clean up files linked to a removed project.

Details Table:

NameTypeRequiredDescriptionDefault
EntitySettingsText (List)The database category to monitor.Required
Run StageSettingsText (Enum)Runs "before" or "after" the record is removed."after"
Record DetailsOutputRecord DetailsThe details of the deleted record.-

Node usage example scenario:

Record Deleted Node

Description & Use Case: Runs when a user views or queries a record. Use this to log access history for sensitive records, or to increment views counters in real time.

Details Table:

NameTypeRequiredDescriptionDefault
EntitySettingsText (List)The database category to monitor.Required
Run StageSettingsText (Enum)Runs "before" or "after" access completes."after"
Record DetailsOutputRecord DetailsThe details of the viewed record.-

Node usage example scenario:

Record Viewed/Queried Node

Description & Use Case: Creates a custom web address. When external software sends data to this address, your workflow triggers instantly. Use this to receive order notifications from Shopify or forms submitted from an external site.

Details Table:

NameTypeRequiredDescriptionDefault
Webhook PathSettingsTextUnique URL path name (e.g., shopify-orders). Letters and numbers only."my-custom-endpoint"
Allowed RolesSettingsList of TextUser roles permitted to trigger this webhook.Required
Request DataOutputAnyThe incoming information payload sent by the external system.-

Node usage example scenario:

Webhook Node

Description & Use Case: Displays a custom action button on a record screen. When a user clicks it, this workflow starts. Use this to add a custom “Approve Request” button or an “Export to PDF” button to invoices.

Details Table:

NameTypeRequiredDescriptionDefault
EntitySettingsText (List)The record page where this button will appear.Required
Action PathSettingsTextA unique slug ID for the button."my-custom-action"
Button LabelSettingsTextThe text displayed on the button screen (e.g. “Approve Order”)."My Custom Action"
Allowed RolesSettingsList of TextUser roles authorized to see and click the button.Required
Record DetailsOutputRecord DetailsComplete details of the record where the button was clicked.-

Node usage example scenario:

Custom Action Button Node

Description & Use Case: Runs the workflow automatically at designated times. Use this to send weekly sales summaries every Friday at 5:00 PM, or to sync currency exchange rates hourly.

Details Table:

NameTypeRequiredDescriptionDefault
Timer ModeSettingsText (Enum)Run mode: "once", "interval" (periodic), "intervalBetweenTimes", "atSpecificTime", or "cron"."interval"
TimezoneSettingsTextTimezone context for schedules."UTC"
Start DateSettingsDateThe date when the scheduler becomes active.Required
TimeSettingsTextThe daily run time (e.g. "12:00"). Required for "once" and "atSpecificTime"."12:00"
Interval ValueSettingsNumberPeriodic gap size. Required for "interval" modes.1
Interval UnitSettingsText (Enum)Unit of gap size ("seconds", "minutes", "hours", "days")."minutes"
Start TimeSettingsTextStart of daily active window (e.g. "09:00")."00:00"
End TimeSettingsTextEnd of daily active window (e.g. "23:59")."23:59"
DaysSettingsList of TextDays of the week to run (e.g. Monday, Tuesday).All weekdays
Cron PatternSettingsTextStandard 5-field cron string for custom timing.-
Trigger TimeOutputTextThe date and time when the flow was executed.-

Node usage example scenario:

Scheduled Timer Node

Working with Records (Database Operations)

Section titled “Working with Records (Database Operations)”

These nodes let you create, find, edit, or delete records in your system.

Description & Use Case: Adds a new record to your database. Use this to automatically create a “Task” record when a new customer complains, or to log audit trials.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional execution gate. Skips step if connected and decision is “No”.Optional
Record DetailsInputRecord DetailsForm values to save in the new record.Required
DomainInputTextAdministrative domain code for organization access.Required
User IDInputTextOwner user ID to assign to the new record.Optional
EntitySettingsText (List)Target database category where the record will be saved.Required
Record DetailsOutputRecord DetailsThe newly created record including its database ID.-
Failed?OutputYes/NoReturns “Yes” if the save operation fails.-

Node usage example scenario:

Create New Record Node

Description & Use Case: Finds a single record in your database using its ID. Use this to pull details about a specific manager when you only have their user ID.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate. Skips step if connected and decision is “No”.Optional
Record IDInputTextThe unique ID code of the record to locate.Required
EntitySettingsText (List)Target category to search in.Required
Record DetailsOutputRecord DetailsThe complete record details found.-

Node usage example scenario:

Get Single Record Node

Description & Use Case: Searches the database for a list of records matching specific criteria. Use this to get a list of all products with low stock, or find all active users.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Filter RulesInputRecord DetailsSearch criteria (rules for filtering).Optional
Max ItemsInputNumberMaximum number of items to return.Optional
Page NumberInputNumberPage index for paginated search.Optional
Sort FieldInputTextRecord field name to sort by.Optional
Sort DirectionInputTextAscending ("ASC") or Descending ("DESC").Optional
EntitySettingsText (List)Database category to search.Required
Found RecordsOutputListList of records matching filters.-
Total CountOutputNumberTotal count of all matching records in the system.-

Node usage example scenario:

Find Multiple Records Node

Description & Use Case: Modifies fields on an existing database record. Use this to mark an invoice as “Overdue” when payment times expire.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record IDInputTextThe ID code of the record you want to edit.Required
Updated DetailsInputRecord DetailsForm containing fields you want to update.Required
EntitySettingsText (List)Database category to update.Required
Record DetailsOutputRecord DetailsThe record details after changes are saved.-

Node usage example scenario:

Edit Record Node

Description & Use Case: Permanently deletes a record. Use this to clear test leads or old logs automatically.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record IDInputTextThe ID of the record to delete.Required
EntitySettingsText (List)Database category to delete from.Required
Success?OutputYes/NoReturns “Yes” if deletion completed successfully.-

Node usage example scenario:

Delete Record Node

These nodes help you pull fields out of records, merge text, calculate math, organize lists, and link items.

Description & Use Case: Pulls out a specific value from a record group (e.g. extracting a customer’s Name from a User Account record).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record DetailsInputRecord DetailsThe source record group.Required
Field PathInputTextPath to extract (e.g. billing.city). Overrides settings.Optional
Field PathSettingsTextStatic target field path.-
Fallback TypeSettingsText (Enum)Data type to return if empty (Text, Number, Date, Yes/No, List, Record)."string"
Fallback ValueSettingsTextBackup value to use if field is empty.-
Extracted ValueOutputAnyThe extracted field value.-

Node usage example scenario:

Extract Field Node

Description & Use Case: Pulls out several field values from a single record simultaneously. Use this to split a customer record into separate “Email”, “Phone”, and “Name” outputs.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record DetailsInputRecord DetailsThe source record group.Required
FieldsSettingsList of TextThe list of field names and data types to extract.Required
Dynamic OutputsOutputAnyGenerates one output port for each field path configured.-

Node usage example scenario:

Extract Multiple Fields Node

Description & Use Case: Writes a new value into a specific field on a record details node. Use this to update a temporary status field inside your flow before passing it to subsequent nodes.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record DetailsInputRecord DetailsThe record node to modify.Required
ValueInputAnyThe new data to write in the field.Required
Field PathInputTextTarget field path. Overrides settings.Optional
Field PathSettingsTextTarget field path.-
Record DetailsOutputRecord DetailsThe updated record node.-

Node usage example scenario:

Set Single Field Node

Description & Use Case: Writes values into multiple fields on a record at once. Use this to stamp creation times and creator user IDs on custom records simultaneously.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record DetailsInputRecord DetailsThe record node to update.Required
PropertiesSettingsList of TextList of field keys and types to create.Required
Dynamic InputsInputAnyGenerates one input port for each property key defined in Settings.-
Record DetailsOutputRecord DetailsThe updated record node.-

Node usage example scenario:

Set Multiple Fields Node

Description & Use Case: Performs basic math (adding, subtracting, dividing, multiplying) on two numbers. Use this to calculate tax totals or multiply quantities by prices.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Number 1InputNumberFirst number.Required
Number 2InputNumberSecond number.Required
OperationSettingsText (Enum)Choose: "add", "substract", "divide", or "multiply".Required
DecimalsSettingsNumberNumber of decimal places to round results to.-
ResultOutputNumberCalculated result.-

Node usage example scenario:

Math Operation Node

Description & Use Case: Wraps a single value inside a new record node under a custom field name (e.g. converting the number 100 into { score: 100 }).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ValueInputAnyValue to wrap.Required
Field NameSettingsTextField name key for the new record.Required
Record DetailsOutputRecord Details{ [field]: value }.-

Node usage example scenario:

Wrap Value in Record Node

Description & Use Case: Grabs a single item from a list (array) of things. Use this to find the first items in search results or get the latest entry in a collection.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListThe list containing the items.Required
Position IndexInputNumberThe index position (0 = first, 1 = second). Overrides settings.Optional
Quick OptionSettingsText (Enum)Shortcut: "First" or "Last".-
Extracted ItemOutputAnyThe item retrieved from the list.-

Node usage example scenario:

Get List Item Node

Description & Use Case: Glues two pieces of text together. Use this to combine a prefix (e.g., "REF-") with a number to generate invoice reference codes.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Text 1InputTextFirst piece of text.Required
Text 2InputTextSecond piece of text.Required
Combined TextOutputTextThe combined text.-

Node usage example scenario:

Join Text Node

Description & Use Case: Loops over a list and combines all items into a single final value. Use this to calculate the grand total sum of a list of invoice items.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListList of items to loop over.Required
Initial ValueInputAnyStarting total value.Required
Output TypeSettingsText (Enum)The type of final result (Number, Text, Yes/No, Record, List).Required
AccumulatorLoop OutAnyThe running total inside the loop step.-
Current ElementLoop OutAnyThe active item inside the loop step.-
Iteration ResultLoop InAnyPass the updated total back from the loop step here.-
ResultOutputAnyThe final combined value.-

Node usage example scenario:

Combine List Node

Description & Use Case: Loops over a list, transforms each item using a mini workflow, and builds a brand-new list. Use this to take a list of orders and format them all into clean billing lines.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListSource list of items.Required
Current ElementLoop OutAnyThe active item inside the loop.-
Mapped ElementLoop InAnyPass the transformed item back from the loop here.-
ResultOutputListThe newly compiled list of transformed items.-

Node usage example scenario:

Transform List Node

For Each / Run For Each — Loop Container

Section titled “For Each / Run For Each — Loop Container”

Description & Use Case: Loops sequentially over a list to perform an action for each item. Use this to send a custom notification to a list of users, or delete a list of expired items.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListThe list to loop over.Required
ItemLoop OutAnyThe active list item.-
Position IndexLoop OutNumberThe zero-based index of the active item in the list.-
Next StepLoop InAnyRequired. Connect this to the final step in your loop to tell the system to proceed.-
CompletedOutputListFires the original list once the loop completely finishes.-

Node usage example scenario:

Run For Each Node

Description & Use Case: Appends a new item to the end of a list. Use this to add a new item to a shopping cart list.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListThe base list.Required
ItemInputAnyItem to add.Required
Result ListOutputListThe updated list containing the new item.-

Node usage example scenario:

Add Item to List Node

Description & Use Case: Inserts variables into a message template. Use this to draft personalized SMS notifications (e.g. "Hi {{val.name}}, your code is {{val.code}}").

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Source InfoInputAnyThe record or value to pull data from.Required
TemplateSettingsTextText template containing bracket tokens (e.g., {{val.name}})."{{val}}"
Result TextOutputTextThe finished text with all placeholders filled in.-

Node usage example scenario:

Text Template Node

Description & Use Case: Converts a record group into a list of key-value pairs (e.g. converting { a: 1 } into [{ key: 'a', value: 1 }]). Use this to loop through all fields of a record dynamically.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Record DetailsInputRecord DetailsObject to decompose.Required
Key-Value ListOutputListList of key-value structure items.-

Node usage example scenario:

Record to Key-Value List Node

Description & Use Case: Pulls a specific field from every item inside a list of records (e.g. pulling a list of email addresses from a list of user records).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListList of record details.Required
Field PathInputTextThe field name to pull. Overrides settings.Optional
Field PathSettingsTextThe field name to pull from each record.-
Result ListOutputListA simple list containing only the extracted values.-

Node usage example scenario:

Extract array values Node

Description & Use Case: Pulls several fields from every item in a list of records simultaneously, returning them as separate lists.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListList of record details.Required
FieldsSettingsList of TextThe list of field names to extract.Required
Output StructureSettingsTextFormat setting."array"
Dynamic OutputsOutputListGenerates one output port for each field name configured.-

Node usage example scenario:

Extract multiple array values Node

Description & Use Case: Reorganizes a list of records into a dictionary record organized by a chosen field value. Use this to quickly index users by their email addresses.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ListInputListThe list of records to group.Required
Key FieldInputTextThe field to group by. Overrides settings.Optional
Key FieldSettingsTextThe field to group by.-
Value FieldSettingsTextOptionally choose a field to serve as the value.-
Organized RecordOutputRecord DetailsThe resulting organized dictionary record.-

Node usage example scenario:

Organize List by Key Node

Description & Use Case: Links or unlinks related items (e.g. linking several products to a specific store category).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Main RecordInputRecord DetailsThe parent record to update.Required
Related RecordsInputListList of child records to link/unlink.Required
ActionSettingsText (Enum)Choose: "add" (Link) or "remove" (Unlink).Required
RelationshipSettingsTextThe name of the relationship category.Required
Updated RecordOutputRecord DetailsThe parent record details after link changes.-

Node usage example scenario:

Manage Relationships Node

Use these nodes to split flows, check parameters, or route runs along different paths.

Description & Use Case: Compares two values and splits the flow depending on whether they match. Use this to check if a user inputted a correct answer, or if two codes match.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Value 1InputAnyFirst value.Required
Value 2InputAnySecond value.Required
Match ModeSettingsText (Enum)Choose "valueAndType" (Strict) or "OnlyValue" (Loose)."OnlyValue"
If EqualOutputYes/NoFires and routes flow if both inputs match.-
If Not EqualOutputYes/NoFires and routes flow if inputs do not match.-

Node usage example scenario:

Check Equality Node

Description & Use Case: Checks if an input is missing or empty (e.g. blank text). Use this to check if a customer failed to supply a phone number, routing the flow to an alert.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
ValueInputAnyThe value to check.Required
If EmptyOutputYes/NoFires if empty.-
If Not EmptyOutputYes/NoFires if contains data.-

Node usage example scenario:

Check If Empty Node

Description & Use Case: Evaluates an input and routes the flow through the matching path out of several choices. Use this to route support tickets down different departments depending on priority (High -> Manager, Low -> Queue).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
InputInputAnyThe value to match.Required
Data TypeSettingsText (Enum)Expected data type (Text, Number, Date, Record, Yes/No)."string"
Match FieldSettingsTextOptional field to pull if input is a record.-
CasesSettingsListList of cases to match (e.g. “Low”, “Medium”, “High”).Required
DefaultOutputYes/NoRuns if the input matches none of the cases.-
Dynamic OutputsOutputYes/NoA separate output port appears for each case. Only the matching case fires.-

Node usage example scenario:

Multi-Path Switch Node

Description & Use Case: Compares two values (numbers, dates, or alphabetical text) and splits the flow. Use this to check if a customer is over 18 years old, or if a date is older than today.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
Value 1InputAnyFirst comparator.Required
Value 2InputAnySecond comparator.Required
Data TypeSettingsText (Enum)Compare as: "number", "date", or "string".Required
Forward OptionSettingsText (Enum)Choose which value to send forward: "value1" or "value2".Required
EqualsOutputAnyFires if equal.-
Greater ThanOutputAnyFires if Value 1 > Value 2.-
Lower ThanOutputAnyFires if Value 1 < Value 2.-
Greater/EqualOutputAnyFires if Value 1 >= Value 2.-
Lower/EqualOutputAnyFires if Value 1 <= Value 2.-
ContainsOutputAnyFires if Value 1 contains Value 2.-

Node usage example scenario:

Value Comparison Node

These nodes control how a workflow pathway ends.

Description & Use Case: Marks the successful completion of a pathway in your workflow. Any value linked here is collected as the final output of the entire run.

Details Table:

NameTypeRequiredDescriptionDefault
ResultInputAnyValue to return as the final result of the workflow.Required

Node usage example scenario:

Finish Success Node

Description & Use Case: Halts the workflow immediately, reporting an error and canceling/rolling back any database changes made in this run. Use this to block a process if security checks fail.

Details Table:

NameTypeRequiredDescriptionDefault
Stop TriggerInputAnyPathway connection to end the flow.Required
Error MessageSettingsTextCustom message describing the failure.Required

Node usage example scenario:

Finish Error Node

Notifications, HTTP Requests, & AI Helpers

Section titled “Notifications, HTTP Requests, & AI Helpers”

These nodes handle communications, integrations with external software, and artificial intelligence queries.

Description & Use Case: Outputs a fixed, pre-set value that never changes (like a default sales tax multiplier or a default support email address).

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
TypeSettingsText (Enum)Data type to cast to (Text, Number, Date, Record, Yes/No, List)."string"
ValueSettingsAnyThe raw value.Required
Constant ValueOutputAnyThe configured constant value.-

Node usage example scenario:

Constant Value Node

Description & Use Case: Sends an HTTP API request to external servers or online web services. Use this to send order receipts to Slack, or retrieve stock updates from a vendor’s inventory API.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
JSON BodyInputRecord DetailsData payload to send.Optional
Query ParamsInputRecord DetailsURL query parameters.Optional
URLSettingsTextTarget web API address."/some-external-url"
HTTP MethodSettingsText (Enum)Choose: "GET", "POST", "PUT", "DELETE", or "PATCH"."POST"
HeadersSettingsListCustom header key-value items.-
ResponseOutputRecord DetailsThe parsed response data returned by the server.-
Failed?OutputYes/NoOutputs “Yes” if the request timed out or returned an error.-

Node usage example scenario:

Outbound Web Request Node

Description & Use Case: Sends an alert directly to a user in their application notification center. Use this to notify a clerk that their request was approved.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
User IDInputTextThe user to notify. Defaults to the flow runner.Optional
Message BodyInputTextThe text message content.Required
Target LinkInputTextOptional screen path to open when clicked.Optional
Entity IDInputTextRelated database category ID.Optional
Record IDInputTextRelated database record ID.Optional
Sent Success?OutputYes/NoReturns “Yes” if the notification was queued successfully.-

Node usage example scenario:

Send In-App Notification Node

Description & Use Case: Sends a prompt to an AI model (like Google Gemini) and retrieves a structured or plain text response. Use this to automatically summarize customer logs, categorize support tickets, or extract dates from text.

Details Table:

NameTypeRequiredDescriptionDefault
TriggerInputAnyConditional gate.Optional
PromptInputTextThe prompt instruction.Required
System RulesSettingsTextAI persona constraints (e.g. “Draft short answers”).Required
Stop on FailureSettingsYes/NoHalts entire flow if AI call fails.false
AI OutputsSettingsListDefine fields you want the AI to extract and output.-
AdvancedSettingsYes/NoEnables detailed model tuning settings.false
ProviderSettingsText (Enum)Choose: "google" or "nvidia"."google"
Model IDSettingsTextSpecific model version to use.-
API TokenSettingsTextCustom authorization API key.-
Max TokensSettingsNumberMaximum response size.1024
TemperatureSettingsNumberCreativity slider (0.0 to 2.0).0.15
Max RetriesSettingsNumberRetries on API rate limits.2
Retry DelaySettingsNumberDelay between retries in milliseconds.50
Enforce SchemaSettingsYes/NoForce output validation with JSON Schema.false
JSON SchemaSettingsTextCustom response schema structure.-
Plain TextOutputTextThe raw text response.-
Failed?OutputAnyError details if the call fails.-
Dynamic OutputsOutputAnyGenerates one output port for each defined field in AI Outputs.-

Node usage example scenario:

AI Agent Node
  1. Use the Conditional “Trigger” Port: Instead of adding multiple branching decision nodes, connect decisions directly to the Trigger port at the top of your nodes. If the connected decision is blank or “No”, the node is safely skipped along with all steps following it.
  2. Database Transactions (Safety Rollbacks): If your workflow hits an Error node or encounters a serious issue midway, the system automatically rolls back all database changes made during that run, keeping your data clean.
  3. Always Connect Loop Iterators: When using ForEach to loop, always make sure to connect the final node of your internal flow back to the loop’s Next Step input. This tells the loop that it is safe to proceed to the next item.