> For the complete documentation index, see [llms.txt](https://docs.does.qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.does.qa/values/value-store.md).

# Value Store

The Value Store holds named data your Flows can read with `$`. Create shared Values under **Assets → Values**, overwrite them for a Run, and capture more data during the Test Case with Data Test Steps.

For a Flow Builder walkthrough, see [Share data with Values](/guides/share-data-with-values.md).

## Value types

| Type    | Examples                                  |
| ------- | ----------------------------------------- |
| String  | `"https://staging.example.com"`, `"Jane"` |
| Number  | `42`, `3.14`                              |
| Boolean | `true`, `false`                           |
| Object  | `{ "id": 123, "name": "Sample" }`         |

## Use a Value in a step

In supported fields, type `$` to open dynamic values. Pick an account Value by **Title**, or a [built-in Value](/values/built-in-values.md) such as `$testEmail` or `$randomNumber`.

## Which Value wins

When several sources set the same name, later sources replace earlier ones for that name.

### When the Run starts

| Order                | Source             | Where you set it                                                                                                               |
| -------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| 1 (base)             | Account Values     | **Assets → Values**                                                                                                            |
| 2                    | CI/CD query Values | Webhook `values` query parameter                                                                                               |
| 3                    | Recipe overwrites  | **Settings → Run Recipes** → **Value Overwrites**                                                                              |
| 4 (highest at start) | This-run Values    | **Start Run** → **Value Overwrites**, [DoesQA Run](/test-steps/express/doesqa-run.md) **Values**, or CI/CD request body Values |

[Schedules](/configuration/schedules.md) use the Recipe they point at, including that Recipe’s overwrites.

{% hint style="info" %}
**Pro tip:** To beat Recipe overwrites from CI/CD, send Values in the request body. Query `values` sit below Recipe overwrites in the order above. See [Trigger Runs from CI/CD](/configuration/ci-cd.md).
{% endhint %}

### During the Test Case

After the Run starts:

1. [Built-in Values](/values/built-in-values.md) apply for their reserved names (for example `$testEmail` and `$runLabel`).
2. [Data](/test-steps/data.md) Test Steps that store or set a key update that key for the rest of the Test Case. Those writes win for the keys they change.

On-demand built-ins such as `$randomNumber` only fill a name when nothing else has set it yet.

## Private Values

Turn on **Private value** when you create a Value if the content should stay hidden in the UI after save. Private Values still apply when Tests run. You cannot view or edit the content again after save.

## Related

* [Creating Values](/values/creating-values.md)
* [Built-in Values](/values/built-in-values.md)
* [Share data with Values](/guides/share-data-with-values.md)
* [Run Recipes](/configuration/run-recipes.md)
* [Trigger Runs from CI/CD](/configuration/ci-cd.md)
* [Data Test Steps](/test-steps/data.md)
* [Run across environments](/guides/run-across-environments.md)
