Skip to main content
Step output values let you chain steps together by capturing data from one step’s response and feeding it into a later step. This is how journeys model real API workflows — where an ID returned from a creation request is needed to fetch, update, or delete the resource in a subsequent step.

When to use it

Use step output values when:
  • A later step needs data that only exists after an earlier step runs successfully (for example, a userId returned from a sign-up step that is required for the next request).
  • You want to avoid hard-coding IDs or tokens that are dynamically generated at run time.
  • You are building an end-to-end workflow where each step sets up state that the next step depends on.

Key concepts

Declare outputs on the producing step. To use a step’s response data downstream, you must declare an output on that step. Each output has a name and a path expression that locates the data in the response body (or headers). Reference outputs in downstream steps. A later step references the output by the producing step’s name and the output name. Reqflo resolves the value at run time, after the producing step completes. Failure propagation. If the step that produces an output fails or is skipped, any downstream step that depends on that output will have an unresolved value. The Run check panel flags unresolved step output references before a run begins, and the run output will report the dependency issue if the producing step fails mid-run. JSONPath extraction. Output paths use JSONPath-style expressions to locate the value in the response. For simple responses, this is often a short path like $.body.id or $.body.data.token.

How it works

1

Declare the output on the producing step

In Build mode, open the step that returns the data you need. In the Outputs section, add an output: give it a name and set the path to the value in the response (for example, $.body.id).
2

Reference it in the consuming step

In the step that needs the value, configure the field to derive from the step output. Select the producing step and the output name.
3

Run the journey

Reqflo runs the steps in order. When the producing step completes, Reqflo extracts the output value using the declared path. The consuming step receives the resolved value when it runs.

Examples

Declaring an output and consuming it (YAML):
steps:
  - name: Create user
    request: create-user
    values:
      email: ${{ run.email }}
    outputs:
      - name: user_id
        from: $.body.data.id

  - name: Get user profile
    request: get-user-profile
    values:
      userId: ${{ steps.create-user.outputs.user_id }}
Extracting from a response header:
outputs:
  - name: request_id
    from: $.headers.x-request-id
Chaining three steps:
steps:
  - name: Create cart
    request: create-cart
    outputs:
      - name: cart_id
        from: $.body.id

  - name: Add item
    request: add-cart-item
    values:
      cartId: ${{ steps.create-cart.outputs.cart_id }}
    outputs:
      - name: item_id
        from: $.body.items[0].id

  - name: Checkout
    request: checkout
    values:
      cartId: ${{ steps.create-cart.outputs.cart_id }}
      itemId: ${{ steps.add-item.outputs.item_id }}
Step outputs are resolved at run time. If you reference a step output in the Values panel before running, Reqflo will show the reference path rather than an actual value — that is expected. The value only exists after the producing step executes.