> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-privilege-worker-scope-pinning.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to use variables to access and transform user data in Forms and Flows.

# Variables and helper functions

Variables allow you to access data contained in Forms and Flows to create custom business logic and automations.

Some basic considerations to using variables are:

* Variables are surrounded by curly brackets `{{ variable }}`.
* If a variable doesn't exist or can't be resolved, it has the same effect as an `undefined` variable.
* You can use nullish operators to handle `null` or `undefined` variables, for example:`{{fields.foo ?? fields.bar}}`.

## Available variables

You can use different types of variables to reference and transform data you gather from customers with Forms and Flows.

| Variable            | Syntax            | Where         | Description                                                      |
| ------------------- | ----------------- | ------------- | ---------------------------------------------------------------- |
| Context             | `{{context.*}}`   | Forms / Flows | Reference context data of the current transaction                |
| Form fields         | `{{fields.*}}`    | Forms / Flows | Reference data from your form fields and hidden fields           |
| Shared variables    | `{{vars.*}}`      | Forms / Flows | Reference data stored as shared variables                        |
| Flow actions output | `{{actions.*}}`   | Flows         | Reference data from the output response of previous flow actions |
| Helper functions    | `{{functions.*}}` | Forms / Flows | Helper functions to transform data                               |

### Context variables

Forms and flows automatically inherit context variables from the current transaction. You can access the following context variables:

* The `user` object, with access to the following properties:

  * `user.user_id`
  * `user.username`
  * `user.name`
  * `user.given_name`
  * `user.family_name`
  * `user.nickname`
  * `user.email`
  * `user.email_verified`
  * `user.phone_number`
  * `user.phone_verified`
  * `user.picture`
  * `user.user_metadata`
  * `user.app_metadata`
  * `user.created_at`
  * `user.updated_at`
  * `user.last_password_reset`
  * `user.identities`
* The `organization` object, with access to the following properties:

  * `organization.id`
  * `organization.name`
  * `organization.display_name`
  * `organization.metadata`
* The `client` object, with access to the following properties:

  * `client.client_id`
  * `client.name`
* The `tenant` object, with access to the following property:

  * `tenant.name`
* The `transaction` object, with access to the following property:

  * `transaction.state`
  * `transaction.correlation_id`
* The `custom_domain` object, with access to the following property:

  * `custom_domain.domain`
  * `custom_domain.domain_metadata`

<Accordion title="Example of context object">
  ```json lines expandable theme={null}
  {
    "user": {
      "user_id": "auth0|658409...",
      "name": "ana@travel0.com",
      "nickname": "ana",
      "email": "ana@travel0.com",
      "email_verified": true,
      "picture": "https://s.gravatar.com/avatar/8eb1b522f6...",
      "user_metadata": {},
      "app_metadata": {},
      "created_at": "2023-12-21T09:46:40.487Z",
      "updated_at": "2024-05-07T10:44:26.271Z",
      "last_password_reset": "2023-12-21T09:49:08.932Z",
      "identities": [
        {
          "user_id": "6584...",
          "isSocial": false,
          "provider": "auth0",
          "connection": "Username-Password-Authentication"
        }
      ]
    },
    "client": {
      "client_id": "xpeg5...",
      "name": "My App"
    },
    "tenant": {
      "name": "tenant-testing"
    },
    "transaction": {
      "state": "hKFo2SBId2M0..."
    },
    "custom_domain": {
      "domain": "example.com",
      "domain_metadata": {
        "key": "value"
      }
    }
  }
  ```
</Accordion>

For example:  `{{context.user.user_id}}` references the `user_id` of the `user` object.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=4e7c61ec116d1dd10cdb51ff07d6b61f" alt="Dashboard > Forms > Flows" data-og-width="1141" width="1141" data-og-height="219" height="219" data-path="docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=e0fe5e9da1a59b4ac77c5c6726e027ab 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=29af6507afb836a511054f662745a50f 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=c11f785aaf7fa2c799e73a3d5f6b5d21 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=efda27a02905b472d04e94f727acf8e2 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=07cce0b4a9c1d90b07773878981c1a45 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=6c7f69d2bd1b400c82da3c6e4e77e4ae 2500w" />
</Frame>

### Form fields variables

Field variables contain data collected from the user from input fields in the form and data from hidden fields. The data of each field varies depending on the field type. For example: `{{fields.first_name}}` references the input value of a field with the ID `first_name`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=a494478e2bdc94ff5e49626dfe116896" alt="Dashboard > Actions > Forms > Form" data-og-width="1404" width="1404" data-og-height="497" height="497" data-path="docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=e234fbc574cc0a3d16db3bb9847d6a48 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=0ebf728ef3758f0a5430e268f89dd999 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=fadd0e36dbd8d5db72cbda5351488cd0 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=caade9b23eecf0fb2aaea306d050e802 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=d7b60096d5a611df23f7202ba420252a 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=0f66401e7f630d2e6d3a1fdbc36d8a49 2500w" />
</Frame>

### Flow output actions variables

When a flow action is executed, it generates an output object response that can be referenced in subsequent actions. For example: `{{actions.generate_otp.code}}` references the output code of the action with ID `generate_otp`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=faf6463cf4e2033382c6a97f8524f7f1" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="253" height="253" data-path="docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=4aea6efa8d2ec84b79e4b872a2ee7a1c 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=780921397299c21d5f65254f511aae64 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=9fbd1f590e31a85cad16a9a6b45e0657 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=e2ca1a35c7e58bcbf3b701f995f85707 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=3d5c4dad23e351d1ca4cd6c04e55006c 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/YEqAmD2GRQOBB7ji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=YEqAmD2GRQOBB7ji&q=85&s=8e9c656fe05795c357dc03adc5d1818f 2500w" />
</Frame>

### Shared variables

You can store variables to be shared with subsequent flows or even with form components in the same transaction. Shared variables are ephemeral and are associated with a specific form journey. Their values cannot be accessed outside of that journey. For example: `{{vars.external_id}}` references the value of a shared variable with ID `external_id`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=85d2f7b0662640c54f0cb71a07472c04" alt="Dashboard > Actions > Forms > Flows" data-og-width="1215" width="1215" data-og-height="162" height="162" data-path="docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=7cee983c0bd24f0c5905d807615406de 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=cdb55c094de192bf846cb4ce47dcf1f1 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=881f8b5c44d93a1d3769e4eac31533e7 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=4c44b4d7d60781b054530ee3462ae8f8 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=13b39295801c1a267095984c347e441b 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/MSKP3Ngp2hnEhWkq/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=MSKP3Ngp2hnEhWkq&q=85&s=be1fcd3e161a2c3ca8487284a667d714 2500w" />
</Frame>

<Warning>
  Shared variables:

  * are internal (server-side) and not exposed to the browser (client-side).
  * can be resolved and exposed to the browser if you referenced a shared variable in the form component.
  * might have sensitive information, so take care when you access shared variable to avoid any unnecessary or unintentional exposure.
</Warning>

### Helper functions

Helper functions let you transform data and perform simple operations. For example: `{{functions.toString(fields.privacy_policies)}}` transform the value of the field with ID `privacy_policies` using the `toString()` function.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=18c349b789027f648de821a4e7e8ccd5" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="290" height="290" data-path="docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=d347a35370c198ccc0084f734451fef2 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=bde30b3f94f4b1d3004ff2fd631463f0 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=ef0d81ed30e6911e5e486b8e185bab87 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=aa2db64825465e91e87fdef58aba8c5b 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=9861524811c6103ff964028c91d1aefc 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/qYgaRCBOV0mMi9aI/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=qYgaRCBOV0mMi9aI&q=85&s=3293fc626663aca1f399cdc6b1974128 2500w" />
</Frame>

The available helper functions are:

| Function                                 | Description                                                                                                                                                                                                                                                              | Example                                                                                                          |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| `toArray(value)`                         | Converts value to an array.                                                                                                                                                                                                                                              | `{{ functions.toArray('abc') }} // ['abc']`                                                                      |
| `toBoolean(value)`                       | Converts value to a boolean value.                                                                                                                                                                                                                                       | `{{ functions.toBoolean(1) }} // true&lt;br /&gt;&lt;br /&gt;\{\{ functions.toBoolean(0) }} // false`            |
| `length(value)`                          | Returns the length of the parameter value.                                                                                                                                                                                                                               | `{{ functions.length('auth0') }} // 5`                                                                           |
| `mask(value)`                            | Masks a value to avoid be exposed in Executions.                                                                                                                                                                                                                         | `{{ functions.mask('my_awesome_secret') }} // ███`                                                               |
| `toNumber(value)`                        | Converts value to a number.                                                                                                                                                                                                                                              | `{{ functions.toNumber('123') }} // 123`                                                                         |
| `random(min, max, [boolean])`            | Returns a random number between the inclusive min and max.                                                                                                                                                                                                               | `{{ functions.random(0, 6) }} // 4 &lt;br /&gt;&lt;br /&gt;\{\{ functions.random(0, 6, true) }} // 3.8523497...` |
| `slice(value, start, end)`               | Returns a section of a value array or string between the start and end indexes.                                                                                                                                                                                          | `{{ functions.slice( 'example', 3, 5) }} // 'mp'`                                                                |
| `toString(value)`                        | Converts value to a string.                                                                                                                                                                                                                                              | `{{ functions.toString(123) }} // '123'`                                                                         |
| `substring(value, start, end)`           | Returns a section of a value between the start and end indexes. Read about the [differences of slice and substring functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring#differences_between_substring_and_slice) | `{{ functions.substring( 'example’', 3, 5) }} // 'mp'`                                                           |
| `toTimestamp()`                          | Returns the current UNIX timestamp.                                                                                                                                                                                                                                      | `{{ functions.toTimestamp() }} // 1628761483`                                                                    |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toLowerCase(value)`                     | Returns a new string transformed to lowercase.                                                                                                                                                                                                                           | `{{ functions.toLowerCase('JohnDoe 1234') }} // johndoe 1234`                                                    |
| `toUpperCase(value)`                     | Returns a new string transformed to uppercase.                                                                                                                                                                                                                           | `{{ functions.toUpperCase('JohnDoe 1234') }} // JOHNDOE 1234`                                                    |
| `replaceAll(value, string, replacement)` | Returns a new string with all matches of a pattern replaced by a replacement.                                                                                                                                                                                            | `{{ functions.replaceAll('2021-04-30', '-', '/') }} // 2021/04/30`                                               |
| `replace(value, string, replacement)`    | Returns a new string with all matches of a pattern replaced by a replacement. If pattern is a string, only the first occurence will be replaced.                                                                                                                         | `{{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30`                                                  |
| `split(value, separator, limit?)`        | Returns an ordered list of substrings divided by the separator.                                                                                                                                                                                                          | `{{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']`                                               |
| `now()`                                  | Returns the current date in ISO 8601 format.                                                                                                                                                                                                                             | `{{ functions.now() }} // 2021-04-30T10:31:28.576Z`                                                              |
| `includes(collection, item, fromIndex?)` | Returns whether an array includes a certain value among its entries.                                                                                                                                                                                                     | `{{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true`                          |
| `indexOf(collection, item, fromIndex?)`  | Returns the first index at which a given element can be found in the array, or -1 if it is not present.                                                                                                                                                                  | `{{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1`                              |
| `merge(base, value)`                     | Returns a merged array, object or concatenates a string depending on the base data type.                                                                                                                                                                                 | `{{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']`    |
| `md5(value)`                             | Returns a MD5 hashed value.                                                                                                                                                                                                                                              | `{{ functions.md5('auth0') }} // 7bbb597...`                                                                     |
| `sha1(value)`                            | Returns a SHA1 hashed value.                                                                                                                                                                                                                                             | `{{ functions.sha1('auth0') }} // b4ec5339...`                                                                   |
| `sha256(value)`                          | Returns a SHA256 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha256('auth0') }} // d9082bdc...`                                                                 |
| `sha512(value)`                          | Returns a SHA512 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha512('auth0') }} // c0d588069d...`                                                               |
| `uuid()`                                 | Returns a random v4 UUID.                                                                                                                                                                                                                                                | `{{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764`                                                  |

## Variables best practices

### Use meaningful IDs

When you add a Form field or a Flow action, the ID is automatically generated.

Update the ID to a more descriptive value so you can identify the information it contains. For example, if you create a Form field that stores the user’s first name, update the ID to `first_name`.

### Be mindful when updating existing IDs

If a variable is already in use and you need to modify the ID, identify where you have referenced it and update the ID accordingly to avoid undefined or empty values.

### Check Flow executions

If you see an unexpected variable value, use the [**Executions**](/docs/customize/forms/flows/flow-execution-and-debugger) view to troubleshoot the variable.

### Use the autocomplete menu

The autocomplete menu helps you locate and properly reference existing variables.

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=dd2a03a3e322dc342a8e73f4a1ff40a6" alt="Dashboard > Actions > Forms > Flows" data-og-width="1361" width="1361" data-og-height="502" height="502" data-path="docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=1f31dd2d2d3b2c76d799bbef50102cad 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=9a94ddac8f4550280fe4a58c94756ac3 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=089c0c36d442b393bc063e52c54de2f8 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=a776fc72b4f6e80ef263de82d58aab83 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=0dba1ef2c7dc0aeb24e035e379494bd2 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=7ca714858cefb771a7422d9acd431386 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=e2fa57873ca8ba9801ece1d01fbb6812" alt="Dashboard > Actions > Forms > Form" data-og-width="1394" width="1394" data-og-height="630" height="630" data-path="docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=d119fb251be349deb0cb2977d30fd9ff 280w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=10336673dad119338fbabefddd35acac 560w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=d8c33a9ef0e5f8ae06006e5980e527e4 840w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=658a7d36f0e6ec8b4a99cbda1a8472d9 1100w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=13fc0c043fe6559dd473fb5cb443a5db 1650w, https://mintcdn.com/docs-dev-privilege-worker-scope-pinning/4RptRaVXnzlDd5-f/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=4RptRaVXnzlDd5-f&q=85&s=5b4b3376028a63fefb609f4f82b3b22f 2500w" />
</Frame>
