Connections
How data flows between blocks and how to manage integration credentials
Connections in JustPaid 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 Connections panel in the studio
- Click Add Connection
- Select the provider (Stripe, Salesforce, etc.)
- Complete the OAuth flow or enter your API key
- The connection is now available in all workflow blocks for that provider
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 |
Integrations
See all 16 provider integrations
Blocks
Learn about all block types
Triggers
Configure webhook and event triggers