> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-update-styling-docs-for-universal-components.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-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=ec52956ac9679d1bb84193dfd7b3ef6b" 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-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=c94f3e5459e7f99f87d1a133fd143120 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=9e5e9956f2881ab7f71244ba973f74c0 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=3e0337a72ddc7c358e899a10dc41f04e 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=70a60647cd7ebecf3cfbebce1086c979 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=3622e8adfd70a54647a955702acdca94 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=af2fa5acc14ebf17ff01087cad3cddfd 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-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=f7d4a358659b77c30b9e5e7913d2fdb2" 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-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=346b7e0b1d330fdd5312fbac06d2c0ab 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=e7b0a77721e968f699f60223089f1b36 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=fe22752c17f7ea40eda1b2d31e42524c 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=2c8f6fd6b4ff8fa66d509b645aa16c9f 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=38f63ca4476eb721f39755e1ba73d20d 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=905122359ebd096545eb10cbd87c119e 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-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=d67f73c28c246e5a735a81339925e64e" 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-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=5cdaaa1b33c7832dce959c31d0b59e12 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=474ca3d4ebe755a3cff74f5de7b51f7f 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=a82c2efb67f4ae67eff9b46ba102b5df 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=dcd1b6dc82d660447e351b21783e0e39 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=002e1f73476087536a1eba46dbdd5f26 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/aryv-85zS-Myv9K1/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=aryv-85zS-Myv9K1&q=85&s=b5a8aa07242180f9dc6872978c6ee6af 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-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=722525da76f469a6f1cbda0fb3ffb0ec" 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-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=09ae12d61bbd1919f68c1edace0eb880 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=f20d137bb960f286ceeb14de55822c3d 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=6863ba528eec0ed20148ca09c658ca88 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=ac338c979ebe0b8d96ee8ef6c5266685 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=99b626b29efe764d88115d06d995e3b7 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/2YLRfqIEK_xh2PqJ/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=2YLRfqIEK_xh2PqJ&q=85&s=d1594ddaa8ddaa51a48c6589532c2c5c 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-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=14151b451d2e27c8d611dd57ad5b63f2" 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-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=f5582daf29ecccfe56e2ae0618a09047 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=765c7eb0b1e705fcf58c5cc66fc57332 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=4f12c2630d606b2d55482c59c64ca5ea 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=cdb46eae41a1a80eee1311cd309aa099 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=da7086c8074409f187ab34ccea832f5b 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/zs0clQlg6aGSeKnF/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=zs0clQlg6aGSeKnF&q=85&s=579f36943219a1d5d9b544cfa73549f7 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-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=055aa4be8d39374555d160319db46cc6" 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-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=3ac6001302d2415b106fad3eba981d5e 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=239466f0ce415ddd6a85bc9de9f202f7 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=3a689c9537a1f905d414ff2a0f834351 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=16d1d5eb4a764335ab09fbb95a264cd6 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=adc3015d6ea249546def0c535403d81b 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=abb05b693d9da9f3f08b79b106176131 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=3aefa5d186376caaf819f14c6458bfd2" 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-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=64908c39e19a6840093d0b1ac64edfa0 280w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=91aeadc9324eccdb66ba3c84f122ae2d 560w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=fb2be4f17f74e3313d80bfc3d048b5e4 840w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=67d4db05fc5a64bf95407ec8cc12217c 1100w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=195dc605cfaa58231f6f404098ba2870 1650w, https://mintcdn.com/docs-dev-feat-update-styling-docs-for-universal-components/NIH7s0RqLV85rVO2/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=NIH7s0RqLV85rVO2&q=85&s=638a39122b30689aaeaac854fddecf12 2500w" />
</Frame>
