Обновление данных (PATCH)
Из этой статьи вы узнаете, как изменять существующие записи в таблицах NocoDB с помощью PATCH-запросов из Smartbot Pro.
Перед началом работы настройте глобальные переменные %NOCODBURL%, %NOCODBTABLE% и %NOCODB_TOKEN%, как описано в статье Просмотр данных (GET).
Чем PATCH отличается от POST
POST
Создание новой записи. Поле Id не указываете — его выдаёт NocoDB.
PATCH
Частичное обновление существующей записи. В теле запроса обязательно указывается Id строки, которую нужно изменить.
PATCH обновляет только те поля, которые вы передали в JSON. Остальные столбцы в строке остаются без изменений.
Формат запроса:
PATCH https://<вашдомен>/api/v2/tables/<идентификатортаблицы>/recordsОткуда взять Id записи
Чтобы обновить строку, нужно знать её Id (целое число в NocoDB по умолчанию).
Варианты:
Сохранить Id из ответа после POST в переменную сценария.
Выполнить GET с фильтром (
where) и взятьIdиз первой подходящей записи в %response_data%.Посмотреть Id в интерфейсе NocoDB или в Swagger после тестового GET.
Обновление одной записи
1. Блок "Выполнить SmartQuery"

2. Блок "Отправить HTTP-запрос"
URL:
%url%Метод:
PATCHТело запроса: тип "Текст":
{{ %req_body% | to_json }}Заголовки:
accept
application/json
xc-token
%NOCODB_TOKEN%
content-type
application/json
Ответ — в переменную типа "Словарь" (или массив, если ваш сценарий так настроен).
Статус — в переменную типа "Число".

3. Ожидаемый результат
При успехе придет статус 200, а значение строки изменится.
Таблица до изменения:

После:

Обновление нескольких записей за один запрос
В %req_body% передайте массив объектов — у каждого должен быть свой Id и набор полей для изменения.
Поля, которые нельзя менять через PATCH
Следующие типы полей в NocoDB присваиваются автоматически и доступны только для чтения. Их передача в теле запроса может быть проигнорирована или привести к ошибке:
Created At
Updated At
Id
Если PATCH возвращает ошибку, проверьте, не пытаетесь ли вы записать в такое поле.
Last updated