Blocks
The building components of your billing automation workflows
Blocks are the building components you connect together to create workflows. Each block handles a specific task -- from calling the Stripe API to running AI-powered data extraction or branching logic based on invoice amounts.
JustPaid Workflow Studio includes 29 blocks organized into 7 categories.
Block Categories
Triggers (3 blocks)
Triggers define when a workflow executes. Every workflow needs at least one trigger.
- Webhook Trigger -- Receive events from external systems (Stripe, Salesforce, custom)
- Schedule Trigger -- Run on a cron schedule (daily, weekly, custom)
- Event Trigger -- React to platform events (Salesforce CDC, HubSpot property changes, Slack messages)
Integrations (16 blocks)
Integration blocks connect to external services. Each requires an OAuth or API key connection.
Payments:
- Stripe -- Invoices, payments, subscriptions, customers
CRM:
- Salesforce -- Records, queries, platform events
- HubSpot -- Contacts, deals, companies, tickets
- Attio -- Records, lists, notes
Accounting:
- QuickBooks -- Invoices, payments, journal entries
- NetSuite -- Records, transactions, saved searches
- Xero -- Invoices, contacts, bank transactions
- Sage Intacct -- GL, accounts payable, accounts receivable
- Rillet -- Revenue recognition, deferred revenue
Communication:
- Slack -- Send messages, post to channels, event triggers
- Gmail -- Send emails, search inbox, manage drafts
- Outlook -- Send and read emails
- Email -- Generic email via SMTP or Resend
Documents:
- DocuSign -- Send for signature, check status
- PandaDoc -- Create proposals, send contracts
- Dropbox Sign -- E-signature requests
AI (1 block)
- Agent -- Connect to LLMs (Claude, GPT-4o) for text processing, data extraction, classification, and tool use
Control Flow (3 blocks)
Control flow blocks manage execution paths within your workflow.
- Condition -- Branch based on boolean expressions (e.g.,
amount > 1000) - Loop -- Iterate over collections (e.g., process each line item)
- Parallel -- Execute multiple paths concurrently
Actions (1 block)
- Stagehand -- Browser automation: navigate portals, download reports, fill forms using AI-driven browser control
Data (2 blocks)
- Transform -- Map and reshape data between systems
- Code -- Run custom JavaScript in a sandboxed environment
Utility (3 blocks)
- Wait -- Pause execution for a specified duration
- Approval -- Human-in-the-loop: pause for manual approval before continuing
- Sub-workflow -- Call another workflow as a step
How Blocks Work
Each block has three components:
- Inputs -- Data coming from upstream blocks or the trigger payload
- Configuration -- Settings that control behavior (API action, conditions, prompts)
- Outputs -- Data produced for downstream blocks to consume
Blocks are connected by edges that define data flow. The execution engine builds a directed acyclic graph (DAG) from your connections and runs blocks in dependency order -- independent blocks execute concurrently automatically.
Common Patterns
Sequential Processing
Chain blocks where each processes the output of the previous one:
Webhook Trigger -> Transform (map payload) -> Stripe (create invoice) -> Slack (notify)Conditional Branching
Use Condition blocks to route based on data:
Webhook -> Condition (amount > 1000?)
-> Yes: Approval -> Stripe (create invoice)
-> No: Stripe (create invoice)Parallel Execution
Run independent tasks concurrently:
Stripe (payment received) -> Parallel
-> QuickBooks (record payment)
-> Slack (notify finance)
-> Gmail (send receipt)Loop Processing
Iterate over collections:
Salesforce (get line items) -> Loop (for each item)
-> Stripe (create invoice line)Block Configuration
All blocks share common configuration options:
| Option | Description |
|---|---|
| Name | Human-readable label displayed on the canvas |
| Error Handling | Strategy: fail, continue, or retry with backoff |
| Timeout | Maximum execution time before the step is killed |
| Retry Config | Max attempts, initial delay, backoff multiplier |
Additionally, each block type has specific configuration. See individual block documentation for details.
Agent Block
AI-powered text processing and data extraction
Condition Block
Conditional branching based on expressions
Transform Block
Data mapping between systems
Approval Block
Human-in-the-loop approval flows
Code Block
Custom JavaScript execution
Stagehand Block
AI-driven browser automation