> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-ai-docs-migration-poc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to use variables in Forms for Actions.

# 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:

  * `custome_domain.domain`
  * `custome_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-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=e45f5732d0fb561e6ff5e9c129f1dbe2" 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-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=6a1beee4907a430ca3760a5eb887e31e 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=b60110e40fb67dcf8eebb21f4adbdd80 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=c4b15b0f31c450b7a0de716db554c18d 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=107e7dc6c427ee94f82233ad18b13023 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=f2558ba9625b7bb8bb1fa9eeee63c801 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=9947001465d34a7671a5a38bb285c549 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-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=7b0578b2c66e68ed9492705b7433a889" 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-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=0b953c45f567707907899f38de3d7dff 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=64e60784ea66021ed3370fd5df6fdc09 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=dcbd19b7c361d8e9d834c41cb208e896 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=058e9add9aa12d9c4bcde5bfc97b4485 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=7a86dfc6eeadd23d8b49fd55374934e3 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=12e93c6f412d4b367a9611af41987276 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-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=89cf0e87aa9dfed08faa72329101842a" 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-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=3ad285d9ecb65f6d477b999730248075 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=4a5ce78930b2b23d95e0117905c8e48a 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=043e9e25034b1d4bcf28156706ecc1b3 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=6b8c06ee8eb7a02894eb4a73b6e29f28 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=cd3307eddc041ca07f1f93d8c6054ec2 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/frCTjKq-WyUjSqji/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=frCTjKq-WyUjSqji&q=85&s=bb7ba1334e8bcb60c884d032bf474e92 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-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=237fc876c0ecc09564c54770c028ff0c" 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-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=8ee1d5ca3b564c22b95c0b24600cd095 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=777662a5b60f7fba72852562b6a4bd42 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=f530cf47527c26389f098bb970edd95c 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=45f2ba00873745296eb283d301ebc1d8 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=0384cc9649b76506b0a83a87df3a32eb 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Qrxx1Eu6qRUcKVk4/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=Qrxx1Eu6qRUcKVk4&q=85&s=75914857407d3d2395e28bbc5eb34a47 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-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=9ef016b16b2f3e3d7b4925c375eddc2f" 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-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=dbcab72229c249a41b256d5df59f6597 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=a064e5195563d24fb44a2802a9ba216b 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=6c133bb4b831cf4cc4decac2a362bae6 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=82316153a1daeecd46858cb3f1031e2d 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=e4802a75ddd0d3fde872a4aa05e6768c 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/Td7TaYSzfoMHJ3Sq/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=Td7TaYSzfoMHJ3Sq&q=85&s=98928a3cf202bbfa8399e9a1ed6e9c8b 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-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=fea17f3292b79d67912e9b0381da5832" 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-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=5e9f6e57de04e98fd53fb2e4e2a16104 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=e0648d60727d9f325d3cfd6d88bb34fa 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=488b862ccd9b0cdc869b75eca41c926e 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=10fa3e75c5ef6c43b93a6fd80f848698 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=ce7fcc7285ffab2e42da391d99c3b758 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=47727547ecf19bda1ada518e075709b2 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=04f61d615ad2070e16cfdb6953b88030" 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-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=c5dcc7c869aa9c33b343427324d87283 280w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=95bc8f6eb4edd600173c302961d1dd99 560w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=cec4e20594ec6d0567b2d587c7d2592b 840w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=25f42e9c6db86ab9a410cc94907c8013 1100w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=c9c86ec9c1e9a6dcc23adb5f72833178 1650w, https://mintcdn.com/docs-dev-docs-ai-docs-migration-poc/B6vbwc1szQPxGMTr/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=B6vbwc1szQPxGMTr&q=85&s=e60c7d1416c2372970e60196ed26968b 2500w" />
</Frame>
