Your first workflow
Build, run, and inspect a real workflow in about five minutes. No external accounts required, we'll call a public API (GitHub's user endpoint) and log the result.
By the end, you'll have used the editor, an HTTP node, an expression, and the execution detail view.
Prerequisites
- You're logged in and looking at
/workflows(the dashboard). - That's it.
Step 1, Create the workflow
- Click Create workflow in the top-right of the workflow list.
- Name it:
My first workflow. - Leave description blank for now.
- Click Create.
You're now in the workflow editor with a single Start node already on the canvas.
📸 Screenshot needed:
first__editor-with-start.png, fresh editor showing only the Start node centered on the canvas, palette open on the left.
Step 2, Add an HTTP Request node
- In the left palette, expand HTTP & API.
- Drag HTTP Request onto the canvas to the right of Start.
- Draw a connection: hover over Start's right edge until the output dot appears, then drag a line from it to the input dot on the left of HTTP Request.
📸 Gif needed:
first__drag-and-connect.gif, dragging HTTP Request from the palette, dropping it, then drawing the connection. ~4 seconds.
Step 3, Configure the HTTP Request
- Click the HTTP Request node to open the inspector on the right.
- Set:
- Method:
GET - URL:
https://api.github.com/users/octocat
- Method:
- Leave headers, body, and credentials empty, this endpoint is public.
📸 Screenshot needed:
first__http-inspector.png, inspector showing the configured HTTP Request: GET method, URL filled in, no auth.
Step 4, Add a Log node and an expression
Drag a Log node (from Utility & debugging) onto the canvas, to the right of HTTP Request.
Connect HTTP Request's output to Log's input.
Click the Log node to open its inspector.
In the Message field, type:
GitHub user {{ $node["HTTP Request"].json.body.login }} has {{ $node["HTTP Request"].json.body.followers }} followers.Note the syntax:
$node["<Node name>"].json.<path>. The node name in the expression matches the display name of the HTTP Request node, exactly. See Expressions for the full language.Set Level to
info.
📸 Screenshot needed:
first__log-inspector-with-expression.png, Log node inspector with the message field containing two expressions, the expression chip highlighted.
Step 5, Save and run
- Click Save in the top toolbar (or
⌘S/Ctrl+S). - Click Run in the top toolbar.
The nodes light up one at a time, yellow while running, green on success.
📸 Gif needed:
first__run-nodes-light-up.gif, clicking Run, then Start → HTTP Request → Log all turn green in sequence. ~5 seconds.
Step 6, Inspect the result
When the run finishes, the bottom chrome shows Completed with the duration.
Click the Log node, its bottom panel now shows the resolved message:
GitHub user octocat has 18000 followers.(Your follower count will differ.)
Click the execution chip in the bottom chrome to open the execution detail page in a new tab. The canvas snapshot, timeline, and raw output for each node are all there.
📸 Screenshot needed:
first__execution-detail.png, execution detail page Overview tab showing the three green nodes on the snapshot and the timeline table with HTTP Request, Log durations.
What you just learned
You used:
- The editor, drag from palette, connect, configure.
- An HTTP node, Flero's general-purpose REST client.
- An expression,
$node["…"].json.…to pull a field from a previous node's output. - The Log node, for debug-style output.
- A run, saved and executed the workflow, then inspected the result.
That's the core loop for everything else you'll build.
Next: try a small extension
Add an If node between HTTP Request and Log. Set its condition to {{ $node["HTTP Request"].json.body.followers }} greaterThan 10000. Connect Log to the true output. Run again, Log still fires. Edit the condition to 1000000 and re-run, Log is skipped (octocat doesn't have a million followers… yet).
Then move on to:
- Core concepts, the mental model behind workflows
- Editor overview, the editor in detail
- Recipes, full end-to-end tutorials with real services
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
Log shows [EXPR-ERROR: Node "HTTP Request" not found …] |
Display name in expression doesn't exactly match the node | Click the HTTP Request node and check the name in the inspector header, copy it literally into the expression. |
| HTTP Request fails with timeout | GitHub API is occasionally slow or rate-limits unauthenticated calls | Click Run again. Repeated failures: switch to a public endpoint you control. |
Run button disabled |
Workflow not saved, or a node has a validation error (red border) | Save first; fix any red-bordered nodes by reading the inspector's error chip. |
Found something out of date? This page lives in the Flero docs content set.