Automations
Automations are the heart of Flow. Build visual workflows that trigger on events, process data, and take action.
Creating an Automation
Start a New Automation
- Navigate to Automations in the sidebar
- Click + New Automation
- Give your automation a name and description
- Click Create
You'll be taken to the visual workflow builder.
Choose a Trigger
Every automation needs a trigger. Click Add Trigger to choose:
Add Steps
Build your workflow by adding steps:
- Click the + button after any step
- Choose a step type from the palette
- Configure the step settings
- Connect steps to define the flow
Step Types
Flow provides these step types for building automations:
Connector
Execute operations on external services (APIs, databases, SaaS apps).
Connectors are created from OpenAPI specifications and support:
- HTTP/REST APIs
- Database connections (PostgreSQL, MySQL, MongoDB)
- SaaS integrations (Salesforce, HubSpot, Stripe, Slack)
Each connector has multiple operations (e.g., "Send Message", "Get User", "Create Record").
Variable
Set or transform variables for use in later steps.
Use variables to:
- Store intermediate results
- Transform data formats
- Prepare inputs for later steps
Condition
Branch your workflow based on logic.
IF order.total > 1000
True Branch → Send VIP notification
False Branch → Send standard confirmation
Loop
Iterate over a collection of items.
FOR EACH order IN orders
→ Process order
→ Send confirmation
END LOOP
Function
Execute custom code (JavaScript/TypeScript).
Use functions for:
- Complex data transformations
- Custom business logic
- Calculations and validations
AI Agent
Invoke an AI agent for intelligent processing.
AI Agents can:
- Analyze documents and extract data
- Generate content
- Make decisions based on context
- Interact with users via chat
Smart Function
AI-generated code with SDK access for complex operations.
Describe what you need in natural language, and the AI generates and executes the code.
Smart Decision
AI-powered routing logic that decides the next step.
Provide a prompt describing the decision criteria, and the AI routes to the appropriate branch.
Human Interaction
Pause workflow for human input, approval, or form completion.
Interaction types:
VoIP
Execute voice operations (calls, IVR, AI voice sessions).
Use for:
- Outbound calls
- IVR menus
- AI-powered voice conversations
- Call routing
Database
Execute SQL queries directly against database connections.
Supported operations:
ETL
Execute data pipeline jobs for extract, transform, load operations.
Use for:
- Data synchronization
- Batch processing
- Data warehouse loading
Sub-Workflow
Call another workflow as a reusable component.
Break complex processes into smaller, reusable workflows.
Terminal Steps
End your workflow explicitly:
Data Expressions
Reference data anywhere using expressions with {{ }} syntax:
Expression Examples
// Access trigger data
{{ input.customer.email }}
// Access step output
{{ steps.getUser.output.name }}
// Conditional
{{ input.amount > 100 ? "VIP" : "Standard" }}
// Array operations
{{ orders.filter(o => o.status == "pending") }}
Testing and Debugging
Test Your Automation
- Click Test in the toolbar
- Provide sample input data (JSON)
- Watch the execution step-by-step
- Check the output of each step
View Run History
- Click the Runs tab on your automation
- See all past executions
- Click a run to view details:
- Input data
- Output from each step
- Error messages (if any)
- Execution time per step
Debug Failed Runs
When a run fails:
- Open the failed run
- Find the step marked with ❌
- Check the error message and stack trace
- Review the input data to that step
- Fix the issue and re-test
Managing Automations
Automation States
Version History
Flow keeps a history of your changes:
- Click History in the automation toolbar
- See all previous versions
- Click to compare changes
- Restore any previous version
Best Practices
Do
- Use descriptive names for automations and steps
- Add error handling with Condition branches
- Use secrets and connections for credentials
- Test with realistic data before activating
- Break complex workflows into sub-workflows
Avoid
- Hardcoding credentials in step configurations
- Creating infinite loops
- Ignoring error states
- Overly long single workflows
Related Guides
- Connections → — Set up connectors and credentials
- Resources → — Manage shared variables and secrets
- Apps → — Package automations for distribution