> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-docs-5607-tenant-acl.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-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=c67b065791e71cb695bf094e2ad233eb" alt="Dashboard > Forms > Flows" data-og-width="1141" width="1141" data-og-height="219" height="219" data-path="docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=835c8581b2ee902b0381159bba67dc3a 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=b7f332751fca12db48b93aa20374bc20 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=ef441a068f777ff5c66582a83c200c93 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=7b3f03eea188f07f19c1c3092097af4b 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=cbdc49eb3478a1b3d897d137c0887894 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=0c216267912dc95438665c99d89f3e4c 2500w" />
</Frame>

### Form fields variables

Field variables contain data collected from the user from input fields in the form and data from hidden fields. The data of each field varies depending on the field type. For example: `{{fields.first_name}}` references the input value of a field with the ID `first_name`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=41f83e69f56cf3a65e639c6b1d4e7891" alt="Dashboard > Actions > Forms > Form" data-og-width="1404" width="1404" data-og-height="497" height="497" data-path="docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=04e67d5128aa87e8e071e655f5d047df 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=3fa866bae13905d6576fe4a7a2abf1b6 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=aa0bca3dfdbeede66c7045c03b189295 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=e050c79f9bb555370a8adc4aeb32303d 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=261f7030fc590eb7e2e2608b35d5b0ee 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=6682c93525406910f6c1fae44a6b25ea 2500w" />
</Frame>

### Flow output actions variables

When a flow action is executed, it generates an output object response that can be referenced in subsequent actions. For example: `{{actions.generate_otp.code}}` references the output code of the action with ID `generate_otp`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=9b5a0649a8b49f113e4fe437d2af4fc5" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="253" height="253" data-path="docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=54eaa5a8bb40045f24e48316425424f7 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=76588b40e0429b1d0e921934415010de 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=890bcc10697c83b948dbbf964ee915fd 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=756f7fbc344bed94657c881b3ddb9fea 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=d8484faba7d535684c118bc4bd53420d 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/D-rj9VDkZmJlpKyj/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=D-rj9VDkZmJlpKyj&q=85&s=90f65e6759768d525018fac23bb51bdc 2500w" />
</Frame>

### Shared variables

You can store variables to be shared with subsequent flows or even with form components in the same transaction. Shared variables are ephemeral and are associated with a specific form journey. Their values cannot be accessed outside of that journey. For example: `{{vars.external_id}}` references the value of a shared variable with ID `external_id`.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=a0315c5328c789c33816117665124824" alt="Dashboard > Actions > Forms > Flows" data-og-width="1215" width="1215" data-og-height="162" height="162" data-path="docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=592aafa2e9ea4972c3808ee5795c124f 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=2d28183905b16ad36fdf5b2ff205a927 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=740de653ad350122713723053c90819e 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=f6abeee9ad39d26f6fe0af7d9e229ee3 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=33b34839859b3ccb8d6db2a8b6f71404 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/STgcH9ZxHLYwrnVL/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=STgcH9ZxHLYwrnVL&q=85&s=71e4b0e32fd5466d0e9e496df0b081c6 2500w" />
</Frame>

<Warning>
  Shared variables:

  * are internal (server-side) and not exposed to the browser (client-side).
  * can be resolved and exposed to the browser if you referenced a shared variable in the form component.
  * might have sensitive information, so take care when you access shared variable to avoid any unnecessary or unintentional exposure.
</Warning>

### Helper functions

Helper functions let you transform data and perform simple operations. For example: `{{functions.toString(fields.privacy_policies)}}` transform the value of the field with ID `privacy_policies` using the `toString()` function.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=b032ce694d52a8ef44d07202550a1778" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="290" height="290" data-path="docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=449214a07f9350849ffdb9ddad47122d 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=84d5f4f3948d2a193db543c5f994d7ca 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=f503288f29f0d3052b3a8b5480519487 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=3a1cd9c3a56e77581a0ae281263b2ee7 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=96d3912673525a411bda56ec21ad4f3e 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/1pCYlYPjgJb3zpL-/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=1pCYlYPjgJb3zpL-&q=85&s=12ee03db6ca3a78224c6d83924d6395e 2500w" />
</Frame>

The available helper functions are:

| Function                                 | Description                                                                                                                                                                                                                                                              | Example                                                                                                          |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| `toArray(value)`                         | Converts value to an array.                                                                                                                                                                                                                                              | `{{ functions.toArray('abc') }} // ['abc']`                                                                      |
| `toBoolean(value)`                       | Converts value to a boolean value.                                                                                                                                                                                                                                       | `{{ functions.toBoolean(1) }} // true&lt;br /&gt;&lt;br /&gt;\{\{ functions.toBoolean(0) }} // false`            |
| `length(value)`                          | Returns the length of the parameter value.                                                                                                                                                                                                                               | `{{ functions.length('auth0') }} // 5`                                                                           |
| `mask(value)`                            | Masks a value to avoid be exposed in Executions.                                                                                                                                                                                                                         | `{{ functions.mask('my_awesome_secret') }} // ███`                                                               |
| `toNumber(value)`                        | Converts value to a number.                                                                                                                                                                                                                                              | `{{ functions.toNumber('123') }} // 123`                                                                         |
| `random(min, max, [boolean])`            | Returns a random number between the inclusive min and max.                                                                                                                                                                                                               | `{{ functions.random(0, 6) }} // 4 &lt;br /&gt;&lt;br /&gt;\{\{ functions.random(0, 6, true) }} // 3.8523497...` |
| `slice(value, start, end)`               | Returns a section of a value array or string between the start and end indexes.                                                                                                                                                                                          | `{{ functions.slice( 'example', 3, 5) }} // 'mp'`                                                                |
| `toString(value)`                        | Converts value to a string.                                                                                                                                                                                                                                              | `{{ functions.toString(123) }} // '123'`                                                                         |
| `substring(value, start, end)`           | Returns a section of a value between the start and end indexes. Read about the [differences of slice and substring functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring#differences_between_substring_and_slice) | `{{ functions.substring( 'example’', 3, 5) }} // 'mp'`                                                           |
| `toTimestamp()`                          | Returns the current UNIX timestamp.                                                                                                                                                                                                                                      | `{{ functions.toTimestamp() }} // 1628761483`                                                                    |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toLowerCase(value)`                     | Returns a new string transformed to lowercase.                                                                                                                                                                                                                           | `{{ functions.toLowerCase('JohnDoe 1234') }} // johndoe 1234`                                                    |
| `toUpperCase(value)`                     | Returns a new string transformed to uppercase.                                                                                                                                                                                                                           | `{{ functions.toUpperCase('JohnDoe 1234') }} // JOHNDOE 1234`                                                    |
| `replaceAll(value, string, replacement)` | Returns a new string with all matches of a pattern replaced by a replacement.                                                                                                                                                                                            | `{{ functions.replaceAll('2021-04-30', '-', '/') }} // 2021/04/30`                                               |
| `replace(value, string, replacement)`    | Returns a new string with all matches of a pattern replaced by a replacement. If pattern is a string, only the first occurence will be replaced.                                                                                                                         | `{{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30`                                                  |
| `split(value, separator, limit?)`        | Returns an ordered list of substrings divided by the separator.                                                                                                                                                                                                          | `{{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']`                                               |
| `now()`                                  | Returns the current date in ISO 8601 format.                                                                                                                                                                                                                             | `{{ functions.now() }} // 2021-04-30T10:31:28.576Z`                                                              |
| `includes(collection, item, fromIndex?)` | Returns whether an array includes a certain value among its entries.                                                                                                                                                                                                     | `{{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true`                          |
| `indexOf(collection, item, fromIndex?)`  | Returns the first index at which a given element can be found in the array, or -1 if it is not present.                                                                                                                                                                  | `{{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1`                              |
| `merge(base, value)`                     | Returns a merged array, object or concatenates a string depending on the base data type.                                                                                                                                                                                 | `{{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']`    |
| `md5(value)`                             | Returns a MD5 hashed value.                                                                                                                                                                                                                                              | `{{ functions.md5('auth0') }} // 7bbb597...`                                                                     |
| `sha1(value)`                            | Returns a SHA1 hashed value.                                                                                                                                                                                                                                             | `{{ functions.sha1('auth0') }} // b4ec5339...`                                                                   |
| `sha256(value)`                          | Returns a SHA256 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha256('auth0') }} // d9082bdc...`                                                                 |
| `sha512(value)`                          | Returns a SHA512 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha512('auth0') }} // c0d588069d...`                                                               |
| `uuid()`                                 | Returns a random v4 UUID.                                                                                                                                                                                                                                                | `{{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764`                                                  |

## Variables best practices

### Use meaningful IDs

When you add a Form field or a Flow action, the ID is automatically generated.

Update the ID to a more descriptive value so you can identify the information it contains. For example, if you create a Form field that stores the user’s first name, update the ID to `first_name`.

### Be mindful when updating existing IDs

If a variable is already in use and you need to modify the ID, identify where you have referenced it and update the ID accordingly to avoid undefined or empty values.

### Check Flow executions

If you see an unexpected variable value, use the [**Executions**](/docs/customize/forms/flows/flow-execution-and-debugger) view to troubleshoot the variable.

### Use the autocomplete menu

The autocomplete menu helps you locate and properly reference existing variables.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=20c92190af6d2bb4edcda762e12408a4" alt="Dashboard > Actions > Forms > Flows" data-og-width="1361" width="1361" data-og-height="502" height="502" data-path="docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=1b8ea1f953b90aaa6d6b2eb4567e7610 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=e0cce0a7f9cd48117007e3d1b583b6e9 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=6f26f4663b3afab75617038ed61bd1b1 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=80a3ce91fa41d78df0979a89aba803b8 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=7ab24f10854d7f8398a51c374f810930 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=394f9eda105556fcd53d003f7cd60368 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=32cbae81e1cfe03eda524e1b9011e8b8" alt="Dashboard > Actions > Forms > Form" data-og-width="1394" width="1394" data-og-height="630" height="630" data-path="docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=035fcc07a815c93aceb5c331a3b08591 280w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=4331edae060271c4373340b7c7fe5f81 560w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=300d7d52ed33f52281adddc8955c8e5d 840w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=2ba58651e4243b71f10c2c4c8af1a4df 1100w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=f6b984b703066d9b0e5a73a1560cbfb5 1650w, https://mintcdn.com/docs-dev-feat-docs-5607-tenant-acl/snMyHHpAFXtAFGTA/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=snMyHHpAFXtAFGTA&q=85&s=a0d02c5a4d53a92ccccd208a9f1b8a93 2500w" />
</Frame>
