Skip to content

Steps

Flow

The steps panel in the automation editor groups steps into nine categories. The names below are the labels you see in the panel. When a step’s settings panel has a different title, it’s given in the Notes column.

To add a step, drag it from the steps panel onto the canvas, or select the + below an existing step and pick it from Add Step. See The editor.

Every step type listed here has a handler in the engine, so it runs when the automation runs.

“Control flow and data operations.”

Step What it does Notes
Smart Function Runs code that AI writes from your description, with access to the platform SDK. Panel tabs: Setup, Inputs, Code, Settings.
Variable Stores values for later steps to read as {{var.name}}. Panel title: Variables.
Condition Sends the run down the first branch whose rule matches. Each row has a Name, Expression, Operator and Value. Operators: equals, does not equal, contains, matches, greater than, less than, greater than or equal to, less than or equal to, is one of, is not one of, has no value (missing, null or empty text), has a value, is empty (also [] and {}), is not empty. A branch that is always true is the Otherwise branch, taken when nothing else matches.
Loop Repeats the steps inside it. For each item runs once per item in a List to loop over. A set number of times counts from a start to an end value. Until stopped repeats until an End Loop step, up to the Stop after limit. Inside the loop, read the item with {{loop.current}}.
Function Runs JavaScript you write. What the code returns becomes the step’s output. JavaScript only. Python is listed but not available yet. See Function steps.
Data Store Saves and queries records in a collection, without SQL: Save record (insert / upsert), Find records (query), Delete record by id, Define collection (schema), List collections, Describe collection, and more.
Sub-Workflow Runs another automation as one step, and can wait for its result. Panel title: Run Automation.
End Loop Stops the loop it’s in. Use it with Until stopped loops.

“External service integrations.” Select a connector to see its Operations, then drag the operation onto the canvas. A connector step uses a connection to the system.

“Database connections and queries.”

Step What it does Notes
SQL Query Runs SQL on any database connection. Panel title: Database. An expression in the query is sent to the database as a value, never as SQL: WHERE email = {{input.email}} and WHERE name LIKE '%{{input.q}}%' work; a value can’t change the query. An expression can’t name a table or column (FROM {{var.table}} is refused). An expression can’t stand where SQL needs a name or a keyword either: after FROM, JOIN, INTO, UPDATE, SET or AS, or in ORDER BY and GROUP BY. A list in IN ({{var.ids}}) or IN (0, {{var.ids}}) becomes one value per item; an empty list matches nothing, and an empty list in NOT IN (...) fails the step (check for it first). In LIKE '%{{input.q}}%', a % or _ in the value matches itself; to take the whole pattern from a value, write LIKE {{input.pattern}}. Quotes and comments are read the way your database reads them (MySQL "..." strings and # comments, for example); a quote that is never closed fails the step. On PostgreSQL and Redshift, a value such as a date, an ID or true is compared as the column’s type. A typed literal with an expression, such as DATE '{{input.day}}', is sent as a cast of the value. On PostgreSQL and Redshift, INTERVAL '{{input.days}} days' and INTERVAL '{{input.days}}' DAY work too. On MySQL, write INTERVAL '{{input.days}}' DAY and it’s sent as it is. On Oracle, BigQuery and Snowflake, an INTERVAL literal can’t hold an expression, so do the date math with a function or in code. A type word inside a comment or a quoted string is not read as one. Where nothing gives a value its type, as in concat(), format(), json_build_object() or {{input.x}} IS NULL, the step fails with a hint: add a cast, such as {{input.x}}::text. In MongoDB filters and documents, an expression fills a value, never a key or an operator: "{{input.x}}" in quotes is always text, and an object value that contains an operator such as $ne or $where fails the step. Extended JSON takes values: {"$oid": "{{input.id}}"}, {"$date": "{{input.at}}"}, {"$numberLong": "{{input.n}}"}. In a quoted pattern, such as "$regex": "^{{input.q}}", the value matches itself, because its regex characters are escaped. This also applies to the pattern of $regularExpression and the regex of $regexMatch, $regexFind and $regexFindAll. Any other field, such as a data field called pattern, is left as it is. To take a whole pattern from a value, write it without quotes: "$regex": {{input.pattern}}. In pipeline stages and in projections, a value starting with $ is text, never a field path. $match and $geoNear are queries, where this applies only inside $expr. The collection, and the collections and field names in $out, $merge, $lookup, $graphLookup and $unionWith, can’t come from expressions. Expressions inside $where, $function and $accumulator are refused.
Your database connections Each database connection appears here. Select one to see its Methods.

“Data extraction, transformation, and loading.”

Step What it does Notes
Poll Data Reads data from another system page by page, and remembers where it stopped so the next run picks up from there. Uses a connector operation.
ETL Job Starts an ETL job for large-scale data processing. Needs an ETL job set up under Setup › ETL.
Run on Agent Runs an operation on an execution agent inside a customer’s environment. The run waits until the agent reports back.

“Create and manage work items.”

Step What it does Notes
Create Task Creates a task, story, bug or epic. When the step waits for the task to be finished, the run goes on once the task is approved, rejected, completed or dismissed; later steps read which one as {{step.<id>.output.outcome}}, and approved is true only when the task was approved. Panel title: Task.

“AI-powered automation agents.” This category shows in Flow even though agents themselves are built in the full Designer view.

Step What it does Notes
AI Pipeline Runs a multi-phase AI processing pipeline. In the full Designer view only. Pipelines are managed by work.studio. There’s no screen for creating your own.
Each of your agents Every active agent in your organization appears by name. The step sends it a prompt and passes its answer on. Panel title: AI Agent. See Agents.

“Output and response handling.” A response step ends the run. Nothing can follow it.

Step What it does Notes
Success Response Ends the run and returns a value, with an HTTP status code from 200 to 299. Panel title: Success.
Error Response Ends the run with an error, with an HTTP status code from 400 to 599. Panel title: Error.

“Human-in-the-loop tasks.” These steps pause the run until a person responds.

Step What it does Notes
Your task templates Each task template in your organization appears by name.
Custom Task Asks a person without a template. Shown when your organization has no task templates. Panel title: Human Task. Types: Approval, Single Choice, Multiple Choice, Text Input, Form. See Approvals.