Loopfour
Blocks

Block reference

Reference for the block types in a workflow definition, with the type name, purpose and a link to the configuration page for each block.

A block is one kind of step you can place in a workflow. This page lists each block in the registry, the step it becomes in the workflow definition, and where its settings are documented. For the plain-language view of the same steps, see Steps: what a workflow can do.

How a block becomes a step

The editor saves each block as one entry in the workflow's steps array. The block decides the step's type and, for integration blocks, its action:

BlockStep typeStep action
Condition, Loop, Parallel, Wait, Transform, AI Agent, Code, Approval, Sub-Workflow, Data Table, Workspace Files, Slack, Gmail, legacy EmailThe block type (condition, loop, parallel, wait, transform, agent, code, approval, subworkflow, data_table, workspace_files, slack, gmail, email)Not set
API Requestactionapi.request
PDFactionpdf.readText, pdf.extractPages or pdf.getInfo
Stagehandactionstagehand.navigate, stagehand.act, stagehand.extract, stagehand.observe, stagehand.download, stagehand.screenshot or stagehand.agent
Send Email and any other integration blockaction<block type>.<operation>, for example quickbooks.createInvoice

Settings go in the step's config object, keyed by the field ids shown on each block page. Later steps read a step's result with {{steps.<step id>.<path>}}. See Workflow definition format for the full step shape and Variable references for the reference syntax.

The fields a later step can read are the ones the step's executor returns. On some blocks these differ from the output list the editor shows; each block page lists what the executor returns.

Core blocks

These blocks run logic, data and people steps. They need no connection.

BlocktypeWhat it doesReference
AI AgentagentRuns a model with your prompt, optional document, structured output and toolsAI Agent block
API RequestapiCalls an HTTP endpoint and parses the responseAPI Request block
ApprovalapprovalPauses the run until a named person approves or rejectsApproval block
CodecodeRuns JavaScript in a sandboxCode block
ConditionconditionChooses a branch from a true or false testCondition block
Data Tabledata_tableReads and writes rows, tables and folders in Loopfour tablesData Table block
LooploopRuns a set of steps once for each item in a listLoop block
ParallelparallelRuns branches at the same timeParallel block
PDFpdfReads text from a PDF, keeps selected pages, or reports page countPDF block
Send EmailresendSends an emailEmail actions
StagehandstagehandDrives a hosted browser with plain-language instructionsStagehand block
Sub-WorkflowsubworkflowStarts another workflow as a stepSub-Workflow block
TransformtransformMaps or filters a list of recordsTransform block
WaitwaitPauses the run for a set durationWait block
Workspace Filesworkspace_filesSaves, reads, moves and lists files in FilesWorkspace Files block

Trigger blocks

Trigger blocks start a workflow. They set the workflow's trigger object rather than adding a step.

BlocktypeWhat starts the workflowReference
APIapi_triggerA call to the run APIAPI trigger
Scheduleschedule_triggerA recurring scheduleSchedule trigger
Inbound Emailemail_triggerAn email to the workflow's dedicated addressInbound email trigger
Airwallexairwallex_triggerAn Airwallex payment eventApp event triggers

HubSpot and Slack events are registered as triggers rather than blocks. See App event triggers and Slack triggers.

Integration blocks

Each integration block calls one connected system. Its operations, inputs and outputs are on the system's action page.

BlocktypeReference
AirwallexairwallexAirwallex actions
AttioattioAttio actions
AvalaraavalaraAvalara actions
BoxboxBox actions
DocuSigndocusignDocuSign actions
Dropbox Signdropbox-signDropbox Sign actions
Email (legacy, hidden from the editor)emailEmail actions
Finances (Plaid)plaidPlaid actions
GmailgmailEmail actions
Google Sheetsgoogle-sheetsGoogle Sheets actions
HubSpothubspotHubSpot actions
NetSuitenetsuiteNetSuite actions
OdooodooOdoo actions
OutlookoutlookEmail actions
PandaDocpandadocPandaDoc actions
QuickBooksquickbooksQuickBooks actions
RilletrilletRillet actions
Sage Intacctsage-intacctSage Intacct actions
SalesforcesalesforceSalesforce actions
SlackslackSlack actions
StripestripeStripe actions
XeroxeroXero actions
Zoho Inventoryzoho-inventoryZoho Inventory actions
ZuorazuoraZuora actions

Read the live catalog

The block list above is read from the registry. To read it from a running deployment, call the blocks endpoint with an API key that has the workflows:read scope:

curl https://workflow.loopfour.ai/api/v1/blocks \
  -H 'x-api-key: wfk_live_your_api_key'
  • GET /api/v1/blocks returns each block the editor shows. Add ?kind=core, ?kind=integrations or ?kind=triggers to filter.
  • GET /api/v1/blocks/<type> returns one block, with its fields, inputs and outputs.
  • GET /api/v1/blocks/<type>/actions/<operation>/examples returns the stored input and output examples for one action.

The legacy email block is hidden from the editor, so the endpoint does not return it. See Block and action discovery for the response shape.

Settings every step accepts

Besides its block settings, each step can carry errorHandling (fail, continue or retry), retryConfig and timeoutMs. These are covered in Errors, retries and timeouts.

On this page