КЕЙС · СВОЯ РАЗРАБОТКА

CRM АДРИАН: продажи, разработка и финансы в одной системе

Свою CRM мы написали сами и сами в ней работаем. Сделка идёт от первой заявки до оплаты и закрывающих документов, а продажи, разработка и бухгалтерия видят каждый свою часть.

</> Для программистов: стек и архитектура
Карточка сделки в CRM АДРИАН: сумма, ответственный и три воронки, продажи, разработка и финансы
Та же сделка на телефоне: сумма, ответственный и этапы в трёх воронках
  • 3 воронки в каждой сделке: продажи, разработка, финансы
  • 9 должностей, у каждой свои права
  • каждые 5 мин CRM забирает выписку из банка
  • 400+ автотестов проверяют API

Одна сделка, три отдела

Продажами занимается менеджер, разработкой техотдел, деньгами бухгалтерия. Каждому нужна своя часть сделки.

В большинстве CRM у сделки один этап. У нас по одной сделке работают три отдела, и каждому важно своё: менеджеру, подписан ли договор, программистам, на каком этапе задача, бухгалтерии, выставлен ли счёт и пришли ли деньги.

Поэтому у каждой сделки три этапа сразу. Менеджер двигает её по продажам, техотдел по разработке, бухгалтерия по финансам. Финансовый этап двигается и сам: выставили счёт, пришла оплата, подписан акт, и сделка переходит дальше. Назад автоматика её не возвращает.

  • задачи разработки, документы и письма привязаны к сделке
  • у каждой сделки следующий шаг с датой: что сделать и когда
  • история изменений: кто, когда и что поменял
СДЕЛКА CRM для цеха и склада пример
Продажи менеджер
  1. Лид
  2. КП
  3. Переговоры
  4. Договор
Разработка техотдел
  1. Бэклог
  2. ТЗ
  3. В работе
  4. Тесты
Финансы бухгалтерия
  1. Договор
  2. Счёт
  3. Оплата
  4. Акт
Одна и та же сделка: в продажах уже договор, в разработке уточняют ТЗ, в финансах выставлен счёт

Заявка с этого сайта попадает в CRM сама

  1. 1

    Человек оставляет номер

    Форма «Перезвоним за 15 минут» есть на любой странице сайта. Без галочки согласия заявка не уходит.

  2. 2

    CRM находит клиента

    Ищет по телефону. Нового клиента заводит с источником «Сайт», дублей не плодит.

  3. 3

    Открывает сделку

    Сделка встаёт на этап «Лид». Повторная заявка в течение суток дописывается в ту же сделку.

  4. 4

    Записывает подробности

    В ленте клиента: что человек написал, с какой страницы и с какой редакцией согласия он согласился.

  5. 5

    Зовёт менеджера

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

Чат на сайте устроен так же: сообщение посетителя попадает в CRM и копией в группу менеджеров в MAX, ответить можно и оттуда, и оттуда. Попробуйте сами: кнопка чата в правом нижнем углу.

От заявки до договора

Сделки по этапам продаж. Вкладки «Разработка» и «Финансы» показывают те же сделки по своим этапам.

Доска продаж показывает сделки по этапам: новый лид, квалификация, КП отправлено, переговоры, договор. У каждой карточки сумма, ответственный и следующий шаг с датой, поэтому видно, где сделка остановилась и кто должен сделать следующий шаг.

  • заявки с сайта сразу становятся сделками, сообщения из чата на сайте сразу видят продажи
  • база для холодного обзвона: загрузка из Excel без дублей, итог звонка и дата следующего, раздача менеджерам
  • почта компании внутри CRM: письма привязаны к клиенту и сделке, черновики сохраняются автоматически
  • выигранная сделка делает компанию клиентом, проигранная сохраняет причину для отчёта
Доска сделок по этапам продаж: новый лид, квалификация, КП отправлено, переговоры, договор, выиграно
Доска продаж: у каждой сделки сумма, ответственный и следующий шаг с датой

Задачи, часы и загрузка программистов

Задача разработки привязана к сделке, и менеджер видит её этап прямо в карточке сделки.

У задачи номер вида DEV-107, исполнитель, оценка в часах, списанное время, срок, репозиторий и ветка. Этапы: бэклог, уточнение ТЗ, в работе, код-ревью, тестирование, деплой, готово.

  • загрузка на неделю: сколько часов занято и сколько свободно у каждого программиста
  • комментарии, чек-лист и история изменений у каждой задачи
  • задачи для клиентов и внутренние отдельно
Доска задач разработки: бэклог, уточнение ТЗ, в работе, код-ревью, тестирование, деплой
Доска разработки: этапы от уточнения ТЗ до выкладки, сверху загрузка программистов на неделю

Документы, банк и долги

Бухгалтерия видит, что выставлено, что оплачено и что просрочено, по каждому клиенту и по компании целиком.

Документы собираются из данных сделки: КП, договор, счёт, акт и УПД, с НДС, частичными оплатами и суммой прописью в счёте. Готовый PDF уходит клиенту письмом прямо из CRM.

  • выписка банка подтягивается каждые 5 минут. Оплату CRM проводит по счёту сама, только когда сомнений нет: ИНН плательщика совпал, а в назначении номер счёта клиента
  • всё спорное ждёт бухгалтера с подсказкой: от кого платёж, какие счета подходят и почему CRM не отнесла его сама
  • регулярные списания (зарплата, налоги, хостинг) правила относят к статьям затрат
  • обмен с 1С: выписка выгружается файлом для 1С: Бухгалтерии, выписки других банков загружаются так же
  • абонентские договоры: счёт выставляется сам в начале каждого периода, напоминания о долге после срока
  • отчёты: выручка, затраты и прибыль, дебиторка; выгрузка в Excel
Раздел «Документы и счета»: выставлено и оплачено за месяц, дебиторская задолженность, список счетов и актов со статусами
Документы и счета: статус каждого документа и общий долг клиентов

Дашборд: что требует внимания сегодня

У каждой должности свой набор блоков. Сверху то, что требует внимания, например просроченный счёт.

Генеральный видит поступления и долги, сделки в работе, воронку продаж, оплаты и разработку на одном экране. У менеджера в «Моих делах» задачи, шаги сделок, письма и обзвон на сегодня.

Дашборд «Обзор компании»: поступления, долги, сделки в работе, воронка продаж, оплаты и разработка
Обзор компании: деньги, воронка продаж, оплаты и разработка на одном экране

Что ещё есть в CRM

Почта, чат, задачи, файлы и ИИ-помощник внутри той же системы, рядом с клиентами и сделками.

Задачи

Поручения со сроком, приоритетом, чек-листом и обсуждением. Напоминание исполнителю перед сроком.

Чат

Личные чаты и группы, фото и файлы, реакции, упоминания через «@». Без связи сообщение ждёт и отправляется, как только сеть появится.

Живое обновление

Коллега изменил сделку, и у остальных экран обновился за доли секунды, без перезагрузки.

ИИ-помощник в CRM

Руководитель спрашивает у помощника, кто должен денег или что важно с утра, и получает ответ по данным CRM.

Выезды и поддержка

Расписание исполнителей, чек-лист и фотоотчёт с телефона. Обращения клиентов со сроком первого ответа.

Файлы и пароли

Папки клиентов и сделок. Пароли хранятся зашифрованными и показываются на 20 секунд, видно, кто их открывал.

Журнал действий

Входы, права, сделки, оплаты и файлы. Записи журнала нельзя изменить или удалить.

Телефон

Версия для телефона: мои дела на сегодня, сделки, чат и задачи, уведомления push.

Карточка сделки в версии CRM для телефона

На скриншотах демонстрационные данные: компании, люди, телефоны и суммы вымышлены.

Как CRM устроена внутри

Для тех, кто будет поддерживать систему или выбирает подрядчика: стек, архитектура и решения, которые мы приняли.

  • Интерфейс

    React 19, TypeScript и Vite. Маршруты и данные: TanStack Router и TanStack Query, стили: Tailwind CSS 4.

  • Сервер

    Node.js и Fastify 5. Входные данные запросов проверяются по схемам zod.

  • База

    PostgreSQL и Prisma. Индексы под рост, постраничная выдача длинных списков, поиск на сервере.

  • Общий код

    Пакет domain для сервера и интерфейса: типы, этапы воронок, роли, форматы денег и дат.

// одна сделка, три этапа сразу
model Deal {
  id           String    @id @default(cuid())
  title        String
  amount       BigInt    // копейки
  /// lead | qualification | proposal | negotiation | contract | won | lost
  salesStage   String    @default("lead")
  /// backlog | spec | in_progress | review | testing | deploy | done
  devStage     String?
  /// contract_agreed | invoiced | paid | act | closed
  financeStage String?
  nextStep     String    @default("")
  nextStepDate DateTime?
}
Фрагмент настоящей схемы базы, сокращён: у сделки три этапа, по одному на каждую воронку
  1. Монорепозиторий и слои

    apps/api, apps/web и packages/domain. Интерфейс разложен по слоям pages → widgets → features → entities → shared, нижний слой ничего не знает о верхнем.

  2. Живое обновление

    Server-Sent Events: по потоку приходит только то, что изменилось, а данные вкладка перезапрашивает с проверкой прав. Правки за 150 мс уходят одним событием, после обрыва браузер догоняет пропущенное, раз в 15 минут вход проверяется заново.

  3. Журнал, который не стереть

    Триггер PostgreSQL запрещает удалять и изменять записи журнала действий. Защита работает для любого клиента базы: API, Prisma Studio, ручной SQL.

  4. Пароли и сессии

    Пароли сотрудников хранятся в argon2id. Сессия: случайный токен в httpOnly-cookie, в базе только его SHA-256. Пароли в менеджере доступов шифруются AES-256-GCM, ключ лежит вне базы.

  5. Деньги в копейках

    Суммы хранятся целыми копейками в BigInt, поэтому при сложении и НДС копейки не теряются.

  6. Банк без угадывания

    Выписка по API каждые 5 минут, каждая операция сохраняется один раз по её номеру в банке. Обмен с 1С в формате 1CClientBankExchange, файл в Windows-1251.

  7. MCP-сервер для ИИ-помощника

    Команды разложены по разделам и помечены: смотрит, меняет, удаляет или уходит наружу. Каждая выполняется как обычный запрос к API от имени сотрудника, с его правами, и пишется в журнал с пометкой «через помощника».

  8. Тесты и песочница

    Больше 400 автотестов API, каждый файл на своей одноразовой схеме PostgreSQL. Песочница для проверок и обучения живёт на отдельной схеме и рабочие данные не трогает.

  9. Рост и резервные копии

    Рассчитана на рост до 1200 сотрудников. Резервная копия базы и файлов каждую ночь, хранится 30 дней.

Такую же CRM сделаем под вашу компанию

Свою мы сделали под то, как работаем сами. Вашу сделаем под ваши этапы, документы и права сотрудников и свяжем с 1С, банком, сайтом и почтой.

  • Работаем в ней сами

    CRM на этой странице наша рабочая система: в ней мы ведём продажи, разработку и деньги.

  • До месяца

    От разговора до работающей программы. Промежуточные версии показываем по ходу работы.

  • От 15 000 ₽

    Без платы за каждого пользователя. Небольшую задачу сделаем дешевле.

  • Данные в России

    На серверах в России или на сервере вашей компании, как удобнее.

  • Свои программисты

    Команда в Екатеринбурге, поэтому правки не ждут в долгой очереди. После запуска полная поддержка.

  • 15 минут

    Столько ждать звонка после заявки в рабочее время. Не успеем, дадим скидку 30% на первый договор.

Вопросы о своей CRM

Если вашего вопроса здесь нет, позвоните: расскажем и покажем CRM в работе.

8 922 163 51 03
Сколько стоит такая CRM для нашей компании?

От 15 000 ₽. Цена зависит от объёма: сколько в CRM разделов и с какими системами её связать. Небольшую задачу сделаем дешевле, точную цену назовём после короткого разговора.

Сколько времени займёт разработка?

До месяца. По ходу работы показываем промежуточные версии, поэтому результат виден раньше запуска.

Можно ли перенести клиентов из Excel или старой CRM?

Да, перенос данных входит в запуск. Клиенты и сделки переедут в новую систему, историю переносим, если старая программа её отдаёт.

Можно ли связать CRM с банком и 1С?

Да. В нашей CRM выписка банка приходит по API, а обмен с 1С идёт файлом в формате 1С: Бухгалтерии. Под вашу компанию подключим ваш банк, если у него есть API, и вашу 1С.

Где будут храниться данные?

На серверах в России или на сервере вашей компании, как вам удобнее.

Кто будет поддерживать CRM после запуска?

Полная поддержка: доработки, изменения и инструкции для сотрудников. Программисты свои и работают в Екатеринбурге, поэтому правки не ждут в долгой очереди.

Получим ли мы исходный код?

Вы пользуетесь программой, а исходный код по умолчанию остаётся у нас. Если нужны код и права на программу, это можно оговорить в договоре.

Обсудим вашу CRM

Оставьте номер: перезвоним, покажем нашу CRM в работе и назовём срок и цену для вашей компании.

Если не перезвоним за 15 минут, дадим скидку 30% на первый договор. А нашему менеджеру ай ай ай.

15:00
Запустим таймер на 15 минут
Не перезвоним до нуля, дадим скидку 30% на первый договор
Условия скидки 30%
15:00
Запустим таймер на 15 минут
Не перезвоним до нуля, дадим скидку 30% на первый договор
Условия скидки 30%