Blocks

Choosing a step

The step reference index: all 29 primitives by what they do in a workflow — start it, understand data, transform it, decide, check, act.

Every workflow is built from the same ~29 primitives. This section documents each one on the same skeleton — what it does, its config, its exact output shape, patterns, and gotchas. Pick by what you need to happen:

Start — how workflows begin

Every workflow has exactly one way in.

step fires when
Manual you (or the API) click run
Webhook an external system POSTs to your URL — or a connected app (Slack) sends an event
Schedule a cron expression says so
Watch a poll finds a NEW item (once per item)
Sub-workflow another workflow calls this one
File upload someone drops a file on your upload page
Form someone submits your hosted form
Email trigger mail arrives at your workflow address
Text trigger a verified phone texts your number

Understand — the AI step

One tile, four tasks — see the AI Agent overview for choosing between them.

task use when
Custom prompt you're writing the instruction yourself — tools, memory, knowledge live here
Extract you want declared fields out of text or an uploaded document
Classify the AI picks one of YOUR labels (then a switch routes on it)
Summarize you want a condensed digest, usually right before a send

Transform — reshape data between steps

step use when
Set fields rename / pluck / stamp fields declaratively — try this first
Reshape it's a LIST: filter, sort, dedupe, limit, split out, aggregate
Run code the declarative steps can't express it — sandboxed JavaScript
Merge parallel branches need to reconverge into one payload
Extract HTML scraping values out of a fetched page with CSS selectors

Decide — routing and repetition

step use when
If / else one yes/no condition, two paths
Switch N cases plus a default — the natural partner of a classify
Loop run a body once per list item, collect the results
Loop until repeat until a condition is true — retry / poll / refine

Check with you — humans in the loop

step use when
Wait pause for a fixed duration (durable, survives deploys)
Approval pause for a human decision — in-app or one-click email links

Act — do the thing

step use when
Web request call any HTTP API
Respond to webhook answer the webhook caller with a custom response
Send email zero-setup email through the platform sender
Send text SMS to workspace-verified numbers
Call workflow run another workflow and use its result
Get from store read a row (or a still-needs-work batch) from a data store
Save to store write a schema-validated keyed row to a data store

Connected-app steps (Slack, GitHub, Google Sheets, …) get their own gallery after launch.

The reference skeleton

Every step page answers the same five questions, in order: what it does · when it runs · config (with the Inspector screenshot) · output (the exact downstream payload shape) · patterns & gotchas. The output sections are the same truths MadMax's own build-time linter enforces — written for humans.