Folder

Processing Blocks

Processing blocks change, inspect, delay, combine, or forward data after a trigger starts a workflow. They cover short runtime utilities, custom code, database and HTTP operations, deterministic JSON shaping, parallel-path synchronization, and reusable child pipelines.

Parallel processing paths joined before the workflow continuesParallel processing paths joined before the workflow continues

Choose the right block

BlockSchema typeUse it when
Sleepdebug.sleepA path must pause for a fixed duration before it continues.
Render Blockdebug.renderA value must be rendered as text, JSON, XML, HTML, an image, or a PDF.
Codeprocess.codeA transformation or operation needs JavaScript or TypeScript logic.
DB Queryprocess.dbQueryA workflow must execute a parameterized PostgreSQL or MySQL query, or a MongoDB command.
Web Requestprocess.webRequestA workflow must call an HTTP API and route success or error results.
Transformprocess.transformInput values must be shaped into a predictable JSON object without custom code.
Wait for allprocess.waitForAllSeveral required paths must all finish before one combined payload is emitted.
Subflowflow.subflowA published pipeline in the same project owns a reusable part of the process.

Choose the narrowest block that expresses the operation. Prefer Transform for declarative JSON mapping, Web Request for a normal HTTP exchange, and DB Query for a configured database. Use Code when the required logic cannot be represented clearly by those blocks.

Understand data flow

Most processing blocks receive the upstream payload as input. Their output then becomes the next block's input. Some blocks preserve the incoming value and add a result, while synchronization blocks construct a new object from explicitly mapped inputs.

PatternBlocksOutput behavior
Pause or inspectSleep, Render BlockContinues with the upstream context and block-specific result.
Add a named resultTransform, DB QueryPreserves upstream input and adds a configured or block-specific key.
Return custom dataCodePreserves upstream input and adds the JSON value returned by run.
Call an external serviceWeb RequestEmits a success result through Out or a request failure through Error.
Join pathsWait for allEmits one object built from the configured input-to-output mappings.
Compose pipelinesSubflowStarts the selected child pipeline and follows the selected completion mode.

Inspect a controlled test run before writing expressions against a result. A green block state confirms execution, but it does not prove that the returned business data is correct.

Plan side effects and cost

Designer tests are real executions. Code can call runtime APIs, DB Query can change records, Web Request can call production endpoints, and a Subflow can execute an entire published pipeline. Reached blocks can consume credits even when the run was started for testing.

Before running a processing path:

  1. Save the workflow version.
  2. Use non-sensitive representative input.
  3. Point integrations at controlled resources.
  4. Confirm whether retries could repeat a side effect.
  5. Inspect each reached block's logs and output.

Combine blocks deliberately

A common event-registration path can use:

  1. Transform to build a stable attendee object.
  2. Web Request to create the attendee in another application.
  3. DB Query to record a local correlation ID.
  4. Wait for all to join independent attendee and event branches.
  5. Render Block to inspect the final object during development.

Use a Subflow when one part has independent ownership, release cadence, or reuse. Do not split a simple linear mapping into another pipeline solely to reduce the number of blocks on the current canvas.

Troubleshoot processing paths

  • A block never runs: verify that an upstream output reaches its input and that a condition did not select another path.
  • A template path is missing: inspect the previous execution output and match exact nesting and letter casing.
  • An external operation is unavailable: configure the database, integration, or target pipeline in the same project ownership scope.
  • A retry duplicates work: make the external operation idempotent or use a stable business identifier as its idempotency key.
  • Parallel work never joins: confirm that every configured Wait for all input is connected and can complete in the tested path.
  • A Subflow target is absent: publish a manual-trigger pipeline in the same project, then reopen the block settings.

Processing guides

  • Sleep - Configure bounded fixed delays and distinguish a pause from scheduling or polling.
  • Render Block - Select a render type, source expression, and MIME type for inspectable output.
  • Code - Implement a serializable run function and use the Builders Runtime API through dedicated references.
  • DB Query - Select a configured engine, parameterize queries, and inspect rows or command results.
  • Web Request - Configure methods, URL data, bodies, files, redirects, timeouts, and retries.
  • Transform - Build a named JSON value with template expressions.
  • Wait for all - Define dynamic input handles and combine parallel results by key.
  • Subflow - Select a published child pipeline and choose synchronous or asynchronous execution.

Next steps

Explore this folder

Boilerplate Wiki - Processing Blocks