Skip to main content

Jobs and Steps

Every automation in Automation Hub is built from two simple concepts: Jobs and Steps. Think of it like a recipe - the Job is the complete recipe, and each Step is an individual instruction.

Job
Step 1
Read data from database
Step 2
Check a condition
Step 3
Send a notification
A Job is the full workflow. Steps are the individual actions inside it.

Understanding Jobs​

A Job is a complete automation workflow. It's your entire automation from start to finish.

What's a Job?​

When you create an automation, you're creating a Job. For example:

  • "Send daily sales report to Slack"
  • "Backup database to AWS S3 every night"
  • "Notify team when new customer signs up"
  • "Sync Salesforce contacts to the data warehouse"

Each of these is one Job. Jobs are stored in Automation Hub and can be triggered manually, on a schedule, via webhook, through an API call, or by an AI agent.

Job Basics​

Every job has a few core properties:

PropertyWhat it means
NameA clear name so you know what the job does
DescriptionExplains why this automation exists and what it accomplishes
VersionTracks changes to the job over time
TagsLabels that help you search and filter jobs (e.g., "finance", "daily", "critical")
Enabled / DisabledTurn a job on or off without deleting it - useful for pausing automations temporarily
ColorA visual identifier to help distinguish jobs at a glance

Where Jobs Live​

Jobs are organized into a simple hierarchy:

Workspace
Your team or department
Collection
A group of related automations
Job
One automation workflow
Workspace contains Collections, which contain Jobs. See Workspaces and Collections for details.

You can also clone a job to create a copy, or import/export jobs to move them between environments.

Job Settings (the Configurations tab)​

Job-level settings live on the Configurations tab of the job canvas (alongside the Canvas and Executions tabs), under the Job configuration panel. These settings apply to the whole job - retry, timeout, notifications, and SLA are all defined here, not per step. Save with Save configuration, or discard changes with Reset.

The panel is organized into groups:

Execution​

SettingWhat it controlsExample
Job timeout (min)Maximum time the job can run before it's automatically stopped30
Max concurrent executionsHow many instances of this job can run at the same time (leave blank for no limit)5
On limit behaviorWhat happens when the concurrency limit is reachedQueue (wait in line) or Reject (refuse the run)
Enable archivalWhether older execution records are moved to archive storage instead of deletedOn
Executions to keepHow many recent execution records to keep in active history100

Retry policy​

Turn on Retry on failure to reveal the retry fields. The available fields depend on the chosen strategy.

SettingWhat it controlsExample
Retry on failureToggle that enables automatic retry of the whole job when it failsOn
Max retriesMaximum retry attempts after a failure (the first run is not counted)3
Retry delay (sec)How long to wait before the next retry attempt60
Retry strategyHow the delay between retries grows - Fixed (same delay every time) or Exponential Backoff (delay grows each attempt)Fixed
Backoff coefficientMultiplier applied to the delay after each retry (Exponential Backoff only)2.0
Max retry delay (sec)Cap on the wait time between retries (Exponential Backoff only)600

Notifications and alerting​

Choose which events to notify on, then enable one or more delivery channels.

SettingWhat it controlsExample
Notify onWhich events trigger a notification: Success, Failure, Timeout, Long runningFailure, Timeout
Alert after N consecutive failuresOnly send a failure alert after this many failures in a row (shown when Failure is selected)3
Include execution summaryAttach a per-step summary of what succeeded, failed, or was skippedOn

Notifications can be delivered through any of these channels:

ChannelWhat you configure
EmailRecipient addresses
SlackChannel ID and bot token
MS TeamsIncoming webhook URL
WebhookA callback URL to POST notifications to

Logging and observability​

SettingWhat it controlsExample
Log levelHow much detail is captured in logsINFO, DEBUG, ERROR

Intelligent Twin​

The Intelligent Twin group holds two advanced toggles. Leave them off unless you are deliberately exercising resilience testing or recovery.

ToggleWhat it's for
Apply ChaosChaos testing - simulate failures during a run to validate how resilient the job is
Apply RollbackAutomatic rollback - attempt to undo the run's effects when execution fails

General​

SettingWhat it controlsExample
Expected duration (min)The job's SLA. If a run exceeds this, it is flagged as Slow - the job is not stopped15
Description / notesFreeform notes about the job (supports Markdown)--

Understanding Steps​

A Step is a single action within a job. Every step does one specific thing.

What's a Step?​

Steps are the individual actions that make up your automation. Each step has a type that determines what it does, and configuration that tells it how to do it.

For example, a job to "Notify team of new customer" might have these steps:

Read Customer
Query database for new signups
Check Priority
Is this a high-value customer?
Notify Team
Post details to Slack
Log Result
Save notification status

Step Properties​

Each step has these properties:

PropertyWhat it means
NameA descriptive name for what this step does
DescriptionAdditional detail about the step's purpose
Order / PositionWhere this step sits in the workflow
Enabled / DisabledTurn individual steps on or off without removing them
CategoryThe general category (Communication, API, Database, etc.)
Action TypeThe specific action (Send Email, REST API Call, SQL Query, etc.)
ConfigAction-specific settings (email details, database query, API endpoint, etc.)
SettingsA dynamic, action-specific template - the fields shown depend on which node the step is built from

Step Types by Category​

Automation Hub offers 30+ step types organized by what they do:

Communication​

Step TypeWhat It Does
EmailSend or retrieve emails
SlackSend messages to Slack channels
Microsoft TeamsSend messages to Teams channels

API and Server​

Step TypeWhat It Does
REST APIMake HTTP requests (GET, POST, PUT, DELETE, PATCH) with authentication and pagination support
SSHRun commands on remote servers
KafkaProduce or consume messages from Kafka topics

File Transfer​

Step TypeWhat It Does
FTPTransfer files using FTP
SFTPTransfer files using secure FTP
FTPSTransfer files using FTP over SSL
AWS S3Upload, download, or manage files in Amazon S3 buckets

Database​

Step TypeWhat It Does
SQL DatabasesQuery or update MySQL, PostgreSQL, and MSSQL databases
NoSQL DatabasesWork with MongoDB and DynamoDB
DataTableCreate and manipulate in-memory data tables

Enterprise​

Step TypeWhat It Does
SalesforceCreate, read, update, and delete Salesforce records
AI AgentUse an AI agent to process data or make decisions

Data Preparation​

Step TypeWhat It Does
GroupGroup records by a field
MergeCombine data from multiple sources
Split OutBreak a list into individual items for processing
JSON ArrayWork with JSON arrays
ParseExtract structured data from raw text or files
FormatConvert data into a specific format
ExportExport data to files (CSV, JSON, etc.)

Logic and Flow​

Step TypeWhat It Does
ConditionalCreate if/else branches based on data values
LoopRepeat steps while a condition is true
CallInvoke another job as a sub-workflow
BooleanEvaluate true/false expressions
VariablesSet, get, and manipulate workflow variables

Utility​

Step TypeWhat It Does
Date TimeParse, format, and calculate dates and times
CryptographyEncrypt, decrypt, hash, or encode data
UtilGeneral utilities like generating random values or waiting

Browser​

Step TypeWhat It Does
Web AutomationAutomate browser interactions using Playwright (click, fill forms, scrape pages)

Human-in-the-Loop​

Step TypeWhat It Does
Human-in-the-LoopPause the workflow and send an email-based approval request; the job continues after someone approves or rejects

Step Configuration​

When you open a step, its editor has two tabs - Configuration and Settings:

Configuration - the action-specific details:

  • For an Email step: recipients, subject, body, attachments
  • For a REST API step: URL, method, headers, authentication, pagination settings
  • For a SQL Database step: connection, query, parameters
  • For a Conditional step: the condition to evaluate

Settings - a dynamic template rendered from the node's definition. Because it is action-specific, the fields you see here change depending on the node the step is built from. This tab is not where you set job-wide retry or timeout behavior - those live at the job level, on the Configurations tab.

A step also has a mandatory filled flag that indicates whether all required configuration fields have been completed.

How Steps Work Together​

DAG Execution - Not Just Sequential​

Steps in Automation Hub are connected via Links that form a directed acyclic graph (DAG). This means steps don't just run one after another in a straight line. Instead, you draw connections between steps on the Canvas to define the flow.

Why this matters:

  • Parallel execution - Steps that don't depend on each other can run at the same time, making your job faster
  • Branching - Conditional steps create separate true/false paths, so different steps run based on your data
  • Flexible routing - You can merge branches back together, split work across paths, and build complex workflows visually
Read Data
Fetch records from database
Send Email + Post to Slack
These two run in parallel since neither depends on the other
Log Result
Runs after both notifications finish
Steps with no dependencies on each other run in parallel automatically.

The DAG engine validates your workflow to make sure there are no cycles (a step cannot depend on itself, directly or indirectly). It performs a topological sort to determine the correct execution order.

Data Flow Between Steps​

Each step produces output that downstream steps can reference. When you configure a later step, you can pull in data from any earlier step in the workflow.

For example:

  • Step 1 (SQL Query) produces a list of 50 customers
  • Step 2 (Conditional) checks if the count is greater than 10
  • Step 3 (Email) uses the customer list from Step 1 and the result from Step 2 to send the right message

This lets you build dynamic, data-driven automations where each step builds on the work of previous steps.

Error Handling​

Error handling is driven primarily at the job level. On the Configurations tab, the Retry policy group decides whether a failed job retries (and how the delay grows), the Job timeout decides when a long run is stopped, and Notifications decide who is alerted on failure or timeout.

At the step level, how a failure is surfaced depends on the node - a step's behavior on error is part of its action-specific Settings template rather than a single fixed dropdown shared by every step type. Downstream steps can still see and react to an upstream step's output, which lets you route around failures where the node supports it.

Design critical steps (payment processing, data writes) so the job stops or retries on failure, and treat non-essential steps (a status notification) as safe to let the run continue. See Error Handling for a deeper look.

Test Mode​

Jobs have a test mode flag that changes how steps behave. When test mode is enabled, steps use pinned data (mock data) instead of making live calls to external systems.

This is useful for:

  • Safe testing - Try out your workflow without sending real emails, modifying databases, or calling production APIs
  • Predictable results - Pinned data always returns the same output, making it easy to verify your logic
  • Faster development - No need to wait for slow external systems while building your workflow

Each step can have its own pinned data configured. When test mode is on, the step skips its normal execution and returns the pinned data instead.

Test Mode OFF
Steps connect to real systems and process live data
Test Mode ON
Steps return pinned (mock) data without touching real systems
Use test mode while building. Switch it off when you're ready to go live.

The Complete Flow​

Here's how Jobs and Steps come together from creation to execution:

START
Create Job
Give it a name, description, and configure settings
Add Steps
Drag step types onto the Canvas and configure each one
Connect Steps
Draw links between steps and map data from outputs to inputs
Test
Run in test mode with pinned data to verify your logic
Run
Execute against real systems manually, on schedule, or via trigger
END
Build, connect, test, then run. That's the workflow.

Key Concepts​

DAG Execution​

Steps form a directed acyclic graph (DAG), not just a simple list. The execution engine figures out which steps can run in parallel based on their dependencies, and it validates that no cycles exist. This means your workflows are both correct and fast.

Data Flow​

Each step's output becomes available to every downstream step. You can reference data from any earlier step, not just the one immediately before it. This makes it easy to build workflows where a step near the end uses data from the very first step.

Error Handling​

Retry, timeout, and failure notifications are configured once at the job level, on the Configurations tab. Individual steps surface failures through their action-specific Settings and their output, which later steps can react to. See Error Handling for a deeper look.

Reusability​

The Call step type lets you invoke another job as a sub-workflow. This means you can build common automations once and reuse them across multiple jobs. For example, a "Send formatted report" job can be called by any job that needs to generate and deliver a report.

Tips for Better Jobs​

Start Simple

  • Begin with a job that has 2-3 steps
  • Add complexity once you understand the basics and verify the simple version works

Use Test Mode First

  • Pin sample data on your steps and run in test mode before going live
  • This catches logic errors without affecting real systems

Name Steps Clearly

  • Name your steps so anyone can understand what they do
  • Example: "Get today's sales" instead of "SQL query task 1"

Set Appropriate Timeouts

  • Configure job timeouts to prevent runaway automations
  • Consider the slowest external system your job talks to

Plan Your Error Handling

  • Set the job's retry policy and timeout on the Configurations tab to match how critical the job is
  • Route downstream steps off an upstream step's output when you want to build recovery logic

Keep Jobs Focused

  • Each job should do one thing well
  • Use the Call step to compose larger workflows from smaller, focused jobs

Use Tags for Organization

  • Tag jobs with meaningful labels like "finance", "daily", "critical"
  • Makes it much easier to find and filter jobs as your automation library grows

Monitor and Improve

  • Check execution logs regularly to spot failures and slow steps
  • Use execution history to optimize your workflows over time