> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-feat-3p-app-cross-app.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-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=0255a5459f6cb763c056d5d1ff48c0d8" 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-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=937fd92fb4bf62e1603db2a6ffb27b69 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=bce0fa03011b77bfda3f7cb5e790b6c0 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=a5cfc179aa0ddba2427f7df571842bb0 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=8b0f43a2b2684eaa63f011785431cf7d 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=df8bf6f896acbe4a931fd3d5e6cd2e4f 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=49b4d9ffbe1123a4750f7212457d953b 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-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=387e97c73b3ac6dc6de676d6f5860444" 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-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=05c4caab414675d51afcff14d9a28f2c 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=9bc242373de590fab6381f83d510a491 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=5480215ba249c27ccdfe22a235b2a26a 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=0ededaf1767b5247487cab45c4f95f19 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=865cc1c75484de1f975dd1ab142ec479 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=5b380bd2a4df32b7edc5b1770d1b7e86 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-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=10d68eb97f0f2501e406d86c988d704a" 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-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=3286d9ea89656f73511f6d2472d327d1 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=916a16ed447606da7c061a4a9f94d1ea 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=2be1b2177a53288b8ea3a64e5adac77a 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=94751fcdf5581e2f08e1f881ab0cde69 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=fefccd3daad8f64c2bf1df92ad69d21f 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nTdGsZGW3CusC03P/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=nTdGsZGW3CusC03P&q=85&s=795167939a7cc9f7f9e3a5036089d373 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-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=c9bfd50b2935879dfe98106c2c774484" 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-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=79f7c4eedc5bc33313c3f857d948dd17 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=a03ca171308741e4692b3d6e543dc8ce 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=beeae897adb4b6413a6bbeb0b578d0d3 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=fa4ebbacf17ccdd1dc95c0ae3b67d3f8 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=c6f5a86f5c04e63f2e65d09b1e40cb36 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/CisQ-9ZEMMBTX-WG/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=CisQ-9ZEMMBTX-WG&q=85&s=408730706f3f8eb9097bbb5d8cd0fb3c 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-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=3ad0c6bbaa451e0592d246e7818a5a34" 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-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=d7fff325669f8f81ffbc5addc3a11295 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=bfb1832ad446c95858919dfa71b297fe 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=77a7a959651047d5040156929a7ce37e 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=db9bae8b59c4383afb81f7e394865f66 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=ace2b93803734714b0668ec473926a5f 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/8eYScLyZhtkRvDs6/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=8eYScLyZhtkRvDs6&q=85&s=92f65a83fb7e137007aff3ca492e160d 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-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=c77ba31b75ae0bda393a470df96e6d65" 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-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=3f71aab6a7fd17cead4b243b53ad788b 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=80af6365c9fe8b7793fc0f2b8b52874f 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=d2259388f15e9430d052ec748d5ddb6e 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=08a546be8251f19edd547983a94667e3 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=22d739e270a9ca964a52337c10c46089 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=188f699b8f5a2ca09a1dce5b92cca960 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=75bbc273f71f1ad990bff6d4a80347b7" 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-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=61a20f83134b6d71cd1ef73bdf1a928d 280w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=eb7929e6dfaf8f1a30e4541fca3151a0 560w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=148695ad7d86f1f11c257ade3dc07279 840w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=07add687450011e45086cfc121a87aa2 1100w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=9c507893fcb0e3060a42ac31cdfcf404 1650w, https://mintcdn.com/docs-staging-feat-3p-app-cross-app/nLiwM1yzsAsC-Cbb/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=nLiwM1yzsAsC-Cbb&q=85&s=1d69cd7cb34290388b1eefcaf57aa5d4 2500w" />
</Frame>
