Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.qawolf.com/llms.txt

Use this file to discover all available pages before exploring further.

inputs and setOutput

Every flow callback receives two parameters for passing data between flows: inputs — a key-value map of values published by an upstream flow in the same run. Read a value by its key:
const token = inputs["TOKEN"];
const userId = inputs["USER_ID"];
setOutput(...) — publishes one or more key-value pairs that a downstream flow can read via its inputs. You can publish multiple values in a single call:
setOutput("TOKEN", "abc123", "USER_ID", "42");
Keys are uppercase by convention.

Share data across flows

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. To share data between flows, you need two flows — a producer and a consumer. They can belong to the same folder and share tags.
You may see these coordinated flows referred to as Hopper Flows in QA Wolf — the term for multi-user, multi-device, multi-platform test scenarios that pass data between flows in a single run.
In the producer flow, use setOutput to publish key-value pairs that other flows can access:
setOutput("TOKEN", "abc123", "USER_ID", "42");
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.
In the consumer flow, use inputs to read values published by the producer:
const token = inputs["TOKEN"];
const userId = inputs["USER_ID"];
A consumer flow will not run until its producer has published. This is why Run Rules ordering matters — see below.

Run flows that share data

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 May 6, 2026