Skip to main content
QA Wolf runs all flows in parallel by default, but some workflows require coordination and data sharing among concurrently running flows. During a run, any flow can both produce data for other flows and consume data from other flows. For example, one flow might create a new user, another might log in as that user, and a third might verify the user’s activity — all within the same coordinated run. We call these linked user journeys Hopper Flows. Hopper Flows enable end-to-end, multi-user, multi-platform testing — the kind of real-world scenarios that single-flow testing can’t reproduce.

Share data across flows

To create a Hopper flow, you need two flows — a producer and a consumer. They can belong to the same folder and share tags. In the producer flow, use setOutput to publish key-value pairs that other flows can access:
setOutput("TOKEN", "abc123", "USER_ID", "42");
In the consumer flow, use workflowInputs to read values published by the producer:
const token = workflowInputs["TOKEN"];
const userId = workflowInputs["USER_ID"];
A consumer flow will not run until its producer has published. This is why Run Rules ordering matters — see below.
If the same flow calls setOutput multiple times, it overwrites the key. However, if two or more different flows produce values for the same key and a third flow depends on both, that third flow will fail with the error Workflow run failed due to conflicting dependency outputs.

Run Hopper flows

Producers and consumers must be included in the same scheduled run.
  • To run flows together, create a schedule that targets all flows or flows with a shared tag
  • To control execution order, create a Run Rule that ensures producers run before consumers. Run Rules can be defined using groups, tags, or specific flow names
If a flow acts as both a producer and a consumer, create two Run Rules: one to run it after its producer and another to run it before its consumer.
Last modified on March 31, 2026