Зачем бизнесу CRM и где хранить данные

Понедельник, «Кодиум». Владелец открывает файл заявок на Яндекс Диске: за выходные пришло семь строк, из бота и с формы на сайте. Два менеджера уже кому-то звонили, но кому именно, в файле не видно. Один записал «перезвонить» у себя в блокноте, второй пометил строку жёлтым. Клиентка Ольга получила два звонка за час, ещё одну заявку не взял никто. Файл честно собрал заявки, но работать с ними вдвоём в нём неудобно. Так появляется следующий продукт паттерна: кабинет заявок.

Чему научишься в этом уроке:
• объяснять заказчику, чем кабинет заявок лучше общего файла;
• понимать, что требует закон о персональных данных к месту хранения заявок;
• объяснять, почему CRM «Кодиума» живёт на сервере в Москве, а бот остаётся в Амстердаме;
• считать себестоимость второго сервера.

Когда общего файла перестаёт хватать

Пока заявок мало и с ними работает один человек, таблица справляется. Трудности начинаются, когда людей становится двое и больше:

  • нет статуса: по строке не понять, звонили ли клиенту и чем кончилось;
  • нет памяти: кто поменял строку и что там было раньше, не узнать;
  • нет прав: любой, у кого есть ссылка на файл, видит все телефоны и может стереть строку;
  • нет порядка: файл правят одновременно, и правки теряются.

CRM (от английского customer relationship management, «управление отношениями с клиентами») решает именно это. Представь регистратуру в поликлинике. У каждого пациента своя карточка, в ней отмечено, кто его принял и что сделал. Медсестра видит запись к врачу, а главврач ещё и отчёты по всей поликлинике. Кабинет заявок устроен так же: у заявки есть карточка и статус, у сотрудника свой вход и своя роль, а журнал помнит, кто что менял.

Что получит «Кодиум»

Сквозной кейс паттерна: «Кабинет заявок». Это сайт, куда менеджер и владелец входят по логину и паролю.

  • Менеджер видит список заявок, фильтрует по статусу, ищет по имени или телефону, открывает карточку, меняет статус «новая → в работе → записан / отказ» и пишет комментарий.
  • Владелец может всё то же, плюс управляет пользователями (создать, отключить, сбросить пароль), выгружает заявки в xlsx и смотрит мини-аналитику: сколько заявок из каждого источника и какая доля дошла до «записан». Удалять заявки может только он.
  • Журнал записывает каждую смену статуса и каждое удаление: кто, когда, что было, что стало.

Бот из П1 и форма из П2 больше не пишут в файл. Каждая заявка сразу уходит в кабинет, а владельцу в Telegram приходит короткое уведомление со ссылкой, без имени и телефона. П4 в программе это раздел 5, поэтому уроки дальше нумеруются 5.1–5.7. Всё это прогнано руками в курсе, и в следующих уроках ты пройдёшь тот же путь.

Где хранить данные: что важно знать про 152-ФЗ

Это не юридическая консультация. Для заказчика с большим объёмом персональных данных нужен юрист. Ниже то, что стоит знать, чтобы не построить незаконную схему с первого дня.

Имя и телефон из заявки относятся к персональным данным (ПД), это мы разбирали в уроке 2.2. Там же было требование о записи данных граждан РФ в базы на территории России. В кабинете заявок оно становится главным:

  • часть 5 статьи 18 закона 152-ФЗ в редакции с 1 июля 2025 года: при сборе ПД граждан РФ запись, хранение, уточнение и извлечение их с использованием баз данных за пределами России не допускаются (текст статьи 18 на ГАРАНТ);
  • штраф за это по частям 8 и 9 статьи 13.11 КоАП: для компании от 1 до 6 млн ₽, повторно от 6 до 18 млн ₽ (текст статьи 13.11 на ГАРАНТ, сверено 10.10.2026; перед разговором с заказчиком проверь, не поменялась ли редакция);
  • передача ПД за рубеж регулируется отдельно и требует заранее уведомить Роскомнадзор.

Наш сервер из П1 стоит в Амстердаме. Пока он только пересылал заявку в файл на Яндекс Диске и ничего у себя не хранил, это было осознанное решение. Кабинет заявок же и есть база с именами и телефонами. Положить её в Амстердам значит прямо нарушить закон.

Почему два сервера, а не один

Логичный вопрос: тогда давай перенесём в Москву всё, и бота тоже. Не получится. В уроке 2.5 мы замеряли: с сервера в Новосибирске Telegram отвечал боту в 10 случаях из 20, и бот падал. Зато обычные сайты из России открываются мгновенно, а кабинету заявок Telegram не нужен вовсе.

Поэтому схема такая. Бот и форма остаются в Амстердаме и в момент приёма заявки сразу передают её в кабинет в Москве по защищённому соединению (HTTPS) с секретным ключом. На зарубежном сервере имя и телефон не задерживаются. Представь почтальона, который не складывает письма у себя дома, а сразу несёт их в отделение.

Схема двух серверов «Кодиума». Слева блок «Амстердам»: бот Telegram и приём формы с сайта, подпись «ПД не храним». Стрелка «заявка, HTTPS + ключ» ведёт вправо в блок «Москва»: «Кабинет заявок», база SQLite, подпись «ПД граждан РФ, 152-ФЗ». Отдельная стрелка из Амстердама в Telegram владельца: «Новая заявка №N, курс, источник + ссылка», без имени и телефона.

Остаётся честная оговорка: бот всё же принимает имя и телефон в Амстердаме, пусть и на секунды. Как это оценит закон, вопрос к юристу заказчика, как и в П1. Тот же вопрос к юристу заказчика про запасной путь: если кабинет недоступен, бот пришлёт владельцу в Telegram «CRM недоступна, клиент: имя, телефон», чтобы заявка не потерялась. Если заказчик или юрист против, вместо имени и телефона шли только номер попытки. Мы делаем то, что зависит от нас: не храним ПД за рубежом.

Был и другой вариант: кабинет читает и пишет тот же xlsx на Яндекс Диске, без второго сервера. Мы его отбросили. Два менеджера, правящие файл одновременно, теряют правки, журнала нет, а резервная копия базы и проверки теряют смысл. Это был бы снова П2, только медленнее.

Сколько стоит второй сервер

Сервер в Москве заказываем там же, в Timeweb Cloud. В панели оператора 10.10.2026 конфигурация из прогона в регионе «Москва» (1 ядро 3,3 ГГц, 1 ГБ памяти, 15 ГБ диска) стоила 1 720 ₽ в месяц или 2,35 ₽ в час при почасовой оплате. Цены меняются, перед заказом посмотри свою в панели.

Эти 1 720 ₽ в месяц ты платишь каждый месяц, пока кабинет работает. Значит, их нужно заложить в поддержку, которую оплачивает заказчик. Как считать цену и где держать границы, разберём в уроке про клиентов и деньги в конце паттерна.

Кейс из жизни: заказчик говорит «зачем второй сервер, у нас же есть первый». Ответ в одну фразу: «Телефоны ваших клиентов по закону должны лежать в России, а Telegram из России работает нестабильно. Поэтому бот за рубежом, а база здесь».

Контрольный вопрос. Почему кабинет заявок «Кодиума» нельзя поставить на тот же сервер в Амстердаме, где работает бот?

АСервер в Амстердаме слишком слабый для сайта
БВ кабинете хранятся имена и телефоны граждан РФ, а их по 152-ФЗ нужно хранить в базах в России
ВTelegram запрещает ставить сайты рядом с ботом
ГКабинету нужен Telegram, а в Амстердаме он не работает

Подсказка: Что лежит в базе кабинета?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Почему бы не перенести в Москву и бота, чтобы был один сервер?

АБоту запрещено работать в России
БВторой сервер дешевле первого
ВС российского сервера Telegram отвечал боту нестабильно, и бот падал
ГБот не умеет отправлять заявки по HTTPS

Подсказка: Вспомни замер из урока 2.5.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Сервер в Москве стоит 1 720 ₽ в месяц. Что с этой суммой делать в расчёте для заказчика?

АЗаплатить самому один раз при запуске
БНе учитывать, это мелочь
ВПопросить заказчика оплатить сразу за 5 лет
ГВключить в ежемесячную поддержку, потому что сервер оплачивается каждый месяц

Подсказка: Как часто приходит счёт за сервер?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Задание. МИССИЯ «Где живут заявки». 1. Возьми своего заказчика (тот же, что в П1–П3). Выпиши все места, куда сейчас попадают его заявки или клиенты: файл, мессенджер, блокнот, почта, твой бот. 2. Для каждого места ответь: кто туда смотрит, видно ли статус, видно ли, кто последним менял, кто может удалить. 3. Отметь, где лежат персональные данные и в какой стране физически стоит это хранилище (если не знаешь, так и пиши «не знаю», это вопрос к заказчику). 4. Набросай схему: где у тебя будет кабинет, где бот или форма, как заявка попадает в кабинет. Сделай в среде: Проверь страну хранения вживую: возьми IP своего сервера с ботом и открой ipinfo.io/. Принято, если: приложены таблица мест (место, кто смотрит, статус, кто менял, страна хранения) и схема с подписью, в какой стране хранятся ПД; приложен снимок ipinfo со страной сервера, и она совпадает со страной на схеме.

Подсказка: Начни с самого частого пути: откуда к заказчику приходит большинство клиентов?

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Что дальше

Задача ясна, место для данных выбрано. В следующем уроке спроектируем кабинет: какие поля в заявке, какие роли и что пишет журнал.

Итог:
• общий файл не даёт статуса, журнала и прав, кабинет даёт;
• ПД граждан РФ храним в базе в России (152-ФЗ, ч. 5 ст. 18), поэтому кабинет в Москве;
• бот остаётся в Амстердаме и сразу передаёт заявку в кабинет по ключу;
• сервер в Москве стоит 1 720 ₽ в месяц на 10.10.2026, это часть поддержки.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева