> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-chore-rate-limits-autoupdate.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-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=b1c8c2fb2ed21575e5084147dc69bc55" 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-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=fdae0e0d6ee0c83095d28c186809a245 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=d9ba27539a0456dbd195bf79004e04b6 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=187912cfc0d34e9186ed6aecf10f3598 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=4d5a5ccfa2d1e529d1d136249464caaf 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=abca76efc75e35d8be63ffc0c2d7180e 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=ff9bb104d3857e60c4d4fd581c8a8a24 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-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=a8ebe3fad9a3c7faa3278e1bf93a2d5b" 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-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=59e8e90c3675a4b47a3c00a56e4977f0 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=47e45ea3f2e724bd6a162a2b4ae2ea8d 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=9502a05f0c31333018751953450bce74 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=abebfda446ad8c90031ae664a8d09127 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=edc5eed524c148541b88669c0a86ba76 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=89cfa883156e4aa361b4446f04d7dd86 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-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=4b18c6015685bc35d6932b58248f6c0b" 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-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=f8a4c5fbda3beac69718d86ae0d48287 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=96e4fe6a01c09088cc60e24dfbc55ce1 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=6dd479f737e7c212931e07bc5fcb39cf 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=8fae1ac08e14af2987785ac22ce01fe8 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=b39e5a25698da13b78e7cdfff96c05b4 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/n9DrMFubcMJNYbJ7/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=n9DrMFubcMJNYbJ7&q=85&s=841c5b24366d6b3c4fc722aa17702564 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-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=ad51814cc4e10d2f9df109bfc9f692c3" 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-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=7ca83b60f26b0f7d7c21839e22845251 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=e1be099490face1ece3e4ac1198be5eb 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=74ad5d7a01d6904c07580e817c035c24 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=84435b1c150f01325136f9cd2d341062 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=3b9f135f47ab75efd51cbe8f917be10e 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/k_T47CCH7euN5QNK/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=k_T47CCH7euN5QNK&q=85&s=df65a116ea61656789fc9d8b82867955 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-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=2d88d5547a183116e3e84102263c3bcb" 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-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=df37eec2b163da53cdf6c4e61968eecc 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=0d35b9d36623f1cf0408e7e7c16c1a13 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=7ef8c007d5d9fe4a603a5c3f09bd7d3d 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=f7d575c49a42e5dda393a884607dac01 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=3d9147554ec4d547cc14c4f2a592bacd 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/Xd_ZjOhmZVkCYP_o/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=Xd_ZjOhmZVkCYP_o&q=85&s=27ea0603486e0d2693a4760ca791fc2e 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-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=90ae9f3508be631d4c71465c0962989c" 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-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=d2968cde19520a3c68d32fc7abf199c5 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=d5378afbc035b2b91411e2dbf149faca 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=4f0906dae46d887e319b2bc381c245cf 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=444fc1cb4b3cf58f29927d42cf67421a 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=0f28448fd917b6f1f3ceb5e1ccceb5fa 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=850e3a83f19baaa651be7f14fa566ec3 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=edfba6cceededcfe397a6677e764be40" 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-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=d5812e997f0ec90dcf56fd4ce37a6e55 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=a9644b4c6f827522cf393128e821ee51 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=7b25e3fb3342fd0880d3543f7dbdb671 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=e1e91366b568eb04cdaa2ec08f678ea5 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=349904f4d1cf2f7c5514f3de0cdcc64a 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate/1dJCUNJ4t68AQZpC/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=1dJCUNJ4t68AQZpC&q=85&s=a2155c950c3649a432465c7f544585fd 2500w" />
</Frame>
