> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-tenant-logs-locale-nav.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to use variables in Forms for Actions.

# 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:

  * `custome_domain.domain`
  * `custome_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-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=d5c3b67c9552d3399d832d78f44df45d" 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-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=a8fd804cdde55d0fa1bb49874e3d9e19 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=a53e6b6641a3bebf8efcedb6f8fb73fe 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=280e18e5711f4cd395977ea505f599d4 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=f74bb2be4ce04f529fba1cd60ea9ab3e 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=2a7ecb9733fd2e49880fc5a62a01fcf0 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=ff2f6a8f4f4cae441baee0b7147702b0 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-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=b84bcc73e1a7c5cf539cff9508af5bc0" 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-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=01e7d40ec83af985f5f640d89b2e315d 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=8525d44e2710c7b1684d9a36e6f527c9 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=e99e912b9c29e805668dc1ee899ceac7 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=bad5fa65926a96a6d35f20636cc05547 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=f90f029d37b2b88b415e732b687d84f9 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=a784577c8e2f116b62ab5f4b598e5940 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-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=f346a2f9b67f5cdc4937a956493f7e1a" 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-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=03a644b7b97fa93c8f94f1e225065de8 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=be0c023fa98dfd318a7f48adda0a0322 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=a39b6b393ac343b6f6b230207fc68a17 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=d876279edaf28f700df3ee9c68bb8edd 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=f0771ee44aa7e4247a7141e848cb09e0 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/CTyFZc_GC2Gh-lke/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=CTyFZc_GC2Gh-lke&q=85&s=a8b8d100f1a2f4da491b265822f01df5 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-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=17ce088b68870d1983ddb69f7d1c42dd" 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-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=c0906b98af31bcaf0a8180b6ee42694c 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=33fae38890bdca6c44da11615e72f0e4 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=faa9c518f6a6211e7875e2f0316266a6 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=1899e29b3462b9c75ac510e8e479d7ba 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=32c42b03c15e54592f8aaa14ce917373 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/QYpY-13x-iB7IVpU/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=QYpY-13x-iB7IVpU&q=85&s=04891daadfab5793560ba7bc0b49cf2e 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-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=21df53731aa2bfcd4e15b896cb790955" 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-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=7b21dfd7607ccb558440dca045fb01f2 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=36d18aebb78b195053680d7f7a680559 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=390468edf07f6da19dbd0a91f96bac38 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=909a11b0761fd847fc852780e1765c7a 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=6b9eb5045834ee6bb82d19e7bbbbb12d 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/dXzmybCdAj07nI-j/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=dXzmybCdAj07nI-j&q=85&s=2fa621cd7e26e701187a202f1db28e76 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-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=98a729f10dc90243bc0bff17ebffa84d" 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-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=3a8a5102d4cc76c2c0c258ff24286395 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=d0cc31609cf7487873570281a9d18cb0 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=3225c9e547b95542b231ee3b6ba64734 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=37873d8440001f5911b60bf9487d131e 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=0a21d2f7570039b50e57df3a20bd0824 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=3a91d7eb02edfc40021e86876c91b49b 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=f8a842c28fbcc929260dbecf98a7a437" 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-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=98d519db52ad1b02350ff3e5c4114f21 280w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=bf2c66d89995151fec85ce483ff4c259 560w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=89880649e215e9647d3292ff600e32d8 840w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=92807becddc1109e62026d3f54adff2e 1100w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=028baea392fa39ee623f48f1f71fbaa8 1650w, https://mintcdn.com/docs-dev-fix-tenant-logs-locale-nav/Hl-MA9ej0Hlrf492/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=Hl-MA9ej0Hlrf492&q=85&s=aed653dde7aeed0499919ac89cf96e63 2500w" />
</Frame>
