> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-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-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=28fcfbf73147fe2298dcaf2609c5eb84" 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-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=ec71f458ab3189b542520d6b91f55048 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=94cea87fc0703f16e933dbb3b0644971 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=6f3ca4723e990ffbd5443151f750e4d2 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=50aefe441a82d83f75658925b63e9a5a 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=9b0e2d808bb647e30470e9ac5ea88517 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=e889c55b449eb0371f1662533e414a12 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-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=ce2bd1416c36392c190f85ac95c0a96b" 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-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=a1e9ab43bd372459db422cb1bdc05706 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=2b8d2cb84f3fc9787aea75d9ad53da6d 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=55f54ccd7dacb5f7a55f40c0ec4f4b57 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=434e7739e7db7884b57f5383ef2a71a1 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=ed9cd29e245ae0f347eb8618262fa82d 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=d533c9039bb510e031964a067328d4dc 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-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=99c3ccbf8f52d163cb52e6a8411eae1e" 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-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=e04fabc38a6ad19c8506871df9f032f3 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=f65215e4b89108640628b1c838008837 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=ce1fcc8eae4aeb0ec838c85941ea5914 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=51142b0e217e96973d95ba8387b38b0e 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=127c8fa54b9566f53ac38e543f95b2ce 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/98W2_Y-L23YJndAZ/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=98W2_Y-L23YJndAZ&q=85&s=4dd1b6d3ac40c5ed97383a16717cfc2a 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-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=fe624fb3ec4d8c69f522819c5e1e3004" 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-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=29bd16d43dd2b2f33db66bffbfe0ecd3 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=3b393ef12c65b04e3c9911730554562e 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=0010db796664288871dc06c348bc175a 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=e0114d1b2db3c69379ac38db8c7fff42 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=37a245f7b5ede38d4cffdfeedad40acf 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/3wuQ6h7YbS_Wx2U8/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=3wuQ6h7YbS_Wx2U8&q=85&s=dc933a6c623f9c65a2af63cd3403bb31 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-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=d5a2c6ae8c38264a1b9af0e00c60e770" 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-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=7d1b32da75e0621941601184abf82bf5 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=50ce43e8145cb4eace0a2e66b0e25f72 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=3b5af42ebcdd4702b15b2254b3f796cf 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=b273a4109ea513e41326cb95e7bf2bcb 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=cb44081fab90f5dbc1f66bcad6fb5d2a 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/ofS79UqxQk3qmkew/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=ofS79UqxQk3qmkew&q=85&s=d40df5d7797f1f7bde6ee19e022819ee 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-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=9705dcd9c92ec6e37d8c0ac21cb5ef07" 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-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=e20101f00dab0950380bad1c5b51a3b2 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=7ebee5d1cbbc38309e08985c07f5f86f 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=08cf25d8b2abae4be76bea8f400acb9a 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=9cebd367103a01a1b4fd3afc1efbc5fb 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=751619e93e3d21c8d7b94090af963834 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=cb927962558b6be51545353bca0662ec 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=201d5b43dfe55e6097346cb89c37a969" 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-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=9947dc8666691bcf18edb87d7713b06e 280w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=d66a68b9b5e749c029dd418ee3c508f7 560w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=f03cc763f5181ad802f7d2f87c51daf4 840w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=d8dc9bb1387ca2399e86839accc33a29 1100w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=19e1087065ef4aab810652d9933670f5 1650w, https://mintcdn.com/docs-staging-chore-events-autoupdate/pcHJQgtevaBQ-IbW/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=pcHJQgtevaBQ-IbW&q=85&s=2f9ec88849f3fc4fd9975ecc42c3d2b9 2500w" />
</Frame>
