# System entities

You can think of system entities as [match entities ](https://docs.chatlayer.ai/nlp/natural-language-processing-nlp/detect-information-with-entities/match-entities)that are pre-made just because they fit regular, typical patterns that would be widely used inside bot conversations.

<figure><img src="https://2786867680-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FDt5zSKjcfWZ3D8zwpawQ%2FScreenshot%202024-08-23%20at%2012.00.43.png?alt=media&#x26;token=789cb8cb-d385-46a2-9e2b-eefe1d247289" alt=""><figcaption><p>System entities tab.</p></figcaption></figure>

Chatlayer.ai supports the following system entities:

| Variable name         |                                                                                                                                                                                                     | Example input by user                                    | Example result in session                                                                                       |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `sys.email`           | Validates if the user input has an email format                                                                                                                                                     | "<ilovebots@chatlayer.ai>"                               | `sys: {email: 'ilovebots@chatlayer.ai'}`                                                                        |
| `sys.phone_number`    | Accepts numbers with more than 6 and fewer than 17 numbers in them                                                                                                                                  | "+32 487 23 02 03"                                       | `sys: {phone_number: '(+32) 487230203'}`                                                                        |
| `sys.ordinal`         |                                                                                                                                                                                                     | "5th"                                                    | `sys: {ordinal: '5'}`                                                                                           |
| `sys.amount_of_money` |                                                                                                                                                                                                     | "5 euro"                                                 | `sys: {amount_of money: '5', amount_of_money_currency: 'EUR'}`                                                  |
| `sys.distance`        |                                                                                                                                                                                                     | "5 kilometers"                                           | `sys: {distance: '5', distance_unit: 'kilometre'}`                                                              |
| `sys.number`          | Recognizes any number.                                                                                                                                                                              | "eighty eight"                                           | `sys: {number: '88'}`                                                                                           |
| `sys.quantity`        |                                                                                                                                                                                                     | "3 liters"                                               | `sys: {quantity: '3', quantity_unit: 'litre'}`                                                                  |
| `sys.temperature`     |                                                                                                                                                                                                     | "80C"                                                    | `sys: {temperature '80', temperature_unit: 'celsius'`                                                           |
| `sys.time`            |                                                                                                                                                                                                     | "3 pm tomorrow"                                          | `sys: {time: '2020-12-25T15:00:00.000+00:00', time_grain: 'hour'}`                                              |
| `sys.url`             | Checks if the given input is a URL. Accepted formats can be with www (*[www.chatlayer.ai](http://www.chatlayer.ai)*) or without (*chatlayer.ai*). Just the domain 'chatlayer' will not be accepted. | "[www.chatlayer.ai/jobs](https://www.chatlayer.ai/jobs)" | `sys: {url: 'www.chatlayer.ai/jobs', url_domain: 'chatlayer.ai'}`                                               |
| `sys.duration`        |                                                                                                                                                                                                     | "3 hours"                                                | `sys: {duration: '3', duration_unit: 'hour', duration_normalized: '10800', duration_normalized_unit: 'second'}` |

{% hint style="warning" %}
You should never overwrite System Entities yourself – they are automatically overwritten by the last detected variable (if any values are detected). So instead, save the System Entity to a [variable](https://docs.chatlayer.ai/navigation/settings/secure-variables-gdpr) of your own choosing outside the `sys` or `internal` namespaces.
{% endhint %}

## Use system entities

To use system entities in your bot:

1. Create a [**Collect input**](https://docs.chatlayer.ai/buildabot/flow-logic/dialog-state/user-input-bot-dialog) block. For instance, make it as a block that asks for the user email.

{% hint style="danger" %}
Please note that the number of system entities that you can use inside a **Collect input** block is limited. The system entities that you can use inside those blocks are: **sys.email**, **sys.phone\_number**, **sys.url**, **sys.number**, and **sys.time**.
{% endhint %}

2. Under **Capture use response as**, scroll down until you find the list of **System entities**.
3. Select the system entity of your choice. For this example, we would select `@sys.email`.

<figure><img src="https://2786867680-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FGScJy1XjPzbTp1v580dJ%2FScreenshot%202024-08-23%20at%2012.08.06.png?alt=media&#x26;token=66de9e09-b7cb-4cf6-8fa9-64f1a00ab6aa" alt="" width="327"><figcaption><p>Select a system entity.</p></figcaption></figure>

4. Under **Save variable as**, choose a variable to store the entity value.

<figure><img src="https://2786867680-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fv2pQqtHvTIcg1GW0gmzU%2FScreenshot%202024-08-23%20at%2012.09.23.png?alt=media&#x26;token=5f3ff54d-a82a-43ab-89c7-71b85386720f" alt="" width="325"><figcaption><p>Save the system entity value into a variable</p></figcaption></figure>

4. Click **Save**.
