Кейс · B2B SaaS, входящие заявки
LeadPendingДвое сделали сервис заявок за 24 часа: ответ на заявку за 10 минут, а в среднем по рынку 40+ часов
LeadPending собирает заявки со всех сайтов в одну очередь, присылает их владельцу в Telegram, пишет черновик ответа на языке клиента и показывает, как читают отправленное КП. Заявка получает ответ за 10 минут, когда в среднем по рынку это больше 40 часов, больше 90% заявок получают ответ в первый же час, и через сервис уже прошло 12 000 заявок. Архитектуру, безопасность и работу с персональными данными построил я, а в команде всего два человека. Сервис заработал через день после первого коммита, с проверками безопасности и покрытием тестами, до которых большинство команд доходит за месяцы.
- Клиент
- LeadPending
- Продукт
- Очередь заявок, AI-ответы, документы с аналитикой
- Обработано заявок
- 12 000
- Моя роль
- CTO по подписке
- Команда
- 2 человека
- Интерфейс
- Английский и русский
- Сайт
- leadpending.com

В цифрах
- до ответа на заявку, когда в среднем по рынку это 40+ часов
- 10 мин
- от первого коммита до продакшена, когда обычно уходят недели
- 24 ч
- заявок получают ответ в первый же час
- 90%+
- заявок обработано, каждая принята ровно один раз
- 12 000
- работающих сайтов перевели формы с Telegram на LeadPending за 9 дней
- 13
- автотестов, и двое выпускают релизы без отдела QA
- 2 100+
Продукт
Одна очередь для всех сайтов, ответ из одной строки, уведомление в Telegram и отчёт о том, как читали отправленное КП. Экраны с leadpending.com, данные на них демонстрационные.
С чего начинали
Контактные формы сайтов слали каждую заявку прямо в чат Telegram. Никто не видел, кто ещё ждёт ответа, а чтобы ответить, текст копировали между Telegram, AI-чатом и почтой. По КП, отправленному ссылкой на PDF, нельзя было понять, открыли его или нет.
LeadPending должен был заменить всё это: одна очередь для всех сайтов, готовый ответ за десять минут и ни одного письма без человека. Сервис хранит имена, email, телефоны и данные о чтении документов людей, которые не его клиенты, поэтому безопасность и персональные данные были в проекте с первой версии ТЗ.
Что мы сделали
Один сервис на Go и PostgreSQL, ничего лишнего
Я спроектировал один сервис на Go для API, почты, Telegram и аналитики документов, два приложения на React (кабинет клиента и админку), сайт на Next.js, отдельный вьювер документов и PostgreSQL. Redis и брокера сообщений нет: повторы и идемпотентность живут в базе. Проект вырос из моей собственной заготовки, поэтому аккаунты, организации, passkeys и админка работали с первого дня. Чем меньше частей, тем меньше приходится хостить, мониторить и оплачивать.
12 000 заявок, каждая пришла ровно один раз, без потерь и дублей
Сайт отправляет заявку одним вызовом со своего сервера или через npm-пакет leadpending-web. Повторный вызов с тем же ключом возвращает первую заявку, и повторная отправка формы не создаёт дубль. Пакет передаёт путь посетителя по сайту, UTM-метки и устройство, а сервер оценивает каждую заявку на спам и всё равно её сохраняет.
Ответ за 10 минут с телефона, когда рынок отвечает за 40+ часов
Каждая новая заявка приходит владельцу в Telegram с контактами и текстом целиком. Он отвечает одной строкой, голосом или текстом, а модель пишет черновик на языке клиента и с подписью сайта. Заявка получает ответ за 10 минут, когда в среднем по рынку на это уходит больше 40 часов, и больше 90% заявок получают ответ в первый же час. Send на каждом ответе нажимает человек, а текст заявки попадает к модели как содержание и никогда как инструкция.
КП, по которому видно, кто его читал, за два дня
Documents отдаёт PDF по персональной или публичной ссылке или встроенным в сайт клиента и показывает, кто открыл, откуда, с какого устройства и сколько читал каждую страницу. Превью ссылок, почтовые сканеры, облачные сети и headless-браузеры считаются роботами, собственные просмотры владельца не учитываются. От утверждённого ТЗ до продакшена эта функция дошла за два дня.
Персональные данные под жёсткими правилами с первой версии ТЗ
Каждая строка в базе принадлежит одной организации, и каждый запрос это проверяет. Вьювер документов не ставит cookies и ничего не грузит со сторонних сайтов, а сырые события просмотров хранятся 180 дней. Удаление сайта или аккаунта открывает 30-дневное окно восстановления, после него данные удаляются окончательно, а подключённый сайт может стереть заявку по своему ID через API. На заявках модели не обучаются, и политика конфиденциальности называет каждого провайдера, которому уходят данные.
Безопасность проверяется на каждом релизе без отдела безопасности
Код охраняют больше 2 100 автотестов, серверные идут на настоящем PostgreSQL. API-ключи и инвайт-токены хранятся только как хэши, сессии лежат в базе как случайные токены, в админку входят только по passkey, и каждый её запрос подписан. Каждый релиз проходит поиск секретов по всей истории git и проверку уязвимостей Go и npm; образы несут SBOM и provenance, контейнеры работают не от root, а релиз, не прошедший проверки в продакшене, откатывается сам. Такую дисциплину релизов обычно держат компании намного крупнее.
Продакшен за 24 часа, 13 сайтов за девять дней
На следующий день после первого коммита продукт уже работал в продакшене, а такого темпа большинство штатных команд не достигает. Через девять дней после этого коммита 13 работающих сайтов перевели контактные формы с Telegram на LeadPending, каждый со своим API-ключом, и настоящую заявку проверили от формы до очереди. Этот сайт, oleg.is, тоже отправляет через LeadPending свою контактную форму и мои КП.
Результат
Команда из двух человек вывела LeadPending в продакшен через день после первого коммита, а ещё через восемь дней через него шли контактные формы 13 сайтов. С тех пор он обработал 12 000 заявок: ответ приходит за 10 минут, когда в среднем по рынку это больше 40 часов, а больше 90% заявок получают его в первый же час, и всё это без отдельных людей на эксплуатацию, QA и безопасность.
| Результат | До | После |
|---|---|---|
| Ответ на заявку | В среднем по рынку 40+ часов | 10 минут, 90%+ в первый же час |
| Заявки с сайтов | Сразу в чат Telegram | Одна очередь, у каждой заявки таймер ожидания |
| Ответ | Вручную, копированием между чатом, AI и почтой | Черновик из одной строки, на языке клиента |
| КП | Ссылка на PDF, неизвестно, прочитали ли | Открытия, страницы и время чтения, без роботов |
Стек
- Go
- PostgreSQL
- React
- Next.js
- pdf.js
- OpenAI
- AWS SES
- Telegram Bot API
- Docker
- GitLab CI
- Sentry
- Cloudflare
Полный кейс · PDF
LeadPending
Двое сделали сервис заявок за 24 часа: ответ на заявку за 10 минут, а в среднем по рынку 40+ часов
- 01Архитектура: один сервис на Go, три веб-приложения и вьювер документов
- 02Персональные данные: что хранится, сколько и как удаляется
- 03Как заявка принимается ровно один раз: API-ключи, идемпотентность, оценка спама
- 04Путь ответа: Telegram, голос, черновик и Send, который нажимает человек
- 05Documents: как в аналитике чтения отличить людей от роботов
- 06Конвейер релиза: проверки безопасности, приёмка в продакшене, автоматический откат
Полный кейс LeadPending
Открытая часть истории на этом заканчивается. Остальное в PDF: архитектура до и после, план переезда, как команда работает с AI-агентами, сколько всё это стоит в эксплуатации и откуда взялась экономия.
Другие кейсы
Все кейсыХотите, чтобы следующий кейс был про вашу компанию?
За 30 минут созвона выберем первую задачу, которую стоит отдать AI, и прикинем, сколько она сэкономит.



