> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-feat-docs-5569-member-mgmt.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

# Variables and helper functions

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

Some basic considerations to using variables are:

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

## Available variables

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

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

### Context variables

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

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

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

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

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

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

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

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

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

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=0982fc1a10e1d044ebc24cbc2d743ed4" alt="Dashboard > Forms > Flows" data-og-width="1141" width="1141" data-og-height="219" height="219" data-path="docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=ca36335df1bf7bdeda242f75a4a2fd37 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=0da80abbdecadd7703c5b8ad98ba3d36 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=be0f3374651148c1224e62d920decb73 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=0497489a9cabbef4ae87d9cdc2f99b62 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=b8af5b23fb93ad365a294629ab307a2c 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=d274fe7de048707f7497f522d0996e4a 2500w" />
</Frame>

### Form fields variables

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=d348a2bd8838da29774bb87d50be4bcc" alt="Dashboard > Actions > Forms > Form" data-og-width="1404" width="1404" data-og-height="497" height="497" data-path="docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=bef0de4e3a5276ef6eaaba26625ccbd9 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=271a0baf61d883ab18b42fa288bee985 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=77300065be4eff0220e3ab1ebf1c16e6 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=561cb9999fba3bba2be9647f41b25a98 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=121c4a2b0b76929f9b67727c931d1abe 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=8cccf51542d0eca73551503371835a59 2500w" />
</Frame>

### Flow output actions variables

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=b4493b2ff05d93c27e19d3e06616d468" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="253" height="253" data-path="docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=4deedaef846bf00ee89741827367c1cb 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=eea8ad73b588d8cb8e8a4740bd81f673 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=fbc98e9fe114f3bb41e2ee10f8a34fc7 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=704186dc9475f4a3f305964c48476772 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=194c9304be3124e8faa00b52ff52a01a 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Ga6b_OdkrJd7auBH/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=Ga6b_OdkrJd7auBH&q=85&s=8e66dfce26f224a76a1cd4c61a9ab853 2500w" />
</Frame>

### Shared variables

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=85e7c673edb0a1df3f89b98d2f5fdf96" alt="Dashboard > Actions > Forms > Flows" data-og-width="1215" width="1215" data-og-height="162" height="162" data-path="docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=9bd742a12410ee6680516497d9066745 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=b19fe686386aa06ec924b6040a0adc4a 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=4210fe83809f4bd387c28f234488d1d6 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=de2ba3c30a7bce62e35cdaf8fd7a0a95 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=5ad6c3a66838d9abad1dc51947a351e0 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/Q4Kpt3CsstE2-27o/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=Q4Kpt3CsstE2-27o&q=85&s=14bccd22c18d928b95f974a119c85d00 2500w" />
</Frame>

<Warning>
  Shared variables:

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

### Helper functions

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=6b9df1c13a95d0a129935eda245b87cb" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="290" height="290" data-path="docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=80c90e1766663e6a1b04f0665526f8bf 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=af1033d980301c8f73a83c78f66e3c78 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=8ed51f5ff6ed9077fd2fd19f4b896c24 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=f9c71d688e4c9927478d91d9b4a0cbb0 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=ed9111add975a32137aff57da8e51ec1 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/b_RwhNLdj1N54-6Y/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=b_RwhNLdj1N54-6Y&q=85&s=165105471ad9aa1608ab71686caee284 2500w" />
</Frame>

The available helper functions are:

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

## Variables best practices

### Use meaningful IDs

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

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

### Be mindful when updating existing IDs

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

### Check Flow executions

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

### Use the autocomplete menu

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

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=ea73ac83848768bb0f796b810bee99be" alt="Dashboard > Actions > Forms > Flows" data-og-width="1361" width="1361" data-og-height="502" height="502" data-path="docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=e3c24c64ecc4d74def55625f701505ca 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=3c84f7594de0c0d302ac57ae84f2c9bb 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=64e87b320730f09b1ef0799cc4410b70 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=b2e6e88e2216199181a9c35c5a36f667 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=c9b8341df7216f26923db513f789ec21 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=aa0b419b9804f077868113e5eaa3c527 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=d21610cbe8cba0caaf3dd210d23bfbfb" alt="Dashboard > Actions > Forms > Form" data-og-width="1394" width="1394" data-og-height="630" height="630" data-path="docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=349e8be539ffcd84dfcfb89a5d74c9fe 280w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=9349e514fc82b47bfb5144e3dade4973 560w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=c66ebd7a164b11591ccfc9748b4c943d 840w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=faafd0fb423e22f6d39ece75387d5a15 1100w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=8798cf93ca51aea7377501ef62067961 1650w, https://mintcdn.com/docs-staging-feat-docs-5569-member-mgmt/oExDyJclM5R02KLP/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=oExDyJclM5R02KLP&q=85&s=d9b54846186d64f5425d597a8794e279 2500w" />
</Frame>
