Connections
How data flows between blocks and how to manage integration credentials
Connections in Loopfour have two meanings: the edges that link blocks together on the canvas (defining data flow), and the integration connections that authenticate your workflow with external services like Stripe, Salesforce, and Slack.
Data Flow (Edges)
Edges are the lines connecting blocks on the canvas. They define two things:
- Execution order -- a block only runs after all its upstream blocks complete
- Data access -- downstream blocks can reference outputs from upstream blocks via template variables
Creating Edges
Click an output port on a block and drag to an input port on another block. The edge appears as a line with an arrow indicating data flow direction.
Template Variables
Access data from upstream blocks using template variable syntax:
| Context | Syntax | Example |
|---|---|---|
| Trigger payload | {{input.field}} | {{input.data.object.amount}} |
| Step output | {{steps.stepId.output.field}} | {{steps.lookup.output.email}} |
| Workflow variables | {{variables.name}} | {{variables.taxRate}} |
| System values | {{now}}, {{runId}} | Current timestamp, execution ID |
Data Flow Principles
- Directional -- data flows from outputs to inputs, never backwards
- Automatic -- the execution engine resolves all template variables before a block runs
- Concurrent -- blocks with no dependency on each other run in parallel automatically
- Conditional -- Condition blocks activate only one downstream path per execution
Integration Connections
Integration connections authenticate your workflows with external services. They are managed through Nango and support OAuth 2.0 and API key authentication.
Setting Up a Connection
- Open the Integrations page in the studio
- Click Connect on the provider (Stripe, Salesforce, etc.)
- Complete the OAuth flow or enter your API key -- API-key providers accept an optional connection name at this step
- The connection is now available in all workflow blocks for that provider
Multiple Accounts per Provider
A company can hold several accounts for the same provider -- for example two QuickBooks companies or a production and a sandbox Stripe account. Once a provider has at least one connection, its row on the Integrations page shows a Manage button that opens the account list for that provider. From there you can:
- Add account -- connect another account via OAuth or API key
- Rename -- give any connection a display name (names are optional; a default label is generated when you skip it)
- Set as default -- exactly one connection per provider is the default, marked with a star
- Verify / Refresh / Disconnect -- per-account health check, credential refresh, and removal
- Update API key (API-key providers) -- replace the credentials of one specific account; submitting a new key without choosing an account creates a new connection instead of overwriting an existing one
Workflow steps that don't select a specific account -- and the
{{connections.<provider>}} template variable -- resolve to the provider's
default connection. Every add, remove, rename, default change, and
credential refresh is recorded in the audit log.
Choosing an Account per Workflow Step
Integration blocks include a connection selector in the workflow editor. It lists every account you hold for the block's provider, marks the default with a star, and the account you pick is stored on the step and used at run time -- company-scoped and provider-checked, so a step can only ever run against one of your own accounts for its own provider. Steps without a selection keep using the provider's default account.
If a selected account is later disconnected, the editor shows a warning on the step prompting you to reselect; until you do, runs log a warning and fall back to the provider's default account.
AI agent steps can hold a selection per tool provider: the agent block's "Tool accounts" section shows one selector for each provider its tools use (e.g. NetSuite tools against a specific subsidiary while Slack tools use the default workspace). The account choice always comes from the workflow configuration -- an agent's tool call cannot switch accounts on its own.
Security
- All credentials are encrypted at rest with AES-256-GCM
- OAuth tokens are automatically refreshed when they expire
- Credentials are never stored in workflow definitions or exposed in logs
- Each connection is scoped to a specific company
Supported Providers
| Provider | Auth Type | Connection Setup |
|---|---|---|
| Stripe | OAuth 2.0 | Authorize via Stripe Connect |
| Salesforce | OAuth 2.0 | Authorize via Salesforce |
| HubSpot | OAuth 2.0 | Authorize via HubSpot |
| QuickBooks | OAuth 2.0 | Authorize via Intuit |
| Xero | OAuth 2.0 | Authorize via Xero |
| NetSuite | Token-Based Auth | Enter credentials |
| Sage Intacct | API Key | Enter web services credentials |
| Slack | OAuth 2.0 | Authorize via Slack |
| Gmail | OAuth 2.0 | Authorize via Google |
| Outlook | OAuth 2.0 | Authorize via Microsoft |
| DocuSign | OAuth 2.0 | Authorize via DocuSign |
| PandaDoc | API Key | Enter API key |
| Attio | API Key | Enter API key |
| Dropbox Sign | API Key | Enter API key |
| Rillet | API Key | Enter API key |
| Zoho Inventory | OAuth 2.0 | Authorize via Zoho |
Integrations
See all 16 provider integrations
Blocks
Learn about all block types
Triggers
Configure webhook and event triggers
Loopfour