Skip to content
Docs
flero.ai

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

  1. Click Create workflow in the top-right of the workflow list.
  2. Name it: My first workflow.
  3. Leave description blank for now.
  4. 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

  1. In the left palette, expand HTTP & API.
  2. Drag HTTP Request onto the canvas to the right of Start.
  3. 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

  1. Click the HTTP Request node to open the inspector on the right.
  2. Set:
    • Method: GET
    • URL: https://api.github.com/users/octocat
  3. 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

  1. Drag a Log node (from Utility & debugging) onto the canvas, to the right of HTTP Request.

  2. Connect HTTP Request's output to Log's input.

  3. Click the Log node to open its inspector.

  4. 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.

  5. 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

  1. Click Save in the top toolbar (or ⌘S / Ctrl+S).
  2. 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.

  1. Click the Log node, its bottom panel now shows the resolved message:

    GitHub user octocat has 18000 followers.

    (Your follower count will differ.)

  2. 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:


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.