> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-chore-myaccount-api-autoupdate.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn how to use variables to access and transform user data in Forms and Flows.

# Variables and helper functions

Variables allow you to access data contained in Forms and Flows to create custom business logic and automations.

Some basic considerations to using variables are:

* Variables are surrounded by curly brackets `{{ variable }}`.
* If a variable doesn't exist or can't be resolved, it has the same effect as an `undefined` variable.
* You can use nullish operators to handle `null` or `undefined` variables, for example:`{{fields.foo ?? fields.bar}}`.

## Available variables

You can use different types of variables to reference and transform data you gather from customers with Forms and Flows.

| Variable            | Syntax            | Where         | Description                                                      |
| ------------------- | ----------------- | ------------- | ---------------------------------------------------------------- |
| Context             | `{{context.*}}`   | Forms / Flows | Reference context data of the current transaction                |
| Form fields         | `{{fields.*}}`    | Forms / Flows | Reference data from your form fields and hidden fields           |
| Shared variables    | `{{vars.*}}`      | Forms / Flows | Reference data stored as shared variables                        |
| Flow actions output | `{{actions.*}}`   | Flows         | Reference data from the output response of previous flow actions |
| Helper functions    | `{{functions.*}}` | Forms / Flows | Helper functions to transform data                               |

### Context variables

Forms and flows automatically inherit context variables from the current transaction. You can access the following context variables:

* The `user` object, with access to the following properties:

  * `user.user_id`
  * `user.username`
  * `user.name`
  * `user.given_name`
  * `user.family_name`
  * `user.nickname`
  * `user.email`
  * `user.email_verified`
  * `user.phone_number`
  * `user.phone_verified`
  * `user.picture`
  * `user.user_metadata`
  * `user.app_metadata`
  * `user.created_at`
  * `user.updated_at`
  * `user.last_password_reset`
  * `user.identities`
* The `organization` object, with access to the following properties:

  * `organization.id`
  * `organization.name`
  * `organization.display_name`
  * `organization.metadata`
* The `client` object, with access to the following properties:

  * `client.client_id`
  * `client.name`
* The `tenant` object, with access to the following property:

  * `tenant.name`
* The `transaction` object, with access to the following property:

  * `transaction.state`
  * `transaction.correlation_id`
* The `custom_domain` object, with access to the following property:

  * `custom_domain.domain`
  * `custom_domain.domain_metadata`

<Accordion title="Example of context object">
  ```json lines expandable theme={null}
  {
    "user": {
      "user_id": "auth0|658409...",
      "name": "ana@travel0.com",
      "nickname": "ana",
      "email": "ana@travel0.com",
      "email_verified": true,
      "picture": "https://s.gravatar.com/avatar/8eb1b522f6...",
      "user_metadata": {},
      "app_metadata": {},
      "created_at": "2023-12-21T09:46:40.487Z",
      "updated_at": "2024-05-07T10:44:26.271Z",
      "last_password_reset": "2023-12-21T09:49:08.932Z",
      "identities": [
        {
          "user_id": "6584...",
          "isSocial": false,
          "provider": "auth0",
          "connection": "Username-Password-Authentication"
        }
      ]
    },
    "client": {
      "client_id": "xpeg5...",
      "name": "My App"
    },
    "tenant": {
      "name": "tenant-testing"
    },
    "transaction": {
      "state": "hKFo2SBId2M0...",
      "correlation_id": "txn_12345_xyz"
    },
    "custom_domain": {
      "domain": "example.com",
      "domain_metadata": {
        "key": "value"
      }
    }
  }
  ```
</Accordion>

For example:  `{{context.user.user_id}}` references the `user_id` of the `user` object.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=4d39ba2658aa73193a0b2071e11d0615" alt="Dashboard > Forms > Flows" data-og-width="1141" width="1141" data-og-height="219" height="219" data-path="docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=c45881bc0e1b31d755f9945d876370bd 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=724f053588141dbc3361b9237e0d04d5 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=d296e75c1360592e6a6242f8af9aa434 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=6e4d2bc2591dc37cfdc50bd000fd9739 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=2f08b1bf2e694bcc158662978f0b8311 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=e8ddb78ef7b60d789974cc48832fd958 2500w" />
</Frame>

### Form fields variables

Field variables contain data collected from the user from input fields in the form and data from hidden fields. The data of each field varies depending on the field type. For example: `{{fields.first_name}}` references the input value of a field with the ID `first_name`.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=3f85642de24af3ce6fd26c8d0c3f5976" alt="Dashboard > Actions > Forms > Form" data-og-width="1404" width="1404" data-og-height="497" height="497" data-path="docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=05632f67e97459e6d1d91291a1fa2211 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=7b0bf11eaf8f8418cf7b79bf5716269f 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=46cd385e77ea8d96b64d6d62466c5af0 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=84a15c13742c38d5254969f4862486c6 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=1d2428b2ce5fd370aab2e7bc3474e9d5 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=c65ed4d56715219b6bca8c69b5c406b5 2500w" />
</Frame>

### Flow output actions variables

When a flow action is executed, it generates an output object response that can be referenced in subsequent actions. For example: `{{actions.generate_otp.code}}` references the output code of the action with ID `generate_otp`.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=204297255a84d2d0a46d97edc383a67e" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="253" height="253" data-path="docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=eac9811572568ab5ad541f697bd31741 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=620780f42b609c36311db353cc7bac96 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=7d87072d364bb557eca94706918a81b6 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=f69416f3f42911b97c35746b634d9c24 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=b006eb03dd95b23a1590ab5522c86514 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/o1UR_wVpl9p5EHsG/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=o1UR_wVpl9p5EHsG&q=85&s=977fbaf26412c26bba30de296ce37b90 2500w" />
</Frame>

### Shared variables

You can store variables to be shared with subsequent flows or even with form components in the same transaction. Shared variables are ephemeral and are associated with a specific form journey. Their values cannot be accessed outside of that journey. For example: `{{vars.external_id}}` references the value of a shared variable with ID `external_id`.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=30ea48304e1942338681c2152b00dc09" alt="Dashboard > Actions > Forms > Flows" data-og-width="1215" width="1215" data-og-height="162" height="162" data-path="docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=53b381defb437dc3b255cd97c5b5613b 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=08a5b9145d724ae6f76e76d520b81455 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=7f505362094d4cefa9636bf7cce900eb 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=75c1bafe418d0eea4c40ab991f3b2f1e 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=7eb9dfde31521592b8610a6bd9bf02db 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/3kGnhsYuy8CnlZG9/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=3kGnhsYuy8CnlZG9&q=85&s=4467be33b930d122c8eb5b67d57f1bec 2500w" />
</Frame>

<Warning>
  Shared variables:

  * are internal (server-side) and not exposed to the browser (client-side).
  * can be resolved and exposed to the browser if you referenced a shared variable in the form component.
  * might have sensitive information, so take care when you access shared variable to avoid any unnecessary or unintentional exposure.
</Warning>

### Helper functions

Helper functions let you transform data and perform simple operations. For example: `{{functions.toString(fields.privacy_policies)}}` transform the value of the field with ID `privacy_policies` using the `toString()` function.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=cbbeef773ae38371699d7e6b28f6967f" alt="Dashboard > Actions > Forms > Flows" data-og-width="1404" width="1404" data-og-height="290" height="290" data-path="docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=f5a99aa01f63a51af7175104d9cf5c0b 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=b1ceb3c49d5f4e065b91b3252df48526 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=346cc381ec7f6316ac40847317e6d3b7 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=ab9de595a1a6c1753f262873da344c7a 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=1dffd61cfc5cd012ec560afdde8f976d 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/nuDe4v-q_ZNWMmoT/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=nuDe4v-q_ZNWMmoT&q=85&s=f22ad617321c89f739879ed494512b7e 2500w" />
</Frame>

The available helper functions are:

| Function                                 | Description                                                                                                                                                                                                                                                              | Example                                                                                                          |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
| `toArray(value)`                         | Converts value to an array.                                                                                                                                                                                                                                              | `{{ functions.toArray('abc') }} // ['abc']`                                                                      |
| `toBoolean(value)`                       | Converts value to a boolean value.                                                                                                                                                                                                                                       | `{{ functions.toBoolean(1) }} // true&lt;br /&gt;&lt;br /&gt;\{\{ functions.toBoolean(0) }} // false`            |
| `length(value)`                          | Returns the length of the parameter value.                                                                                                                                                                                                                               | `{{ functions.length('auth0') }} // 5`                                                                           |
| `mask(value)`                            | Masks a value to avoid be exposed in Executions.                                                                                                                                                                                                                         | `{{ functions.mask('my_awesome_secret') }} // ███`                                                               |
| `toNumber(value)`                        | Converts value to a number.                                                                                                                                                                                                                                              | `{{ functions.toNumber('123') }} // 123`                                                                         |
| `random(min, max, [boolean])`            | Returns a random number between the inclusive min and max.                                                                                                                                                                                                               | `{{ functions.random(0, 6) }} // 4 &lt;br /&gt;&lt;br /&gt;\{\{ functions.random(0, 6, true) }} // 3.8523497...` |
| `slice(value, start, end)`               | Returns a section of a value array or string between the start and end indexes.                                                                                                                                                                                          | `{{ functions.slice( 'example', 3, 5) }} // 'mp'`                                                                |
| `toString(value)`                        | Converts value to a string.                                                                                                                                                                                                                                              | `{{ functions.toString(123) }} // '123'`                                                                         |
| `substring(value, start, end)`           | Returns a section of a value between the start and end indexes. Read about the [differences of slice and substring functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring#differences_between_substring_and_slice) | `{{ functions.substring( 'example’', 3, 5) }} // 'mp'`                                                           |
| `toTimestamp()`                          | Returns the current UNIX timestamp.                                                                                                                                                                                                                                      | `{{ functions.toTimestamp() }} // 1628761483`                                                                    |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toTimestamp(date)`                      | Returns the provided date in UNIX time.                                                                                                                                                                                                                                  | `{{ functions.toTimestamp('2021-04-30T10:02:50.876Z') }} // 1619776970`                                          |
| `toLowerCase(value)`                     | Returns a new string transformed to lowercase.                                                                                                                                                                                                                           | `{{ functions.toLowerCase('JohnDoe 1234') }} // johndoe 1234`                                                    |
| `toUpperCase(value)`                     | Returns a new string transformed to uppercase.                                                                                                                                                                                                                           | `{{ functions.toUpperCase('JohnDoe 1234') }} // JOHNDOE 1234`                                                    |
| `replaceAll(value, string, replacement)` | Returns a new string with all matches of a pattern replaced by a replacement.                                                                                                                                                                                            | `{{ functions.replaceAll('2021-04-30', '-', '/') }} // 2021/04/30`                                               |
| `replace(value, string, replacement)`    | Returns a new string with all matches of a pattern replaced by a replacement. If pattern is a string, only the first occurence will be replaced.                                                                                                                         | `{{ functions.replace('2021-04-30', '-', '/') }} // 2021/04-30`                                                  |
| `split(value, separator, limit?)`        | Returns an ordered list of substrings divided by the separator.                                                                                                                                                                                                          | `{{ functions.split('2021-04-30', '-') }} // ['2021', '04', '30']`                                               |
| `now()`                                  | Returns the current date in ISO 8601 format.                                                                                                                                                                                                                             | `{{ functions.now() }} // 2021-04-30T10:31:28.576Z`                                                              |
| `includes(collection, item, fromIndex?)` | Returns whether an array includes a certain value among its entries.                                                                                                                                                                                                     | `{{ functions.includes(['auth0', 'identity', 'authentication'], 'identity') }} // true`                          |
| `indexOf(collection, item, fromIndex?)`  | Returns the first index at which a given element can be found in the array, or -1 if it is not present.                                                                                                                                                                  | `{{ functions.indexOf(['auth0', 'identity', 'authentication'], 'identity') }} // 1`                              |
| `merge(base, value)`                     | Returns a merged array, object or concatenates a string depending on the base data type.                                                                                                                                                                                 | `{{ functions.merge(['auth0', 'identity'], ['authentication']) }} // ['auth0', 'identity', 'authentication']`    |
| `md5(value)`                             | Returns a MD5 hashed value.                                                                                                                                                                                                                                              | `{{ functions.md5('auth0') }} // 7bbb597...`                                                                     |
| `sha1(value)`                            | Returns a SHA1 hashed value.                                                                                                                                                                                                                                             | `{{ functions.sha1('auth0') }} // b4ec5339...`                                                                   |
| `sha256(value)`                          | Returns a SHA256 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha256('auth0') }} // d9082bdc...`                                                                 |
| `sha512(value)`                          | Returns a SHA512 hashed value.                                                                                                                                                                                                                                           | `{{ functions.sha512('auth0') }} // c0d588069d...`                                                               |
| `uuid()`                                 | Returns a random v4 UUID.                                                                                                                                                                                                                                                | `{{ functions.uuid() }} // 36b8f84d-df4e-4d49-b662-bcde71a8764`                                                  |

## Variables best practices

### Use meaningful IDs

When you add a Form field or a Flow action, the ID is automatically generated.

Update the ID to a more descriptive value so you can identify the information it contains. For example, if you create a Form field that stores the user’s first name, update the ID to `first_name`.

### Be mindful when updating existing IDs

If a variable is already in use and you need to modify the ID, identify where you have referenced it and update the ID accordingly to avoid undefined or empty values.

### Check Flow executions

If you see an unexpected variable value, use the [**Executions**](/docs/customize/forms/flows/flow-execution-and-debugger) view to troubleshoot the variable.

### Use the autocomplete menu

The autocomplete menu helps you locate and properly reference existing variables.

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=e16a2fc7c2f4316b48d9868ee72c4c2f" alt="Dashboard > Actions > Forms > Flows" data-og-width="1361" width="1361" data-og-height="502" height="502" data-path="docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=b581f16d4773066a50d3c68acbc6b981 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=153fd2e4bee3a7e8574aa6610c986514 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=3e12286fd8dd8047d2655393a5953cda 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=8e663a87091e679770de0b60466e0d00 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=600164498e3805355af38aa278ea2395 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=185590c1e468ac7cf46c2098cba7e781 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=e2aae8dc3b404d79b17d852847a1d409" alt="Dashboard > Actions > Forms > Form" data-og-width="1394" width="1394" data-og-height="630" height="630" data-path="docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=267d7b98c8a21c83277120eb8fa601ae 280w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=4198fc957e6f7b77e0f79e2e7c894ad2 560w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=b8716efad31138c608333ea06a3fc826 840w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=b8340219f95bfa59ecb886e9cafcb27d 1100w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=37b571702319857d7a72d851920a3ff1 1650w, https://mintcdn.com/docs-staging-chore-myaccount-api-autoupdate/XSZIwv0-vQPlgEcO/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=XSZIwv0-vQPlgEcO&q=85&s=5049eac247f60b978d1b678c0a3b6e25 2500w" />
</Frame>
