Skip to content
Browse docs

Block basics

What every block declares, how a connection is checked, and where to read the definition of each one.

Ports and types

Every block declares its input and output ports with a data type: trigger, text, json, vector, blob, or the permissive any. A connection is only valid between an output and an input whose types agree, and the composer canvas checks this the moment you draw the wire — the same check POST /flows/:id/versions runs server-side, so a graph that renders on the canvas is a graph the API accepts.

  • http_trigger — no inputs, one json output; where a request enters the graph.
  • workers_aitext in, text out; runs a prompt through a hosted model.
  • ai_gatewayjson in, json out; routes the same call through a proxy with caching and retries.
  • vectorizetext in, vector out; upserts or queries the vector index.
  • r2, queues, agents, ai_search, mcp, session_memory, http — one json port each way, wrapping the Cloudflare service or external call the name says.

Where the catalogue is defined

The full definition of every block — its ports, its category and what it wraps — is in the glossary, one entry per block or per service it is built on. Start at Flow and Block; each entry links to the ones it composes with.