Бот для сообщества ВКонтакте начинается не с нейросети, а с трёх настроек в самой группе. Ниже — что именно включить, почему бот иногда молчит при живом сервере и как выглядит честный разбор его ошибки.
Что VK требует от владельца сообщества
Два права в ключе доступа решают всё: «сообщения» и «управление». Без них Callback API не увидит переписку сообщества. Ключ выпускается в разделе «Управление → Работа с API → Ключи доступа», а дальше в настройках группы указывается адрес вебхука и версия API 5.199: это и есть Callback API. VK в ответ присылает запрос confirmation, что-то вроде рукопожатия, и ждёт быструю строку: не успел за секунды, жди повторный запрос. Из типов событий включаем «Входящее сообщение» и обязательно выключаем «Набор текста»: если оставить, воркфлоу захлёбывается собственными запусками при активной переписке, и брони теряются на ровном месте.
Отдельного тумблера «Сообщения сообщества включены» в документации VK нет. Мы тоже искали. Разработчики ищут его по привычке, но всё покрывает право «сообщения» в самом ключе доступа.
Сначала подключаем тестовую группу и гоняем синтетику: POST на вебхук с тестовым peer_id, без единого реального клиента в цепочке. Боевую группу переключаем, когда прошёл живой смоук: бот отвечает на вопрос по базе знаний, доводит клиента до записи, получает жалобу, эскалирует её оператору и возвращает диалог обратно боту.
Когда бот молчит, хотя сервер жив
Статус failed в проверке groups.getCallbackServers — самый обманчивый сигнал парка. Он значит, что VK перестал доставлять апдейты: эндпоинт где-то упал, VK попробовал несколько раз и сдался.
Воркфлоу при этом может быть полностью живым — активен, без единой ошибки в логе. Бот ни при чём.
Клиент пишет в сообщество, бот не отвечает, а с виду всё в порядке: сервер включён, ошибок нет. Чинится это не перезапуском бота, а двумя действиями подряд: деактивировать и снова активировать вебхук в n8n, сбросив кэш, и заново подтвердить сервер в разделе Callback API самой группы. После этого статус в VK сам возвращается в ok.
Нейросеть вместо меню с кнопками
У кнопочного меню один набор ответов на все случаи, придуманный заранее. У бота работает база знаний, собранная из постов самого сообщества: у одного клиента, спортивного центра, в неё легло 87 постов ВК, и бот заговорил его языком, а не нашим.
Опасения понятны. Похоже на риск: раз бот сочиняет ответ сам, он может наговорить лишнего. На практике у него есть тормоза — список того, чего обещать нельзя, маркер эскалации прямо в тексте ответа и порог для допуска в бой: 90% на тестовом наборе вопросов, ниже бот туда не уходит. Сложные и спорные случаи бот передаёт человеку. Менеджер получает карточку заявки в Telegram и может включиться в переписку. Пока он в диалоге, бот молчит. Если менеджер отвлёкся, бот через время сам аккуратно возвращается к разговору. Командой /бот оператор в любой момент возвращает диалог боту вручную.
Как устроена эта передача во всём парке ботов, показываем в отдельном разборе.
Комментарии и переписка в одном окне
361 диалог и 3011 сообщений — так выглядела переписка школы бега RunStart в кабинете после переноса истории; до этого там висело всего 6 диалогов и 129 сообщений, накопленных заживую с момента подключения бота. Перенос делает готовый пакет, без написания нового кода под каждое сообщество.
Комментарии под постами сообщества приходят в тот же кабинет ConOmni отдельным разделом. Беседа здесь — запись сообщества и её автор, а не общий диалог сообщества. Токен сообщества не умеет читать стену, удалять посты или банить. Ничего лишнего. Бот только замечает нарушение и зовёт оператора, решение остаётся за человеком.
Как бот перепутал номер на четверых
9 сентября в переписке базы отдыха под Петрозаводском гость спросил номер на четверых на 12 сентября, на сутки. Бот предложил четырёхместный номер и двухместный сразу, добавив, что «возможно, придётся дополнительно разместить ещё двоих в других номерах» — а про домики, акцию и стоимость суток не сказал ни слова. Администратор дописала три вещи вручную.
Причин нашлось три, а не одна, как показала первая редакция разбора. Таблица подбора номеров ссылалась на соседнюю строку короткой фразой «дальше как в строке „1–2“», и модель разворачивала только саму ссылку, теряя хвост про домики. Правило «несколько номеров для компании от пяти человек» не имело нижней границы, и бот применил его к четверым. Формулировка в промпте про краткость ответа подталкивала резать список до одного варианта.
Три дня раньше тот же бот путал темы, встревая поверх ответа администратора: автовозврат к боту срабатывал по паузе в переписке независимо от того, кто писал последним.
Правило про «несколько номеров» получило нижнюю границу, до четырёх гостей бот про несколько номеров теперь не заговаривает вовсе. Добавили сторож, который сверяет вместимость варианта с числом гостей прямо в таблице. Тестовый набор вырос с 45 случаев до 62, и все они зелёные.