Core Concepts
Understanding these concepts will help you build effective automations in Flow.
Workspace
A workspace is your team's isolated environment. Everything you create — automations, connections, resources — lives in your workspace.
- Each workspace has its own team members, settings, and billing
- You can be a member of multiple workspaces
- Workspaces are isolated: data doesn't cross between them
Automations
An automation is a workflow that runs when triggered. It consists of:
Triggers
A trigger is the event that starts your automation:
Steps
Steps are the building blocks of your automation. They run sequentially after the trigger fires.
Trigger → Step 1 → Step 2 → Step 3 → SUCCESS
Step types include:
Data Flow
Data flows through your automation like water through pipes:
- Trigger produces initial data (e.g., webhook payload)
- Each step can read previous data and produce new data
- Use expressions to reference data from any step
// Reference data from the trigger (input)
{{ input.customer_email }}
// Reference data from a previous step's output
{{ steps.lookupCustomer.output.name }}
// Reference a secret
{{ secrets.api_key }}
// Reference a connection
{{ connections.myDatabase }}
Connections
A connection stores credentials for an external service. Once configured, any automation can use that connection.
Connectors
Connectors are generated from OpenAPI specifications. Each connector defines:
- Available operations (endpoints)
- Authentication method
- Data schemas
Connector Categories
Authentication Methods
Apps
Apps let you package automations for distribution. Use them to:
- Share automations with your team
- Distribute to customers
- Publish to a marketplace
An app contains:
- One or more automations
- Required connections
- Configuration options
- Documentation
Resources
Resources are shared assets available to all automations:
How to Use Resources
In any step, reference resources using expressions:
// Use a secret (credential stored securely)
{{ secrets.stripe_api_key }}
// Use a variable (global value)
{{ variables.company_name }}
Runs
A run is a single execution of an automation. Each run has:
- Status — Success, Failed, or Running
- Duration — How long it took
- Input — Data from the trigger
- Output — Results from each step
- Logs — Detailed step-by-step execution
Use the run history to:
- Debug failed automations
- Monitor performance
- Audit what happened
Next Steps
Now that you understand the concepts, put them into practice: