Build · Building flows

Build a flow, then test it without spending

A flow is a graph you can read: nodes do the work, edges carry data between them, and a run executes the graph in dependency order. This page walks the three things you actually do on the canvas: place nodes, wire them, and test the result.

What you'll do
Place nodes from the palette, wire them into a flow, and run dry runs that exercise every step without spending anything.
What you'll have
A flow whose wiring, branches, and output shape are proven, ready for a handful of live runs and then launch.
Quick definitions: dry run and USDC on Base
Dry run
A test run that executes your flow's logic for real but stubs every step that would cost money or reach an outside system, so nothing is spent.
USDC on Base
USDC is a stablecoin designed to track the US dollar. Base is an Ethereum layer-2 network. Paid calls settle in USDC on Base.
01 · Nodes

Every step is a node with typed params

Drag a node from the palette and its config panel shows typed fields: strings, numbers, selects, JSON. A node declares input and output ports; what arrives on the inputs plus the node's own params determines what it emits on the outputs. Nodes that cost money show their USDC price directly on the card, so a flow's worst-case cost is visible while you build it.

The palette groups nodes by what they do:

Triggers
Schedule · Webhook
I/O
Input · Output
AI
LLM (Claude) · Classify · Extract Fields · Transcribe Audio ($0.053) · Speak (Text to Speech) ($0.089)
Logic
HTTP Request · Transform · Branch · Switch · Aggregate · Subflow · Loop
Docs & Data
Extract PDF Text · Resource Query · Extract DOCX Text · Knowledge Search · Generate Text Report PDF · Parse Spreadsheet · Filter and Clean Rows · Generate Spreadsheet · Fetch a URL · Generate CSV
SEO & Search
Keyword Research ($0.312) · Google Results (SERP) ($1.000) · Keyword Metrics ($0.192) · Search Location Lookup · Domain Overview ($0.061) · Ranked Keywords ($0.132) · Top Pages ($0.132) · SERP Competitors ($0.132) · Keyword Gap ($0.132) · Backlinks Overview ($0.116) · Backlinks ($0.031) · Site Audit · Lighthouse ($0.100) · Page SEO Check · AI Crawler Access · Rank Tracker · Rank History ($0.000) · AI Visibility Tracker · AI Visibility Results · AI Prompt Explorer ($0.840) · AI Prompt Research ($1.110) · AI Brand Lookup ($1.006) · Local Business Search ($0.030) · Google Maps Results ($0.020) · Local Rank Grid ($0.030) · Business Categories · Business Profile ($0.005) · Business Reviews ($0.100) · Business Posts ($0.018) · Business Questions ($0.027) · Search Console · URL Inspection · Google Analytics · Search Opportunities · SEO Project Memory · Saved Keywords · SEO Reports
Comms & CRM
Slack Message · CRM Webhook
Finance & Ops
Generate Invoice PDF
Dev & Infra
GitHub Read · GitHub Issue · GitHub Workflow Dispatch
Music & IP
Style Coach ($0.050) · Lyrics ($0.100) · Generate Song ($0.500) · Analyze ($0.010) · Stems ($0.500) · MIDI ($0.250) · Mastering ($0.250) · Rights Lookup ($0.015) · Chain Chat ($0.050)
Rails
API Operation · Register IP · Royalty Split · Launch Promo · Promo Claims

A minimal working flow is three nodes: Input → LLM → Output. Input defines what a caller (or the schedule, or a webhook) provides; LLM does the judgment step; Output names what the run returns. Everything else (HTTP fetches, branches, transforms, loops) earns its place by making that spine more capable. Field-level reference for HTTP, Webhook, Transform, and Loop (caps, SSRF guard, expression grammar, failure policy) is on the main reference page; the complete catalog, every node type with its dry-run behavior, effects, and cost, is the node reference.

02 · Edges

Edges are the data flow and the execution order

An edge connects one node's output port to another node's input port. That single connection means two things at once: the downstream node receives the upstream node's output as input, and the engine will not run the downstream node until the upstream one has finished. There is no hidden shared state: if a node needs a value, a path of edges must carry it there.

Routing is explicit. A Branch node evaluates its condition and activates exactly one of its outgoing paths; nodes on the inactive path are skipped, not failed. Reshaping is explicit too: when the JSON coming out of one node does not match what the next node expects, put a Transform between them rather than asking an LLM to reformat data. String params in several nodes also support {{path}} interpolation from upstream values: the HTTP node's URL, headers, and body all take it.

Two structural rules the studio enforces rather than trusts you to remember: the graph must actually be wired together before it can launch (a disconnected island of nodes is a validation error, not a warning), and subflow nesting is bounded by the engine's depth guard: subflows and loops can nest inside each other up to 16 levels deep, all sharing one in-run cost ceiling, and a run that would go deeper fails at that boundary. Fan-out over a list is the Loop node's job, with concurrency capped at 4 and iterations at 200.

03 · Testing

Run it, watch every node, spend nothing

The run dock executes the flow and streams progress node by node: status, output, and cost per node, plus a running USDC total for the whole run. When something fails, the dock shows which node failed and with what error; downstream nodes on that path never run against bad data.

Runs in the studio are dry runs. The rule is simple: every node that costs money or reaches an outside system is stubbed (model calls, HTTP and URL fetches, Slack, GitHub, CRM webhooks, transcription and speech, and paid Suede nodes), and every node that only computes locally runs for real (Input, Output, Branch, Switch, Transform, Aggregate, Loop, Subflow, and the document and data nodes). The node reference shows each node's dry-run behavior. A dry-run loop genuinely iterates; it passes dry-run mode through to every inner run so nothing inside can spend.

That split tells you what each kind of test proves. A dry run is a complete test of your graph's structure: wiring, branch logic, transform expressions, loop behavior, output shape. It proves nothing about prompt quality or the real behavior of an external API; for that, launch a version and run it from its Live controls, paying the actual node costs for a handful of runs. Test with both before launching; the launch step is deliberately boring if the flow already behaves.

In live runs, every run shares one cost ceiling ($5 per run unless configured otherwise), checked before each cost-bearing node, so a runaway loop aborts at the ceiling instead of draining your credit. Dry runs cannot spend, so the ceiling does not apply to them.

Next

From working flow to paid endpoint

When the flow does what you want against ugly inputs as well as clean ones, continue to Launching. For design judgment rather than mechanics (how narrow to make LLM steps, where to put branches, what to do with loop errors), read Designing a good agent flow.

Last updated .

Inside Agent Studio

Good work starts with a clear flow.

Give an agent a job. Connect the steps. See how the work becomes a service someone else can call.

Input
Reason
Output

A workflow you can inspect

Make the steps visible.

Start with a template or describe the job. Connect inputs, reasoning, and output on the canvas.

Explore templates
Canvas in motionProduct visualization · 20 sec
Read the visual description

A stylized organization chart opens into a workflow canvas. Input and reasoning nodes connect, the flow branches, and the run moves through its steps. The film ends with Suede AI Agent Studio. Music only; no spoken narration. Illustrative interface, not a live run.