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

> Learn how to use variables in Forms for Actions.

# Variables and helper functions

Variables allow you to access data contained in Forms and Flows to create custom business logic and automations.

Some basic considerations to using variables are:

* Variables are surrounded by curly brackets `{{ variable }}`.
* If a variable doesn't exist or can't be resolved, it has the same effect as an `undefined` variable.
* You can use nullish operators to handle `null` or `undefined` variables, for example:`{{fields.foo ?? fields.bar}}`.

## Available variables

You can use different types of variables to reference and transform data you gather from customers with Forms and Flows.

| Variable            | Syntax            | Where         | Description                                                      |
| ------------------- | ----------------- | ------------- | ---------------------------------------------------------------- |
| Context             | `{{context.*}}`   | Forms / Flows | Reference context data of the current transaction                |
| Form fields         | `{{fields.*}}`    | Forms / Flows | Reference data from your form fields and hidden fields           |
| Shared variables    | `{{vars.*}}`      | Forms / Flows | Reference data stored as shared variables                        |
| Flow actions output | `{{actions.*}}`   | Flows         | Reference data from the output response of previous flow actions |
| Helper functions    | `{{functions.*}}` | Forms / Flows | Helper functions to transform data                               |

### Context variables

Forms and flows automatically inherit context variables from the current transaction. You can access the following context variables:

* The `user` object, with access to the following properties:

  * `user.user_id`
  * `user.username`
  * `user.name`
  * `user.given_name`
  * `user.family_name`
  * `user.nickname`
  * `user.email`
  * `user.email_verified`
  * `user.phone_number`
  * `user.phone_verified`
  * `user.picture`
  * `user.user_metadata`
  * `user.app_metadata`
  * `user.created_at`
  * `user.updated_at`
  * `user.last_password_reset`
  * `user.identities`
* The `organization` object, with access to the following properties:

  * `organization.id`
  * `organization.name`
  * `organization.display_name`
  * `organization.metadata`
* The `client` object, with access to the following properties:

  * `client.client_id`
  * `client.name`
* The `tenant` object, with access to the following property:

  * `tenant.name`
* The `transaction` object, with access to the following property:

  * `transaction.state`
  * `transaction.correlation_id`
* The `custom_domain` object, with access to the following property:

  * `custome_domain.domain`
  * `custome_domain.domain_metadata`

<Accordion title="Example of context object">
  ```json lines expandable theme={null}
  {
    "user": {
      "user_id": "auth0|658409...",
      "name": "ana@travel0.com",
      "nickname": "ana",
      "email": "ana@travel0.com",
      "email_verified": true,
      "picture": "https://s.gravatar.com/avatar/8eb1b522f6...",
      "user_metadata": {},
      "app_metadata": {},
      "created_at": "2023-12-21T09:46:40.487Z",
      "updated_at": "2024-05-07T10:44:26.271Z",
      "last_password_reset": "2023-12-21T09:49:08.932Z",
      "identities": [
        {
          "user_id": "6584...",
          "isSocial": false,
          "provider": "auth0",
          "connection": "Username-Password-Authentication"
        }
      ]
    },
    "client": {
      "client_id": "xpeg5...",
      "name": "My App"
    },
    "tenant": {
      "name": "tenant-testing"
    },
    "transaction": {
      "state": "hKFo2SBId2M0..."
    },
    "custom_domain": {
      "domain": "example.com",
      "domain_metadata": {
        "key": "value"
      }
    }
  }
  ```
</Accordion>

For example:  `{{context.user.user_id}}` references the `user_id` of the `user` object.

<Frame>
  <img src="https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=3f423b2aa3bf6e6321a63abe95b41cd5" 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-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=0d89afbcd6898df270bd4b1546e8a9f3 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=96bd327ff60f612fdca6e013e30b3f03 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=d79234efa91cb258dde8d8b1eaea8feb 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=a668b865e5edcc017985823e267f7161 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=7d1e9b574e12dcee3732012ceee1e497 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=37c822dad8cb80b74800d4ab981b3b23 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-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=21bf2e97d015f91072ade0a918e5ac90" 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-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=a2f64d83f8e0696e9fe1f3983b2a525c 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=491ddc41e4aac7951fc6751e806a560c 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=0e67b40d04e629f6b3b2291a48b75fc6 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=b53c20647538b03c87952a14b7db2fb5 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=98a095616dc7029cb4252c3de4d4a4ab 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=3c5cfa2b417be5e85fed63e0c6a50eb7 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-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=f1628b86dfaf8ecc952d13b0ac7edb3d" 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-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=171d5595907406ac1bc80823ceddcbdf 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=8c388b88da73bae56876d7f717b6cb82 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=cef6fd54fa29d7610949fd84c57574fa 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=af348dd9e9daa876ab99357cc792a11e 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=b891e5c212781fb2841484ad1a089f59 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ngzqTVLr-D0tDIAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=ngzqTVLr-D0tDIAz&q=85&s=48f871c43e56cd7e9a1656e3e5976457 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-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=0e4a9788e7d856f91fa1427e1b1b4522" 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-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=658903b8cd3edd8335a5725f1952ae77 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=84aeaa15855b8549933ee8fe1f276072 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=ec861f4ab6962c1d3d9a3ac8aae2b6be 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=d03c70ae5cd0928875e98eb8a2f0fe5e 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=b78af02823f5bb4c425d6bdeefd7ca45 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/ccl6yFeMvSBT-_3R/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=ccl6yFeMvSBT-_3R&q=85&s=dcc3ae72d3610b6d65c82da2978d2b15 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-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=d970e5c044019228db24f068ee4f9de5" 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-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=3b09d19a4327f1aa6d6d7546e137e247 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=a62a0eab1bd19d12fad017d39d1eb1e2 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=9f16a884cbe71b257ca8ca4d81a8878d 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=6d647daba15c2e8cba706fd46f7dda76 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=de37481a095edc85f800dded84725f76 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/Hr2-1vFF1Trg3xSs/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=Hr2-1vFF1Trg3xSs&q=85&s=15f02b332bf135e06f06e51907421029 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-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=4a0d55929baccb740f9974e697e02705" 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-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=a997a7125c20a3f72c9fb18dc7e6a108 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=86933b5f93b36a418ee88f860e91f62f 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=7f7b591321b888e48dd5b0621139ddb9 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=e027efecbc73341d1d3fc9011c29e4d6 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=f792444f5b4c3533a43f7458aede0758 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=720a32f9af7f5be574bf678f74728d85 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=0c0f683cc5dcaea6e378db790c0ec13e" 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-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=36b3273401fe067a01b374369be38263 280w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=7e4651acc2547251c77258a63b3fc8a2 560w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=858778277cb12141d6df5b1183a0a805 840w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=77081e56a461bc99c4971a16e4be05ee 1100w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=3b56b3727c8d6e23b6fa9e9800f55b55 1650w, https://mintcdn.com/docs-staging-fix-tenant-logs-locale-nav/KOYEIuvi7wzFbZfr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=KOYEIuvi7wzFbZfr&q=85&s=0698735cba6d92568089633f59634614 2500w" />
</Frame>
