Понедельник, «Кодиум». Владелец открывает файл заявок на Яндекс Диске: за выходные пришло семь строк, из бота и с формы на сайте. Два менеджера уже кому-то звонили, но кому именно, в файле не видно. Один записал «перезвонить» у себя в блокноте, второй пометил строку жёлтым. Клиентка Ольга получила два звонка за час, ещё одну заявку не взял никто. Файл честно собрал заявки, но работать с ними вдвоём в нём неудобно. Так появляется следующий продукт паттерна: кабинет заявок.
Чему научишься в этом уроке:
• объяснять заказчику, чем кабинет заявок лучше общего файла;
• понимать, что требует закон о персональных данных к месту хранения заявок;
• объяснять, почему 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) с секретным ключом. На зарубежном сервере имя и телефон не задерживаются. Представь почтальона, который не складывает письма у себя дома, а сразу несёт их в отделение.

Остаётся честная оговорка: бот всё же принимает имя и телефон в Амстердаме, пусть и на секунды. Как это оценит закон, вопрос к юристу заказчика, как и в П1. Тот же вопрос к юристу заказчика про запасной путь: если кабинет недоступен, бот пришлёт владельцу в Telegram «CRM недоступна, клиент: имя, телефон», чтобы заявка не потерялась. Если заказчик или юрист против, вместо имени и телефона шли только номер попытки. Мы делаем то, что зависит от нас: не храним ПД за рубежом.
Был и другой вариант: кабинет читает и пишет тот же xlsx на Яндекс Диске, без второго сервера. Мы его отбросили. Два менеджера, правящие файл одновременно, теряют правки, журнала нет, а резервная копия базы и проверки теряют смысл. Это был бы снова П2, только медленнее.
Сколько стоит второй сервер
Сервер в Москве заказываем там же, в Timeweb Cloud. В панели оператора 10.10.2026 конфигурация из прогона в регионе «Москва» (1 ядро 3,3 ГГц, 1 ГБ памяти, 15 ГБ диска) стоила 1 720 ₽ в месяц или 2,35 ₽ в час при почасовой оплате. Цены меняются, перед заказом посмотри свою в панели.
Эти 1 720 ₽ в месяц ты платишь каждый месяц, пока кабинет работает. Значит, их нужно заложить в поддержку, которую оплачивает заказчик. Как считать цену и где держать границы, разберём в уроке про клиентов и деньги в конце паттерна.
Кейс из жизни: заказчик говорит «зачем второй сервер, у нас же есть первый». Ответ в одну фразу: «Телефоны ваших клиентов по закону должны лежать в России, а Telegram из России работает нестабильно. Поэтому бот за рубежом, а база здесь».
Контрольный вопрос. Почему кабинет заявок «Кодиума» нельзя поставить на тот же сервер в Амстердаме, где работает бот?
Подсказка: Что лежит в базе кабинета?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Почему бы не перенести в Москву и бота, чтобы был один сервер?
Подсказка: Вспомни замер из урока 2.5.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Сервер в Москве стоит 1 720 ₽ в месяц. Что с этой суммой делать в расчёте для заказчика?
Подсказка: Как часто приходит счёт за сервер?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Задание. МИССИЯ «Где живут заявки». 1. Возьми своего заказчика (тот же, что в П1–П3). Выпиши все места, куда сейчас попадают его заявки или клиенты: файл, мессенджер, блокнот, почта, твой бот. 2. Для каждого места ответь: кто туда смотрит, видно ли статус, видно ли, кто последним менял, кто может удалить. 3. Отметь, где лежат персональные данные и в какой стране физически стоит это хранилище (если не знаешь, так и пиши «не знаю», это вопрос к заказчику). 4. Набросай схему: где у тебя будет кабинет, где бот или форма, как заявка попадает в кабинет. Сделай в среде: Проверь страну хранения вживую: возьми IP своего сервера с ботом и открой ipinfo.io/. Принято, если: приложены таблица мест (место, кто смотрит, статус, кто менял, страна хранения) и схема с подписью, в какой стране хранятся ПД; приложен снимок ipinfo со страной сервера, и она совпадает со страной на схеме.
Подсказка: Начни с самого частого пути: откуда к заказчику приходит большинство клиентов?
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Что дальше
Задача ясна, место для данных выбрано. В следующем уроке спроектируем кабинет: какие поля в заявке, какие роли и что пишет журнал.
Итог:
• общий файл не даёт статуса, журнала и прав, кабинет даёт;
• ПД граждан РФ храним в базе в России (152-ФЗ, ч. 5 ст. 18), поэтому кабинет в Москве;
• бот остаётся в Амстердаме и сразу передаёт заявку в кабинет по ключу;
• сервер в Москве стоит 1 720 ₽ в месяц на 10.10.2026, это часть поддержки.
