> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5547-passwordless-db-update.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-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=adb8f29537051a80f774229ef14c966e" 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-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=6354cfedb2346316ae60f5fddbfba4ee 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=6aeabe1cc9789962ee9df2ac9b49a75c 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=8dce3be9e63c54304735fc718de61a16 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=a50989aa327f6c0f2914d67365e0ee39 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=579ef2492c0fa5fb8f94c5f15d318bac 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=4fa7add3dcb8fa3d107aeded0c2630f2 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-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=26858b3946c7290b357cfd8f352fdb6b" 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-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=ea24287fab4d07d4e5b2daa26c993af4 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=ff4ad510d4d8876f4e340ee2ec89e821 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=e8a83e961542724375567dc645cae8f0 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=8fe90ec9b18f8b2e426ea36fdaac6c80 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=4ede658290ba0736752a7841296ac0b1 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=1f872773955f56ace1a0f3c42d48c2ae 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-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=28571e48bf343bd4bc752758bcecfd7c" 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-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=3d6855d00a26698049ed6f02befb6f56 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=0e1889563f4be08a576cd80b4fd8d4a0 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=c6b5651c863a2cfb4c095e4cdba5e044 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=2e5984d5cf785e769253d1e358cc826b 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=999b57b8906f3e3e553c75d76dff11da 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/Lfu7vN1oaL2INCAz/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=Lfu7vN1oaL2INCAz&q=85&s=fe88c035eec265b69be606f9eb4bcf1c 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-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=8962139c9f1513d5ef8779c6e9641b08" 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-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=c2e452a40bb31e839994b853525c344d 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=50cbeff78d17232fcae49b846a521267 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=5845cc3b40f403a91db05ec9e0bdf912 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=8f4adbbaf1303b5d1a09d2103c29ec7d 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=ec8da8a17b38a6aeadb4f1c1c91dd8df 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/ZEqGUCXUONL81Hqk/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=ZEqGUCXUONL81Hqk&q=85&s=d73d59e5d873ff6c72c8e5581cfbe516 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-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=bddbfb46d53ff5624370f5f8ad42108f" 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-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=3a72a0765b8396b6165a39f329c1b6b6 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=1938a8d3516a12d94a1bb6f7977e114d 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=8441389d602301994ccce7d0416be5e5 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=d5c2ec6690a3425995bd7efcaafa6c0b 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=7a04e5be47ee997f5ddcabddb2bdbd56 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/RI5PzOB_XKDAkIrK/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=RI5PzOB_XKDAkIrK&q=85&s=04d2d018f73de451025791d9ddf027ca 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-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=03b472ee33a52a047d76a750ea6eab16" 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-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=ed85801c7c486c33bc65cfad287174ea 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=5993498e463dd835e7248e92d89af102 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=c8637c3435ab8957830353c7c1f2111d 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=242dde02a726b4808eec2578c6839c5f 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=0d660fd326a09077a844e1ef6334604a 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=fc6acd3ceae501ebe89b12f1927d943d 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=a1a5bf026a2f96b3b4175dcb87a99745" 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-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=4214706f1163c3bb47b64e22cb0fbfae 280w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=753420b507edb0e4a33d715b18a88ae6 560w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=4a1411c3f076988839e77f661282cf85 840w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=d360339145335d0195137e66ec4980a3 1100w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=af64090f9e847d225fa7dec48a891430 1650w, https://mintcdn.com/docs-dev-fix-docs-5547-passwordless-db-update/PVS4YYaDfznGvCp4/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=PVS4YYaDfznGvCp4&q=85&s=d230af8b75a40bce26f732197ccb3936 2500w" />
</Frame>
