Connections
Connections store credentials for external services. Configure once, use everywhere in your automations.
How Connections Work
Flow uses OpenAPI-based connectors. Each connector is generated from an OpenAPI specification, defining available operations, authentication, and data schemas.
Connector (from OpenAPI) Connection (Your Instance)
┌─────────────────────────┐ ┌────────────────────────┐
│ Slack Connector │ │ My Slack Connection │
│ - Auth: OAuth 2.0 │ → │ - Token: xoxb-123... │
│ - Operations: 50+ │ │ - Workspace: Acme Inc │
│ - Category: COLLABORATION│ └────────────────────────┘
└─────────────────────────┘
A connector defines how to communicate with an app. A connection is your authenticated instance with credentials stored securely.
Connector Categories
Connectors are organized by category:
Creating a Connection
Step 1: Navigate to Connections
- Go to Connections in the sidebar
- Click + New Connection
Step 2: Choose a Connector
Browse connectors by category or search by name. Each connector shows:
- Available operations
- Required authentication method
- Category
Step 3: Authenticate
Configure authentication based on the connector type:
Step 4: Test and Save
- Click Test Connection to verify connectivity
- Give your connection a descriptive name
- Click Save
Database Connections
For direct database access, create a DATABASE category connection:
Database connections enable the DATABASE step type in automations for direct SQL queries.
Using Connections in Automations
CONNECTOR Step
Use the CONNECTOR step type to execute connector operations:
- Add a CONNECTOR step to your automation
- Select a connector (e.g., Slack)
- Choose a connection instance
- Select an operation (e.g., "Send Message")
- Configure parameters using expressions
Example: Send Slack Message
Step: CONNECTOR
Connector: slack
Connection: my-slack-connection
Operation: postMessage
Parameters:
channel: "#general"
text: "Order received from {{ input.customer_name }}"
DATABASE Step
Use the DATABASE step type for SQL queries:
Step: DATABASE
Connection: production-db
Operation: QUERY
SQL: |
SELECT * FROM orders
WHERE customer_id = {{ input.customer_id }}
Managing Connections
Connection Status
Re-authenticate
If a connection becomes disconnected:
- Open the connection details
- Click Reconnect
- Complete the authentication flow
Delete a Connection
Before Deleting
Check for automations using this connection. Deleting breaks dependent automations.
- Open the connection
- Click Delete
- Confirm deletion
Custom Connectors
Create connectors for any REST API using OpenAPI specifications.
Create from OpenAPI
- Go to Setup → Connectors
- Click + New Connector
- Upload or paste your OpenAPI spec (YAML or JSON)
- Configure authentication settings
- Flow generates operations from the spec
OpenAPI Requirements
Your OpenAPI spec should include:
openapi: 3.0.0
info:
title: My API
version: 1.0.0
servers:
- url: https://api.example.com/v1
paths:
/users:
get:
operationId: listUsers
summary: List all users
responses:
'200':
description: Success
Operations are extracted from paths with operationId values.
Secrets vs Connections
Use Connections for APIs with multiple operations. Use Secrets for standalone tokens and keys used in expressions.
Best Practices
Security
- Use OAuth when available (more secure than API keys)
- Grant minimum required permissions/scopes
- Rotate API keys regularly
- Never log credentials in automation outputs
Caution
- Don't delete connections without checking dependencies
- Test connections after creating them
- Monitor OAuth token expiration
- Use dedicated service accounts, not personal credentials
Troubleshooting
Connection Failed
- Check credentials — Are they correct and not expired?
- Check permissions — Does the token have required scopes?
- Check network — Can Flow reach the endpoint?
- Check rate limits — Did you hit API rate limits?
- Check IP allowlists — Is Flow's IP allowed?
OAuth Token Expired
OAuth tokens automatically refresh. If refresh fails:
- Open the connection
- Click Reconnect
- Re-authorize in the popup
- New token is stored
Database Connection Issues
- Verify host/port accessibility — Check firewall rules
- Test credentials directly — Use a database client
- Check SSL settings — Ensure SSL mode matches server config
- Verify database/schema exists — Check the database name
Related Guides
- Automations → — Use connections in workflows
- Resources → — Manage secrets and variables