> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-chore-events-autoupdate.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-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=dae3408db3282d37f32da7abe7d6b5d5" 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-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=2d934c84718f377baa1e7b6feb473786 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=57af71ee125c17310712e4ac271da87f 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=4b1ae591336e11875148828fdf4ce33d 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=82959d3d26c7342c1a2255ee4d74db82 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=b252ea1cd8e2ddf0d118c469422b565c 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=c1baae18461b419f37cd5e83de73c1f4 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-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=920a6388b4bf49a2908e17bbe46d07d3" 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-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=9d54efbcabda598950ef9dd24a8af3c7 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=32d682049769e19b7cc0ebd52c5b3c71 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=214f33f1a1282ced64956ad5bf2971fd 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=835c5bda77a322569ad8a36f7d532a37 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=06ceafc971357ce3be5f2096f6308c67 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=877f92817f1efa6abf1a444c6d90f094 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-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=6999f237be389b211c9dfb12acbf5fae" 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-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=c24bd6b0611cd66afe20a3c0b5e03258 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=c82e08da21c3fe66ae76139e88ee661f 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=369fb5697795f37ce4bb40102594aef3 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=f04c2821d46210619b91cbc449671c58 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=4b02c09cda6e1c8dbfde73a8f3846204 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/JrqAYUIkepsXuxEr/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=JrqAYUIkepsXuxEr&q=85&s=d0fc7a8bc11618d8b986b14bf6186332 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-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=f2a09b6fd1a14fd4a6a21a78995b4cc0" 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-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=7fee866dad506f848c092b3275cba9d4 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=86d7c66bfd3790ffd8aedfa968690589 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=7584572d450c3f40a430ed17b4803f1e 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=b35afab5d1c544719e8000f0832ed066 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=7a2d2f8137cbd28203f5fdffaa9894e2 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/8vX6Ha0E5Oe3Sxlx/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=8vX6Ha0E5Oe3Sxlx&q=85&s=afb7d69ad6f3d1d4ae46544429bfeaba 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-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=07dbce5f8e8a961f991c07fe030ad17d" 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-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=75a04871e3af36a91dc273db865ac667 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=ce12ea549e1817c8c613a9fbe7fd8a7b 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=e75bbca23b4a2401a492c1654dc20c4f 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=2f5d29c010205c25c56a73c064642c65 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=d4842e926df0bb33cc461f2e9e7fddbe 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/MOUmiRXu5I_3fPz2/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=MOUmiRXu5I_3fPz2&q=85&s=a5794aa61b0a1867b00bc1732cce7faf 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-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=7ea471159e240c502711e506f620abcb" 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-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=d6703d59486d3f393bbb6cef35334dc1 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=fc2372bd1ca8cfee3dafe2e5d31f15e7 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=676018e85c8d7832cc8f94da886b7e8e 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=1841cc9965cf846e3c1809ea50eca53b 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=4cc2f128ec0651d1a3967a749a19ebce 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=a684f2a1dcdf3c2769fb5cc42a737201 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=184acb50dc66ca1d7ed883a465010564" 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-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=98945e4d7260f82de2aca6929d58c995 280w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=3e45d55550106102ea3104bf3d9c8762 560w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=c6c20dd1476afc390b6b41d1bc639322 840w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=705ee63928d71e12b9e0681b75b94fc3 1100w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=ded79419d87a08f0bde774ee52c03e55 1650w, https://mintcdn.com/docs-dev-chore-events-autoupdate/C-wLBWI5GtiUYTuO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=C-wLBWI5GtiUYTuO&q=85&s=f0ae618607a9483ac0203af0480c8eb2 2500w" />
</Frame>
