# System entities

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

<figure><img src="/files/3qTSGhkvmW8HZ6RJEnJ7" 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](/navigation/settings/secure-variables-gdpr.md) 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**](/buildabot/flow-logic/dialog-state/user-input-bot-dialog.md) 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="/files/Sbvk9FyfWmZaq7RElG0K" 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="/files/T1IW71frEI2kIDjYqmV6" alt="" width="325"><figcaption><p>Save the system entity value into a variable</p></figcaption></figure>

4. Click **Save**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chatlayer.ai/nlp/natural-language-processing-nlp/detect-information-with-entities/system-entities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
