Завайбкодил CRM за выходные: что отвалится на втором месяце
Пара вечеров с нейросетью — и CRM готова. Бот в Telegram работает, карточки клиентов заполняются, воронка настроена. Можно пользоваться.
А через месяц сообщения перестают приходить. Код никто не менял, в логах ошибок нет. Менеджеры ждут обращения, но новые переписки в CRM не появляются.
Мы знаем эту ситуацию с двух сторон. Наш разработчик тоже собрал с помощью нейросети сервис рассылок на базе нашего API. Но подключать мессенджеры, поддерживать сессии и следить за доставкой сообщений ему не пришлось. Все это уже было готово.
В этом и заключается главная сложность вайбкодинга. Написать код стало проще. Сделать так, чтобы он стабильно работал с чужими сервисами, по-прежнему непросто.
Разберемся, что может пойти не так, почему это происходит и какую часть работы можно передать готовому сервису.
Коротко о главном
- Собрать CRM можно за вечер, а поддерживать интеграции придется постоянно. Интерфейс, карточки и воронку нейросеть поможет сделать быстро. Но за доставкой сообщений нужно следить отдельно.
- Не все мессенджеры можно подключить самостоятельно. У личного WhatsApp* нет открытого API, а для WABA* нужны официальный провайдер и проверка компании.
- Сообщения могут дублироваться, приходить не по порядку или теряться. Если не предусмотреть такие ситуации в коде, проблемы обнаружатся уже в работе.
- Нейросеть может ошибиться и в коде, и в тестах. В итоге проверка покажет, что все работает, хотя это не так.
- Своя CRM — это ответственность за персональные данные. Нужно учитывать требования к хранению данных, уведомлению Роскомнадзора и получению согласий. Штраф за утечку данных доходит до 15 млн рублей, а за повторную — 1–3% выручки, но не меньше 20 млн.
Мы тоже вайбкодим
Наш разработчик за несколько вечеров собрал сервис каскадных рассылок на базе публичного API Radist.Online.
Сервис отправляет сообщения по очереди, соблюдает паузы и дневной лимит. Если сообщение не доставлено через один канал, система пробует следующий. Новые методы API и специальные доступы не понадобились.
Все работает. Но есть важный момент: разработчик не писал интеграции с нуля. Подключение мессенджеров, работа с сессиями и обработка сбоев уже были на нашей стороне. Ему оставалось написать собственную логику рассылок.
Разработчик объясняет это так: «Писать свои CRM сейчас может каждый. А содержать к ним мессенджеры самому — это серверы, мониторинг и люди, которые за этим следят».
Так можно быстро получить инструмент под свои задачи. Но если создавать CRM с нуля, придется самостоятельно решать и технические задачи, которые в готовом сервисе уже закрыты.
Почему написать CRM проще, чем подключить мессенджеры
В CRM вы сами задаете правила: какие поля нужны в карточке клиента, как устроена воронка, кому назначать обращения. Нейросеть может написать код по вашему описанию.
С мессенджерами так не получится. У каждой площадки свои правила подключения, ограничения и способы авторизации. Они могут меняться независимо от вас.
Например, раньше сессия оставалась активной неделю, а теперь отключается через сутки. Или номер, который раньше отображался в профиле, больше не виден.
Ваш код при этом может оставаться прежним. Но интеграция уже работает иначе.
В итоге вместо разработки новых функций приходится выяснять, почему перестали приходить сообщения, восстанавливать подключение и искать пропущенные события.
Какие каналы нельзя подключить одним кодом
У каждого мессенджера свои условия. Где-то достаточно создать бота, а где-то нужны отдельная авторизация, определенный тариф или проверка компании.
| Канал | Что нужно для подключения |
|---|---|
| Telegram, бот | Есть официальный API, подключение простое |
| Telegram, личный аккаунт | Нужен клиент мессенджера, а не бот |
| WhatsApp*, личный | Открытого API нет. Подключаем как связанное устройство по QR-коду — так же, как WhatsApp* на компьютере |
| WhatsApp Business API | Подключение через официального провайдера после проверки компании |
| МАКС | Личный аккаунт и боты подключаются по-разному, у площадки свой порядок |
| Авито | Нужны профессиональный профиль и тариф «Максимальный». Только на нем доступен Messenger API |
| ВКонтакте | Сообщества и личные аккаунты подключаются по-разному |
Нейросеть не решит проблему, если у вас нет доступа к нужному API. Сначала придется выполнить условия площадки, а уже потом писать код.
Поэтому до разработки стоит проверить, какие каналы нужны бизнесу, как они подключаются и какие ограничения действуют для каждого из них.
Что ломается на втором месяце
На небольшом объеме проблемы могут долго не проявляться. Но когда обращений становится больше, CRM сталкивается с ситуациями, которые нельзя решить одним простым правилом.
1. Одно сообщение появляется дважды
События от мессенджеров не всегда приходят по порядку. Иногда одно и то же событие приходит повторно.
CRM должна понимать, что это уже обработанное сообщение, а не новое. Для этого используют идентификатор события. Например, в Radist.Online мы учитываем тип события и идентификатор сообщения.
Без такой проверки CRM может дважды добавить одну реплику в переписку. Если события пришли не по порядку, сообщения еще и отобразятся не по хронологии.
2. Сервер не ответил — часть переписки потерялась
На ответ вашего сервера отводится 5 секунд. Если он не ответил, система повторит отправку через 1, 3, 10, 30 и 60 минут. После пятого повтора событие больше не придет. Весь процесс занимает примерно час сорок пять.
Допустим, сервер не работал два часа. Часть сообщений не попадет в CRM, даже когда сервер снова заработает.
Чтобы восстановить переписку, придется отдельно запросить пропущенные сообщения из истории чатов. Если такой механизм не предусмотрен, в базе останутся пробелы. Вы можете даже не заметить, что потеряли часть обращений.
Дубли и ответ за пять секунд закрываются одним обработчиком: он подтверждает событие сразу и отсекает повтор по паре «тип события плюс идентификатор сообщения». А вот пропущенное за время простоя обработчик не вернет — для этого и нужен запрос к истории чатов.
@app.post("/radist/hook")
def on_message(event):
key = (event["event_type"], event["message_id"])
if already_handled(key):
return 200 # дубль: подтверждаем и выходим
save_to_card(event)
return 200 # ответ должен уйти за 5 секунд
Тяжелую работу — разбор вложений, запись в базу, уведомления менеджеру — лучше выносить в фоновую задачу. Иначе ответ не успеет уйти вовремя, и событие придет повторно.
3. Один клиент — три карточки
Правило «совпал номер — прикрепили к контакту, не совпал — создали новый» кажется логичным. Но клиент может написать с рабочего номера, потом с личного, а затем обратиться через Telegram, где номер телефона часто вообще не виден.
В итоге CRM создает несколько карточек одного человека. Менеджер не видит полной истории общения и может принять постоянного клиента за нового.
Поэтому нужно заранее продумать, как связывать обращения из разных каналов и что делать, если номера не совпадают или телефон не указан.
В Radist.Online чат сам привязывается к контакту по номеру телефона. В Telegram — к тому же человеку, даже если он писал и в бота, и на личный номер.
4. Запросов слишком много, файлы слишком большие
API позволяет отправлять пять запросов в секунду, а для получения списка контактов и чатов с контактами — один запрос в секунду.
Если нейросеть напишет код для массовой выгрузки без учета этих ограничений, часть запросов не пройдет. Например, при загрузке большой базы контактов.
У файлов тоже есть лимиты. Через API можно принять файл до 100 МБ, но у отдельных мессенджеров ограничения строже. Например, для изображений в WABA* действует лимит до 5 МБ.
Если не учесть это заранее, CRM может не принять файл, который клиент рассчитывал отправить.
5. Номер отключился, а CRM этого не заметила
Сессия мессенджера может завершиться, авторизация — истечь. Если CRM не проверяет состояние подключения, она не сообщит об этом.
Сообщения перестанут поступать, а в системе все будет выглядеть нормально. Менеджеры решат, что клиенты просто не пишут.
Чтобы обнаружить проблему, нужно отслеживать состояние подключений и уведомлять об отключении номера. Сам факт, что интеграция однажды заработала, не означает, что она продолжит работать без контроля.
Для этого есть отдельное событие — connections.status_changed. На него стоит подписаться вместе с событиями о сообщениях и выводить статус подключения туда, где его увидят.
Почему тесты могут не найти ошибку
Нейросеть может написать код и сама же подготовить тесты для его проверки. Проблема в том, что она способна одинаково неправильно понять задачу и в коде, и в тестах.
В результате тесты пройдут, хотя в реальной работе все сломается.
Поэтому нужно проверять не только обычный сценарий, когда клиент написал и сообщение появилось в CRM. Важно посмотреть, что произойдет, если:
- одно событие придет дважды;
- события придут не по порядку;
- сервер будет недоступен десять минут;
- в базе будет десять тысяч контактов вместо десяти и поиск по номеру начнет тормозить.
Есть и вопрос безопасности. Ключ API дает доступ к действиям от имени владельца компании. Это не пароль от одного номера, а ключ к возможностям кабинета.
Его нельзя хранить в открытом репозитории, отправлять в переписке или вставлять в запросы к нейросети.
В разборе API для своей CRM мы собрали чек-лист из шести проверок перед запуском и готовые промпты для нейросети: для подписки на события, отправки сообщений и проверки сбоев.
Что нужно учесть по закону
Если вы храните в своей CRM имена, телефоны и другие данные клиентов, вы становитесь оператором персональных данных. Неважно, кто написал код — вы, штатный разработчик или нейросеть. Обязанности остаются у вас.
Перед запуском проверьте четыре момента:
1. Где хранятся данные клиентов
С 1 июля 2025 года сбор и хранение персональных данных граждан РФ в зарубежных базах запрещены. Поэтому важно знать, где физически находится ваша база данных.
Проверьте хостинг и инфраструктуру, которые используете для CRM. То, что код написан с помощью нейросети, ничего не говорит о том, подходит ли выбранный сервер для хранения данных российских клиентов.
2. Подано ли уведомление в Роскомнадзор
Уведомление об обработке персональных данных нужно подать до начала работы. Исключений осталось мало, и CRM с данными клиентов к ним не относится.
3. Есть ли отдельное согласие на обработку данных
С 1 сентября 2025 года согласие на обработку персональных данных нельзя включать в текст оферты или пользовательского соглашения. Оно должно оформляться отдельно.
4. Какие данные вы передаете нейросети
Не загружайте реальную клиентскую базу в зарубежный сервис без проверки требований к такой передаче. Передача персональных данных за границу подпадает под отдельные правила.
Для проверки кода обычно достаточно нескольких выдуманных контактов. Публичную документацию API можно использовать для подготовки запросов к нейросети.
Сколько может стоить ошибка
За нарушения в работе с персональными данными предусмотрены крупные штрафы.
| Нарушение | Штраф для компании |
|---|---|
| Данные россиян в зарубежной базе | 1–6 млн ₽ |
| Утечка данных 1–10 тыс. человек | 3–5 млн ₽ |
| Утечка данных более 100 тыс. человек | 10–15 млн ₽ |
| Повторная утечка | 1–3% выручки, но не меньше 20 млн ₽ |
| Нет уведомления об обработке данных | 100–300 тыс. ₽ |
| Обработка данных без согласия | 300–700 тыс. ₽ |
| Реклама в мессенджере без согласия | 300 тыс. – 1 млн ₽ |
По большинству перечисленных нарушений ИП платит такие же штрафы, как компания.
Источники: ст. 13.11, 13.55 и 14.3 КоАП РФ, 152-ФЗ, 38-ФЗ, 41-ФЗ, 406-ФЗ. Редакция на октябрь 2026 года. Материал носит информационный характер и не заменяет юридическую консультацию.
Подробный разбор всех семи пунктов, включая требования к входу для клиентов, есть в материале про API для своей CRM. Отдельно мы разобрали, как устроена защита данных при работе с мессенджерами и CRM.
Что оставить себе, а что передать сервису
В работе CRM с мессенджерами есть две части.
Первая — то, что определяет работу вашей компании:
- интерфейс;
- сделки и воронка;
- аналитика;
- инструменты для менеджеров.
Это ваша логика продаж. Вы сами решаете, как она должна работать.
Вторая — техническая работа с мессенджерами:
- подключение номеров;
- управление сессиями и состоянием подключения;
- доставка сообщений и получение статусов;
- повторные попытки при сбоях;
- привязка сообщений к контактам;
- прием файлов.
Именно эта часть требует постоянного внимания после запуска. Поэтому ее можно передать готовому сервису, а свои силы направить на развитие CRM.
Например, один клиент собрал CRM с помощью нейросети и подключил к ней личный МАКС и бота МАКС. Самостоятельно заниматься подключением мессенджеров он не стал.
Так поступают и разработчики, которые создают CRM для других компаний.
Например, разработчик OkoCRM подключил своим клиентам WhatsApp*, WABA* и Telegram через внешний API Radist.Online. Инструкции по подключению есть и в их базе знаний, и в нашей документации.
Технически это и есть внешний API Radist.Online: семь каналов — WhatsApp*, WhatsApp Business API, Telegram, МАКС, ВКонтакте, Авито и Одноклассники — приходят через один интерфейс. Формат сообщений и событий у них одинаковый, поэтому добавление нового канала не требует нового кода в вашей CRM.
Само API бесплатное. Вы платите только за подключенные номера — так же, как и без него.
Чего нельзя обещать при подключении мессенджеров
Личный WhatsApp* подключается как связанное устройство — так же, как WhatsApp* на компьютере. Ни один сервис не может гарантировать защиту от блокировки за спам. Обещать обратное было бы нечестно.
Но есть способы снизить риски и упростить работу:
- Прогрев новых номеров Telegram и МАКС в течение восьми дней — бесплатно.
- Бесплатная замена номера, если его все-таки заблокировали.
- Боты Telegram и МАКС без лимитов на сообщения.
- Официальный WABA* для массовых рассылок.
Отдельно стоит учитывать стоимость WABA*. С 1 октября 2026 года Meta* берет плату и за сообщения бизнеса внутри 24-часового окна. Первые 1 000 обычных сообщений в месяц на каждый номер бесплатны, а шаблоны «Услуги» оплачиваются с первого сообщения.
Если планируете массовые рассылки, заранее оцените объем сообщений и расходы.
Итог
Собрать CRM с помощью нейросети за выходные действительно можно. Это хороший способ создать инструмент под свои задачи, а не подстраивать процессы под готовое решение. Мы и сами так делаем.
Но готовый интерфейс — еще не готовая система.
В работе могут возникнуть проблемы, которых не было на старте: доступ к мессенджеру окажется недоступен, события начнут дублироваться, часть сообщений потеряется, а подключение отключится без предупреждения. Параллельно придется соблюдать требования к персональным данным.
Поэтому имеет смысл разделить задачи. Интерфейс, воронку и логику продаж можно разрабатывать самостоятельно. Подключение мессенджеров, контроль сессий и обработку сбоев — передать сервису, который поддерживает эту инфраструктуру.
Так вы сможете развивать собственную CRM, не тратя все время на починку интеграций.
Частые вопросы
Можно ли подключить WhatsApp к своей CRM?
У личного WhatsApp* нет открытого API, поэтому официально подключить его собственным кодом нельзя. Для бизнеса существует WhatsApp Business API, который подключается через официального провайдера после проверки компании. Еще один вариант — подключить канал через сервис-интегратор и работать с ним из своего кода по API этого сервиса.
Что делать, если моя интеграция уже ломается?
Переписывать CRM не придется. Интерфейс, карточки, сделки и логика остаются как есть — меняется только то, что отвечает за мессенджеры: один обработчик событий вместо старого и отправка в два запроса. Номера подключаются заново в личном кабинете, а остаток оплаченных дней у прежнего сервиса переносится бесплатно. Как устроен переезд, разобрали в материале про API для своей CRM.
Что проще: написать свою CRM или взять готовую?
Зависит от того, насколько ваши процессы отличаются от типовых. Своя CRM дает больше свободы, но вы также отвечаете за сервер, обновления, резервные копии и персональные данные клиентов. Готовая CRM берет часть технических задач на себя, но вам, возможно, придется подстраивать под нее свои процессы.
Сколько каналов можно подключить через один API?
Через внешний API Radist.Online доступны семь каналов: WhatsApp*, WhatsApp Business API, Telegram, МАКС, ВКонтакте, Авито и Одноклассники. Формат сообщений и событий одинаковый для всех каналов, поэтому для добавления нового не требуется писать отдельный код в CRM.
Что будет, если сообщение не дойдет до моей CRM?
Если ваш сервер не ответил за 5 секунд, система повторит отправку через 1, 3, 10, 30 и 60 минут. После пятого повтора событие больше не придет. Пропущенные сообщения нужно отдельно запрашивать из истории чатов. Если в самописной интеграции не предусмотрено восстановление пропущенных событий, сообщения могут потеряться незаметно для вас.
Нужно ли уведомлять Роскомнадзор, если CRM используется только внутри компании?
Да. Уведомление об обработке персональных данных подается до начала обработки. Исключений осталось мало, и CRM с именами и телефонами клиентов к ним не относится. Штраф для компании за отсутствие уведомления составляет от 100 до 300 тысяч рублей.
Можно ли дать нейросети доступ к базе клиентов?
Не стоит передавать реальные персональные данные в зарубежный сервис без проверки требований к такой передаче. Для отладки кода достаточно нескольких выдуманных контактов. Публичную документацию сервиса можно использовать для подготовки запросов к нейросети. Для этого у нас есть отдельное оглавление документации для ИИ.
С чего начать
- Откройте разбор API для своей CRM. Там есть готовые промпты для нейросети, чек-лист из шести проверок перед запуском и подробный юридический блок.
- Оставьте заявку. Разберем вашу задачу и подскажем, какие каналы подойдут под ваш поток обращений.
Тест — 3 дня без привязки карты. Цены по всем каналам — на странице тарифов.
* WhatsApp и Meta — продукты компании Meta, признанной экстремистской и запрещенной на территории Российской Федерации.



