Skip to main content
Data-driven runs let you execute the same Journey many times in parallel, with each run using a different set of input values. You supply a JSON or CSV file where each row or record becomes one complete, independent run. This is useful for testing across a range of inputs, validating data integrity, or running a workflow against a list of users, orders, or other entities.

When to use it

  • You want to test a Journey across many different input combinations (happy paths, edge cases, error conditions) in a single pass.
  • You have a list of entities — users, accounts, transactions — and want to run the Journey against each one.
  • You’re doing data validation and want to assert the same behavior for each item in a dataset.
  • You need to produce per-row results in a report for auditing or QA sign-off.

Key concepts

One run per record. Each row in a CSV or each object in a JSON array becomes one independent run with its own result. Runs execute in parallel, not sequentially, so a 100-row file produces 100 concurrent runs. Run inputs from the data file. The columns (CSV) or keys (JSON) in your data file map to the Journey’s run inputs. Each value in the row is supplied as the corresponding run input for that run instance. Independent results. Each parallel run produces its own result — pass or fail — independently. A failure in one run doesn’t affect the others. The overall report aggregates individual results. Cases and environments still apply. You can still specify a Case and Environment when doing a data-driven run. The case provides a value baseline; the data file overrides or supplements the run inputs for each row.

How it works

Reqflo reads the data file, creates one run instance per row or record, and dispatches all instances for execution. Each instance resolves its values from the data file row, the selected case, and the environment. Results are collected per instance and aggregated. For cloud runs, each instance runs as an independent job on the Cloud Runner, which means large data files can exercise true parallelism at scale.

Examples

CSV data file
user_id,amount,currency
usr_001,5000,USD
usr_002,1200,GBP
usr_003,99,EUR
JSON data file
[
  { "user_id": "usr_001", "amount": 5000, "currency": "USD" },
  { "user_id": "usr_002", "amount": 1200, "currency": "GBP" },
  { "user_id": "usr_003", "amount": 99,   "currency": "EUR" }
]
CLI — local parallel run
reqflo run payment-flow --env staging --data payments.csv
CLI — cloud parallel run
reqflo run payment-flow --env staging --data payments.csv --cloud
CLI — with a base case and data file
reqflo run payment-flow --env staging --case "Happy path" --data payments.csv --cloud
Reporting results
reqflo run payment-flow --env staging --data payments.csv --cloud --reporter junit --output results/