Data Ops Nodes

Data ops nodes let you filter, sort, transform, query, and manipulate data as it flows through your workflow. There are 24 data ops nodes in total.


Querying and Writing

Query

Icon: Database

Pull data from any table in your database. Specify filters, sort order, and limits to get exactly the records you need.

Inputs: data-in (optional filter parameters)

Outputs: data-out (query results)

Config:

  • Table: Which database table to query
  • Filters: Conditions to narrow results (e.g., status equals "active")
  • Sort: Which field to sort by and in which direction
  • Limit: Maximum number of records to return

Example: Query all bookings for this week where status is "confirmed" and sort by date.


Write Record

Icon: PenLine

Create or update records in your database. Choose insert, update, or upsert (insert if new, update if exists).

Inputs: data-in (record data)

Outputs: data-out (the created or updated record)

Config:

  • Table: Which database table to write to
  • Operation: Insert, update, or upsert
  • Fields: Which fields to set and their values

Example: After a booking is confirmed, create a corresponding invoice record in the database.


HTTP Request

Icon: Globe

Make HTTP requests to any external URL. Supports GET, POST, PUT, and DELETE methods.

Inputs: data-in (request parameters)

Outputs: data-out (response data), error (if request failed)

Config:

  • URL: The endpoint to call
  • Method: GET, POST, PUT, or DELETE
  • Headers: Custom HTTP headers
  • Body: Request body (for POST/PUT)

Example: Fetch weather data from an external API before scheduling an outdoor service.


Filtering and Sorting

Filter

Icon: Filter

Remove items from an array that do not match your criteria. Only matching items pass through.

Inputs: data-in (array to filter)

Outputs: data-out (filtered array)

Config:

  • Expression: The filter condition (e.g., status == "active")
  • Field: Which field to evaluate

Example: From a list of all customers, filter down to only those with overdue invoices.


Sort

Icon: ArrowUpDown

Reorder an array by a specific field, either ascending or descending.

Inputs: data-in (array to sort)

Outputs: data-out (sorted array)

Config:

  • Field: Which field to sort by
  • Direction: Ascending (A-Z, 0-9) or descending (Z-A, 9-0)

Example: Sort a list of bookings by date so the most recent ones appear first.


Unique

Icon: Fingerprint

Remove duplicate items from an array. You can deduplicate by a specific field or by comparing entire items.

Inputs: data-in (array with potential duplicates)

Outputs: data-out (deduplicated array)

Config:

  • Field: Which field to use for comparison (or whole item)

Example: After merging customer lists from two sources, remove duplicates by email address.


Transforming Data

Transform

Icon: Wand2

Apply an expression to transform your data. Can reshape objects, compute new fields, or extract specific values.

Inputs: data-in (data to transform)

Outputs: data-out (transformed data)

Config:

  • Expression: The transformation to apply (e.g., {fullName: first + " " + last})

Example: Combine first name and last name fields into a single full name field.


Map

Icon: Repeat

Apply a transformation to each item in an array, producing a new array of the same length with transformed items.

Inputs: data-in (array to transform)

Outputs: data-out (transformed array)

Config:

  • Expression: The transformation for each item

Example: Take a list of prices and apply a 10% discount to each one.


Reduce

Icon: Calculator

Collapse an array down to a single value by accumulating results. Common operations include sum, count, average, min, and max.

Inputs: data-in (array to reduce)

Outputs: data-out (single accumulated value)

Config:

  • Operation: Sum, count, average, min, max, or custom expression
  • Field: Which field to aggregate

Example: Calculate the total revenue from a list of payments.


Condenser

Icon: Sigma

Aggregate an array to a single value — similar to Reduce but with a simpler configuration for common aggregation operations.

Inputs: data-in (array to aggregate)

Outputs: data-out (aggregated value)

Config:

  • Operation: Sum, count, average, min, max, first, last
  • Field: Which field to aggregate

Example: Count the number of bookings in the current month.


Group By

Icon: Layers

Group array items by a field value, producing an object where each key contains an array of matching items.

Inputs: data-in (array to group)

Outputs: data-out (grouped object)

Config:

  • Field: Which field to group by

Example: Group bookings by service type to see how many of each type were booked this week.


Flatten

Icon: Minimize2

Flatten nested arrays into a single-level array. Useful when you have arrays of arrays and need one flat list.

Inputs: data-in (nested array)

Outputs: data-out (flat array)

Config:

  • Depth: How many levels to flatten (default: 1)

Example: Multiple zones each return an array of bookings. Flatten them into one combined list.


Field Operations

Pick / Omit

Icon: ListFilter

Select specific fields from an object (pick) or remove specific fields (omit). Useful for cleaning up data before passing it downstream.

Inputs: data-in (object)

Outputs: data-out (object with selected/removed fields)

Config:

  • Mode: Pick (keep only listed fields) or Omit (remove listed fields)
  • Fields: Which fields to pick or omit

Example: Before logging customer data, omit the phone number and address fields for privacy.


Null Check

Icon: CircleSlash

Check whether a value is null or undefined. Route data differently based on whether a field has a value.

Inputs: data-in (data to check)

Outputs: has-value (field exists and is not null), is-null (field is null/undefined)

Config:

  • Field: Which field to check
  • Default value: Optional value to use if the field is null

Example: Check if a customer has an email address. If they do, send an email. If not, send an SMS instead.


Variables

Set Variable

Icon: BoxSelect

Store a value in a workflow variable that persists across all nodes in the current run. Useful for accumulating state.

Inputs: data-in (passes through)

Outputs: data-out (same data, variable is now set)

Config:

  • Name: Variable name
  • Value: The value to store (static or from data fields)

Example: Store the customer's preferred contact method at the start of the workflow so later nodes can reference it.


Get Variable

Icon: BoxSelect

Read a workflow variable that was set by a Set Variable node earlier in the workflow.

Inputs: data-in (passes through)

Outputs: data-out (data plus the variable value)

Config:

  • Name: Which variable to read

Example: Retrieve the preferred contact method stored earlier to decide whether to send an email or SMS.


String and Date Operations

String Ops

Icon: Type

Perform string operations — concatenate, split, trim, replace, change case, and more.

Inputs: data-in (data containing strings)

Outputs: data-out (data with transformed strings)

Config:

  • Operation: Concat, split, trim, replace, uppercase, lowercase, template, and more
  • Parameters: Operation-specific settings

Example: Convert a customer name to title case before including it in an email template.


Date Ops

Icon: Clock

Perform date operations — add or subtract time, format dates, calculate differences, and parse date strings.

Inputs: data-in (data containing dates)

Outputs: data-out (data with transformed dates)

Config:

  • Operation: Add, subtract, format, diff, parse
  • Parameters: Operation-specific settings (amount, unit, format string)

Example: Calculate the date 30 days from the invoice date to set the payment due date.


Comparison and Math

Compare

Icon: Scale

Compare two values using operators like equals, greater than, less than, and more. Routes data to true or false outputs.

Inputs: data-in (data to compare)

Outputs: true (comparison passed), false (comparison failed)

Config:

  • Left value: The first value
  • Operator: Equals, not equals, greater than, less than, contains, starts with, etc.
  • Right value: The second value

Example: Check if the booking total exceeds the customer's credit limit.


Math

Icon: Sigma

Perform arithmetic operations on data fields — add, subtract, multiply, divide, and modulo.

Inputs: data-in (data with numeric fields)

Outputs: data-out (data with computed result)

Config:

  • Operation: Add, subtract, multiply, divide, modulo
  • Left value: First operand
  • Right value: Second operand
  • Output field: Where to store the result

Example: Calculate the total price by multiplying the unit price by the quantity.


Batching and Rate Limiting

Batch Process

Icon: Layers

Process large arrays in smaller chunks with progress tracking. Prevents timeouts when working with big data sets.

Inputs: data-in (large array)

Outputs: data-out (processed results), progress (batch progress updates)

Config:

  • Batch size: How many items per chunk
  • Delay between batches: Optional pause between chunks

Example: Send marketing emails to 5,000 customers in batches of 50, with a 1-second delay between batches.


Rate Limit

Icon: Gauge

Throttle the flow of data through the workflow. Limit how many items pass through per time window.

Inputs: data-in (data to throttle)

Outputs: data-out (data that passes the limit), limited (data that was throttled)

Config:

  • Limit: Maximum items per window
  • Window: Time window (per second, minute, hour)

Example: Limit API calls to an external service to 100 per minute to avoid hitting rate limits.


Validation

Validate

Icon: ShieldCheck

Validate data against rules before letting it continue. Checks field types, required fields, ranges, and patterns.

Inputs: data-in (data to validate)

Outputs: valid (data passed), invalid (data failed with error details)

Config:

  • Rules: List of validation rules (required, type, min/max, regex pattern)

Example: Before creating a booking, validate that all required fields are present and the date is in the future.


Chat Memory

Chat Memory

Icon: Brain

Store and retrieve conversation context for chatbot workflows. Keeps track of what has been discussed across multiple messages.

Inputs: data-in (conversation data)

Outputs: data-out (data enriched with conversation history)

Config:

  • Operation: Get (retrieve memory), set (store memory), append (add to memory), or clear (reset memory)
  • TTL: How long to keep the memory before it expires

Example: Store the customer's booking ID when they mention it, so later messages can reference it without asking again.