> For the complete documentation index, see [llms.txt](https://docs.ncteam.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ncteam.io/nocodb/http-zaprosy.md).

# HTTP-запросы

Чтобы ваши HTTP-запросы в проекте были легко изменяемыми и масштабируемыми, следуйте лучшим практикам.

## Лучшие практики <a href="#undefined" id="undefined"></a>

## NocoDB URL <a href="#nocodburl" id="nocodburl"></a>

Храните URL NocoDB в глобальной переменной на случай, если вы поменяете адрес вашего сервера.

Где взять URL?

→ Откройте Swagger.

→ Откройте любой первый GET-запрос.

→ Нажмите “Try it out”.

→ Нажмите “Execute”.

→ Скопируйте блоки “Выполнить SmartQuery” и “Отправить HTTP-запрос” с обработкой ошибки.

URL будет находиться чуть ниже “Execute” в поле “Request URL”.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FpggHdtudo3QNFZiuwoSz%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.27.58.png?alt=media&amp;token=5af06bad-9e54-4923-93ce-ae5337ad2e3e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FhBf32CckJTGREOxANap3%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.28.11.png?alt=media&amp;token=e1daddba-16ae-4efa-b20b-22dbbd85060a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FZS0fG9mvF2FuDddexjPb%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.28.29.png?alt=media&amp;token=12c72af4-d86f-4b15-9e33-ea05d489928d" alt=""><figcaption></figcaption></figure>

Скопируйте все до `…tables/`.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FyJ0Ip2Y8YAVRA8xVg0JP%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.28.40.png?alt=media&amp;token=5c67828c-b7c3-41b8-8c22-c00e191f1cb5" alt=""><figcaption></figcaption></figure>

Создайте глобальную переменную и вставьте туда этот адрес.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F71d93kEh5Ih07Ff7E6w7%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.30.36.png?alt=media&amp;token=8c1360fb-02d1-4284-9e9b-3e615d8d4713" alt=""><figcaption></figcaption></figure>

## Идентификаторы таблиц <a href="#id-1" id="id-1"></a>

Храните идентификаторы таблиц в глобальной переменной типа словарь на случай, если добавятся/изменятся/удалятся таблицы в NocoDB.

Где взять идентификаторы таблиц?

Откройте Swagger.

Каждая ваша таблица содержит одну группу запросов.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FsEtp5Qo0uaYOjqlUTLXR%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.33.45.png?alt=media&amp;token=b2214060-2847-4e29-a3af-d02119fbf9cb" alt=""><figcaption></figcaption></figure>

Идентификаторы таблиц видны сразу же.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F5FyVJhzQ3AxagdBOC4ns%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.35.21.png?alt=media&amp;token=9ceb1b84-877b-4e5f-ba04-1cc7009f972e" alt=""><figcaption></figcaption></figure>

Чтобы скопировать идентификатор, выполните любой тестовый запрос.

Из поля “Request URL” вы можете выделить и скопировать идентификатор.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FV7VrwoKcWcpkuxpy2HoY%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.37.49.png?alt=media&amp;token=98c808e4-c177-44ba-8cf6-d12213c4ede8" alt=""><figcaption></figcaption></figure>

Создайте глобальную переменную с типом словарь, где ключ — название таблицы, значение — идентификатор.

```
{
   "Features":"m6uv6qopcq4layy",
   "Fake":"mw4871qe2a2r8j7"
}
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2Fv6cd3QSNyoQiQeYpZGWP%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_18.41.19.png?alt=media&amp;token=765b8b90-797e-40e0-8437-6fdbcbebcc09" alt=""><figcaption></figcaption></figure>

## Токен NocoDB <a href="#nocodb" id="nocodb"></a>

Храните токен NocoDB в глобальной переменной.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2Fbmyt8JZyAZMGr4AqnpU8%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_21.31.51.png?alt=media&amp;token=4317e704-4cb7-4df0-9713-f0a04faf345a" alt=""><figcaption></figcaption></figure>

## Заготовка из блоков <a href="#id-2" id="id-2"></a>

Используйте специальную заготовку из блоков “Выполнить SmartQuery” и “Отправить HTTP-запрос”, а также блоков с обработкой ошибок.

```
%get_url_arr% = []

# Метод запроса - True = GET, False = POST,PATCH,DELETE
%is_get% = True

# Таблица
%table% = ""

# Нужные поля в ответе
%fields% = ""

# Указать поля для сортировки и порядок
%sort% = ""

# Фильтры
%where% = ""

# Сколько нужно записей в ответе
%limit% = ""

# Перемешивание
# shuffle уже есть в Smartbot, поэтому shuffl
%shuffl% = ""

# С какой записи начать
%offset% = ""

# Если нужна одна запись
%record_id% = ""

%get_url_arr%.push("fields=" + %fields% if %fields% else %fields%)
%get_url_arr%.push("sort=" + %sort% if %sort% else %sort%)
%get_url_arr%.push("where=" + %where% if %where% else %where%)
%get_url_arr%.push("limit=" + %limit% if %limit% else %limit%)
%get_url_arr%.push("shuffle=" + %shuffl% if %shuffl% else %shuffl%)

%url% = (
    %NOCODB_URL% 
    + %NOCODB_TABLE%[%table%] 
    + "/records" 
    + (
        ("/" + %record_id% if %record_id% else "?" + (%get_url_arr% | join("&")))
        if %is_get% else ""
        )
    )

%req_body% = {}
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FKVRzQ56AZJpgvOMkqJf4%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_21.38.34.png?alt=media&amp;token=fdc1ab09-49ca-4d28-b5c8-9c5505c85ce5" alt=""><figcaption></figcaption></figure>

В блоке “Отправить HTTP-запрос” в поле URL введите %url%.

В заголовках укажите:

`accept` = `application/json`

`xc-token` = `%NOCODB_TOKEN%`

`content-type` = `application/json`

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FNGZIxsLJUPd95LvJUQTY%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_21.47.55.png?alt=media&amp;token=8fc68294-ddfd-4d97-a110-82bf1327e056" alt=""><figcaption></figcaption></figure>

Ответ сохраняйте в переменную с типом “Словарь”.

Статус ответа сохраняйте в переменную типа “Число”.

Заголовки ответа можно не сохранять.

Если GET-запрос — пустое тело запроса “Форма”.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FshBSP9Kn9ZblF2e9iofV%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_21.47.22.png?alt=media&amp;token=7c03122d-a14a-4fb4-89c7-82094e057456" alt=""><figcaption></figcaption></figure>

Если POST/PATCH/DELETE — тело запроса “Текст”:

```
{{ %req_body% | to_json }}
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FYybmKflY2qjELNzNwk0i%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_2025-01-12_%D0%B2_21.48.16.png?alt=media&amp;token=a3d954a1-5283-495f-ba97-834b98ba7533" alt=""><figcaption></figcaption></figure>

Если вы хотите всегда быть в курсе обо всех происшествиях с запросами, то:

→ Создайте блок “Webhook”.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FzVrlD3ahgamu6nazB7bc%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.14.13.png?alt=media&amp;token=bbfbc2c1-ee2b-4509-a2df-3194036827b4" alt=""><figcaption></figcaption></figure>

→ Создайте блоки “Выполнить SmartQuery” и “Выполнить HTTP-запрос”.

→ Добавьте следующий код в блок “Выполнить SmartQuery”:

```
%alert% = {
    "message": "Ошибка при формировании запроса",
    "block": ""
}

%req_body% = {
    "access_token":"ppFHtisTOfZTuLFIZ2atx3hM00vfI1q5RI0M3L_aGKCo6kQaPOq_3wjK-NBjpfqa",
    "v":"0.0.1",
    "channel_id":"7832339438",
    "block_id":"36b0f86002df181e13dc619f",
    "peer_id":"<вставьте id пользователя или его username>",
    "data": %alert%
}
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FPUdWuVc2bGLYjK9Whqom%2FA1BDB8BCBEBA_8DBA80B0BDB0_2025-01-28_B2_16.36.47.png?alt=media&amp;token=75ce1d6f-d9c0-4ed3-9ef2-0f861aaeb8f1" alt=""><figcaption></figcaption></figure>

→ Скопируйте URL вебхука.

→ Вставьте его в URL в блоке “Отправить HTTP-запрос”.

→ Поменяйте метод на POST.

→ Тело запроса выберите “Текст”:

```
{{ %req_body% | to_json }}
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FDnqkUblVn8KONoehuutX%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.27.32.png?alt=media&amp;token=be6a4ca6-a9ec-4b5c-9172-746dc0b3317e" alt=""><figcaption></figcaption></figure>

→ В заголовках передайте:

`content-type` = `application/json`

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2Fsh8SEFUOXImoFaJf04vW%2FA1BDB8BCBEBA_8DBA80B0BDB0_2025-01-28_B2_16.29.20.png?alt=media&amp;token=bd065c47-0840-432d-a700-33b1aa9fe32f" alt=""><figcaption></figcaption></figure>

Сохранять ответ, статус и заголовки необязательно.

→ Переместите блоки к заготовке

→ Проведите стрелку от выхода по ошибке блока “Выполнить SmartQuery” заготовки.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FCgLI94vojmL9EfMs5QRg%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.29.34.png?alt=media&amp;token=73ebab9f-f176-4284-995a-8b975a9e8cf1" alt=""><figcaption></figcaption></figure>

→ Откройте блок ”Выполнить SmartQuery”, от которого выходит стрелка по ошибке.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2Fael19F45cpAjrXSZQ7fm%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.40.04.png?alt=media&amp;token=8acbd566-6e4c-457a-bbf2-7649855bb7a9" alt=""><figcaption></figcaption></figure>

→ Нажмите на адресную строку вашего браузера и скопируйте URL целиком.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FtptiIv3WQtjUOj2MfKsA%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.40.22.png?alt=media&amp;token=26c883c7-9af5-49fd-aa3e-cb8a496a09b8" alt=""><figcaption></figcaption></figure>

→ Откройте блок “SmartQuery”, на который ведет стрелка по ошибке

→ В ключ “block” словаря %alert% вставьте скопированный URL

→ Замените значение “peer*id” словаря %req*body% на ваш id (или id админа)

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FZXNbjOoIjxbQfYZB6FjZ%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.44.12.png?alt=media&amp;token=92873caa-47fb-432a-9b7a-ee4cd6a8b025" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F806hlgRVpPf0fTj5cFPq%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.46.19.png?alt=media&amp;token=cca62600-52cf-48ff-aff2-45227cd26a64" alt=""><figcaption></figcaption></figure>

→ Проведите стрелку от ошибки блока “Отправить HTTP-запрос”.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2Fb3vfHh0TmOfhroEUm4s8%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.50.25.png?alt=media&amp;token=dd1a0e8d-0e11-4cb1-9db2-a74dc168b43e" alt=""><figcaption></figcaption></figure>

→ Создайте блок “Условие” с условием:

```
%Статус% == 200
```

→ Проведите к нему стрелку от блока “Отправить HTTP-запрос”.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FhnmQfeht2zUlNb5LWOLz%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_22.53.36.png?alt=media&amp;token=ba93c575-45c9-4fc6-8845-0490ef4780c7" alt=""><figcaption></figcaption></figure>

→ Сделайте дубликат из двух блоков “Выполнить SmartQuery” и “Отправить HTTP-запрос”, которые идут от стрелок с ошибками.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F7OdA9ffPFLEz25hTFqB3%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.52.23.png?alt=media&amp;token=2f754836-37cb-4f61-92a1-1b72dd4dcb61" alt=""><figcaption></figcaption></figure>

→ В блоке “Выполнить SmartQuery” замените “message” в `%alert%` на:

```
"Ошибка при запросе"
```

→ Здесь же, добавьте ниже строчку:

```
"code": %Статус%,
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F2FhLifu5Szuq8wHOEe5e%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.47.43.png?alt=media&amp;token=0bc4e46a-91bc-46f2-8324-288c5fea1f4f" alt=""><figcaption></figcaption></figure>

→ Вставьте блоки рядом с **“Иначе”** и соедините:

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2F8xLQIQlduBABWC7EiVwk%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.55.07.png?alt=media&amp;token=b14c2360-88ce-4369-9b0b-281402372dda" alt=""><figcaption></figcaption></figure>

→ Создайте блок **“Отправить сообщение”** и соедините с блоком **“Webhook”**.

→ Введите следующий текст сообщения:

```
Произошла ошибка!

%public_api_data%['message']
{{ '' if 'code' not in %public_api_data%  else "\nКод ошибки: " + %public_api_data%['code'] }}

%public_api_data%['block']
```

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FaePzGIKYigk4URAlWTwR%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-28_%2BD0%2BB2_16.55.49.png?alt=media&amp;token=9ff2ae2a-226e-4b67-aa92-bfa0a057a437" alt=""><figcaption></figcaption></figure>

Такую заготовку можно смело копировать, и настраивать под конкретные нужды.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FDiyldclQSUSrXgXPBcdL%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_23.08.12.png?alt=media&amp;token=510d136a-e2b3-4316-b905-6d324bc9bc1d" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
При копировании блоков их URL меняется.

Поэтому, в скопированных блоках нужно внести некоторые небольшие изменения, чтобы ошибка указывала на действительный блок.

Нужно снова выбрать блок, на который будет ссылаться ошибка, скопировать адрес из адресной строки и заменить “block” в %alert% в обоих цепочках с ошибками.
{% endhint %}

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FiCruy3ggBrUS6MJqZqsl%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_23.14.46.png?alt=media&amp;token=cae640c5-b18b-4e17-9f75-e01fdd9272fb" alt=""><figcaption></figcaption></figure>

Цепочка с вебхуком должна быть одна на весь проект. Можете поместить ее в отдельный сценарий.

<figure><img src="https://1945201336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FadGXspCXfuLDmMvBstfI%2Fuploads%2FrR6NgX917QdvvIZKTAhU%2F%2BD0%2BA1%2BD0%2BBD%2BD0%2BB8%2BD0%2BBC%2BD0%2BBE%2BD0%2BBA_%2BD1%2B8D%2BD0%2BBA%2BD1%2B80%2BD0%2BB0%2BD0%2BBD%2BD0%2BB0_2025-01-12_%2BD0%2BB2_23.22.49.png?alt=media&amp;token=b8d67b81-8b57-44bb-8939-18525a0b47ff" alt=""><figcaption></figcaption></figure>

## Преимущества <a href="#id-3" id="id-3"></a>

Плюсы от внедрения в проект лучших практик:

— Если у вас поменяется токен, не придется менять его во всех блоках, достаточно будет изменить глобальную переменную.

— Если у вас добавится/удалится таблица, достаточно будет добавить/удалить ее идентификатор в глобальной переменной.

— Если вы поменяете URL NocoDB (смените сервер или облако), достаточно поменять URL в одном месте.

— Минимум затрат времени на настройку очередного запроса к NocoDB.

— Вы сможете быстро реагировать на сбои и неполадки при работе бота, связанные с запросами в NocoDB.
