Skip to Content
Welcome to the new Evolvable AI docs! đź‘‹
User GuideWorkflows

Workflows

Workflows let you automate multi-step processes by connecting actions together in a visual canvas — no code required. Chain together emails, AI agents, external services, database queries, and more, then let Evolvable.ai run them automatically.


Table of Contents

  1. Overview
  2. Core Concepts
  3. Creating a Workflow
  4. Trigger Types
  5. Node Types
  6. Passing Data Between Nodes
  7. Conditional Branching
  8. Scheduling a Workflow
  9. Running a Workflow
  10. Monitoring Executions

Overview

A workflow is a sequence of automated steps that run in response to a trigger — a manual action, a schedule, or an event from an external system. Each step is a node that performs a specific action, and nodes are linked by connections that define the order of execution.

With workflows you can:

  • Automate repetitive tasks across multiple services without writing code
  • Build intelligent pipelines that involve AI agents, databases, and external APIs
  • React to external events in real time and route logic based on dynamic conditions

Core Concepts

Workflow

A workflow is a series of automated steps. You define what should happen and in what order, and the system handles the rest.

Node

A node represents a single action — for example, sending an email, calling an external service, or running a script. Nodes are placed on a visual canvas and connected together to form a flow.

Connection

A connection links one node to the next. Connections can be:

  • Flow — always continue to the next node
  • Conditional — only continue if a condition is met (see Conditional Branching)

Execution

An execution is a single run of a workflow. Every run is logged so you can review what happened, what data was produced, and whether any steps failed.


Creating a Workflow

  1. Give the workflow a name — Choose a clear, descriptive name.
  2. Add a START node — Choose how the workflow will be triggered: manually, on a schedule, or via webhook.
  3. Add action nodes — Browse the Node Catalog, drag nodes onto the canvas, and configure their settings.
  4. Connect the nodes — Draw connections from one node to the next to define the execution order.
  5. Save and activate — Set the status to Active so the workflow can run.

Tip: Keep a workflow in Draft status while you’re still building it to prevent it from being triggered accidentally.


Trigger Types

Every workflow starts with a START node. The trigger type determines how the workflow is launched.

Manual

The workflow is started by a user on demand. Use this for one-off or on-request automations.

To run it, open the workflow and click Run. You can optionally provide input data before the execution starts.

Scheduled

The workflow runs automatically on a recurring schedule. You define the schedule using a cron expression — see Scheduling a Workflow.

Once active, the workflow will run at the defined times without any manual action.

Webhook

The workflow is triggered by an external system. When active, the workflow gets a unique URL that third-party tools can call to start it.

The webhook URL is shown in the START node settings after the workflow is saved. Provide this URL to the external system that should trigger the workflow.


Node Types

Nodes are organized into categories. You can browse all available nodes in the Node Catalog.

Control Flow

NodeDescription
STARTThe entry point of every workflow. Defines the trigger type.
ENDMarks the successful completion of the workflow.

HTTP / API

NodeDescription
HTTP GETFetch data from an external service.
HTTP POSTSend data to an external service.
HTTP PUTUpdate a resource in an external service.
HTTP DELETEDelete a resource in an external service.

Communication

NodeDescription
EmailSend an email via Evolvable.ai’s default mail settings.
Send EmailSend an email using custom mail credentials.
Read EmailRead messages from a mailbox.
Gmail ReadRead messages from a connected Gmail account.
Gmail SendSend messages from a connected Gmail account.
SlackSend a message to a Slack channel or user.
WhatsApp SendSend a WhatsApp message.

AI / Agents

NodeDescription
Agent ChatSend a message to one of your configured AI agents and receive a response.

Data Processing

NodeDescription
TransformModify text or convert data formats.
JSON ProcessorExtract or manipulate values from structured data.

Database

NodeDescription
PostgreSQL QueryRun a query against a connected database.

Code

NodeDescription
Python CodeExecute a custom Python script. Useful for logic that doesn’t fit another node.

Utility

NodeDescription
DelayPause the workflow for a set amount of time before continuing.

Passing Data Between Nodes

Nodes can use the output of previous nodes as input. This is how data flows through your workflow.

How It Works

When configuring a node’s parameters, you can reference the output of any earlier node using the template syntax:

{{nodeId->output->fieldName}}

Type this directly into any parameter field. The node ID is visible on the canvas when you select a node.

Example

If node 3 fetches a user record and returns their ID, a later node can use that value:

{{3->output->userId}}

For nested data, use dot notation:

{{3->output->user.address.city}}

Input Data

When triggering a workflow manually, you can provide input data before the run starts (for example, a user ID or a message). This data is available to nodes as {{input->fieldName}}.


Conditional Branching

You can route the workflow down different paths depending on the data produced at runtime.

How It Works

  1. Draw a Conditional connection from a node.
  2. Click the connection to open the condition editor.
  3. Define one or more conditions.
  4. The workflow follows that path only when all conditions are met.

If no conditional connection matches, the workflow stops at that node. You can add a fallback Flow connection as a default path.

Setting Up a Condition

FieldDescription
PathThe data field to check (e.g. user.role)
OperatorHow to compare the value
ValueThe value to compare against

Operators

OperatorMeaning
EqualsField matches the value exactly
Not equalsField does not match the value
Greater thanField is greater than the value
Greater than or equalField is greater than or equal to the value
Less thanField is less than the value
Less than or equalField is less than or equal to the value
InField is one of a list of values
Not inField is not in a list of values
ExistsField is present in the data
Not existsField is absent from the data

Combining Conditions

Multiple conditions on the same connection can be combined with AND (all must be true) or OR (at least one must be true).


Scheduling a Workflow

Set the START node trigger to Scheduled and define when the workflow should run using a cron expression.

Cron Expression Format

second minute hour day-of-month month day-of-week

Use * to mean “every”. For example, * * * * * * means every second.

Common Examples

ExpressionRuns
0 0 * * * *Every hour
0 0 9 * * MON-FRIWeekdays at 9:00 AM
0 */30 * * * *Every 30 minutes
0 0 0 1 * *First of every month at midnight

Use the Validate button in the START node settings to check that your expression is correct before saving.


Running a Workflow

Only Active workflows can be executed. Change the workflow status to activate it.

Workflow Statuses

StatusMeaning
DraftBeing built — cannot be executed
ActiveLive and executable
InactivePaused — temporarily disabled
ArchivedKept for history — no longer runs
DeprecatedSuperseded by a newer workflow

Manual Run

Open the workflow and click Run in the toolbar. An optional input panel will appear where you can provide data for the execution. Click Confirm to start.

Webhook Run

Copy the webhook URL from the START node settings and provide it to the external system. When that system sends a request to the URL, the workflow starts automatically. Any data included in the request body is available as input data inside the workflow.


Monitoring Executions

Every time a workflow runs, an execution record is created. Open the Execution History tab on any workflow to see all past and current runs.

Execution Statuses

StatusMeaning
RunningExecution is in progress
SuccessAll steps completed without errors
FailedOne or more steps encountered an error
CancelledExecution was stopped manually
TimeoutExecution exceeded the allowed time limit

Step-Level Detail

Click on any execution to see the result of each individual node, including the input it received, the output it produced, and how long it took.

StatusMeaning
PendingWaiting to run
RunningCurrently executing
SuccessCompleted without errors
FailedEncountered an error
RetryBeing retried after a failure

Retrying a Failed Step

If a node fails (for example, due to a temporary connection issue), click on the failed node in the execution detail view and select Retry. Only that step will re-run — the rest of the execution remains unchanged.

Last updated on