> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-acl-curated-blocklist.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..."
    },
    "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-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=b7cb0375ee32e2a6a76815e0c5b28fd0" 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-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=6d82193fe8b81af9dcc3f3784bb5b37e 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=1328f19b286a8436ca3be30af74c8020 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=4661eaef49d488e5d8f262e780634390 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=9f3ac494c5a9143f415bb5938bb94a3e 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=ab50844a2008e00c7ce985d082fc72e3 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=60864edaa35a4bd08a43f148b9d0a675 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-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=40d5efe29ba62e33a8cffe95dbaf0049" 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-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=4c207b44f38ce5b89f515bd73df55029 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=81a39ce93b357fee10c9e04cd715a0e0 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=e05068d340e248eb272d592ce9ba746f 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=0646c30c5d29f644320b2f3c6214f229 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=25b9c7171b7b35f216d13eb8c6fd91ee 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=c93be91cb782516e7752a4137b73da20 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-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=43e503763a439b1352cfa725aeb75122" 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-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=b2bddeba392e5b524a672dfefaba9c4b 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=aa37ffc024eb3b084f5c336bee4eb256 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=00a4693b0a2c3f079bce1148798d885d 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=fa4aad028466985166e1e4ff9468cf98 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=fac100edd9307fe500b8d5d0bf6fe5dd 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/IjeDUK9o6taASj-R/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=IjeDUK9o6taASj-R&q=85&s=addce71ec5615d3ae3672163a5988312 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-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=11d081fd20da4462d646e3e691748f5e" 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-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=be48d7cb90841fce7d0645fff542e756 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=65c0aebe2c2270849ebcf0fe8e586aa0 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=bbf023bb950d171782948e3fe14673e8 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=3b60285e6417d55a83c59c3f813352d2 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=a074c94635c09ccee13fbf11154de2fa 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-wJi1FGLT1jYR3ol/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=-wJi1FGLT1jYR3ol&q=85&s=74d745d658c62d3e547b39f067c72561 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-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=09e78ae35cca3136bb3953d3ef9aae2e" 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-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=5cc5c7c32096666e5b0bd97e5659cb5d 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=2b4a02369cd20a0642b1faece400a007 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=d0fbf930a1731e9f2adb2aec0dd15fbb 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=590167584181cfc54b249d0e4ad9df1a 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=61d96c1b85fa20e3bcdad5397cee843a 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/cqBfxX3Lyyk7WGUd/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=cqBfxX3Lyyk7WGUd&q=85&s=b7c8d6c2defb5dbade75c9a42e2bd653 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-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=68a8d0b60b0879aa04734586301c9fc9" 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-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=f5d956ddbcbc2af44e65519333a89a0a 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=1bc4fb30c81e82e7d3a20280b7beb450 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=caae3b77b199b251f06fda40411134b8 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=4d58230ba2a1749c5413a034549d93e1 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=cbbc39a87ee6921da02194648559676b 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=b6e6bfd7637721ab28c341d8134a5370 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=b3ab5887f60c7689241ff6e66f68be3b" 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-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=9dd23c125293c6a3bde2f206c52aac70 280w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=b3a59b9f7b167b40ae7ef0b490452dc8 560w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=484869a71c9fab8cd3956e502afc5da4 840w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=2d623ca73d2ef3aa2e729b0f7b4a44bb 1100w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=86010cf05a379f158684d81c6f44a4bf 1650w, https://mintcdn.com/docs-dev-feat-acl-curated-blocklist/-uRAUA7XzQSHJeRB/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=-uRAUA7XzQSHJeRB&q=85&s=cd7188c117447c6c20eaad7a8c418a44 2500w" />
</Frame>
