Skip to main content
Steps are the building blocks of a journey. Each step performs an action — currently, making an HTTP request — and can assert on the result or expose values to later steps. Additional step types are planned and will be added as Reqflo expands its workflow capabilities.

Step type status

Step typeStatusDescription
HTTP requestSupportedMakes an HTTP request using a request template from the template library. Supports value configuration, assertions, and step outputs.
ConnectorPlannedCalls an integration connector (e.g. a database query, a queue message, a third-party API action).
Sub-journeyPlannedInvokes another journey as a nested step, composing workflows from reusable building blocks.
ScriptPlannedExecutes a custom script for data transformation, conditional logic, or value generation.
Set variablePlannedExplicitly sets a variable value mid-journey, useful for derived or computed values.
NotePlannedA non-executable annotation step for documenting context or intent inline with the workflow.
Manual checkpointPlannedPauses execution and requires a human to confirm success, mark failure, or attach evidence before the run continues.
Planned step types are not yet available. The step type list in Build mode currently shows only HTTP request steps. Planned types will be added in future releases.

HTTP request step

The HTTP request step is the current primary building block of a Reqflo journey. How it works:
  1. You select (or search for) a request template from the library. The template defines the request shape: method, path, headers, body schema, and recommended value configuration.
  2. You configure how each value the request needs is supplied. Values can come from run inputs, variables, previous step outputs, environment values, secret references, hard-coded values, or user-specific “me” values.
  3. After the request executes, you can assert on the response (status code, body, headers) and expose fields from the response as step outputs for later steps to use.
steps:
  - id: get_user
    name: "Fetch user profile"
    type: http_request
    template: "GET /users/{user_id}"
    values:
      user_id: "{{ inputs.user_id }}"
      authorization: "Bearer {{ secrets.api_token }}"
    assertions:
      - type: status_code
        expected: 200
      - type: json_path
        path: "$.user.email"
        operator: exists

HTTP request step fields

FieldRequiredDescription
idyesUnique identifier for the step within the journey. Used to reference step outputs.
nameyesLabel shown in the UI and run output.
typeyesMust be http_request.
templateyesThe request template to use, by name or path.
valuesnoMap of value bindings for the template’s required fields.
assertionsnoList of assertions to evaluate against the response.

Step outputs

After an HTTP request step runs, its response is available to later steps via template expressions:
ExpressionValue
{{ steps.<id>.status }}HTTP status code (e.g. 201)
{{ steps.<id>.body.<path> }}A field from the JSON response body
{{ steps.<id>.headers.<name> }}A response header value
See Value resolution order for how step outputs fit into the overall precedence model.