> 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/creating-values.md).

# Creating Values

Create shared Values once under **Assets → Values**, then insert them with `$` in supported fields. Capture more data while a Test Case runs with Data Test Steps.

## Create an account Value

{% stepper %}
{% step %}

## Open Values

Go to **Assets → Values**.
{% endstep %}

{% step %}

## Create the Value

Choose **Create new value**. Set a **Title**, **Type**, and **Value**.

| Type    | Use it for                                    |
| ------- | --------------------------------------------- |
| String  | URLs, usernames, messages                     |
| Number  | Counts, amounts, IDs stored as numbers        |
| Boolean | Flags                                         |
| Object  | Structured JSON your steps or overwrites need |

Turn on **Private value** when the content should stay hidden after save. Private Values cannot be viewed or edited later, but they still apply during Runs.
{% endstep %}
{% endstepper %}

Insert the Value in a step by typing `$` and choosing its **Title**. See [Value Store](/values/value-store.md) for how overwrites and built-ins interact.

## Capture Values during the Run

Use [Data](/test-steps/data.md) Test Steps when the page or browser produces the data.

| Test Step                                                              | Use it to                                   |
| ---------------------------------------------------------------------- | ------------------------------------------- |
| [Set value](/test-steps/data/set-value.md) (Data)                      | Write a Value under a **Storage Name**      |
| [Alias value](/test-steps/data/alias-value.md)                         | Give an existing storage name a second name |
| [Calculate value](/test-steps/data/calculate-value.md)                 | Build a Value from a calculation            |
| [Replace value](/test-steps/data/replace-value.md)                     | Find and replace inside a Value             |
| [Store element text](/test-steps/data/store-element-text.md)           | Save visible text                           |
| [Store element value](/test-steps/data/store-element-value.md)         | Save an input value                         |
| [Store element attribute](/test-steps/data/store-element-attribute.md) | Save an attribute                           |
| [Store element HTML](/test-steps/data/store-element-html.md)           | Save Element HTML                           |
| [Store element count](/test-steps/data/store-element-count.md)         | Save how many Elements match                |

[**Set value**](/test-steps/data/set-value.md) in **Data** writes to storage. [**Set value**](/test-steps/action/set-value.md) in **Action** fills a form field. They share a label and do different jobs.

## Overwrite Values for a Run

You do not need to edit Assets Values for every environment. Use overwrites instead:

| Place                                           | What it does                             |
| ----------------------------------------------- | ---------------------------------------- |
| [Run Recipes](/configuration/run-recipes.md)    | Saved **Value Overwrites** you can reuse |
| Start Run dialog                                | **Value Overwrites** for that Run only   |
| [CI / CD](/configuration/ci-cd.md)              | Values on the webhook request            |
| [DoesQA Run](/test-steps/express/doesqa-run.md) | **Values** JSON passed into child Flows  |

Which source wins when names match is defined on [Value Store](/values/value-store.md).

## Related

* [Value Store](/values/value-store.md)
* [Built-in Values](/values/built-in-values.md)
* [Share data with Values](/better-coverage/share-data-with-values.md)
* [Data Test Steps](/test-steps/data.md)
* [Run across environments](/better-coverage/run-across-environments.md)
