> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-docs-free-tenant-inactivity-policy.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-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=6496c26afbf268fcbe9bd8a2c29f37fe" 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-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=8d18e3012f52fbb966a435556c9ed7c3 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=e5ce1af91111968cd40f5d3d1a8a3a0b 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=8cd4401d75ef648e02d8ed0e62b7af3a 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=9dc36f24c9512bd991b59a1bc59005ab 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=3f1c5624971381b0983cb38dc4101233 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=2315c169a990c5beaddb984b1cbf1785 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-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=01756cdc88356576540573fc3547c5f7" 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-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=3714434da8804d0f7f4720ffee3747bb 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=992ce613e915f282083d423e86184f68 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=d5b00a7ed273bfaf23765c565efd1d2e 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=2a6370dc95681e552389ff49e911ba8b 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=640a06e6cb380788a9fc62b8dda4818a 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=5462950271794e08141a644b33a4878b 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-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=b0b4cbabb63aacf98dbd30a2d263681d" 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-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=18295dd9a4d2d6eb1b6462fde4d55351 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=f0bedea5663d5c19d096f62c617525b8 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=030a7ceaf43c0c0748eb0cd6e9ef43b1 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=db4d5d4aa754319cb924a27c4051a81c 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=5dad3a3c73a2de0d66e2c0c6fb554e8c 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/m-A06Osg2bnqzc-p/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=m-A06Osg2bnqzc-p&q=85&s=be916c0ae6cf5a0cd1ca55b83a2885c4 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-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=4ac624ce3e9c53c5cc371fd0359d1e54" 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-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=a83d79529835434642e6a32514ff0960 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=ac4799a524a92d44d62cd4f3c4c0fdf1 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=536c90cb2a7907f969e908eef39fbe9d 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=7c6e0e013ea53b552e6e8a6dab18574b 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=b1b9ae2d55e72397085f44951ec05e4a 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/3NODpyK8NTWBgz1H/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=3NODpyK8NTWBgz1H&q=85&s=7bf6e841152101ec07eadb34ed416014 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-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=7e30186ab3084847a3129201d7eafec5" 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-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=1b7c843f81e8e09fab863f6a8f2553f9 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=8e67b069aa5d480d266f4fa09888ee94 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=1b898167fe4f1f7ba4ac41987f5fb0cb 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=c7d23c9547e941d5c51a4c15eb582980 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=1861e625a02d41744c4d925d5f46e3e6 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/EL-3uk5ma9pfaHrO/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=EL-3uk5ma9pfaHrO&q=85&s=bea875fed6c60503e82f6bae12a0680a 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-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=f0cbd2c0516c82693abc374334bebd0c" 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-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=aebcab1221c7d44f60c28827e3d17a27 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=2af594b0618a461cad189f2801552e45 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=6740b84c124d07f51f3a7228f2f5daa5 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=b435542d03fd6caf413587bcf7379f36 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=07e41ab85f9e728fc8fe79a20dc60924 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=c0ad99ea64f603a6d1999f4523c58ad4 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=3fa58e4775f4a3de1517cea37ba42e15" 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-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=b3dd2282561bbc53b3e4f3462695da85 280w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=03374fab93afc8949ced7f00fe3a4cc6 560w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=05934360eca26c7bcff4083e095a7b66 840w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=709c87c5bb85c3e0dfc56e6b33ff0940 1100w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=56f166d62628229e7a036a7cd9133cfd 1650w, https://mintcdn.com/docs-staging-docs-free-tenant-inactivity-policy/Be8h_7qNzH2S9L4l/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=Be8h_7qNzH2S9L4l&q=85&s=d1d1c7ed3e6b8fe8c8841420f1a4b278 2500w" />
</Frame>
