> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5605-seo-geo.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-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=902151eeeb25ff44cec2db8a8b08855b" 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-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=5ac481adbad596c3bc75d2294e33ee04 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=acfffa3a35d6a9a6229e51af50148942 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=bec0486cc6089f8632ed8af099aed58a 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=f1a7ba61bbce1abad65591a72c11ae78 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=677cca2ef3c8021ff7e6d46b6e3aac56 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=896fbebefc47ba41a249eb9c372ca5d0 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-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=2abfa3d40736d76b2580d49ec34dd739" 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-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=1a8d32950ad90aa675bb643358426e41 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=9c8ef083e3dccbb0bd535fa22096e92f 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=a5303c79387b0b285c669396d171a72c 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=796e35c2664f710cc03d178d54ec5069 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=6d5b556fcea432a55b0d71d3a3c6babf 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=39368e634f991bb33a1f006f2444ef1b 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-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=7725d347d0e5b4ae8290073024899a4e" 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-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=39429ffc275d1c9012d65e404e1e0956 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=78a6d2e3a163fd7b65885e57b9e9cfbb 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=28ee99d3e6520b6bb76b274f727890cb 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=9e7b2befd6da081ba0715a0f3dbee1bd 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=44a87fbf06316325f8733955c10139d7 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/1D-Lt5r5I2Kt0XSk/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=1D-Lt5r5I2Kt0XSk&q=85&s=cd230002e25ad4aa3c78756e9d3ae161 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-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=2544322b0f460feab29899e48e28c019" 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-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=8e17f35a274f8d85115c6a746bc4e4c3 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=e62af77ed27bc8c0fd96e125ed3498ac 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=1f962ac4c92bd18ff3a2dcf9440b2f25 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=1d7de115512e3f14c40d6713d25a8615 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=941612b8a2d595796b0b0406a004ce15 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/5qOvu9IhBP5Q-jIT/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=5qOvu9IhBP5Q-jIT&q=85&s=f6ce7ce758a05d21ecd7b97adaf33878 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-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=491f7c3ba4e3df0fd4b5b4cd5af49e9e" 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-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=3908a902fbdf983d7d564baa72ab88c7 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=e003637c8de77122ae0a590f6dfc9a59 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=e25a68bf496e33448e17cdd5ee5f258b 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=9b995269daa61c6e604e6d10697c4af1 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=dfbd9fe54a2ee98b937e67722fd4c287 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/RDdfoU8kMIBuLZM7/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=RDdfoU8kMIBuLZM7&q=85&s=9f05d3c1de22110070f0b4fefddfcff9 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-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=6aeab1b2578cd12ccba6617625e0322b" 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-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=d649127878149ef1f3a35536d45b706d 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=4ed214e8aa25f89bf11deca526cceef0 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=f13d455a3c8b08429f008618196b13e9 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=0c42fbb192e16a5869de5b9769db9e52 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=67a930b41c805671a4eed84e512f35d9 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=b0444593783848fedc967539ffdcb290 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=68a556f6bbc58c17a915cbec940792a0" 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-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=88ce069d25c8aeb419898e922fb736b9 280w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=7bf805232911b2f67628e27756e9015f 560w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=a72cf16c8ed0c8af9dffe64d9e01fa05 840w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=d64fe8b03ca97ac13711b12d05d23e55 1100w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=89e4085ee513cacf9736ba4db30f1f6f 1650w, https://mintcdn.com/docs-dev-fix-docs-5605-seo-geo/C8-A4pU0jBc0_3cK/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=C8-A4pU0jBc0_3cK&q=85&s=04d6b7210adbe48256fc5602e7b943d2 2500w" />
</Frame>
