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, onejsonoutput; where a request enters the graph.workers_ai—textin,textout; runs a prompt through a hosted model.ai_gateway—jsonin,jsonout; routes the same call through a proxy with caching and retries.vectorize—textin,vectorout; upserts or queries the vector index.r2,queues,agents,ai_search,mcp,session_memory,http— onejsonport each way, wrapping the Cloudflare service or external call the name says.