Без тихих правок
Для записи обязательны предпросмотр и явное подтверждение.
Кейс Geoekoproekt
Найти страницу, изменить поле, поставить фото или создать черновик прямо из Telegram. Каждая запись сначала показывается, подтверждается и остаётся обратимой.
Даже рутинное изменение требовало открыть Drupal, найти нужный тип материала и поле, вспомнить устройство страницы. Мы сделали приватного оператора для владельца и редакторов, а не ещё один публичный чат.
«Создай из этого фото страницу, опубликуй и пришли ссылку».
01
Модель понимает запрос, но не получает доступ к Drupal и не умеет отправлять произвольные команды. Обычный код выбирает разрешённое действие, читает текущую ревизию, показывает preview и ждёт подтверждения.
REAL CHAT
В реальном диалоге оператор читает главную, находит страницу вакансий и принимает фотографию с обычной текстовой командой. Для международного кейса переведён только русский текст сообщений; ID, URL, время и состояния интерфейса сохранены.

Текст, голосовое сообщение или фото превращается в один структурированный запрос.
Telegram выводит целевую страницу и точное изменение.
Разрешить операцию может только её автор и только в течение десяти минут.
Drupal валидирует материал и создаёт новую ревизию. Бот возвращает готовую ссылку.
02
Для записи обязательны предпросмотр и явное подтверждение.
Connector не предоставляет физического удаления контента.
Если после preview страницу изменили, Drupal отклонит запрос.
Undo создаёт новую ревизию, а не стирает прежнюю.
03
Живые проверки нашли проблемы с русскими окончаниями в поиске, смыслом «самой свежей» статьи, дублями неопубликованных страниц, правами старого HTML и проверкой изображений. Каждая ошибка стала более узким правилом или детерминированной операцией.
Telegram-сервис на Node.js 22 работает в Docker на приватном VPS без публичного входящего порта. Один экземпляр управляет одним сайтом и использует одного AI-провайдера.
Запросы к Drupal connector подписаны HMAC SHA-256 с timestamp, одноразовым nonce, методом, полным request target и raw body. Для записи также нужны idempotency key и точная исходная revision.
Gemini планирует действие только по разрешённой схеме. Drupal проверяет allowlist полей, entity validation, реальные байты файла и создаёт ревизию.
Мелкие изменения сайта всё ещё ждут, пока кто-то откроет CMS?