> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-fix-xaa-resource-app-isv-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to use variables to access and transform user data in Forms and Flows.

# Variables and helper functions

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

Some basic considerations to using variables are:

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

## Available variables

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

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

### Context variables

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

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

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

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

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

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

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

  * `custom_domain.domain`
  * `custom_domain.domain_metadata`

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

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=d3974eee5b1a45cf2703bf1cf61f914c" 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-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=c30be1509d0e8ba6682c3a1e22dc5676 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=968c5762aa99f793943b7e815c0dee10 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=2011e150ff616acee752c54313a37e9e 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=5ac395056bb39c54ca8d87d78c4f0995 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=4a0a9fee8754bf6c42fdf42e734d76b9 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=64b4b418cd6e4fa2de3a683bdb2ddb6e 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-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=60424dee4532d90d29404f6341b8f96b" 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-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=68a3e3a40d78bd91a48966996e9a31fe 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=bac8459fa92e8901133c6173449912a4 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=98cb4564f4a24a55616303ea0c02ba83 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=dcf3fd8be46ca89bfe0a192555a4e650 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=3046fb71d8809e99a66773547b28569d 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=09c513876db042b4526097b8cdfe471d 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-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=02840341ea1b123c4549a6064451fd00" 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-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=515ab17f1413ae7e643da6c6d3f0ff6a 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=0c4566ff3c281ae73de6e6de4669b93f 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=036edac7633f3b28ecaa23a95f692e77 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=6fd5859507dadcbb370fea2d02d7095d 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=38729f0cbaf6d5822fb4a0257809fe3b 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/GKGPICkIZmWwzPea/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=GKGPICkIZmWwzPea&q=85&s=2018b2b1b221d5681a72ea330617e46d 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-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=d168184fecb007786709de30ce815a67" 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-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=48523cb3acae2d984df5527a4318df23 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=a59b72583d459f8216056e212ce9023b 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=e09f0f3cc74dc3ad37bd519073cb60ee 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=90e3f6a65282ceea18796879de5ae809 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=f59ee3de31b20ce244d270207a28845b 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/xQGgpHcF_qS-uupV/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=xQGgpHcF_qS-uupV&q=85&s=38b718068016a039c5f04e2f4fad8459 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-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=dcf368a337bb1d885cfb1fb613bcb4f6" 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-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=9081be0ab267b2d5d7ffaa7c7d32ad7f 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=043b1d8b71f93d8c7c0088166713cf01 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=1c0ab5041b4d6b70f79edd5ab59b2f3a 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=a24486471b1fae022a7d34803b459d67 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=cf8f091c1ac2c06e939a64ec754033fd 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/7Hf53Gd1CsKOHIc5/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=7Hf53Gd1CsKOHIc5&q=85&s=5b6e61e8424cf60822d9ac1b04d4ddf3 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-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=7289011b5c99f4ead5625d1e97e2a9f7" 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-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=b628678f379a1b80ccf2847cc39b8769 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=264e4c9db6bac999709a148463e6e89b 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=82554ed35e1a507c963ddeb58a09f033 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=1915a896baaa77a0323fa1a3a582d57a 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=2cbc15c1f19b2260f3ad3cde29d1c5be 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=4ef0c8fe177e294ed73386206961c71a 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=e7540bb7e7207efb6cb2fea10f3d4d68" 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-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=da61e6617d375676ca54f8c9bc0777f9 280w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=7accde1d6992f2d414cd9ae09f5dc97f 560w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=fd312736571f925d20d8a304ce100493 840w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=e32412d540ddd5bdf2ff865a77135585 1100w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=9094d5d45838bfe425bb491296092c59 1650w, https://mintcdn.com/docs-staging-fix-xaa-resource-app-isv-updates/ssy8lRhqwx6QOzKf/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=ssy8lRhqwx6QOzKf&q=85&s=2f9006d083d8301368b24e7f633f6a1f 2500w" />
</Frame>
