"No-code" has a reputation problem. Many tools are no-code right up to the moment your task gets slightly complicated, and then you hit a wall, or a hidden scripting language. This post explains the model behind workflow automation, why it holds up better than most no-code, and where a little low-code fits in. I'll use Agentic Workflow (AWFlow), the browser automation tool I build, as the running example, but the ideas apply to any workflow tool.
A workflow is three things
1. A trigger: when it starts.
Something has to kick the workflow off. In a browser that can be much more than a timer. AWFlow has ten ways to start a workflow: run it by hand from the side panel, right-click a page, press a hotkey, a page loads, you navigate to a site, an element on a page changes, the browser starts, a schedule fires, a chat message arrives, or another workflow fails (an error trigger).
2. Blocks (nodes): what it does.
Each block does one job: read a page, extract a table, filter rows, sort, remove duplicates, call an AI model, add rows to a Sheet, post to Slack. AWFlow has 160+ of them. You connect them with your mouse; the arrows are the path the data takes.
3. The data flowing between them.
Each block receives items, does its job, and passes items on. You can open any block and see exactly what came in and what went out. That visibility is underrated: it's the main reason non-developers can debug a workflow without asking for help.
[Every morning] → [Read page] → [Extract table] → [Keep new rows] → [Add to Google Sheet]
trigger block block block block
Why this is real no-code
The difference between "no-code until it gets hard" and real no-code is whether the hard parts are also blocks. In a workflow they are:
| You need… | It's a block |
|---|---|
| Do something only if a condition holds | IF |
| Repeat for every row | Loop / Split in batches |
| Combine two branches | Merge |
| Survive a failure | Try / Catch, plus an error-trigger workflow that alerts you |
| Wait until tomorrow, or until a page changes | Wait / Poll until (durable, survives a closed tab) |
| Ask a human before continuing | Approval |
| Use AI for one judgement call | An AI block (summarize, classify, extract…) |
You describe the what; the blocks own the how. And if facing an empty canvas is the problem, you can describe the goal in a sentence and the assistant draws a first version for you to adjust.
Where low-code fits (and why it's on the same canvas)
Some steps really are easier to write than to draw. Instead of forcing you into a different tool, the workflow gives you three escape hatches, in order of power:
-
Expressions. A field can contain a small formula such as
{{ price * 1.2 }}, referencing earlier steps. The language is deliberately tiny (arithmetic, comparisons, a whitelist of functions; no variables or method calls), so a shared workflow can't sneak code into it. - A Python step. When you need real logic, the Code block runs actual Python, in an isolated worker with a timeout.
- Any API. Point a Custom API block at an OpenAPI spec and its operations become forms. No integration needed.
That's the honest version of low-code: start with blocks, drop down one level only where you need to, and stay on the same canvas.
Why it's predictable
Because the path is drawn, a workflow is deterministic: the same input takes the same path and gives the same result. Every run is recorded step by step. That's what makes it safe to schedule and run while nobody is watching, and it's the main difference from AI agents (more on that in the companion post).
When to use a workflow (and when not)
- Use a workflow when you can name the steps, it runs often, or it has to run unattended.
- Use an agent when the steps change every time, the input is messy, or it's a one-off. Then you describe the outcome instead of drawing the path.
- Combine them: a workflow can call an agent for one judgement step, and an agent can run your workflow when it needs a step done exactly your way.
Try it
AWFlow runs entirely in your browser: no server, no account to start, free. https://chromewebstore.google.com/detail/linlkeaipfpnhddjkpcbmldionajfifa?utm_source=item-share-cb

Top comments (0)