> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-fix-details-to-accordion-universal-components.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...",
      "correlation_id": "txn_12345_xyz"
    },
    "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-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=b86f9d92457fdfd8e48ace98015f87dc" 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-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=646b1bd51e66d14b2ca99e9e73cd524d 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=ae43a8a8e058b3541166580c406c7f56 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=e52c53fe99d74295dad5d901166d4cab 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=2fb6888adb2c0380d94ceda3bcb1469b 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=ede3393b85adbc62194fb6c22f7dca3f 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=9e03be0d0b57ba9ce2bd1790fc3d8b16 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-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=bc851e7daf4f0d62c3b065d70c2a6819" 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-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=5c2a4b9e2737e44895d16e6613845dd0 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=d7849a8bf8962ec83f45ccbb5c20eb61 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=a740efe8107443d48dd45f951193b9e3 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=1c9c07d2cdcaf020af58a7b6550585f1 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=fbf54c1f2ecf5191fec7810f7c37d11a 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=b58555601848a1d75c8fad41ff161a28 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-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=8406eb73c128093e89ebbb79657581be" 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-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=2943645949a1a472e8fb5a2a7b99fa08 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=99e4ab64ea1c9638526374039e2bc279 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=9d787f97c0028dc116086918733e5c05 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=602baac017ab8556bbbc4f386b45652a 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=d9e924f938b96361b47d6fcc78315560 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/hBi-kIKnqSz3KDdt/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=hBi-kIKnqSz3KDdt&q=85&s=1260993e8ce004497b2ae2049f11e5c6 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-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=8a1cd3698434b0b7726852a099d43b7e" 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-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=2db2761942c4a5ababb5b6201139f6ed 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=c28130f1a435b7b97c2676c360d43589 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=c43e963c1419e9deb98b046f02d46841 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=dcce7f495283dbbac5bc90007c290eb7 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=23d50b0bc23f6b11c61b941a72d05a34 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/0szuC3p8H7b2W7J4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=0szuC3p8H7b2W7J4&q=85&s=38ee817a2a47777168841086b42093e9 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-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=4355933f8f3f74a25e2739508b2edd27" 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-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=09e710a037ec8156f7d1b3a2e301275d 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=d24c0405e667e810f7d68d0a2424dcec 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=19fb9895146ef64b97837692c410f390 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=8bdfc95c04428d733cd7c65cdca42a99 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=701ae273193f1850cd93c0a9da39f137 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/d6AiQOi9XnEZ--1T/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=d6AiQOi9XnEZ--1T&q=85&s=37760eaa041ce0d644216f5eaafae21a 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-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=8fa399569bb782577656e8a045db8864" 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-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=d8acb7535cc2b293f3df6ee5f33756b7 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=567fd805c2aa886276a4eaaf1a36bb51 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=1b5474e090e506dfcec0505f264f1df3 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=f27d29561df3c8238314fc2fa1d109b3 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=1ae7820241b3cebcedae1717dba7e9c6 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=3fc28af398d95dec2281629d2480f94f 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=e550207f05061406da4d616587dae2ab" 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-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=0dd4b5a5c4fb4a9c89a7a409224eb872 280w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=a1f944dceec67b2683750cb7320838b8 560w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=deb1640e4d65eda8ae8aba3fa7270b6e 840w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=0df199512829dbfe155ff519e19dfbf4 1100w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=0932d050152adac6ab8c42d1255bc4fc 1650w, https://mintcdn.com/docs-staging-fix-details-to-accordion-universal-components/IUh6-Vzwx_T82DPb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=IUh6-Vzwx_T82DPb&q=85&s=b5d2508a89b7db66722768002511c30f 2500w" />
</Frame>
