> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-chore-rate-limits-autoupdate-0.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..."
    },
    "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-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=2720a9e99ca9c611ed8bb436273a2647" 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-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=280&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=b088601cc79259c0deac018d10e2f2f9 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=560&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=2969f5b59b68a5481f5462e92c68130c 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=840&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=171f370566c8bf626742d44fbea9398a 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1100&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=2b57021cf460b3e02f44e576142f6fb8 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=1650&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=0fa875af6efbe3b6bffdc90d97c1f25c 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3B8DRhXO2wGqeqSFb8KbQv/0a61cdbbb7f1d290950a2ddb9857aac3/Contex-variable.png?w=2500&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=b015e1e3a2249e6faf8651212067913d 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-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=c7a6072cf986b7a3654acdfe65d33c02" 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-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=280&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=1a81d1f09766f54ee39b1cc954b63b7e 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=560&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=63e0fb63a4561b757ebe64df850438f9 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=840&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=10ac11a2015dd3494a9e403062332192 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1100&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=48516b878b2383788bef8ca5798edfa9 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=1650&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=72faf16d5564f45f6974dad558d713e1 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4D42A6ww4XvFxweoxh04Rd/016c2ed9d25bc2267ed3ed31bf8b2bf6/form-fields-variable.png?w=2500&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=4ab4454cdc616d3ed8fc7e1ceab73ee3 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-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=19687acc8ce7c0e7051e1a664133e15d" 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-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=280&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=7226b1c41a0d473108384105b17cd3c5 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=560&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=df8a43fbd2f5a20b2a9e918500f053c3 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=840&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=9783ed7237344b34e31458f1bbed38e0 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1100&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=710392fb30a9caef91db83c1d71147ef 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=1650&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=ca2b30aa469f9d9ae31fef3740a38913 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/AmBmEbWbyIgMzdOb/docs/images/cdy7uua7fh8z/6jYtEdYqSGXm3DDv0mxQ0o/2d48012629745e07137bf6ba42f4d829/flow-output-variable.png?w=2500&fit=max&auto=format&n=AmBmEbWbyIgMzdOb&q=85&s=6394aa8910854d5f70f1a9171be9b0b7 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-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=3ade73bbb714668bf25d9f78766c8d30" 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-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=280&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=a8f2374f77b22b3ddd71fb820e279b74 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=560&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=67cddcfba64b3f8fabe4dd84917e0436 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=840&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=68be14e14d72df53e1d71cc57d68e955 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1100&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=85af94f7aefb5d779dd56e9456babc28 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=1650&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=73646e282ef3a8c5b492c0f368818057 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/_gWDgNJV06PowbaP/docs/images/cdy7uua7fh8z/4571ExRTHL0KZKJKX9pNwj/abb631b8608a6356b0e5b3784cf8b02f/flow-shared-variable.png?w=2500&fit=max&auto=format&n=_gWDgNJV06PowbaP&q=85&s=e119f1b8d41de5b87da1f00a2406dcec 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-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=eaf5a205d27ee397f08f5de0daed89c5" 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-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=280&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=3ed3465425a02633089cc615ba4bf2fc 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=560&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=0d8aa1cc7895963b5e3e4f301c1f4e9d 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=840&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=e351ebc0517fc4dbb75873a1427a8da2 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1100&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=a1183e3bb970ecc1001d6201a15668ba 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=1650&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=98df1acc6358031b8d897243fe61533b 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/LjeMhc2cON3x2kn0/docs/images/cdy7uua7fh8z/1gyox33XJEtdkT43NppblT/0e878cc5ae2bde11b4207e105bbac6c5/flow-helper-functions.png?w=2500&fit=max&auto=format&n=LjeMhc2cON3x2kn0&q=85&s=b1cd2bb660ea9c2f1bfd839aba437075 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-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=1d7cb7de08b2a2655ecd480367153205" 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-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=280&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=47e20695f7cfaf2378c0903966fa823e 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=560&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=6503e8d15a0bc3d04b85a2512d5bbd43 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=840&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=90a4f8aeeaea63a2edddbef021a98f3c 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1100&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=0f720dd39f974889f4e53f89dd9b4c41 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=1650&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=71cf56a16ad26d7f005913a71ac8478b 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/3SKnDuaMzSImxZtDDAoZaz/9ea800fad29ef71d1ded3c72b87660a4/Autocomplete-flows.png?w=2500&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=266f5c6376e5aa2799eba391cf6bad23 2500w" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=562c71e9d412dffd0ad18e51ecc1f2c7" 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-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=280&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=7191590889afb2772f9031dd8ba6b047 280w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=560&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=b8e822c52db517dad0d444233345ad34 560w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=840&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=65692a0b8391b27812b18c7eb6070890 840w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1100&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=090300e516456700d291bb294bf48a87 1100w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=1650&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=4a1a4406ec5a4294b779088d2f642934 1650w, https://mintcdn.com/docs-dev-chore-rate-limits-autoupdate-0/Fx8qcFvQM5xQ4mQF/docs/images/cdy7uua7fh8z/2kjRKozVgrd2a7UJXOANaN/ee5452d7210cd2f13b0e97763f11c82a/Autocomplete-forms.png?w=2500&fit=max&auto=format&n=Fx8qcFvQM5xQ4mQF&q=85&s=9733efbf306f4b50b08169b61949c712 2500w" />
</Frame>
