Docs/Macros & Variables
#

Macros & Variables

Generate dynamic test data with macros and reference shared values with workflow variables.

Variables let you reuse a value across steps; macros generate fresh data each run. Both share the same $ suggestions menu in any macro-enabled field, and both resolve at run time.

A variable is referenced as $var.{name}. Its value can come from a workflow input, a value captured by an earlier step, a macro result, or a seed flow's output. A macro is a function like $EMAIL() that produces a new value every run.

01Workflow inputs

Workflow inputs are values you define once and fill in before each run — test emails, user roles, environment URLs, anything you don't want hard-coded into a step.

Open your flow in Flow Designer and click the canvas background so no step is selected. In the Configure tab, use Workflow Inputs to add and manage them.

Workflow Inputs editor in the Configure tab

Click + to add an input, then set:

FieldDescription
LabelFriendly name shown in the run form, e.g. User Email
Variable nameThe reference used in steps, e.g. $var.user_email
TypeText, Email, Number, Password, or Textarea
Default valueUsed when no scenario or run-time value is supplied
RequiredWhen on, the run can't start without a value

To package sets of input values into reusable run variations (accounts, environments, roles), see Scenarios. When you rename or remove an input, review any scenarios that reference it.

02Referencing variables

Once defined, a variable is available throughout the flow. Type $var. in any macro-enabled field to pick from the typeahead, or write it directly:

$var.user_email
$var.environment_url

Values captured from a step

An action can save a value from the page for later steps. When two steps could produce the same name, qualify the reference with the step label to disambiguate:

$var.Step2_Create_Client.id

Values from a seed flow

A Seed node exposes its flow's declared outputs as $var.{seed_name}.{output_key} — the way prepared data reaches the test that needs it.

03Macros

Macro expressions follow $MACRO_NAME() or $MACRO_NAME(args). They work standalone or inline within a larger string:

  • Standalone$EMAIL()test-a1b2@example-test.com
  • Inlineuser-$UUID()@corp.com
  • Escaped\$EMAIL() produces the literal text, with no resolution

Type $ in any macro-enabled field to open suggestions; keep typing to filter, then press Enter to insert. Inserted macros and variables appear as inline token pills so mixed text and dynamic values stay readable.

A workflow field showing inline token pills for macros and variables

Macro catalog

MacroGeneratesExample
$UUID()Random UUID v4a1b2c3d4-e5f6-7890-abcd-ef1234567890
$NOW()Current ISO 8601 timestamp2026-02-19T14:30:00.000Z
$TODAY()Current date (YYYY-MM-DD)2026-02-19
$DATE(days)Date offset from today by N days$DATE(-7), $DATE(30)
$TIMESTAMP()Unix timestamp in milliseconds1771520400000
$RANDOM_INT(min, max)Random integer, inclusive42
$RANDOM_STRING(length)Random alphanumeric stringxK9mQ
$EMAIL()Unique test email addresstest-a1b2@example-test.com
$FIRST_NAME()Random first nameJordan
$LAST_NAME()Random last nameChen
$PHONE()Random US phone number+1-555-382-7491
$SEQUENCE(name)Auto-incrementing counter, resets per run1, 2, 3
$AI("prompt")AI-generated text for the prompt (resolved once per run)Quick question about your refund

Where macros work

Macros resolve in action input fields, action titles and descriptions, Navigate URLs, Notification fields (recipients, subject, body, attachment filenames), and workflow inputs. Set a workflow input to a macro — for example $FIRST_NAME() $LAST_NAME() — to generate a value once and reuse the result through $var in later steps.