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 type | Status | Description |
|---|
| HTTP request | Supported | Makes an HTTP request using a request template from the template library. Supports value configuration, assertions, and step outputs. |
| Connector | Planned | Calls an integration connector (e.g. a database query, a queue message, a third-party API action). |
| Sub-journey | Planned | Invokes another journey as a nested step, composing workflows from reusable building blocks. |
| Script | Planned | Executes a custom script for data transformation, conditional logic, or value generation. |
| Set variable | Planned | Explicitly sets a variable value mid-journey, useful for derived or computed values. |
| Note | Planned | A non-executable annotation step for documenting context or intent inline with the workflow. |
| Manual checkpoint | Planned | Pauses 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:
- 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.
- 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.
- 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
| Field | Required | Description |
|---|
id | yes | Unique identifier for the step within the journey. Used to reference step outputs. |
name | yes | Label shown in the UI and run output. |
type | yes | Must be http_request. |
template | yes | The request template to use, by name or path. |
values | no | Map of value bindings for the template’s required fields. |
assertions | no | List 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:
| Expression | Value |
|---|
{{ 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.
Related pages